Using Video Mocap in Unity and Unreal — BVH to FBX to Humanoid Retargeting
Game engines do not import BVH. Unity and Unreal both expect skeletal animation to arrive as FBX, so the pipeline for video-captured motion is: BVH into Blender, FBX out of Blender, retarget inside the engine. Each hop has one or two settings that cause most of the failures people hit, and this guide covers them for both engines.
The Blender Bridge
Import the BVH (File → Import → Motion Capture), check the animation plays correctly, then export FBX with these settings: limit the export to Armature (no need for meshes), set 'Apply Scalings' to FBX Units Scale so the engine sees sensible dimensions, and under Armature disable 'Add Leaf Bones' — the extra end bones Blender appends otherwise confuse retargeting maps. Bake Animation should be on (it is by default). If your clip needs cleanup, do it in Blender before export; it is far easier there than inside an engine.
Unity: Humanoid Avatars
Drop the FBX into your project. In the import settings, Rig tab, switch Animation Type from Generic to Humanoid and hit Apply. Unity builds an Avatar: a mapping from the file's bones to its internal humanoid definition. Open 'Configure' to verify the mapping — with a 16-joint video-capture skeleton, the required bones (hips, spine, head, upper/lower limbs) all map, and optional slots like chest or toes stay empty, which is fine. Once the clip is Humanoid, it retargets automatically onto any Humanoid character: drop it into an Animator Controller and it plays on your model, proportions adjusted by the muscle system.
Two Unity-specific notes. Set the clip's Root Transform Position (Y) to 'Based Upon: Original' so the grounded hips from the capture are respected. And since video mocap is captured in place, either tick 'Root Motion from this clip' off and drive movement from your controller code, or add root motion curves yourself if your setup depends on them.
Unreal Engine 5: IK Retargeter
Import the FBX and let Unreal create a new Skeleton asset from it (do not force it onto the UE5 mannequin skeleton at import; the hierarchies differ). Then create an IK Rig for the imported skeleton — define retarget chains for spine, head, each arm and leg — and a second IK Rig for your target character (the UE5 mannequin ships with one). An IK Retargeter asset connects the two: source rig on one side, target on the other, and it previews the motion live. Export the retargeted animation from the retargeter and it becomes a normal Animation Sequence on your character's skeleton.
The one setting that saves confusion: in the retargeter, match the retarget pose. If the source skeleton rests in T-pose and the mannequin in A-pose, use the retarget pose editor to align them once; otherwise every clip imports with rotated shoulders.
Root Motion Strategy
| Approach | How | Best for |
|---|---|---|
| In-place + code-driven movement | Character controller moves the capsule; clip plays in place | Player characters, networked games |
| Authored root motion | Add root curves in Blender before export | Cutscenes, scripted NPC moves |
| Engine root motion extraction | UE5 'Force Root Lock' / Unity root nodes | Quick tests, prototypes |
Video-derived captures are exported in place (world travel from a single camera is not reliable enough to ship), which happens to be exactly what the first and most common approach wants. For most gameplay uses you are already done.
Troubleshooting
Character imports lying down: axis mismatch; re-export from Blender with the default -Z Forward, Y Up and let the engine convert. Animation plays at wrong speed: scene FPS in Blender did not match the BVH frame time before export. Arms offset on the target character: rest poses were not matched before retargeting. Tiny or huge skeleton: FBX unit scaling; fix at Blender export, not by scaling in-engine. Every one of these is a five-minute fix at the right stage and an hour of confusion at the wrong one.
Start from any video of a person moving and download a BVH ready for this pipeline.
Open Video to Mocap Tool