music-to-3d choreography → unity
AI Dance Animation for Unity
mvnt Studio generates 3D choreography from music in the browser,then hands you a BVH or FBX download.This page covers what actually happens when that file meets Unity’s importer.
From a song to a playable clip in Unity
Most searches for AI dance animation for Unity end at a marketing page and start over at the import dialog. The generation half is the easy half. The part that eats an afternoon is the Model, Rig, and Animation tabs — the scale factor that makes your dancer four storeys tall, the Avatar that refuses to build, the clip that plays perfectly in the preview window and then does nothing in the scene.
mvnt Studio is a music-to-3D-choreography tool: you give it a track — including sources like YouTube, Suno, or SoundCloud — and it produces a 3D dance scene you can review in the browser with nothing installed. Downloads are available once you sign in, and they come out as BVH or FBX, with GLB coming soon. There is no Unity package, no one-click importer, and no automatic retargeting service. What there is, is a normal 3D file that Unity already knows how to read, provided you pick the right one and set four or five fields correctly.
Everything below is about those fields.
GLB, BVH, or FBX — which one Unity wants
BVH and FBX are available today, and GLB is coming soon. All three describe the same performance; they differ in what they carry and in whether Unity can read them without help.
FBX Use this one
Unity’s model importer reads .fbx natively. Drop the file into your Assets folder and Unity produces a model prefab plus one or more AnimationClips, with the Model, Rig, Animation, and Materials tabs available in the Inspector. Every setting discussed on this page lives on those tabs, which is the practical reason FBX is the default answer for Unity.
BVH Retargeting source
BVH is a skeleton definition plus joint rotation channels. No mesh, no skinning, no materials. Unity cannot read it. Its value is upstream: Blender ships with a BVH importer, so BVH is the format to reach for when you want to drive a rig you already own rather than the character that came out of Studio. Retarget in Blender or MotionBuilder, export FBX, then import that.
GLB Coming soon
GLB is not available to download yet. Unity has no built-in glTF importer either: a .glb sits in a Unity project as an unrecognised file unless you add a third-party package such as glTFast or UnityGLTF, or route it through Blender first. Once GLB downloads land, they will open instantly in any glTF viewer or in Blender, which will make them a quick way to sanity-check the motion outside the engine.
The four things that go wrong on import
These are not exotic edge cases. They are the default failure modes of moving any skeletal animation into Unity, and they show up in the same order every time.
1. Unit scale — Unity thinks in metres
One Unity unit is one metre. FBX files carry their own unit metadata, and the mvnt export declares centimetres, so leave Convert Units on — its default — and Unity applies the centimetre-to-metre conversion for you with Scale Factor left at 1. Verify rather than assume: drop a default 1×1×1 cube next to the imported character. A human should be somewhere between 1.6 and 1.9 units tall. The mvnt rig lands at about 1.66 units when it imports correctly. If it arrives at 166 units or 0.0166, Convert Units is off or Scale Factor was changed, and nothing downstream will behave until you fix it.
2. Up-axis and handedness
Unity is Y-up and left-handed. FBX is usually Y-up as well, and Unity’s importer performs the handedness conversion for you, so a direct FBX import rarely needs a manual rotation. The orientation bugs appear when you round-trip through Blender, which is Z-up and right-handed. In Blender’s FBX exporter set Forward to -Z Forward and Up to Y Up; skip that and your dancer arrives lying on her back, or upright but facing the wrong way down the Z axis. Check facing direction in the scene view, not in the import preview — the preview window uses its own camera and will happily hide a 180° error.
3. Humanoid vs Generic — the decision that shapes everything after it
The Rig tab’s Animation Type field is the single most consequential setting on the import. Generic binds the clip to the exact transform hierarchy in the file: Unity’s Animator addresses curves by transform path, so the clip plays back faithfully on that hierarchy and on nothing else. Rename or reparent a bone and the curve silently stops resolving. Humanoid asks Unity to build an Avatar — a mapping from your skeleton onto Unity’s internal humanoid definition — and once that mapping exists the clip is stored in a normalised muscle space and can play on any other Humanoid avatar regardless of proportions. For a dance you intend to reuse across characters, Humanoid is worth the extra step; for a one-off scene where the character and the motion ship together, Generic is fewer moving parts.
4. Getting the Avatar to build
Humanoid requires a recognisable biped. Unity needs hips, spine, head, and — for both sides — upper arm, lower arm, hand, upper leg, lower leg, and foot; other joints such as chest, neck, and shoulders are optional. The mvnt skeleton uses the widely recognised Mixamo joint names without the mixamorig prefix — Hips, Spine, Spine1, Neck, Head, LeftShoulder, LeftArm, LeftForeArm, LeftHand, LeftUpLeg, LeftLeg, LeftFoot, LeftToeBase and their Right counterparts, plus three joints per finger — so Unity’s automatic mapping usually lands on the first try. Two details are worth knowing before you open Configure: map Chest to Spine1, and leave Upper Chest empty, because the rig has Spine and Spine1 but no Spine2. When a slot does not resolve, bones shown in red on the Rig tab are required and unassigned, and you drag the correct transform into each one. The other half of Avatar configuration is the rest pose. Unity expects something close to a T-pose at bind time, and Configure offers Enforce T-Pose for exactly this reason. A rest pose far from T — arms down at the sides, for example — produces an Avatar with baked-in rotation offsets, and the symptom is retargeted animation that looks subtly wrong everywhere rather than obviously broken in one place.
5. Root motion and looping
Per-clip settings live on the Animation tab. Root Transform Rotation, Root Transform Position (Y), and Root Transform Position (XZ) each have a Bake Into Pose checkbox. Baking a channel into the pose means the motion stays in the animation and never reaches the GameObject transform — the dancer performs on the spot. Leaving it unbaked lets the channel drive the character, which only takes effect if Apply Root Motion is ticked on the Animator component. If your dance is meant to stay in one place, bake Position (XZ) and Rotation. Loop Time makes the clip repeat, and Loop Pose blends the last frame back toward the first to kill the visible pop at the seam; the match quality readout next to those toggles tells you how well the ends line up before you commit.
Import checklist
The short version, in the order Unity wants it.
- 1 Export FBX from Studio. Generate the dance from your track in mvnt Studio, sign in, and download the FBX.
- 2 Import and fix scale. Drop the .fbx into Assets. Leave Convert Units on and Scale Factor at 1; the export declares centimetres and Unity converts it. Check against a reference cube — the character should be about 1.66 units tall against a default 1×1×1 cube — then Apply.
- 3 Set the rig type. On the Rig tab choose Humanoid or Generic. If Humanoid, Apply, then open Configure and clear any red bone slots before leaving the window.
- 4 Configure the clip. On the Animation tab, name the clip, set Loop Time if it should repeat, and decide the Bake Into Pose state for rotation and position channels.
- 5 Wire up an Animator. Create an Animator Controller and drag the clip in as the default state. Put the character in the scene, assign the controller and the Avatar to its Animator component, and tick Apply Root Motion only if the clip should move the object.
- 6 Play and verify. Enter Play mode. A character stuck in T-pose means the Animator has no controller assigned or the Avatar failed to build. For cinematics, skip the controller and drop the clip onto a Timeline Animation Track instead.
Symptom to cause
If you are already stuck, start here.
- The character is enormous or microscopic
- Scale Factor and Convert Units on the Model tab. Nothing else causes this.
- The dance previews correctly but the scene character does not move
- The Animator component has no controller, or the clip is not the default state, or the Avatar field is empty on a Humanoid setup.
- The clip plays but the character never leaves the origin
- Root Transform Position (XZ) is baked into the pose, or Apply Root Motion is off on the Animator.
- Retargeted onto a second character, the arms sit wrong
- Rest pose mismatch between the two Avatars. Re-check both in Configure with Enforce T-Pose, and expect residual drift on hand-to-body contact when proportions differ sharply.
- Animation imported but there is no mesh
- You imported the BVH, which carries no geometry. Use the FBX for anything that needs to be visible.
Where generated choreography fits in a Unity project
AI choreography is not a replacement for a keyframe artist. It is a way to get a beat-aligned draft into the engine on the same day you had the idea.
AI dance animation for Unity — common questions
- Can Unity import a GLB dance animation directly?
- Not out of the box. Unity’s built-in model importer does not read glTF or GLB. You either add a third-party glTF package to the project or convert the file — Blender imports GLB and exports FBX. For Unity work, downloading the FBX from mvnt Studio in the first place saves the round trip.
- Should I choose Humanoid or Generic for a dance clip?
- Humanoid if the dance needs to play on more than one character, because Unity stores Humanoid clips in a normalised muscle space that retargets across skeletons. Generic if the character and the animation ship together and you would rather not maintain an Avatar — Generic plays the curves exactly as authored, bound to that specific transform hierarchy.
- Why is my imported dance animation the wrong size in Unity?
- Unity treats one unit as one metre and the mvnt FBX declares centimetres, so Convert Units on the Model tab does the conversion with Scale Factor at 1. Measure the character against a default cube — about 1.66 units tall against a default cube — and Apply.
- Can I retarget the dance onto my own character?
- Yes, if both the source clip and your character are imported as Humanoid and both Avatars configure cleanly. Assign your character’s Avatar to its Animator and play the clip from a controller. Expect small contact-point drift — claps, hands on hips — when the two skeletons have noticeably different limb proportions.
- Is there a mvnt Studio plugin for Unity?
- No. mvnt Studio runs in the browser and gives you a file. You import that file the same way you would import any other model or animation asset, which also means nothing in your project depends on us staying installed.
- Do I need an account to download the animation?
- You can generate and review a dance scene in the browser without installing anything, but downloading the model or motion file requires signing in.