Skip to content

MillionDance Manual

George (Tong) Wu edited this page Jun 1, 2020 · 15 revisions

If you don't feel like reading all the long texts, have a look at the Examples section which gives you a basic idea how to use this tool.

Contents

Description

MillionDance is a tool to export models, character and camera motions from MLTD to their MMD equivalents.

Preface

Some abbreviations:

  • MMD: MikuMikuDance
  • MMM: MikuMikuMoving
  • MLTD: The iDOLM@STER Million Live: Theater Days ("the game")
  • FOV: field-of-view

By reading this manual, you are assumed to have basic knowledge of MMD and related stuff.

User Interface

Here are the preview images of MillionDance's user interface.

Side 1

Side 2

"Tasks" Group

  • Generate model: enable model conversion.
  • Generate dance animation: enable dance motion conversion.
  • Generate lip sync: enable lip synchronization conversion.
  • Generate facial expressions: enable facial expressions conversion.
  • Generate camera motion: enable camera motion conversion.

"Input Files" Group

  • Head: the bundle file for the model head. Common file name pattern is ch_xx###_yyy.unity3d.
  • Body: the bundle file for the model body. Common file name pattern is cb_xx###_yyy.unity3d.
  • Dance: the bundle file for the character motion (the dance). Common file name pattern is dan_xxxxxx_##.imo.unity3d.
  • Facial: the bundle file for facial expressions and lip synchronizations. Common file name pattern is scrobj_xxxxxx.unity3d. (This file also contains other information, such as the beatmap.)
  • Camera: the bundle file for the camera motion. Common file name pattern is cam_xxxxxx.imo.unity3d.

Common Notations

  • ###: Digits. Their meanings can be costume serial number, idol serial number, or standing position in live, depending on the context.
  • xxx: English letters. Their meanings can idol abbreviation, or song resource name, depending on the context.
  • yyy: Costume category. Some variations: a, f, ###xxx. This is defined in the costume database so it is more flexible than other fields.

How to Select the Correct Files

Choosing other files is easy. Let's focus on the head and body bundles. Here denote the common part as xx###_zzz.

Notice the serial number ###. If it starts with 0, this bundle is a common bundle, with mesh and materials. If it starts with 1, this bundle is a material replacement bundle, with materials for replacement only. For example, ss101_001har is a material replacement bundle for ss001_001har. Inside the game, if the replacement is in effect, the model is rendered as "another look" (ja: アナザー). Not all models have "another look".

To use MillionDance, you must select the common bundle, otherwise the model mesh cannot be found. If you want to use "another look", you can replace corresponding textures in the file system. See Applying Textures.

It is possible to choose the head from one costume, and the body from another. It is also possible to choose head and body from different idols.

"Output Files" Group

  • Model: The save location of the converted PMX model. Head and body are combined.
  • Dance: The save location of the converted character dance motion (VMD).
  • Lip sync: The save location of the converted lip synchronization (VMD).
  • Facial: The save location of the converted facial expressions (VMD).
  • Camera: The save location of the converted camera motion (VMD or MVD).

"Model" Tab

  • Use model for motions: Choose the source of the motion that the converted model uses. "MLTD" is for the motions MillionDance converts, and "MMD" is for those made in MMD/MMM ("ordinary VMDs", e.g. the files downloaded from BowlRoll). For the time being these two options are not compatible. Generating character motion from the model will force choosing "MLTD" as motion source.
  • Scale model to normal PMX size: Whether to scale the model to normal model sizes in MMD, or keep the original size (in Unity; ~12.5x ordinary MMD models). Usually this should be selected.
    • Consider idol height: Whether to consider idol height in scaling. If selected, the models will be scaled according to the set height like in real game. Otherwise all converted models will have the same height. The standard height (original height of the model) is 1.60m (~5.25ft).
  • Translate bone names: Whether to translate bone names in generated model to TDA-styled names. Usually this should be selected in order to use the model for other MMD projects. Unselect this option to debug the bone names.
  • Append leg IK bones: Whether to append IK bones to the legs. Should be selected if you want to use the model in ordinary VMDs because they often include IK motions. This option is incompatible with motion source set to "MLTD".
  • Fix center bones: Whether to fix the semi-standard center bones hierarchy. Should be selected if you want to use the model in ordinary VMDs because otherwise you cannot correctly rotate the model's upper body. This option is incompatible with motion source set to "MLTD".
  • Convert T-pose: Whether to convert the model's standard T-pose to TDA-styled "A-pose" (arms stretching to lower left and lower right). Should be selected if you want to use the model in VMDs for TDA models. You can also unselect this option, and manually set the arms' angle in PMX Editor. But remember, the bone information affects data in character motion. This option is incompatible with motion source set to "MLTD".
  • Append eye bones: Whether to append eye bones (left, right, and both) to the model. Should be selected if you want to use the model in ordinary VMDs because they use eye bones to move the eyes. However this option is not perfect because MLTD seems to use UV morph instead of bones to control eye movements. This option is incompatible with motion source set to "MLTD".
  • Hide Unity-generated bones: Whether to hide the bones generated by Unity in some tools' (e.g. PMX Editor, MMD, MMM) preview mode. If unselected, all bones will be visible in the editor and that will be a mess.
  • Translate facial expression names: Whether to translate the facial expression names to TDA-styled names. Similar to the option for bone names. Usually this should be selected in order to use the model for other MMD projects. Unselect this to debug facial expressions.
  • Import physics: Whether to convert the physics information in MLTD model to the internal physics information system in PMX. Currently it works but the result is not very accurate. If you are a skilled modeler, you should better rebuild these physics information yourself using other tools. This feature is experimental.
  • Game styled toon: Whether to apply PMD/PMX toons to the model. When unselected, the materials will not have toon textures. When selected, chosen toons (body skin and clothes) will be applied to the corresponding materials. Suggested default values are toon05 for skin and toon04 for clothes. You can always manually edit the PMX files using tools like PMX Editor.

