Thanks!
It would be slightly more clear to label the setups that are not local as "world".
If you want to see the difference when there are different parents, it can help to transform (eg rotate) one of the parents so it's pointing in a different direction.
1) "Local" can be tricky when it comes to translation. A bone's translation is stored in the parent bone's coordinate system. Many times "local" means the parent coordinate system for translation. This is because when we talk about the "local transform" we mean local rotation, parent translation, local scale, and local shear. It's awkward to talk about all that and also somehow make it clear that we mean "parent" for translation. This causes confusion in other areas (like when you can pick local, parent, or world axes) where local really does mean the bone's own coordinate system (not the parent's). When checking Local
for a transform constraint, it's the parent's coordinate system for translation.
2) and 4) The shearY mix slider for a transform constraint affects if shearY is copied from the target to the constrained bones.
Transform constraint doesn't use shearX at all for Local
. In fact Spine's shearX exists only for convenience. This is because shearX changes the direction of the bone's X axis, which is exactly what rotation does! The difference is just that shearX affects the Y axis rotation the opposite amount, so it appears to not move. You can achieve the same result as shearX with a transform constraint by rotating the bone (to change the direction the X axis points) and then using shearY the opposite amount (to restore the Y axis to its previous orientation).
As mentioned, the target bone's shearX affects the direction of its X axis. When calculating the "world rotation" it's the 0-360 angle in the world coordinate system of the X axis, therefore shearX affects world rotation. When transform constraint Local
is unchecked (ie world) the world rotation is copied to the constrained bones. If shearY mix is zero, then this will result in the constrained bones rotating without any shear. If shearY mix is 100 then the world rotation of the Y axis is also copied. This can make it look like shearX is being copied, but it's really just a combination of rotation and shearY, described above. If you turn off the rotation mix and adjust the target bone's shearX, you'll see shearY change but rotation doesn't.
I can appreciate (more than anyone) if not all of that is intuitive. When copying individual parts of bone transforms, it's was quite tricky to get Spine's behavior to make sense and work reasonably in all situations. I do think it's useful to understand at least the basics of how transform constraints works, but it's not necessary to understand every corner case, as there are many combinations for Local
, Relative
, and the mixes. There are 8 settings so 82=256 combinations, and that's assuming mixes are either 0 or 100. Sometimes it can take some experimentation to get exactly the result you are looking for.
3) Nope, the target bone is where the transform comes from. The constrained bones are the bones that the transform values are copied to. There is only one target but there can be multiple constrained bones.