How to create a poseable mesh?

I was trying to figure out how to create a poseable mesh. After searching AnswerHub, the forums and the net in general, it seems that either people are trying to figure it out, or they already know how to create a poseable mesh, but are working on more advanced issues. I did not find anyone that said exactly how to create a poseable mesh! So in case anyone else is trying to figure it out, here is what I came up with:

  1. Import a mesh with a skeleton into the editor (or create a new Third Person project as an example so you have a skeletal mesh asset).

  2. Create a new blueprint class (right click in the content browser file list area):

and select “Actor” as the parent class:

72463-step+2.png

And finally rename the blueprint to whatever you like. I’ve used BP_BoneControl in this example.

  1. Open up the blueprint and go to the Viewport tab.

  2. In the components sub-window, there is a button to “Add Component”. Click that and search/find “Poseable Mesh” (located in the Rendering components section).

72464-step+3.png

  1. In the Component subpanel, make sure that the Poseable Mesh component is selected. Then on the Details subpanel, there is a mesh section. From the drop-down, all skeletal meshes are listed. If you are using the Third Person project, the mesh will be called SK_Mannequin.

  1. Now go to the Event Graph tab. In the “My Blueprint” section, you should see that a PoseableMesh variable has been added. From here, you can drag the variable into your blueprint to “get” the variable and connect it to functions such as “Set Bone Rotation by Name” to programmatically drive the position and orientation of the bones in your mesh.

In the image below (Click the Step 5 attachment to see all the details), I created an example with an additional float variable “Elapsed Time” to get the last recorded total time, add that to the new delta time from the Event Tick event, and save the variable again. In addition I multiply this value by 100 so the motion is faster, then connect the result to the pitch of a Make Rot function (setting Yaw and Roll both to 90) and connect that output to the input of a Set Bone Rotation by Name function (I used the Bone Name “thigh_l”). Compile and save.

Note: You can find the list of bone names by opening the skeletal asset (in this example SK_Mannequin under Content/ThirdPersonBp/Character/Mesh) and changing to the Skeleton view. The entire skeleton will be listed under the Skeleton Tree subpanel.

The last step is to then drag the BP_BoneControl blueprint into your scene where you will now have a new actor with the skeletal mesh you selected and whatever custom animations. You can see in the lower section of the image above, the orange guy is raising his leg as the thigh rotation increases with time.

A final note, I have confirmed that this process works in 4.8 though 4.10.

You should probably mark your question as answered :wink:

See my initial post for how to create a poseable mesh.

Cannot execute step 5 as I cannot find Poseable Mesh in the list.

Did the rest as you wrote above… any idea why that isn’t working for me?

I am using 4.8.3… is it a problem with this Version by any chance?

I repeated this process with 4.8.3 and it does all work. I’ve added more detail and images to the above steps to try to help. If you look at the 5th image, you can see the component list in the upper left subpanel. The poseable mesh (if it was added correctly to your components) should be just below the DefaultSceneRoot component). If you’re still having difficulties, try creating a test project using the Third Person project framework and following through with my revised steps above.

If there is something that isn’t clear in the instructions, please let me know and I’ll try to revise them. Thanks!

Dr. Widgit, thanks a lot for clearing that up. In the end, I made a typo (english is not my mother tongue, “poseable” shouldn’t be to hard to type, but, well…), found the component after correcting my mistake, but would have gotten stuck on the Blueprint without the images you added.

Works like a charm now. Thanks again!

1 Like

Thank you sir!

1 Like

Confirmed still works in 4.19. This is great for my purpose of creating a vehicle with a turret (where my code needs to control rotation so full animated skeleton is harder to use). Thanks for the detailed instructions!

1 Like