Have you ever wanted to create a stylized character for your Unreal Engine or UEFN project? This section of the MetaHuman Stylized Character tutorial continues to improve on the MetaHuman rig that you created in part one and uses the MetaHuman for Maya toolset to improve the body rig to better work with your character’s clothing and make improvements to the Radial Basis Function (RBF) poses and skin weights.
In part three of this tutorial, you will:
Update the body skeleton and reposition corrective joints to match the target mesh.
Refine the deformation by tweaking the RBF poses with the MetaHuman for Maya Pose Editor, and adjust the skin weights.
Validate the deformation and prepare the meshes for export.
Export the files needed for Unreal Engine.
Prerequisites
The MetaHuman Stylized Character tutorial shows how to convert your stylized character into a MetaHuman using MetaHuman Creator, and how to make the necessary changes to the rig and geometry to match your original design. You can follow the tutorial using your own character asset with the following guidelines:
Your character has been imported into MetaHuman Creator and is currently assembled in the MetaHuman A-pose.
You have exported the DCC folder package from MetaHuman Creator.
You have Maya and the MetaHuman for Maya plugin installed.
This tutorial is designed to be completed in sequence. If you have not completed the previous step, see Facial Rig Editing.
Check out the end result of this tutorial by downloading the MetaHuman Vampire Character Asset available on the Fab Marketplace.
For more information on the software and plugin requirements for this tutorial see the MetaHuman Stylized Character Tutorial landing page.
Important Concepts and Features
Radial Basis Function (RBF): An RBF solver drives rig behavior by blending between saved poses. It compares the current driver joint rotation values, with each saved pose and calculates weights for the associated outputs, the corrective joints. This allows correctives to transition between the poses, based on the solver interpolation settings as the character moves.
Updating the Body Rig
In this section, you will update the skeleton where needed to match the final clothed character and improve the deformation quality around the joints.
This is necessary because stylized characters fall outside of the usual bounds of the human anatomy that the automated skin weights and RBF poses come from. The final deformation should adhere to the clothing rather than the body underneath. This is done by evaluating how the clothed character behaves across a range of poses and making improvements through skin weight painting and corrective pose adjustments.
To update the body rig, follow the steps below:
To load the full character into the Maya scene, open the Character Assembler. Open the MetaHuman menu and select Character Assembler.
Select the DCC package exported from MetaHuman Creator for your character.
Click Assemble.
Import the
S_vampire_clothing.fbxinto the scene to get the MH A pose clothing over the assembled character. Using Maya copy skin weights tools, copy the weights from the character to the clothing. This is the starting point for the clothes deformation.Your scene should now contain a complete character with clothing.
Depending on the edits you want to make to the body rig, you can also load only the
body.dnafile using the Pose Editor. By following this tutorial, you will assemble the full character rig for overall visibility because the clothing meshes go over the shoulder area, so having the complete character in the scene is preferred.The next step focuses on correcting joint positions since the corrective joints come placed on the surface of the body mesh from the DCC package.
Since you are adding clothing on top of the existing character mesh, you may have to reposition the corrective joints to match the surfaces of the clothing meshes more closely. For loose clothing, you might need to move the joint significantly. For tight-fitting clothing, using the existing positions might work better. The corrective joint will affect its surrounding, so the more precise the initial position, the easier it will be to fine-tune the deformation.
Because you want the rig to stay MetaHuman Creator compatible, do not do the following:
Add, remove, or rename any joints when updating the skeleton.
Make changes to the bone hierarchy in any way.
Make changes to any joint orientations.
Doing any of these will break MetaHuman Creator compatibility.
In order to make any skeleton change, you must first temporarily remove the RigLogic node to remove the RBF poses and prevent evaluation of the helper joints. Once you are done with the changes to the skeleton you can use Pose Editor to reimport these from the body.dna file of the exported DCC package.
Updating the Core Joints
Core joints can be repositioned for a more optimal placement inside the mesh. Because this changes the skeleton itself, the process involves temporarily freeing the joint from the rig systems, moving it, restoring the chain's orientation conventions, and rebinding the skin in a new neutral pose.
If you want to update the core joints while keeping MetaHuman Creator compatibility, you must preserve the original MetaHuman joint orientations. If you reposition any of the core joints (such as clavicle, calf, or thigh), you will also need to fix the joint orientations and repose the character back to the MetaHuman A-pose.
To update the core joints, follow the steps below:
Remove the RigLogic node so you can transform the joints freely.
Unparent any child joints from the joint being repositioned, then unparent that joint itself so that it sits in world space.
Temporarily remove the skin weights from the mesh by exporting the current skin weights and detaching the SkinCluster node. You will reimport the skin weights once the joint work is complete.
Select a joint and move it to the desired position inside the mesh.
Restore the aim down the joint chain. Aim the parent joint at the moved joint and aim the moved joint at the next joint in the chain. When doing so, replicate the existing convention of the MetaHuman skeleton. This means using the same primary axis pointing down the chain, and a consistent up-axis matching the joint's original secondary axis.
Reparent the joint chain and realign its child joints. If you change the orientation or position of a joint, the joint will now have non-zero rotations. So you must reparent and realign all the child joints to follow the corrected chain. For example:
Move upperarm_correctiveRoot_l to the same position as upperarm_l, and reposition the corrective joints relative to the character mesh/surface.
Position upperarm_twist_01_l and upperarm_twist_02_l at one-third and two-thirds, respectively, of the distance from the upper arm joint to the lower arm joint. Adjust their orientations to follow the corrected chain.
Restore the skin weights by reimporting them onto the mesh.
Repose the body and set the new bind pose. With the skinning attached, reset the joint rotations to zero. This moves the body into a new neutral pose. Since this is now neutral, you need to bake the skinning in this pose as the new bind pose.
Adjusting Radial Basis Function (RBF) Poses and Skin Weights
RBF functions help your character’s rig blend between saved poses and drive deformations. In this section, you will edit the RBF poses to improve deformations and help your character look more believable as it moves.
Restoring RBF Solvers and Skin Weights
Because you removed the RigLogic node in the previous step to allow adjustment of the corrective joint positions, you now need to import the RBF poses back into the scene. Since the Character Assembler tool loads both the body and face skeletons, the body skeleton uses the namespace MHBody:<joint_name>. The Pose Editor cannot target the body skeleton while this namespace is present, so you must remove it first.
At this stage of the project, no new RBF poses have been added. You have adjusted only the existing MetaHuman poses. Adding new poses and joints to push deformation further is covered later in Additional Optional Deformation Improvements.
To reimport the RBF poses, follow the steps below:
In Maya, remove the MHBody namespace from the body skeleton so the Pose Editor can target it.
Using the Pose Editor, reimport the RBF poses into the scene from body.dna in the DCC package exported from MetaHuman Creator. Use the following import options:
Unpack RigLogic
Unpack RBF
Unpack SwingTwist
Those skin weights are the initial starting position for the painting of the clothing skin weights. You can import them since no changes have been made in the hierarchy. Additionally, in this scene you have the head and body mesh with skin weights and you can copy the weights to your clothing meshes as a base for the start.
Adjusting RBF poses on the body and improving the quality of deformation is an iterative process of tweaking the joint position on the current pose and improving the skin weights.
Editing RBF Poses in the Pose Editor
Before starting, it is recommended to have some animation or a few character poses available for testing and previewing the overall deformation quality. An animation covering the character's range of motion is useful since it helps identify key problem areas where the deformation breaks. These areas can then serve as a starting point for fixes. For more information, see the Authoring RBF documentation.
Understanding the solver structure
For each pose, the goal is to find the optimal transformation (Translation, Rotation, Scale) for each corrective joint while also adjusting the skin weights to achieve the best possible deformation.
For example, open the Pose Editor and find the upperarm_l_UERBFSolver. When the solver is selected in the RBF Solvers list, you will see the following:
The Inputs tab shows the driver joint, upperarm_l, and the driven corrective joints:
upperarm_twistCor_02_l
upperarm_twistCor_01_l
upperarm_out_l
upperarm_in_l
upperarm_fwd_l
upperarm_bck_l
The Poses tab shows the list of poses.
You should start with the more extreme poses — the outliers — and work inward from there. As in animation, the main poses are fixed first, followed by the in-betweens. Note that there is no restriction on the order in which poses must be fixed.
To edit an RBF pose in the Pose Editor, follow the steps below:
Toggle editing on the solver by selecting it and pressing the Edit Selected button.
Select a pose to edit. The rig will move into that pose.
Select a corrective joint, either in the viewport or by double-clicking its name in the RBF Pose Joints list.
Move the corrective joint until the desired position is found. The result depends heavily on the skin weights, which may need to be adjusted. After adjusting the weights, the joint position can be refined further. This process is iterative and cycles between weight adjustments and joint transformations.
Once the deformation in the pose is satisfactory, click Update.
Repeat steps 2–5 for all poses.
When all poses are done, click Finish Editing on the solver.
Verify the interpolation of the poses. This is best done with animation or by rotating the driver joint in 3D space to confirm that the edited poses produce the correct results.
Validating Deformation and Preparing for Export
Once all poses and solvers have been worked through and the deformation quality is satisfactory, the export scenes can be prepared.
For deformation testing, a basic animation was created that can be loaded and played on the rig.
In addition to playing back the test animation, the rig is checked visually. Each part of the body is inspected through its full range of motion to confirm that the poses interpolate nicely and that the deformation is correct. This serves as a visual inspection of both the rig and the animation.
Once satisfied, export the clothing from the rig scene as an FBX containing the skin weights and the skeleton. This becomes the clothing Skeletal Mesh. For the body, prepare a separate export scene. Clean everything up, leaving only the body components. Prepare the body scene for export.
Preparing the Body Export Scene
The image below shows how the outliner should look for this export.
To prepare the body for export, follow the steps below:
Remove all face components (meshes and skeletons) from the scene, keeping only the body skeleton and body meshes in the hierarchy.
Run Validate Scene for MetaHuman Creator from the Pose Editor to check the skeleton, joint names, hierarchy, and joint orientations.
Once the scene is cleaned up and the validation passes, export the body as
body_edit.dna.
Propagate rig updates into Unreal Engine
Throughout this process, you have kept the body and face edits compatible with MetaHuman Creator by not changing the skeleton hierarchy. You have also not added, removed, or renamed joints, or added any new RBF poses.
Since the edits are all compatible with MetaHuman Creator, you can now import the DNA files that you created into MetaHuman Creator and assemble a complete MetaHuman.
Open your MetaHuman Character asset in MetaHuman Creator and navigate to the Import tab. In the From DNA section, click the Replace button and load face_edit.dna and body_edit.dna files. Enable the Import Whole Rig option to pull all of the following data from the DNA files:
Mesh
Joints
skin weights
Expressions
RBF poses
Once the import is complete and the character is loaded, you can make additional tweaks and edits. For the vampire character, we went directly to the Assembly tool and assembled the Vampire MetaHuman character.
Additional Optional Deformation Improvements
Once you have assembled the MetaHuman, you will notice several DNA assets in the Content Browser. Each DNA asset is linked to a skeletal mesh and can be found in the Asset Details tab of the skeletal mesh, under Skeletal Mesh > Advanced > Asset User Data > Index[#] > Asset > DNA.
If you want to further improve the deformation quality after you have assembled the MetaHuman, use the following workflow:
Make the changes to the skeleton or RBF solvers using the Pose Editor in Maya.
Export the updated poses from the Pose Editor as a new DNA file.
Back in Unreal Engine, right click on the character skeletal mesh asset you wish to update and select MetaHuman DNA > Import DNA Asset. This overrides the existing linked DNA asset and will automatically import the DNA asset and assign it to the Skeletal mesh.
Alternatively, you can import the DNA file to create a new DNA asset. During import, you will get a pop-up with import settings. Select MetaHuman Assembly Compatible and complete the import. You can then replace the linked DNA asset in the skeletal mesh editor for the specific asset. This approach adds a manual step, but gives a bit more flexibility as you can import multiple DNA files to any folder in the Content Browser, and is handy during testing when comparing DNA files.
This also applies if you want to make changes that would break compatibility with MetaHuman Creator, such as adding new joints or RBF poses. You would need to propagate those changes back into Unreal Engine.
For the vampire specifically, there are additional poses and optimized solvers. This is entirely per character; it depends on your requirements and the type of character you are working with. For instance, the example here has added a couple of poses on the wrist. The MetaHuman wrist ships with anatomical poses, but the vampire is more stylized and has extra detailing around the wrists, cufflinks and a layered double sleeve, so there are a couple of poses to better support the hand and wrist deformation.