Does anyone know how I might be able to rig a shoulder pauldron with complex movement?
The shoulder works pretty well without armour:
However, the shoulder pauldrons need to move in a non-linear fashion in relation to the arm, otherwise they would clip. You can see in miniatures how they try to get around this problem, as well as in “Astartes”. The pauldrons move in or away from the neck as required:
I don’t really know how to approach this - I tried using a transformation constraint (pauldron move along x axis as upper arm bone rotates) but nothing I did caused the pauldron to move. I’ve had action constraints mentioned, but I have no idea how to set this up and the motion seems quite complicated to map manually.
I’m not sure what part of this video is addressing my question? I can do basic rigging and parenting to bones etc.
In this instance, I need a set of vertices to move in a non-linear way. I would prefer the pauldron be part of the original mesh and just weight painted (but if I need to separate, no big deal either).
I think what I am struggling with here is that this is akin to hard surface mechanical rigging, and I just can’t seem to picture how to connect bones to get them to pivot the way I want them to.
Yes, but I did try various other bones before this (and made some specific shoulder bones, like to control the shoulder volume), and they have similar problems - the actual pauldron needs to move along the x axis (and z probably) as the shoulder rotates, so following a single bone - well, I can’t figure out what sort of rotation I’d need.
My only thought just now would be to try treating it like a 2-segment elbow (but obviously at the shoulder). It might end up in approximately the right position even if intermediate frames would be jank.
Thanks! This is great - all I had to do was set up a driver to control the influence as the arm raised/lowered.
I found that when the arm was lowered, the 2nd driver influence needed to 0.195, and then when raised it was 0.595.
I created a bone (MCH-pauldron_control) and used constraints to have it follow the z position of the IK-arm.L bone. The driver uses this object in the expression:
zPos = 0.195 + 0.4 * (zPos - 1.091) / 1.639
This seems to work quite well across a decent range of motion, although I probably need to tweak where the “hinge” is on the shoulder pad itself so it looks more seated into the arm.
It also works surprisingly well if you let the pauldron control track X and Y as well, but obviously it is not as “dialed in”.
I suppose I could just add a driver for X and for Y to tighten this up?