MMDのモーションを別のモデルで踊らせると一部が動かない|実物で数えた原因と直し方
VMDのボーンのキーは、ボーンの名前だけでモデルの中を探します。同じ名前が無ければ、そのキーはエラーも出さずに捨てられます。だから「全体は踊っているのに、肩だけ動きが小さい」「髪だけ揺れない」という形でしか気づけません。
手元のモデルとモーションで確かめるなら、PMX・PMD・VMDを調べるに2つを一緒に入れてください。 足りない標準ボーンと、半角・全角だけ違うボーンを名前で出します。
名前は完全に一致しないと当たらない
three.jsのMMDLoaderは、VMDのボーン名をモデルのボーン名の一覧からそのままの綴りで引きます。全角の「1」と半角の「1」も別の名前です。MMDLoaderで再生するこのサイトも同じで、2026-10-06からは一致率もこの決まりで数えています。
原因1: モデルに準標準ボーンが無い
人物Aの2体(ボーン310本・314本)は、28本のVMDのすべてで、VMDが動かす標準ボーンを100%持っていました。一方、アリシア(ボーン150本)で100%になったのは8本だけです。足りなかったのは、どれも準標準ボーンでした。
| 足りなかったボーン | 動かしていたVMD | そのボーンのキー |
|---|---|---|
右肩P 左肩P | 15本 | 右肩Pだけで1,188個。うち763個が実際に回転している |
左足D 右足D など足D系 | 18本 | 左足Dで82個。うち33個が動いている |
左足IK親 右足IK親 | 14本 | 左足IK親で24個。動いているのは3個 |
左足先EX 右足先EX | 13本 | 左足先EXで86個。うち27個が動いている |
肩Pのキーの多くは実際に肩を動かしているので、肩Pを持たないモデルでは肩の動きが小さくなります。足IK親のキーはほとんどが止まったままで、無くても見た目はあまり変わりません。どのボーンが足りないかで、影響の大きさはかなり違います。 これは名前を書き換えても直りません。モデルのほうにボーンを足す必要があります。
原因2: 名前の半角・全角が違う
同じボーンでも、作者によって半角と全角の書き方が違います。実物のVMDを人物Aに当てると36か所、アリシアに当てると47か所で、半角・全角の違いだけで当たらないボーンがありました。
| VMDの名前 | モデルの名前 | どこで見つかったか |
|---|---|---|
右腕捩1 〜 左手捩3(12本) | 右腕捩1 〜 左手捩3 | negaeri.vmd × 人物A |
舌1 舌2 舌3 | 舌1 舌2 舌3 | man系のVMD × 人物A・アリシア |
前髪1_2 | 前髪1_2(アンダースコアが全角) | アリシア |
右髪IK 左髪IK | 右髪IK 左髪IK | アリシア |
左胸上2 | 左胸上2 | 人物A |
どれも腕捩・舌・髪のような補助のボーンで、標準ボーンでは1か所も起きていませんでした。 そのため「標準ボーンの一致率は100%なのに、腕のねじれだけが動かない」ということが起こります。これは名前を書き換えれば直ります。
原因3: モデル固有の補助ボーン
モーションは、作ったときのモデルにしか無いボーンも動かしています。kimino.vmd は335種類のボーンを動かしていて、人物Aに無いものが213種類、アリシアに無いものが254種類ありました。スカート・髪・胸などの補助ボーンで、ほかのモデルに無くて当たり前です。物理演算で揺らすボーンなら、モーションが当たらなくても揺れ自体は出ます。
直し方
- まず診断にモデルとモーションを入れて、足りないボーンの名前を見る
- 半角・全角の違いや、別の名前で同じ役割のボーンがある → ボーン名・表情名の読み替えで、VMDの名前をモデルに合わせる
- 肩P・足Dなどのボーンがモデルに無い → モデル側に足す(名前の書き換えでは直りません)
- 表情が動かない → 表情も同じ決まりで名前を探します(表情モーションの記事)
- 脚だけ固まる → モーションがIKを切っているかもしれません(IKを切ったVMDの記事)