Need help understanding how to zero out joint local rotation

   789   3   1
User Avatar
Member
66 posts
Joined: April 2019
Offline
Hi,

I'm trying to understand how to zero out the local rotation of the joints on my characters skeleton whilst preserving their overall joint orientations.

I can do this with the Skeleton node by viewing the parameters of each of the joints setting the local rotation to 0,0,0, but I would like to know how to do this procedurally via vex, vops or something like that.



The joints transform attribute is already orientating the joints the way I want but how can I use this transform attribute to zero out the local rotations for each of the joints in the way that the Skeleton node does?

Thanks
Edited by mrpdean - May 18, 2023 08:43:20

Attachments:
Untitled-1.jpg (108.5 KB)

User Avatar
Member
134 posts
Joined: Dec. 2006
Offline
Have you tried just zeroing out the local rotate in that same parameter pane? That should then align with the parent joints rotation.

I see now... I hardly ever use the skeleton node to create my skeletons. Remember you are working with joints, and it seems like there are transform values on the tip that will make the rotations not match. First zero out the local rotations of the joint and then zero out the X and Y local transform values of its child joint (this is assuming you are aligning your joints to aim down Z). That should make them line up perfectly.
Edited by willh - May 18, 2023 08:44:49
User Avatar
Member
66 posts
Joined: April 2019
Offline
Sorry, I realised that my question wasn't at all clear. I've edit it to hopefully make it clearer.

Yes, that does work but what I'd really like to know is how to achieve the same result procedurally.

I guess what I'm asking is what is the maths to achieve what the skeleton node is doing in this instance.
User Avatar
Member
66 posts
Joined: April 2019
Offline
Thanks but I still don't know how I can achieve this in vex, vops or python etc as I don't use the skeleton node either. I was just using it to try to understand what it was doing.

When I zero out the local rotation using the skeleton node to get the result I'm after. The rotations of both the transform and localtransform attributes change, but the rotations on the localtransform attribute aren't zero.

What I'm wanting to know is how the skeleton node is calculating these transform and localtransform values, so that I can repeat them procedurally in vex.

Attachments:
Untitled-1.jpg (268.3 KB)

  • Quick Links