MMDの表情モーション(モーフのVMD)の中身|別のモデルで表情が動かない理由

モーションは動くのに、まばたきや口が動かない。原因はほとんどの場合、表情(モーフ)の名前がモデルと合っていないことです。VMDの表情キーは名前だけでモデルの表情を探すので、名前が違うものはエラーにならずに捨てられます。

最終更新: 2026-10-06 · kphp同梱の実VMD 30本の表情キー(計5,237個)と、実PMX 3体(人物A 2体・アリシア)の表情名を突き合わせて確認

名前が合わない表情は、ボーン名・表情名の読み替えでモデルの名前へ書き換えられます。 モデル(PMX)も入れると、モデルに無い表情だけを並べます。

表情キーは23バイトしかない

項目大きさ中身
表情の名前15バイトShift_JIS。全角なら7文字まで
フレーム番号4バイト30フレームで1秒
値4バイト(小数)0で無効、1で最大

ボーンのキーと違って補間曲線を持ちません。 キーとキーのあいだは直線でつながります。ゆっくり目を閉じたいなら、途中の値のキーを増やして形を作ります。実物のVMDの表情キー5,237個のうち、値がちょうど0か1のものが3,424個(65%)、そのあいだの値が1,813個(35%)でした。

名前が違うと、黙って無視される

表情キーは、モデルの中から同じ名前のモーフを探して値を当てます。見つからなければ、そのキーは捨てられます。エラーも警告も出ないので、「表情だけ動かない」という形でしか気づけません。three.jsのMMDLoaderも、モデルの表情の一覧に無い名前を読み飛ばす作りです。

実物のVMD 30本の表情キーを、手元の3体のモデルに当てて数えると、当たらないキーは人物Aで19%(5,237個中971個)、アリシアで29%(1,518個)でした。ほとんどはモーションを作ったモデルにしか無い表情(「にやりL」「ムス」「左押1」など)です。

綴りが違うだけで動かないもの

同じ表情でも、モデルによって半角と全角を書き分けていることがあります。半角カナは1文字1バイトで、全角の半分の長さで済みます。実物で見つかったのは次の組み合わせです。

VMDの名前モデルの名前違い
ウィンク2右ウィンク2右(アリシア)半角カナと全角カナ
キリッ / キリッキリッ(アリシア) / キリッ(人物A)モデルごとに逆
にやり2にやり2数字の半角と全角
照れ2 ワ2照れ2 ワ2(アリシア)数字の半角と全角

見た目はほとんど同じでも、別の名前として扱われます。このサイトの読み替えでは、半角・全角だけが違う名前を入力欄に「候補」として出します。書き換えるかどうかは自分で決めてください(似た名前を機械が勝手につなぐと、別の表情に当たっても気づけないためです)。

ボーンも同じです。 VMDの「右腕捩1」(全角の1)はモデルの「右腕捩1」には当たらず、「右髪IK」は「右髪IK」に当たりません。実物のVMD 30本を人物Aに当てると36か所、アリシアに当てると47か所で、半角・全角の違いだけで動かないボーンがありました。

よく使われる表情の名前

表情キーを持つVMD 15本のうち、15本すべてに入っていたのは「まばたき」「あ」「い」「う」「お」「困る」「怒り」「上」「下」でした。「え」は12本です。これらの名前は、手元の3体のモデルすべてにありました。よく使われる名前はモデル側も揃えていることが多く、当たらないのは作者独自の表情です。

口の動き(リップシンク)は「あ」が中心

口の形の表情(あ・い・う・え・お)のキーを数えると、多いものでも1秒あたり2〜3個でした。口パクのほとんどを「あ」1つで作っているVMDも多く、あるVMDでは母音のキー120個のうち108個が「あ」でした。「い」「う」「え」が数個しかないVMDを見ると、そのキーの値はすべて0でした。口を閉じたままに保つためのキーです。

表情だけのVMDと、体と表情を分ける

表情は体の動きと別のVMDで配られることがあります。実物の中にも、ボーンのキーが1つも無く、216種類の表情に721個のキーだけを持つVMDがありました。