"Motions" Tab

  • Animation frame rate: The frame rate of character and camera motions. These two must match otherwise there will be obvious jittering. Remember, the frame rate of ordinary VMDs is 30 fps. If you use 60 fps, you have to configure the player (MMD/MMM) yourself.
  • Scale motions to normal VMD/MVD size: Whether to scale the position information from Unity (~12.5x VMD/MVD) to VMD/MVD. This option should match what you select for scaling the model.
  • Camera format: Format of the camera motion. "VMD" is supported in both MMD and MMM and "MVD" is only supported in MMM. The difference is that MVD format supports floating point FOV and VMD only supports integer FOV. Since the camera motion must be recomputed each frame, to completely reproduce the animation in MLTD, floating point FOV support is necessary. Using "stepped" integer FOVs in VMD will make the camera motion look weird. So if you choose VMD, the FOV must fall back on a fixed integer value during the whole animation.
    • Fixed FOV: The fixed FOV value used for VMD. FOVs in animations for difference songs vary so you have to do some tests to obtain the best matched value.
  • Position: The position of the idol. Some songs contain more than one set of character motion and facial expressions (and lip sync). Character motions of different positions are stored in different files, so it is already decided when you choose the character motion file and not affected by this option. Facial expressions for idols in all positions are packed in one file (scrobj), so to match the idol's body movements and facial expression, you have to select the correct position. The order in MLTD is (facing the stage as audience): 4-2-1-3-5. If a song is for N idols (N can be 1 to 5), then the valid selections are from 1 to N.
  • Facial expression mapping file: The JSON file that contains the facial expression mapping information. In VMD/MVD, facial expressions are controlled in facial expression frames (vertex morph nodes). The weight of morphs are directly recorded in the frames. But in MLTD, facial expressions are premade and stored in a large table. The scrobj file only contains used indices of them, and the weights have to be looked up. For example, to play a standard "smile" expression, scrobj stores the expression index 1, then the player search for the expression by index in the table, retrieve the weights, and apply them. Since only indices are stored, it is not possible to know what all the facial expressions are, and you have to complete it yourself. When MillionDance encounters an unknown expression index, it writes the index to the log so you can try to make that facial expression. This file can be edited using TDFacial. For the usage of TDFacial please see its manual.
  • Prefer facial expressions used in: Although most scrobj_ files contain "master facial control" data, which is used for both landscape and portrait views, some do not. If the master data is not found, MillionDance will try to search for landscape- or portrait-specific data according to your choice.

Applying Textures

Textures are automatically composited and exported starting from version 0.2.0. The file names are matched with material information in PMX.

Examples

Tips: You may want to read ManifestTools' Manual to know how to obtain the assets.

Example: Convert model to PMX (to use with MLTD motions)

  1. Check "Generate model". Uncheck other tasks if you don't need them.
  2. Select head and body files in the "Input Files" group.
  3. Select a save location for the generated PMX in "Output Files" group.
  4. Click "Go".

Example: Convert character motions of a song to VMD

  1. Check "Generate dance motion", "Generate lip sync" and "Generate facial expressions". You can check one or more tasks and the required input files may be a little different. Uncheck other tasks if you don't need them.
  2. Select head, body, dance and facial files in the "Input Files" group.
  3. Select the corresponding idol position in "Motions" tab. You should know which position the motion is for by reading its file name.
  4. Select save locations for generated dance, lip sync and facial expression VMD files.
  5. Click "Go".

Example: Convert camera motion of a song to VMD

  1. Check "Generate camera motion". Uncheck other tasks if you don't need them.
  2. Select camera file in the "Input Files" group.
  3. Depending on whether you want dynamic FOV (to look more natural as in MLTD), select "MVD" or "VMD" in "Motions" tab.
  4. Select a save location for the generated VMD/MVD in "Output Files" group.
  5. Click "Go".

Example: Convert model to PMX (to use with other MMD motions)

  1. Check "Generate model". Uncheck other tasks if you don't need them.
  2. Select head and body files in the "Input Files" group.
  3. Select a save location for the generated PMX in "Output Files" group.
  4. Check "Generic MMD" option in "Model" tab.
  5. Click "Go".

Note: Most MMDs implement eye movements using eye bones. MLTD implements eye movements by some kind of texture morph. Therefore eye meshes in common models for MMD are larger than the eye sockets, but eye meshes of MLTD models exactly fit the sockets. Beware how the eyes look like when using the models in generic MMD motions.

Other Notes

Ouput data is tested in MikuMikuMoving (MMM) but not MikuMikuDance (MMD) because the number of frames is huge. It is suggested to use MMM for enhanced performance. Also, some conversion results may fail to display only when the output is used with MMD. Maybe I'll investigate this issue some day.