VMD (Vocaloid Motion Data) is the standard animation format for MikuMikuDance and compatible renderers. ADocumentation Index
Fetch the complete documentation index at: https://mintlify.com/AmyangXYZ/reze-studio/llms.txt
Use this file to discover all available pages before exploring further.
.vmd file stores a list of keyframes per bone and per morph — frame number, rotation quaternion, translation vector, and Bézier interpolation handles for each key. Reze Studio reads and writes this format natively: you can import an existing clip from any MMD-compatible tool, hand-key or refine it in the timeline and curve editor, and export it back to a .vmd that any MMD renderer will accept. Nothing is sent to a server — all file I/O happens entirely inside your browser.
Loading a VMD file
Open the File menu
Click File in the top-left menu bar, then select Load VMD…. This option is disabled until the engine has finished initializing and a model is loaded.
Pick a VMD file
Your browser’s file-picker opens filtered to
.vmd files. Select the file you want to import.Clip loads into the timeline
The engine parses the VMD, and all bone and morph tracks appear in the dopesheet immediately. The playhead resets to frame 0 and any previous animation is replaced. The undo/redo history is cleared — loading a VMD calls
replaceClip, which resets the past and future stacks so history from the previous clip does not bleed into your new work.The clip display name is extracted with
fileStem(), which strips the directory path and extension and trims whitespace. If the result is empty (e.g. a file named .vmd), the name falls back to "clip".Starting a new clip
If you want to key an animation from scratch rather than editing an existing VMD, use File → New to reset the timeline to a blank state.Open the File menu
Click File in the menu bar, then select New. This option is disabled until the engine is ready.
Timeline resets
All bone and morph tracks are removed. A blank clip is created with a default length of 120 frames (4 seconds at 30 fps), as defined by
DEFAULT_STUDIO_CLIP_FRAMES in lib/utils.ts. The playhead moves to frame 0.Undo/redo history clears
The undo/redo stack is reset along with the clip so history entries from the previous session do not bleed into your new work.
Exporting to VMD
When you are ready to save your work, export it as a.vmd file that any MMD-compatible renderer can open.
Open the File menu
Click File, then select Export VMD…. This option is disabled when there is no loaded clip.
Unsaved-change warning
Reze Studio tracks whether your clip has unsaved changes. If you try to close or reload the tab while there are edits that have not been exported, the browser will show its standard “Leave site? Changes you made may not be saved” confirmation dialog. This uses the browser’sbeforeunload event — it fires for tab close, window close, and page refresh, but not for navigation within the same tab.
The dirty flag clears automatically after a successful export. Loading a VMD file or clicking New also clears it because those operations replace the clip entirely with a known state.
The bundled sample clip
When Reze Studio opens for the first time in a session, it automatically loads a sample animation alongside the default model so you can see the editor in action without any setup. The sample clip is fetched from:VMD_PATH in engine-bridge.tsx. The clip name is set by passing VMD_PATH through fileStem(), which extracts miku as the display name. If the file is not found (e.g. in a local development build without the asset), the engine logs a warning and starts with an empty timeline instead.
The sample clip is loaded with
suppressClipDirtyRef set so that the initial load does not trigger the unsaved-change warning. Opening the tab fresh and immediately closing it will not prompt you to stay.Track retention on model swap
When you load a new PMX model while a clip is active, Reze Studio does not discard your animation outright. It runs a retention pass that:- Keeps tracks for bones and morphs that exist on the new model by name.
- Silently drops tracks for bones and morphs that do not exist on the new model.
上半身, 左腕, 右腕, etc.), most or all of your animation data will survive the swap intact.
Bones retained
Any bone track whose bone name is present in the new model’s skeleton is kept with all its keyframes and Bézier handles unchanged.
Bones discarded
Any bone track whose bone name does not appear in the new skeleton is removed. There is no warning — check the bone list after swapping to verify coverage.