Sign in to follow this  

Storing Animation data

This topic is 2643 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

Whats the benefits of storing animation data in parent space as opposed to world space?

For example, if i have a skeleton with say 32 bones and I store each of its bones tranforms over 24 frames :

Frame1 : SkeletonPose
Frame2 : SkeletonPose
Frame3 : SkeletonPose
...
Frame24 : SkeletonPose

Where skeletonPose contains a transform for each bone at that point in time. Why not just store that transform in world space? So that each frame, calculating a bones matrix to a apply to a vertex is simply :

( SkeletonBindPose stores the inverses )

SkeletonBindPose[BoneIndex] * SkeletonPose[BoneIndex];

Where as if you store each bones transform in parent space, you then have to walk the hierarchy each frame.

And secondly, what is the need for storing the skeleton in the first place? Why not have the animation clip have each of its tranforms be

SkeletonBindPose[BoneIndex] * SkeletonPose[BoneIndex];

when exporting the animation clip?

Share this post


Link to post
Share on other sites
It would be more restrictive if you pre-multiplied everything.

One reason to keep things separate is so you can easily blend between two frames in local space. For example if you have a two bone upperarm -> forearm setup then blending between two matrices in world space would pivot around the shoulder and no the elbow as you might expect.

If you have a blend between frames you won't need as high a resolution of animation sampling because you can automatically generate the in-between frames at whatever framerate you want instead.

Your second point would also restrict things like using IK on the joints or ragdolls, in that case you don't know what the SkeletonPose[BoneIndex] is at the export stage.


For simple unchanging animations this would be more optimal though, yes.

Share this post


Link to post
Share on other sites

This topic is 2643 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this