Jump to content
  • Advertisement
Sign in to follow this  

Bone/node rotation via quaternions

This topic is 4064 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello there. I have a mostly working inverse kinematics solution that I've recently written up (uses cyclic coordinate descent). However, it's not *quite* working properly. When working on the nodes I convert everything to object space first, using the parent object space transform of the node I'm working on. Then after I've applied my rotations, I convert back into bone-relative space. Unfortunately, it appears the conversion back has some issue with it, because the bones are not in the correct positions. I know it's the conversion back because I'm rendering the bones while they're still in object space. Am I incorrect in thinking that the conversion back to bone-relative space can be done by multiplying the node's transform by the inverse of its parent object transform? Here's a screenshot of the issue I'm having: http://farm2.static.flickr.com/1336/1472750542_214af77b35_o.png The cyan boxes are the resolved effector positions, the red boxes are the target positions (yellow boxes are the positions of the topmost node, green are the positions of the middle node). The blue lines are the bone rotations/translations before they're converted to bone-relative space, and the magenta lines are the actual positions of the legs. Any help on this issue is greatly appreciated.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!