chop export rotation channels swapped - how to re-route these?

   1715   2   2
User Avatar
Member
81 posts
Joined: Feb. 2014
Offline
Hello

I am trying to get rotational motionfx-lag in a bone.
The bone itself has no keyframed data but higher up the hierarchy there is. I sample therefore it's wordspace rotation (through an ObjectChain and a TransformChain), apply lag, subtract the wordspace rotation from this again (to get a localised lag) en export the result back to the spine-bone again.

I don't know if this a way to go (thoughts, anyone?) though it yields some results, but in the wrong way. Rotate Z and Rotate Y seem to have been swapped. I try to correct this through a channel wrangle but to no avail.

Does anyone see what i am doing wrong?

Attached is the file. Press play to see the (wrong) effect

Cheers
Michiel
Edited by mackerBaehr - Aug. 23, 2017 14:43:14

Attachments:
WA_BodyRig_v02.hiplc (1.5 MB)
wa_rot.PNG (606.8 KB)

User Avatar
Member
402 posts
Joined: June 2014
Offline
Hi Michiel,

Only managed to grab a quick look, but I believe the root of the issue is the same as when we create FK controls that drive the target bone via channel references. It's important to remember to change the rotate order of the FK control to match that of the bone, which by default is RzRyRx (reversed from the default for nulls etc…). I've included a little scene to demonstrate the wonkiness.

Here you don't initially have that problem because the control null is driving another null with the same rotate order, however the problem kicks in again when you try to send those channel values on to the bone object, which when done via chop export, behave just like direct channel references.

You can avoid this by making sure that *all* the objects (and chops) involved have the RzRyRx rotate order. This will of course change your animation, which would need redoing to look the way you wanted initially. Then when the values get exported they should be driving the bone in the expected fashion. (You would also need to recreate the ‘lag’ effects on the hip control).

Another option would be the insert a null in the bone hierarchy to receive the CHOP exported rotate values, which would then be able to use the existing rotate order. The bone will be happy with this as the relationship to it's input null is one of parenting rather than direct channel reference.

Hope that's of some help,
Cheers,

Henry

Attachments:
fk_ctrl_rorder.hip (79.3 KB)

Henry Dean
User Avatar
Member
81 posts
Joined: Feb. 2014
Offline
Hi Henry

As an animator I have many times fallen into the pitfall of rotation orders and often climbed out of them by changing them to something more humanly logical.
Also in this case it seemed to have solved this problem. Thank you very much for pointing me in this direction.

I still can't completely grasp my own setup of applying lag based on world space channels and then subtracting the unlagged data to get local lag, but with this tackled, I can investigate further.

Cheers

Michiel

Attachments:
ro_order.PNG (783.3 KB)

  • Quick Links