Appearance
How to author first-person body meshes and held pose animations
Use this guide for the asset brief you give to a 3D artist, the checks to make before buying animation packs, and the Unreal import path for Motion's native first-person body and held pose system.
By the end, you will have:
- a first-person upper-body mesh named for
FirstPersonUpperBody - a first-person lower-body mesh named for
FirstPersonLowerBody - a small held pose animation set that can drive a held item through
MotionNativeFirstPersonItemConfig - a checklist you can hand to an artist or use when evaluating Fab animation packs
Use this guide before adding a production item. If you already have body meshes and held pose animations, continue with How to add a first-person item end to end.
Start with the Motion skeleton contract
- Open the character Blueprint that uses Motion.
- Select the main character mesh returned by
GetMesh(). - Note the skeletal mesh, skeleton, and Animation Blueprint.
- Open the skeleton asset.
- Confirm that the skeleton has a socket or bone named
weapon_r. - Confirm that the skeleton has the bones used by Motion's default upper-body solve:
| Purpose | Default names |
|---|---|
| HeldPose branch | pelvis |
| Pitch distribution | spine_01, spine_02, spine_03, spine_04, spine_05, neck_01, neck_02, head |
| Hand IK | VB Hand_R to hand_r, VB Hand_L to hand_l |
If your project skeleton uses different names, keep going, but plan to tune UpperBodySolveSettings on each item config later.
[Screenshot placeholder: Skeleton Tree showing weapon_r, spine bones, hand bones, and any virtual hand IK bones.]
Write the artist brief
Give the artist the exact character skeleton and the item role. The important point is that Motion does not need a separate viewmodel skeleton. It expects first-person body meshes and held pose animations that remain compatible with the full-body skeleton.
Use this brief:
text
We need Motion-compatible first-person assets for Unreal Engine 5.6.
Use the supplied character skeleton without renaming bones, deleting bones, changing hierarchy, changing rest pose, or creating a viewmodel-only skeleton.
Deliver:
- first-person upper-body skeletal mesh, no head, no item geometry
- first-person lower-body skeletal mesh, no arms or head
- world/full-body item mesh and first-person item mesh as separate item assets
- loopable held pose animation for the baseline held pose
- optional held pose variants for crouch, sprint, jump, ADS, or project-specific gameplay tags
Attachment:
- held items attach to `weapon_r`
- right-hand grip should be stable around `weapon_r`
- left hand may use the supplied hand IK or virtual bones
Animation:
- use the same skeleton as the character body
- keep locomotion/root motion out of baseline held pose clips
- make held pose clips loop cleanly
- keep the item hold readable at first-person camera distance
- do not bake weapon meshes into the character body mesh[Screenshot placeholder: A short artist brief beside the character skeleton and a simple item blockout.]
Evaluate an animation pack before buying it
When browsing Fab or another marketplace, check the pack against this list before you buy it:
- It must be retargetable to your character skeleton.
- It should include idle or held poses for the item type, not only fire/reload/action clips.
- It should include movement-state variants you actually need, such as crouch, sprint, jump, ADS, or injured.
- The hands should hold a consistent item origin or grip point.
- The right hand should not wander far from the intended socket.
- The left hand should either stay believable without IK or give you enough reference to configure hand IK.
- The animation should not depend on a separate first-person-only arm rig unless you are ready to retarget and validate it.
- The license should allow modification, retargeting, and use in your project.
Buy the pack only if you can turn its clips into clean UAnimSequence assets on the Motion character skeleton. Motion's automatic held pose overlay validates configured bones against the held pose animation skeleton, so a mismatched skeleton turns into setup work later.
[Screenshot placeholder: Fab product page with compatibility, included animations, and skeleton notes highlighted.]
Export the source character mesh
- In Unreal, find the full-body skeletal mesh used by
GetMesh(). - Right-click it and choose
Asset Actions > Export. - Save an FBX outside the project content folder, such as
D:/MotionMeshWork/SKM_Character_SourceForFP.fbx. - Export the skeletal mesh only.
This FBX is the body source you will split into owner-view meshes. Keep the original Unreal asset unchanged.
[Screenshot placeholder: Unreal export dialog for the full-body skeletal mesh.]
Create the first-person upper body
- Open Blender.
- Import the exported FBX.
- Leave automatic bone reorientation disabled if your Blender version offers it.
- Duplicate the body mesh object.
- Rename the duplicate
SKM_Character_FP_UpperBody. - Delete the head, face, hair, eyes, helmet, legs, and feet from the duplicate.
- Keep shoulders, clavicles, arms, hands, and enough torso geometry for clean deformation.
- Remove loose vertices and hidden interior pieces.
Shape the mesh for first-person framing without changing the skeleton:
- Add a temporary camera near eye height.
- Add a simple blockout item near the right hand.
- Adjust mesh vertices for a good first-person silhouette.
- Keep the hands aligned with the original hand bones and
weapon_r. - Do not rotate bones to force the final held pose.
Use mesh edits for the visible body silhouette. Use held pose animations, item transforms, and item solve settings for held-item posture.
[Screenshot placeholder: Blender viewport with the upper-body mesh, temporary camera, and item blockout.]
Create the first-person lower body
- Duplicate the original body mesh again.
- Rename the duplicate
SKM_Character_FP_LowerBody. - Delete the head, arms, hands, and upper torso.
- Keep pelvis, hips, legs, knees, ankles, feet, and enough waist geometry to hide the body split.
- Remove loose vertices and geometry the owner camera will never see.
The lower-body mesh is for looking down and seeing the body. It should not include item geometry, gameplay collision, or extra hitboxes.
[Screenshot placeholder: Blender viewport showing the lower-body mesh from a look-down camera angle.]
Check skinning before export
- Select
SKM_Character_FP_UpperBody. - Confirm it still has an Armature modifier that targets the imported armature.
- Confirm its vertex groups still use the original bone names.
- Repeat for
SKM_Character_FP_LowerBody. - Enter Pose Mode on the armature.
- Rotate spine, arm, hand, hip, knee, and ankle bones to check deformation.
- Reset the pose.
If you created cap faces or changed large mesh areas, weight paint them to nearby existing bones. Do not add a first-person-only skeleton.
[Screenshot placeholder: Blender weight/pose check showing clean arm and torso deformation.]
Export the two body meshes
Export each body mesh as a separate FBX.
For the upper body:
- Select the armature and
SKM_Character_FP_UpperBody. - Choose
File > Export > FBX. - Enable
Selected Objects. - Export only
ArmatureandMeshobject types. - Disable
Add Leaf Bones. - Disable animation export.
- Save
SKM_Character_FP_UpperBody.fbx.
For the lower body:
- Select the same armature and
SKM_Character_FP_LowerBody. - Use the same export settings.
- Save
SKM_Character_FP_LowerBody.fbx.
[Screenshot placeholder: Blender FBX export settings with selected objects, armature/mesh only, and no leaf bones.]
Import the body meshes into Unreal
- Create a folder for first-person body assets.
- Import
SKM_Character_FP_UpperBody.fbx. - Enable skeletal mesh import.
- Set
Skeletonto the same skeleton used byGetMesh(). - Leave animation import disabled.
- Import the asset.
- Repeat for
SKM_Character_FP_LowerBody.fbx.
Open each imported mesh and verify:
- The
Skeletonfield points to the full-body character skeleton. - A full-body preview animation animates the visible mesh parts.
- The upper-body mesh has no head.
- The lower-body mesh is readable when viewed from the camera angle.
- The skeleton still has
weapon_r.
[Screenshot placeholder: Unreal skeletal mesh asset details showing the shared skeleton.]
Assign the meshes to the Motion character
- Open the Motion character Blueprint.
- Keep the standard character mesh as the full-body
GetMesh()representation. - Add or select a skeletal mesh component named exactly
FirstPersonUpperBody. - Assign your imported upper-body mesh.
- Add or select a skeletal mesh component named exactly
FirstPersonLowerBody. - Assign your imported lower-body mesh.
- Reset both component transforms so they line up with the full-body mesh.
- Disable collision on both first-person body components.
- Do not put item meshes on either body component.
At runtime, MotionCameraComponent marks the first-person body components as native FirstPerson primitives, marks the full-body mesh as WorldSpaceRepresentation, and makes the first-person body meshes follow the full-body pose.
[Screenshot placeholder: Character Blueprint Components tree showing GetMesh(), FirstPersonUpperBody, and FirstPersonLowerBody.]
Prepare the first held pose animations
Create or retarget a small held pose set on the same character skeleton. Start with one item, such as a pistol or scanner, and make these clips:
| Clip | Used for |
|---|---|
| Baseline held pose | Fallback held pose when no specific gameplay tag wins |
| Crouch held pose | Optional entry for Motion.State.Crouching |
| Sprint held pose | Optional entry for Motion.State.Sprinting |
| Jump held pose | Optional entry for Motion.State.Jumping |
| Project carries | Optional entries for ADS, injured, swimming, or other project tags |
Each held pose animation can be a short loop or pose-like sequence. Keep the pose stable enough that Motion can layer it over the host locomotion graph through the Motion First Person Item Upper Body Overlay node.
Before importing or accepting the clips:
- Confirm they are authored on, or retargeted to, the same skeleton as the first-person body meshes.
- Confirm the right hand holds the item consistently around
weapon_r. - Confirm the upper body is posed, but locomotion remains the host Animation Blueprint's job.
- Confirm the clips loop without hand popping.
- Confirm the configured solve bones exist on the animation skeleton.
[Screenshot placeholder: Animation Sequence preview showing the baseline held pose clip with the item blockout aligned to weapon_r.]
Validate in PIE
- Open a map that uses your Motion character.
- Press Play as the local player.
- Watch the Output Log for native first-person warnings.
- Confirm no warning says
FirstPersonUpperBodyorFirstPersonLowerBodyis missing. - Move, sprint, crouch, and jump.
- Look down and confirm the lower body is visible without the head or torso blocking the camera.
- Equip a test native first-person item.
- Confirm the first-person item attaches to
FirstPersonUpperBody.weapon_r. - Confirm the world item attaches to
GetMesh().weapon_r. - Sweep the camera up and down and confirm the upper body and attached item stay framed.
If the item appears but floats in the wrong place, tune the item config's FirstPersonRelativeTransform. If it cannot attach to the hand at all, check the shared skeleton and weapon_r.
[Screenshot placeholder: PIE owner view with upper body, lower body, and a test item visible.]
What you have ready
You now have first-person body assets and a starter held pose animation set that match Motion's current native item presentation path:
- body meshes share the full-body skeleton
- item attachment uses
weapon_r - baseline held pose comes from item config
AutomaticHeldPoseSettings - movement-state held pose variants are selected by gameplay tags
- custom graphs and linked layers remain optional advanced paths
Next, turn these assets into a finished item presentation.