[Bf-committers] About Pose evaluation of child bones in armatures

Bastien Montagne montagne29 at wanadoo.fr
Fri Dec 30 12:10:37 CET 2011


Hi devs!

I have spent quite some hours this week on those two bugs: 
http://projects.blender.org/tracker/index.php?func=detail&aid=27898 and 
http://projects.blender.org/tracker/?func=detail&aid=29461

While searching and reading code about pose transforms (I don’t like 
matrices, and they don’t like me :/ ), I think I found some 
problems/incoherences in the way the Hinge/NoScale options are handled 
*for the position of the bone*. See also this small demo file 
(http://www.pasteall.org/blend/10564), with one child, unconnected bone, 
pose-translated, and a parent bone pose-scaled by a factor two.

When you disable only Inherit Rotation, the bone moves back half of its 
Pose translation. This is because its position is evaluated fully in its 
parent rest space (instead of using parent rest rotation and parent pose 
scale).

When you disable only Inherit Scale, the bone does not move. This is 
because its position is evaluated into its parent pose space (instead of 
using parent pose rotation and parent rest scale).

So, imho, we should fix those incoherences… But how ? Do we always want 
to use the parent pose space for the child position (thus never moving 
the child bone when disabling/enabling the Inherit Rotation/Scale 
options) ? Or do we want to fully respect the logic, and make the 
pose-location of the child bone depend on the hinge/no scale options 
(i.e. use parent rest scale and/or rotation) ?

Cheers,
Bastien


More information about the Bf-committers mailing list