Log In
New Account
Home My Page Projects Blender 2.x BF release
Summary Activity Tracker SCM Files

Blender 2.6 Bug Tracker: Browse

[#28844] Copy Rotation with Offset fails with hierarchies

Date:
2011-10-08 04:23
Priority:
3
State:
Closed
Submitted by:
bassam kurdali (bassamk)
Assigned to:
Joshua Leung (aligorith)
Category:
Animation system
Status:
Closed
Relates to:
Duplicates:
Patches:
 
Summary:
Copy Rotation with Offset fails with hierarchies
Detailed 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

Followup

Message
  • Date: 2011-10-08 04:42
  • Sender: bassam kurdali
  • 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.
  • Date: 2011-10-08 04:52
  • Sender: bassam kurdali
  • 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.
  • Date: 2012-10-21 18:52
  • Sender: Ton Roosendaal
  • 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 :)
  • Date: 2012-10-21 19:23
  • Sender: bassam kurdali
  • 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)
 

Attached Files:

Name Date Download
localrotationoffsetbug.blend 2011-10-08 04:23 Download
crazyspace.blend 2011-10-08 04:52 Download

Changes:

Field Old Value Date By
status_idOpen2012-10-21 18:52ton
close_dateNone2012-10-21 18:52ton
StatusNew2012-10-21 18:52ton
assigned_tonone2011-10-25 08:11campbellbarton
File Added17984: crazyspace.blend2011-10-08 04:52bassamk
File Added17982: localrotationoffsetbug.blend2011-10-08 04:23bassamk