How do i change position of bones for a shape key

i have created a complex model of an alien creature and i decided that i should make a transformation using shape key to change the body proportions longer and more slouched, however i have only just learned to attach bones onto a model, i have to change the position of the bones for the more longer shape key however i do not know how to do that

this is the original version, i will now show you the monster version, and for you to see the hands and other bones do not fit onto the new transformation

as you can see the transformation doesn’t fit the bones and i really want to know how, if you could help me i would really appreciate it, its very important

This happens because Shape Keys, although they can deform the mesh, they do not deform the Bones themselves, even if the mesh has Weight Paint relating to the Bones.
On the other hand, the inverse (where Bones, which are on the top of this ‘hierarchy’) occurs naturally in Blender: that is, Bones deforming the mesh, and this deformed mesh can be additionally deformed by Shape Keys.

So, what you’re trying to do actually is to have the Bones following the mesh as it deforms… but the logic is the inverse: it’s the deforming mesh that follows the Bones; Shape Keys however do not have control over Bones, only over mesh.

There should be more than one way to do what you’re looking for.
What seems likely to be more straightforward, is to procure a solution in which certain Bones (like the ones from the arms) will Scale positively on their Y Axis, as the Shape Key augments its Value until 1,000.
For this, you must create a ‘Driving Bone’ FOR the Shape Key itself, in case you don’t have that yet (I hope you already know about this method; a Driver must be created on the Shape Key Value button, so that you can control the Shape Key from a ‘Driving Bone’ on Pose Mode) To make it more direct, you should probably use that same Driver Bone, and probably its same driving element that you’ve used for the Shape Key; e.g., Scaling the Driving Bone [on Pose Mode] on its Y Axis will control the Shape Key Value from 0,000 to 1,000, and at the same time you can apply a Bone Constraint to each of the arms’ Bones to Copy Scale of that unique Driver Bone… then you might as well like to have a Limit Scale to them.

I believe this approach should work, but there could be other ways around.

im sorry. i am quite new to doing this so some of the things that you are saying doesn’t really make sense to me, im really sorry

are there any tutorials similar to what you just said?

Oh, I see. I’m sorry.
It’s because what you’re trying to do is relatively advanced.
But don’t worry, it’s not that complicated.

I’ll get you some tutorial on some of the fundamental steps; although I’m not sure there would be any tutorial exactly for your case, but then piece by piece.

first of all, did you even tried to simply change the location,rotation, scale of your armature’s bones ? It will already give to your monster a new shape … just by scaling the bones on a given axis for example …


(here, its a mannequin, so the skin doesnt stretch … dont worrk, it will do on your model)

Once, you moved all the bones so it matches the proportions you are aiming (long skinny army for example) , you can make a simple operation to make that default new pose (loc,rot,scale) as the new default pause and make a last operation to make the mesh fit into that new pose

Ok, so here (just check this segment of the video I’ve set) you can find the process of creating a Driver for a Shape Key (when you Add a Driver to something, like to the Value of a Shape Key, that Value button bar gets a blueish color). You make the Driver to a Shape Key so that you are able to change the Skape Key Value directly from the 3D Viewport instead of the Properties Editor; that’s why the common practice in Blender is to create a new Bone in the Armature, and the unique role of that Bone is to control the Shape Key, but you decide which Transformation of the Bone will “drive” the Shape Key; in the video, he picked “Y Location” for the Bone that will drive the Shape Key; but my suggestion is that you use “Y Scale” because then you’ll be able to reuse this same Transformation); and don’t forget “Local Space”. The Y Axis of the Bones is by principle, the Axis that represents the length of the Bone.

Here in this video segment (be sure you’re on Pose Mode in the Armature) you can add a Bone Constraint to your Bones. I didn’t find any tutorial using “Copy Scale”, but it’s mostly the same thing, so here you have an example of “Copy Rotation”; in your case, just pick “Copy Scale” instead.

Remember: the idea here is to create the Bone Constraint Copy Scale to each of your arm Bones, setup the Bone constraints, so that they will Copy only the Scale of the Y Axis from the ‘Driving Bone’ you should have created already by this time).
This means that, when you Scale on the Y Axis the ‘Driving Bone’, not only your Shape Key will be triggered (and your character will be gradually morphed to monster or the opposite), but your arm Bones will ALSO Scale on their Y Axis (Y Axis which, in the case of Bones, by default represents their Lengths)… then the only remaining issue, will be how much those arm Bones are getting lengthier as you rescale your ‘Driving Bone’ on Pose Mode.

Remember the hotkeys when you’re on Pose Mode: S → Y
(Scale on the Y Axis only). Not that this will matter much, since the other Axis for Scaling has no effect for the ‘Driving Bone’ anyways.

1 Like

Actually, I’m sorry, but I’ve just found out that apparently, when in Pose Mode, a Child Bone (like the forearm Bone in relation to the arm Bone) will by default inherit any Scale transformation (on Pose Mode) from their Parent Bone… this means that we do not require to have the Copy Scale Bone Constraint on every single arm Bone, but just on their Parent Bone, higher on the hierarchy of the arms… that should lead either to the arm Bone or the shoulder Bone I guess in your case. So, only 1 of them (1 in the Left side and 1 in the Right side actually), will require the Copy Scale Bone Constraint. I think you can use the arm Bone, not the shoulder Bone.

Just for information: a Bone’s ‘inheritance’ can be changed at: Properties Editor > Bone Properties Tab > Relations Panel: Inherit Scale… (note: you need to have a Bone selected, either on the Armature’s Edit/Pose Mode).
For bigger animation projects, it’s usually not advised to make changes there, as this inheritance by default can be crucial for 3D Character Animation, when you want to make all changes at once from your Root Bone.
Currently, the Bone Scale inheritance feature is working at your favor… well, unless the hand and/or the finger Bones would get visually disproportionate on the monster morph, when they’re being Scaled automatically by inheritance (from the Scaling of the arm Bone for example), but I don’t think that will be an issue; I’ve tested the Scale inheritance, it looks quite reliable for your kind of morph.

1 Like