Home

Copy Rotation with Offset fails with hierarchies
Closed, InvalidPublic

Description
I have two bone chains:

base_parent/base_child (which is untransformed)

parent/child (which is)

parent has a copy rotation in local space with offset to base_parent
child has a copy roation in local space with offset to base_child

I rotate parent.

Now when I rotate child, I get weird rotations/crazy space (try rotating around local Y axis). Given that the local space transformation of the base chain is zero, I'd expect normal behaviour in this case, which leads me to suspect an error/bug.

uname: 2.6.35-30-generic #59-Ubuntu SMP Tue Aug 30 19:00:03 UTC 2011 x86_64 GNU/Linux
affects: revision 40847
hardware: intel cpu/ nvidia gpu
bassamk (bassam kurdali) added a comment.Via Old WorldOct 8 2011, 4:42 AM
I turns out that I over complicated: the parent -> base_parent constraint (and the bone base_parent) is not needed to demonstrate the bug. All that is needed that child have a transformed parent, and that child have a local->local copy rotation with offset for the chaos to ensue.
Final simplification, and new update:
The problem is unrelated to hierarchies. once you have transformed the bone, it's in crazy space.
check the file crazyspace.blend, now with just two bones.
dingto (Thomas Dinges) added a comment.Via Old WorldJun 11 2012, 12:26 AM
Any updates here?
ton (Ton Roosendaal) added a comment.Via Old WorldOct 21 2012, 6:52 PM
This needs a fix in transform code, to calculate the correct inverse method to rotate the bone.

Now if that was easy... but the standard inverse doesnt work because the constraint in turn screws the inverse up. That is caused by the "offset" option.
A math genius might be able to solve it, but this so specific for how this constraint works, we wouldn't get benefit for it really. All constraints have too many options...

Choice: remove "offset" or stick to crazyspace :)
ton (Ton Roosendaal) closed this task as "Invalid".Via Old WorldOct 21 2012, 6:52 PM
bassamk (bassam kurdali) added a comment.Via Old WorldOct 21 2012, 7:23 PM
an idea for the future:
replace complex options in constraints with either a transform/constraint stack or nodes:
-simplify transform options
-simplify constraints
-allow adding transform nodes 'on top' of constraints in order, thus no crazy space and real offsetting.

this should be fixable long term (animation master and max didn't have these issues afair)

Add Comment