KineFX joints flipping

   1662   4   1
User Avatar
Member
44 posts
Joined: Nov. 2017
Offline
I've retarget a piece of motion to a skeleton, but when the character turns 180 degrees the joints flip the wrong way. Is there currently any way to stabilise this with KineFX?

Attachments:
Screen Recording 2020-12-09 at 21.54.13.mov (5.0 MB)

User Avatar
Staff
50 posts
Joined: Oct. 2019
Offline
Greetings,
A few things come to mind when looking at the video. I shall list them in order:
1. Make sure that the MoCap you are using doesn't actually have the flipping issue. Look at the axes of the pelvis joint to see if they behave
2. If the raw data you are working with seems fine, one trick you could try is to copy the transform and position of the pelvis joint from the source to the one from the target before the fullbodyik. This will give the solver a little extra stability to work with. (use a rig attribvop and offset the xform of the pelvis in your target skeelton by the pelvis in the source skeleton)
2.1 You can also try to play with the fullbodyik attributes - like weight - for the pelvis joint and see if that gets you anywhere; you could also try and set rotation limits or lock certain rotation axes(not sure if this would work too well for this example but might be worth a look)
3. If neither of the above options provide the fix, going in for some manual cleanup might be what you need to do. Look at stabilizejoint node.

Hope this helps!

If you can't figure it out, please provide the .hip and I would be more than happy to help!

Cheers!
User Avatar
Member
44 posts
Joined: Nov. 2017
Offline
Hey man, thanks for those suggestions… I used a Rig Attribute Vop and transferred the root Xform from the source to the target and it seems to have worked for this example. I've attached my file just in case you fancied taking a look to see if there's a better way to do this.

Attachments:
Archive.zip (1.5 MB)

User Avatar
Staff
50 posts
Joined: Oct. 2019
Offline
Hey!

I am glad to hear that you managed to figure it out!
I took a quick glance at your scene and my only thought would be:
If your target skeleton is identical with your source skeleton you can bypass the whole fbik workflow and just use an attribute copy: copy the P and transform attribs over and set the Match by Attribute to "name". Of course, if you are working with different skeletons, then you will need the fbik for the offsets etc.
Other than that, it looks great!

Thanks for sharing!

Cheers!
User Avatar
Member
44 posts
Joined: Nov. 2017
Offline
Yeah, I should upload another example actually… I just made that one up quickly as I didn't have my original scene to hand, but in my original scene the skeletons aren't identical, so I had to figure it out again … but using the Rig Attribute VOP, I extracted the rotation from the root joint of the source matrix and I think I plugged it into the Offset Transform node to rotate the target matrix of my root joint… and it worked a treat! Lots to learn about KineFX.
Edited by benek - Dec. 15, 2020 06:31:26
  • Quick Links