Rotating Transform Orientations with Parent

After rotating a parent object that has several generations of objects attached with named transform orientations, the axis orientation of the children goes askew, that is, they are no longer oriented as they originally were with the child objects.

Any suggestions on best practices to keep the orientation of the axis glued to the child objects and rotate properly with them?

I need to rotate multiple objects in the generation chain to a key frame and then re-rotate to the next key frame, but currently the named orientations go crooked after the first key frame.

Any help is appreciated.

hey bobpiet,

I’m not necessarily clear on what you mean by axis… are you talking about the rotation manipulator? If you are, make sure it is set to ‘local’ or ‘normal’ space, so it always orients itself to the selected object instead of staying Z up in global space…

Is that the issue?

I am rotating the children objects individually around an axis established for each object from the transformed orientation of the local coordinates.

Per your suggestion I built a test model and after creating the named orientations I found that just keeping the orientation on Local worked even after rotating the the objects individually!

I then animated the test model and extrapolated the IPO curves - the model spun apart. I need to learn IPO curves better so I understand the effect of extrapolation on local coordinates of an object in a parent-child chain.

Ahhh the learning curve!

If you post the .blend of the test file you created maybe someone here will be able to explain what is going wrong. :yes:

Per your suggestion I have attached the test .blender file.

The three large cylinders are each joined to a small cylinder - the “normal” axis of the joined objects is derived from the small cylinder (say a shaft with the normal Z axis concentric with its length).

The bottom joined object is the parent, middle object child, top object grandchild.

What I can’t figure out is how to keep these objects joined after extend extrapolating the ISO curves. I’ve tried extrapolating only one axis or all three to no avail.

When one runs the animation the middle object axis wobbles away from the bottom parent as soon as it gets past the 5 second keyframe (after which it is extend extrapolating all three axis)

The challenge is: How to keep these objects rotating around each other, aligned as in the original orientation, using extend extrapolation past the first keyframe?


test_3_rods_joined_anim.blend (162 KB)

Ah I see your problem now…

At first it didn’t seem the IPO supported local animation, but after a quick google search I found a thread that had a solution for this. So I’m just re-iterating that solution here.

The problem is that even though your manipulator is set to ‘local’ or ‘normal’ space, the IPO’s themselves are representing global coordinates.

The good news is that the coordinates are relative to their parent… so in order to tilt an object spinning in it local offset axis, a dummy parent is needed for the offset. So that relative to the parent (global space) the object is spinning horizontally in Z… so in the scene (true global space) the rod is tilted via the tilt of the empty (local global space), but relative to the empty it is straight. If that makes sense :eek: lol

Anyways, maybe taking apart the file will help. I’ve attached it below. Again, credit for the solution is due to this thread.



bobpiet_localRotation_IPO.blend (164 KB)


I read the threads you referred to and I think I understand the general approach.

Using empties as “invisible” parents seems to be on the right track but I don’t know where to put them in the existing chain of parent/children - does it matter where the empties are located? Are they parented to each other?



Did you check out the example I attached? The parent relationship for this scenario was rod->empty->rod->empty…etc from the top of the chain to the bottom. The location of the empties does matter, since the rotations will be performed around their object center. This is why they were positioned at the base of each rod.

Sorry, I missed your example, am digging into it now,