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

**URL:** <https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366>\
**Category:** Feedback & Requests\
**Tags:** unreal-engine\
**Created:** [May 4, 2017, 5:47pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366 "2017-05-04T17:47:51Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Fredrum](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Fredrum](https://forums.unrealengine.com/u/Fredrum)\
**Post date:** [May 4, 2017, 5:47pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/1 "2017-05-04T17:47:51Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![trentpolack](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/trentpolack/32/1173069_2.png) [@trentpolack](https://forums.unrealengine.com/u/trentpolack)\
**Post date:** [May 4, 2017, 5:56pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/2 "2017-05-04T17:56:58Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![cyaoeu](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@cyaoeu](https://forums.unrealengine.com/u/cyaoeu)\
**Post date:** [May 4, 2017, 7:54pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/3 "2017-05-04T19:54:07Z")

</div>

Can’t you use virtual bones for this?

---

<div class="post-metadata">

**Author:** ![Fredrum](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Fredrum](https://forums.unrealengine.com/u/Fredrum)\
**Post date:** [May 4, 2017, 8:28pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/4 "2017-05-04T20:28:04Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Fredrum](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Fredrum](https://forums.unrealengine.com/u/Fredrum)\
**Post date:** [May 9, 2017, 7:04pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/5 "2017-05-09T19:04:00Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![BoredEngineer](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@BoredEngineer](https://forums.unrealengine.com/u/BoredEngineer)\
**Post date:** [May 9, 2017, 7:28pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/6 "2017-05-09T19:28:15Z")

</div>

When I needed similar functionality to “find spot in between two specific bones”, I could solve it using CopyBone nodes:  
 ![99ee98e4a458fe66357a64f49cb9933c0dc12f6f.jpeg](https://d1ap1mz92jnks1.cloudfront.net/images/transparent.png)

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:

> **[A new, community-hosted Unreal Engine Wiki](https://forums.unrealengine.com/t/a-new-community-hosted-unreal-engine-wiki/141494)**
>
> After over a year in maintenance mode, the official Unreal Engine Wiki is now permanently offline. These resources now live on a new community-run Unreal Engine Community Wiki — ue4community.wiki! You will be able to find content from the official...

---

<div class="post-metadata">

**Author:** ![Sab\_Rango](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/sab_rango/32/719440_2.png) [@Sab\_Rango](https://forums.unrealengine.com/u/Sab_Rango)\
**Post date:** [September 10, 2023, 12:47pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/7 "2023-09-10T12:47:34Z")

</div>

USE GetRefBonePose() funtion in c++ or get ref Pose Position BP node  
to get Anim bone Tranform location

---

<div class="post-metadata">

**Author:** ![Gimli\_Gloin](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Gimli\_Gloin](https://forums.unrealengine.com/u/Gimli_Gloin)\
**Post date:** [October 16, 2023, 12:41pm UTC](https://forums.unrealengine.com/t/get-bone-socket-transforms-in-animbp-to-avoid-skeleton-leaf-ik-nodes/91366/8 "2023-10-16T12:41:43Z")

</div>

Copy pose from mesh - store required variables, now you can access them all

If needing variables from another point in time which will be deformed by IK or control rig, create a clone blueprint and set the time of the animation sequence which the bone should have the required data, grab that data, convert it to local.

idea is to have a clone which you can manipulate depending on what the original needs to read
