Unreal engine custom models

Hi! I gone through the GitHub and some videos, but couldnt find an answer to my question. Do you have any full guide or tips on how to use custom models in Unreal like replacing the mesh and bone names in the Avatar example? Metahuman isnt always suitable for my needs.

Hello @Animator

At the moment, there is an example of BP_Avatar_Mannequin

and such a text tutorial (it may be a little outdated and you will need to create a copy of the Mannequin instead of the child BP and edit it):

In general terms:

  1. in the blueprint, we get the positions and rotations of the bones, fill in the array, and pass it to Animation Blueprint (JointsTransform)
  2. In the Animation Blueprint, for each desired bone, we set the rotation (and position, if necessary) from this array. (the bones of the model are selected in the Transform (modify) Bone nodes, and you need to select the bones that are logically as close as possible to the tracked joints (point 3 in the tutorial))
  • the “Start” variable is needed so that the Blueprint retains the default rotations of the bones (The model must be in the T-Pose while “Start” is set to “False”. If the model is in a different position, then you can set the rotations of the desired bones, for example, using Transform Bone in Animation Blueprint) of the model (from the Joints variable), after which the value of the variable changes to True and Nuitrack orientations are added to the standard rotations.


Force to T-Pose in ABP_Unreal_Default_Nuitrack

At the moment, everything about Metahuman is easier to set up because of the unified system, but in fact there are not many differences with any other human model (mainly the names of bones and their default orientation). It is better to focus on ABP_Unreal_Default_Nuitrack and BP_Metahuman_Nuitrack.

In general, for humanoid models, it is better to use the skeleton that is used in Metahuman (Epic Skeleton), it might be easier to make changes to the skeleton.

Thank you for your response. So far, I’ve only been able to change the model only through Metahuman. Unfortunately, even the default example with BP_Avatar_Mannequin doesn’t work, Avatar just freeze in start position.

1 Like

Try disconnecting these connections from the node and reconnecting them in the specified order. (If you hover the cursor over the Array Element at the “For Each Loop” node, the NuitrackJointType Enum type should be, not a byte)

I connected it just like in the example, but the Array Element type is still Byte and conversion to Enum by node.



.

There should be no conversions.

  1. You need to disconnect the “Array” input and “Array Element” from Each Loop (if something is working strangely, you can try pressing Compile at this step)
  2. connect the “Array” Input to make sure that this array is not a Byte (unreal will make an output of the desired type automatically)
  3. Connect “Array Element” and “Get Joint” directly
  4. Compile

Thank you! I had an issue with unnecessary conversion, after a few attempts to disconnect, compile, and reconnect, the type finally changed to ENUM without node conversion, and everything started working.

1 Like