How to get Pose information of an AnimationSequence


I want to save pose information i.e, the location of each bone of a skeletal mesh while it’s playing an animation sequence during runtime. About this I searched everywhere but not fruit. One way is to Save PoseSnapshot of an anim instance. And from the output Snapshot i can extract LocalTransforms which is completely inaccurate. LocalTransforms of each bone is off some random distance. I displayed local transforms on the screen along with the character as well as world location (fyi I used TransformFromBoneSpace function to convert transforms from local to world space) of each local transform in below images. Please check. LocalTransforms in SnapshotPose struct always contain some offset.

  • How do I fix this?
  • Is there any alternative to achieve
  • Why the bone locations are little extruded outwards from their original position?

fyi, in images above i didn’t use animations to keep things simple.

I want this exact function in C++. Can someone help me finding this in engine source code?

I haven’t tried this and don’t know if this is already built. The local transforms are likely going to be with respect to their parent bone. So for example to get the world transform of the hand you chain the transforms from the hand back to the root bone. This means multiplying the transforms in a chain from child to parent for any given bone you want the transform of in world coordinates.

Thanks bad-wulf for your response, your explaination makes sense.

GetSocketLocation given the name of socket/bone gives me perfect world location…