Download

Skeletal Mesh bone location

Hi, I want to make an editor tool that do some simple calculations with a selected Skeletal Mesh Asset’s bones from the Content Browser. I tried to get the location of a bone but with no luck. I can only get a socket relative location (if I add one manually) but I don’t want to use sockets at all and the name of the parent bone. Only bone location node that I found is require a Posable Mesh Component target input. I also tried to implement it with python, no luck either.


So how can I get the absolute location of a bone in a Skeletal Mesh asset?

One long-standing UX issue with Unreal Engine is that the nodes for Sockets also apply to bones. Not sure why it was never clarified!

Just put your bone name in the GetSocketLocation node. It will return the bone location.


iTween : Free, smooth, procedural object animation
easyCSV : Read data from any CSV and put them in an easy-to-access string map!
Runtime DataTable : Import and export game data to and from CSV or Google Sheets while your game is running!

There’s no name parameter for the GetSocketLocation node and if I put the bone name in the FindSocket node name parameter it doesn’t find it :worried:
Screenshot_3
And the other GetSocketLocation node expect a Scene Component Object as input.

The GetSocketLocation node gets bone locations, too.
image

Yes, but how did you connect the Skeletal Mesh to the target input which is require a Scene Component. I can’t connect them and I also can’t cast it to Scene Component.

Is your skeletal mesh pin a USkeletalMesh or a USkeletalMeshComponent? The skeletal mesh is an actual mesh with skinning information, a skeletal mesh component is a wrapper class that allows the skeletal mesh to be attached to other scene components and have a transform.

You can get a reference to your skeletal mesh component by going to Variables > Components then find the skeletal mesh and drag it into the graph.

There’s no Variables/Components section for me :confused: Only if I cast it to Skeletal Mesh Component before I set the variable. But it can’t be casted, it fails.

I think the problem comes from that I use a Editor Utility Widget blueprint and if I try to drag just the Skeletal Mesh asset from the content browser to the blueprint it says “Cannot create components from asset in a non-actor blueprint.”

If I create the same thing in a simple blueprint it works flawlessly the way that you said.