Appearance
How to author optional first-person body meshes and held pose animations
Use this optional guide when your project uses Motion's native first-person body and held pose system. It covers the artist brief, the checks to make before buying animation packs, and the Unreal import path.
By the end, you will have optional native first-person presentation assets:
- a first-person upper-body mesh assigned to a component named
FirstPersonUpperBody - a first-person lower-body mesh assigned to a component named
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 native first-person item. If you already have compatible 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 full-body skeleton has
MotionCamerafor Stable presentation. If the profile selects Socket mode with another pivot, confirm that configured socket too. - 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.
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, with enough chest and shoulder coverage for the supported downward view range
- 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 basic held pose
- optional held pose variants for crouch, sprint, jump, ADS, or gameplay tags from your project
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
- preserve the configured camera pivot socket only if the project uses Socket mode
Camera-facing mesh boundaries:
- do not leave open neck, shoulder, arm, or waist cross-sections visible from the supported first-person pitch and FOV range
- overlap upper- and lower-body coverage enough to avoid gaps during standing, crouch, slide, vault, and held poses
- hide or cap interior cut surfaces; Stable camera clearance uses the capsule as a body proxy and cannot infer custom mesh holes
Animation:
- use the same skeleton as the character body
- keep locomotion/root motion out of basic 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 meshEvaluate 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.
Export the source character mesh
INFO
If your Motion purchase includes the optional Blender source files for the partial meshes, open the Motion listing on Fab and use its Additional files section.
If you don't use the default mannequin, or don't have source files for your character available:
- 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 meshes for the local player's view. Keep the original Unreal asset unchanged.
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.
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.
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.
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.
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_rand, when Socket mode is used, the configured camera pivot socket.
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.
On the locally controlled character, when native first-person presentation is enabled and both body components are present, MotionCameraComponent marks them as native FirstPerson primitives, marks the full-body mesh as WorldSpaceRepresentation, and makes the first-person body meshes follow the full-body pose.
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-specific held poses | 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.
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 Stable clearance keeps the view outside the body proxy while both body meshes retain their authored transforms.
- Check the steepest supported pitch while standing, crouched, and item-held. No open cut surface or missing torso coverage should become visible; those are mesh-content defects, not additional camera states.
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.
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 - basic 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.
Add an item end to endCreate the item meshes, config, held pose entries, AnimGraph overlay, tuning, and PIE validation.First-person item configsUnderstand the native item config fields and runtime flow.Motion camera componentLook up Stable and Socket camera behavior and native first-person presentation fields.