Download

Get bone/socket transforms in AnimBP to avoid skeleton leaf (ik) nodes.

It would be great to be able to run a ‘Get socket/bone transform’ on a Cached Pose in the Anim Graph.
In my VR motion controlled character rigging I have several points in the animated skeleton that I need to refer back to even after I edit the pose in the graph.
Such as planting the feet and setting up my SplineIk spine.
Several times now I have to go back and add new leaf nodes to the actual skeleton, re-bake out animation, swap out my skeleton mesh and make sure the animation work with the new skeleton mesh. It’s a huge pain when it shouldn’t need to be.

All this I think could be avoided and more flexible if I could just access the transforms of bones/sockets earlier in the Anim Graph graph, say from a Pose Cache.

Please?

Cheers
Fred

I was just wanting this like five minutes ago. So I concur.

Can’t you use virtual bones for this?

I never heard about virtual bones before. Can you get the position and rotations of these straight in the anim graph?
Can I get them to copy animated transforms from other bones?
I’ll read up on them and see.

EDIT: Well they sort of seem to be able to get half the way there maybe.
The problem is still that I can’t get the transforms in the Anim Graph. Which I need because I need to get the latest transforms this tick after say keyframed animation has been applied but before I calculate my spline ik.

Actually having full on tried it it does seem to work. It’s hard to tell if I’m a frame behind or not.
I think that is something that I need to ask somewhere, when you do a socket transform get, is that the transform from where in the anim graph and at what time in the chain of events.

When I needed similar functionality to “find spot in between two specific bones”, I could solve it using CopyBone nodes:
99ee98e4a458fe66357a64f49cb9933c0dc12f6f.jpeg

But I think there is still need in a generic GetBoneTransform for other use-cases.

If you are really in trouble with this now, perhaps adding custom node is an option: