music-to-3d choreography → unreal engine
AI Dance Animation for Unreal
mvnt Studio turns a track into 3D choreography in the browserand exports it as BVH or FBX.Here is what Unreal does with that file, and where it bites.
A dance clip is not a Skeleton asset
Unreal is stricter than most engines about animation, and the strictness is concentrated in one idea: an Animation Sequence does not exist on its own. It belongs to a Skeleton asset. Every bone name and every parent-child relationship in the incoming file is checked against that Skeleton, and if they disagree the import either fails outright or produces a sequence that binds to nothing. Almost every "my AI dance animation for Unreal will not import" thread resolves to this.
mvnt Studio generates the motion itself. It is a music-to-3D-choreography tool — you supply a track, including sources such as YouTube, Suno, or SoundCloud, and it produces a dance scene in the browser with no install. Once you sign in you can download the result as BVH or FBX, with GLB coming soon. There is no Unreal plugin and no automatic retarget service; what you get is a file, and the rest of this page is about giving Unreal what it needs from that file.
GLB, BVH, or FBX — which one to download for Unreal
Same performance, two containers today and a third on the way. For engine work only one of them is the short path.
FBX Use this one
Unreal’s skeletal animation pipeline is built around FBX. The import dialog gives you the settings that matter — the Skeleton to bind against, Import Uniform Scale, whether to import the mesh, the animation, or both — and it produces Skeletal Mesh, Skeleton, Physics Asset, and Animation Sequence assets in a single pass. Nothing else on this list gives you that dialog.
BVH Rotation data only
BVH carries a joint hierarchy and rotation channels and nothing else — no mesh, no skinning weights, no materials. It is a DCC-level format, useful when your target is a rig you already own and you plan to retarget in Blender or MotionBuilder before exporting FBX for Unreal.
GLB Coming soon
GLB is not available to download yet. It is a single self-contained file carrying mesh, skin, and animation, so once it ships it will be a quick way to look at the motion outside the engine — any glTF viewer or Blender opens a .glb immediately.
What Unreal will argue with
In rough order of how often each one stops people, and how quickly it can be fixed once you know where to look.
1. Centimetres, not metres
Unreal’s unit is one centimetre. Most authoring tools work in metres, which is why a metre-scale FBX imports one hundred times too small and why the Import Uniform Scale field exists. mvnt exports FBX authored in centimetres, so the two already agree: leave Import Uniform Scale at its default of 1.0. Setting it to 100 — advice you will find on many pages written for metre-scale sources — produces a dancer a hundred times too large. Sanity-check against the default mannequin, which stands at roughly human height in Unreal units — the mvnt rig should measure about 166 uu from floor to head — before you build anything on the asset. Scale is baked at import, so correcting it later means reimporting.
2. Z-up, and which way is forward
Unreal is Z-up, and characters conventionally face along +X. FBX is typically Y-up, and the importer performs the axis conversion for you, so you should not be hand-rotating the mesh after import. What the importer cannot guess is authoring intent about facing direction; the import options include Force Front XAxis for content authored to a different convention. If your dancer imports upright but performs sideways relative to the rest of your characters, that setting — or a rotation on the actor — is the fix, not a rotation baked into the asset.
3. Binding to the right Skeleton asset
When you import an animation-only FBX, Unreal asks which Skeleton it belongs to. The incoming bone hierarchy must be compatible with that Skeleton’s bone names and parenting. If you point a fresh export at an unrelated Skeleton — the UE mannequin’s, for instance — you will get a mismatch rather than an automatic conversion, because Unreal does not retarget at import time. The reliable first-time path is to import the FBX with the skeletal mesh included and the Skeleton field left empty, letting Unreal create the Skeleton, Skeletal Mesh, and Animation Sequence together from the same source. Every later dance exported from the same rig can then be imported as animation-only against that Skeleton, and it will bind on the first try.
4. Getting it onto a different character — the IK Retargeter
Moving the clip onto a skeleton it was not authored for is a deliberate step in Unreal 5, not a checkbox. You build an IK Rig asset for the source skeleton: pick the retarget root, usually the pelvis, and define retarget chains for spine, arms, and legs. You do the same for the target skeleton, or use an IK Rig it already ships with. Then an IK Retargeter asset maps chain to chain and lets you export a new Animation Sequence built against the target Skeleton. Bone-name mismatch is not fatal here, because you are matching chains by hand rather than relying on names — which is exactly why this is the tool for moving generated choreography onto a character that was rigged somewhere else.
5. Root motion, and what the capsule does
An Animation Sequence has an Enable Root Motion flag. Turning it on tells Unreal to take the root bone’s movement out of the animation and apply it to the actor, which is what you want when a dance travels across the floor and the collision capsule should travel with it. It only works if the rig has a genuine root bone carrying the travel, separate from the pelvis — and the mvnt rig does not have one. Its root joint is the pelvis itself (Hips), which carries the translation channels, so Enable Root Motion has no separate root track to extract. Treat the dance as in-place animation and drive the capsule yourself, or retarget onto a rig that has a dedicated root bone (Unreal’s own mannequin does) and let the IK Retargeter transfer the motion.
6. Frame rate and materials
Two smaller things that surprise people. The Animation Sequence carries its own sample rate; if that disagrees with your project or Sequencer frame rate, Unreal resamples, and fast footwork is where you will see it. And the materials that arrive with an FBX are placeholders — expect to author real materials in Unreal rather than treating the imported ones as final. Neither is a blocker, but both are easier to handle at import than after a scene is built.
Import checklist
The sequence that avoids the most reimports.
- 1 Export FBX from Studio. Generate the choreography from your track in mvnt Studio, sign in, and download the FBX.
- 2 First import: mesh and animation together. Drag the FBX into the Content Browser. Leave Skeleton empty, keep Import Mesh and Import Animations enabled, and leave Import Uniform Scale at 1.0 — the export is already centimetre-scale.
- 3 Verify before you build on it. Open the Animation Sequence and scrub it in the Animation Editor. Confirm height against the default mannequin and confirm facing direction now, while reimporting is still cheap.
- 4 Play it on a character. For a quick check, select the Skeletal Mesh Component, set Animation Mode to Use Animation Asset, and choose the sequence. For gameplay, drive it from an Animation Blueprint — a state machine, or a slot node played as a montage.
- 5 Or put it in Sequencer. For cinematics, add the skeletal mesh actor to a Level Sequence and add the Animation Sequence to an animation track. Check that the sequence frame rate and the Level Sequence frame rate agree.
- 6 Retarget if needed. To move the dance onto another skeleton, build IK Rigs for source and target, create an IK Retargeter between them, and export a new Animation Sequence against the target Skeleton.
Symptom to cause
A quick lookup table for the usual failures.
- The character imports at a tiny fraction of the expected size
- A metre-scale source imported against Unreal’s centimetre unit. The mvnt export is centimetre-scale, so check that Import Uniform Scale was left at 1.0 rather than raised to 100.
- Import fails or the sequence binds to nothing
- The chosen Skeleton does not match the incoming bone hierarchy. Import the mesh and animation together to create a matching Skeleton first.
- Enable Root Motion does nothing
- Expected. The mvnt rig’s root joint is the pelvis (Hips) and there is no dedicated root bone, so there is no root track for Unreal to extract. Use the clip as in-place animation, or retarget onto a rig that has a real root bone.
- The dance plays but the character faces the wrong way
- Authoring convention mismatch. Use Force Front XAxis at import, or rotate the actor — do not rotate the mesh inside the asset.
- Footwork looks softer than it did in the browser
- Frame-rate resampling. Compare the sequence sample rate with your project and Sequencer frame rate.
Where generated choreography fits in an Unreal project
Generated dance is a drafting and volume tool. It fills the crowd, the background NPC, and the first pass, and it leaves the hero performance to an animator.
AI dance animation for Unreal — common questions
- Which export format should I use for Unreal?
- FBX. Unreal’s skeletal animation import path is built around it, and it is the only download that gives you the import dialog where Skeleton binding, uniform scale, and animation options live.
- Why does my dance animation import at the wrong scale in Unreal?
- Unreal measures in centimetres — one unit is one centimetre — and the mvnt FBX is authored in centimetres too, so Import Uniform Scale stays at its default 1.0. A character that arrives a hundred times too large usually means that field was set to 100 on advice written for metre-scale sources. Scale is baked at import time, so changing it means importing again.
- Can I play the animation on the Unreal mannequin?
- Not directly, because the sequence binds to the Skeleton it was imported against. Use the IK Retargeter: build an IK Rig for the source skeleton with retarget chains for spine, arms, and legs, pair it with the mannequin’s IK Rig in an IK Retargeter asset, and export a retargeted Animation Sequence against the mannequin Skeleton.
- Why did my animation-only import fail with a skeleton error?
- The Skeleton you selected has a different bone hierarchy or different bone names from the file. Unreal validates the incoming hierarchy against the Skeleton asset and does not convert between them at import. Import the skeletal mesh and the animation together from the same file first — that creates a Skeleton the animation is guaranteed to match.
- Will the character move around the level?
- Not directly. Enable Root Motion needs a dedicated root bone carrying the travel, and the mvnt rig’s root joint is the pelvis (Hips) itself. The clip is in-place as far as Unreal is concerned: move the capsule from your own code, or retarget onto a rig that has a real root bone — Unreal’s mannequin does — and let the IK Retargeter carry the motion across.
- Is there an Unreal plugin for mvnt Studio?
- No. Studio runs in the browser and produces a downloadable file. You import it through Unreal’s standard FBX pipeline, which means your project has no dependency on our tooling once the asset is in.