ブログ · PMX→VRM · MMD 変換 · デスクトップキャラクター · 2026-08-06

PMX を VRM に変換する完全ガイド:MMD モデルをデスクトップキャラクターにする

好きな PMX/MMD モデルを見つけたのに、使いたいアプリは `.vrm` を求めている。このガイドでは、Blender と VRM Add-on を使った PMX→VRM 変換をヒューマノイド骨格のマッピング、表情、MToon マテリアル、Spring Bone 物理、メタデータ、AniMate へのインポートまで通して解説します。

PMX モデルを Blender または Unity で VRM 1.0 に変換し、AniMate のデスクトップキャラクターとしてインポートする流れ
変換はファイル名の変更ではありません。骨格、表情、マテリアル、物理を VRM の仕様へ再構築します。
5ステップの流れ:Blender と VRM Add-on を用意し、PMX をインポートして MMD ボーンを VRM Humanoid に割り当て、表情・MToon・Spring Bone を整え、VRM 1.0 で書き出して AniMate にインポートします。

なぜ PMX を VRM に変換するのか

PMX は MMD(MikuMikuDance)の標準モデル形式です。ボーン、モーフ、マテリアル、物理が MMD のアニメーション向けに調整されているため、ダンス動画では強い反面、ほかのキャラクタープラットフォームでは扱いにくくなります。

VRM はバーチャルキャラクター向けのオープンな 3D 形式で、VTuber ツール、ソーシャル VR、AniMate のようなデスクトップコンパニオンに広く対応しています。変換後は同じモデルをいろいろな場所で使えます。

  • 瞬き、マウス反応、待機、ダンス、アプリのそばでの常駐といったデスクトップコンパニオン体験。
  • VTube Studio や Warudo など VTuber 制作ツールとの組み合わせ。
  • VR ソーシャルプラットフォームやアバターコミュニティ。
  • 今後 VRM に対応する別のアプリやツール。

まとめると、PMX は MMD パイプラインに属し、VRM はアプリを越えて持ち運ぶための形式です。

PMX→VRM の変換ルート

ルートツール向いている人難易度おすすめ
ルート A:BlenderBlender + VRM Add-on + MMD Toolsはじめて変換する人、パネル操作で進めたい人初心者向け推奨
ルート B:UnityUnity + MMD4Mecanim + UniVRMUnity に慣れていて、コライダーを細かく調整したい人中級者向け必要なときだけ
3D ソフトがはじめての人へ:ルート A が平易です。Blender は無料でオープンソース、VRM Add-on は専用パネルを用意してくれるため、コードを書かずに設定を進められます。このガイドではルート A を中心に、必要なところでルート B も補足します。

VRM の技術的な土台:何を変換しているのか

Blender を開く前に、VRM ファイルの内部構造を少しだけ理解しておくと、変換トラブルの原因が分かりやすくなります。PMX の概念を間違った VRM の仕組みに対応づけてしまうのが、多くの失敗の正体です。

VRM は glTF 2.0 の拡張として作られている

VRM はゼロから作られた形式ではなく、Khronos Group が策定した glTF 2.0 の上に成り立っています。VRM ファイルは実質 `.glb` バイナリに `.vrm` 拡張子を付け、VRM 固有の情報を glTF の拡張フィールドに記録します。

extensionsUsed: [
  "VRMC_vrm",              // VRM core
  "VRMC_materials_mtoon",  // アニメ調マテリアル
  "VRMC_springBone",       // スプリングボーン物理
  "VRMC_node_constraint",  // ノード制約
  "KHR_materials_unlit",   // アンライト補助
  "KHR_texture_transform", // テクスチャ変形補助
]

glTF 2.0 をサポートするレンダラーは、これらの拡張を実装すれば VRM を読み込めます。この共通基盤があるからこそ、デスクトップアプリ、VTuber ソフト、ソーシャルプラットフォームの間で同じモデルを共有できます。

VRM の5つの主要サブシステム

サブシステムフィールド役割必須
HumanoidhumanoidglTF ノードを標準的な人型骨格に割り当てるはい
Metametaモデル名、作者、バージョン、ライセンスはい
FirstPersonfirstPersonVR 一人称視点の頭部メッシュ表示ルール任意
ExpressionsexpressionsVRM 0.x の BlendShape に相当する表情システム任意
LookAtlookAtターゲットへの視線追従任意
ここが重要:PMX→VRM 変換とは、MMD のボーン、モーフ、マテリアル、物理をこの5つの VRM サブシステムへ対応づける作業です。途中で「なぜこの手順が必要なのか」が分からなくなったら、この5つの箱のどれを埋めているのかを考えてみてください。

更新順序:なぜ並びが重要なのか

VRM は毎フレーム、各サブシステムを決まった順序で評価します。表情と瞬きが競合したり、スプリングボーンが理由なく揺れたりするときは、たいていこの順序に関係があります。

1. Humanoid ボーンの解決
   |  (頭の位置が決まる)
2. LookAt の解決
   |  (ボーンで眼球回転 / 表情で重み設定)
3. 表情の更新
   |  (外部入力 -> LipSync -> AutoBlink -> LookAt 表情)
4. 表情の適用
   |  (全表情の重みを加算して反映)
5. 制約の解決
   |  (回転制約、IK 制約など)
6. Spring Bone の解決
実務上の影響:話しながら瞬きしたときに顔が崩れるなら Expression Override を確認します。物理ボーンが揺れるなら SpringChain の階層とコライダー配置を確認します。

VRM 0.x と VRM 1.0 の違い

項目VRM 0.xVRM 1.0
表情名BlendShapeExpression
表情の重み0-1000-1
感情名joy, sorrow, funhappy, sad, relaxed
驚きなしsurprised
表情バインドおもに MorphTargetMorphTargetBind + MaterialColorBind + TextureTransformBind
競合処理仕様に明記なしOverride による block / blend モード
拡張プレフィックス不統一VRMC_
chest ボーン必須任意
neck ボーン必須任意
推奨:デスクトップコンパニオンなど新しい用途では VRM 1.0 を書き出しましょう。Expression Override で口、瞬き、感情が同時に動く際の顔崩れを防ぎやすく、Spring Bone のルールも整っています。VRM 0.x は古いプラットフォームが必要なときだけにします。

公式リファレンス

リソースアドレス用途
VRM 公式サイトvrm.dev形式概要、ツール、事例
VRM 仕様リポジトリgithub.com/vrm-c/vrm-specificationJSON スキーマ付きの詳細仕様
UniVRMgithub.com/vrm-c/UniVRMUnity のインポート・エクスポート実装
VRM Add-on for Blendergithub.com/saturday06/VRM-Addon-for-BlenderBlender 用 VRM アドオン

ルート A:Blender + VRM Add-on で変換する

Step 1:ツールを準備する

ツールバージョン入手先
Blender3.6 以上、できれば 4.2 以上blender.org
VRM Add-on for Blender最新版GitHub
MMD Tools最新版Blender のアドオン管理からインストール
CATS Blender Plugin任意GitHub または Blender Extensions から

VRM Add-on のインストール

  1. Blender を開き、編集 → プリファレンスを開きます。
  2. アドオンタブで右上のインストール…を選びます。
  3. ダウンロードした VRM Add-on の `.zip` を選択し、アドオンをインストールを押します。
  4. 一覧のVRMを探して有効にします。
Blender 4.5 以降:Blender Extensions から直接 VRM Add-on をインストールできる場合があります。その場合は ZIP の手動選択を省略できます。

MMD Tools のインストール

  1. プリファレンス → アドオン → インストール…で MMD Tools の `.zip` を選択します。
  2. インストールして有効にします。
  3. Blender のファイル → インポートMikuMikuDance Model (.pmx/.pmd) が追加されます。

Step 2:PMX モデルをインポートする

  1. ファイル → インポート → MikuMikuDance Model (.pmx/.pmd)を実行します。
  2. ファイルブラウザで `.pmx` を選択します。
  3. メッシュ、テクスチャ、アーマチュアのボーンが正しく入っているか確認します。
テクスチャが出ない場合:モデルが真っ黒または無地なら、テクスチャが PMX と同じフォルダにあるか確認してください。日本語のファイル名が壊れる場合は、7-Zip や Bandizip で「日本語(Shift-JIS)」を指定して解凍し直します。

Step 3:MMD ボーンを VRM Humanoid にマッピングする

PMX と VRM では骨格の構造が異なります。VRM は標準化された Humanoid 骨格を要求するため、PMX アーマチュアを VRM のボーン名に対応づける必要があります。必須ボーンが欠けていると書き出しが止まり、あとでアニメーションが崩れる原因にもなります。

  1. モデルのアーマチュアを選択します。
  2. 右側のプロパティパネルでVRMタブを開きます。
  3. Create VRM Modelを押し、自動マッピングを実行します。
  4. Humanoidセクションで結果を確認します。

MMD ボーン対応表

以下の表はよく使われる MMD ボーン名と VRM Humanoid ボーンの対応です。太字は VRM 1.0 で必須、ほかは任意ですが、よいアニメーションのために推奨されます。

胴体と頭
MMD ボーン名部位VRM ボーンVRM 1.0 必須
全ての親ルート / 腰の基準Hipsはい
上半身上半身Spineはい
上半身2Chestいいえ
上半身3上胸UpperChestいいえ
Neckいいえ
Headはい
左目 / 右目左右の目LeftEye / RightEyeいいえ
あごあごJawいいえ
MMD ボーン名部位VRM ボーンVRM 1.0 必須
左足左ももLeftUpperLegはい
左ひざ左すねLeftLowerLegはい
左足首左足LeftFootはい
左つま先左つま先LeftToesいいえ
右足右ももRightUpperLegはい
右ひざ右すねRightLowerLegはい
右足首右足RightFootはい
右つま先右つま先RightToesいいえ
MMD ボーン名部位VRM ボーンVRM 1.0 必須
左肩左肩LeftShoulderいいえ
左腕左上腕LeftUpperArmはい
左ひじ左前腕LeftLowerArmはい
左手首左手LeftHandはい
右肩右肩RightShoulderいいえ
右腕右上腕RightUpperArmはい
右ひじ右前腕RightLowerArmはい
右手首右手RightHandはい
指:任意だけど入れておきたい

MMD の指ボーンは 指0 から 指3 のような名前です。VRM 1.0 は指の完全な骨格を定義しています。デスクトップの基本操作では必須ではありませんが、指さしや手のジェスチャーに使えます。

VRM 指ボーン補足
LeftThumbMetacarpal親指の中手骨
LeftThumbProximal親指の基節骨
LeftThumbDistal親指の末節骨
LeftIndexProximal → Distal人差し指チェーン
LeftMiddleProximal → Distal中指チェーン
LeftRingProximal → Distal薬指チェーン
LeftLittleProximal → Distal小指チェーン

右手も同じ構成です。LeftRight に置き換えてください。

MMD ボーン名から VRM Humanoid ボーンへの対応図
書き出しに必要なボーンを図で確認できます。自動マッピングが失敗したら、IK ボーンではなく回転ボーンにウェイトが付いているか確認してください。
VRM 1.0 Humanoid の階層

Humanoid ボーンには決まった親子関係があります。途中のボーンがない場合は祖先にさかのぼります。マッピング失敗のデバッグにはこのツリーが役立ちます。

root(Humanoid ではない原点ノード)
+-- hips
    |-- spine
    |   +-- (chest)
    |       +-- (upperChest)
    |           |-- (neck)
    |           |   +-- head
    |           |       |-- (leftEye)
    |           |       |-- (rightEye)
    |           |       +-- (jaw)
    |           |-- (leftShoulder)
    |           |   +-- leftUpperArm
    |           |       +-- leftLowerArm
    |           |           +-- leftHand
    |           +-- (rightShoulder)
    |               +-- rightUpperArm
    |                   +-- rightLowerArm
    |                       +-- rightHand
    |-- leftUpperLeg
    |   +-- leftLowerLeg
    |       +-- leftFoot
    |           +-- (leftToes)
    +-- rightUpperLeg
        +-- rightLowerLeg
            +-- rightFoot
                +-- (rightToes)
仕様メモ:通常、動くのは hips だけで、ほかの Humanoid ボーンは回転します。Humanoid ボーンの間に非 Humanoid ノードを挟むことはできますが、ボーンのスケールは正の値が必要です。
MMD で多い問題:脚のウェイトが IK ボーンではなく D ボーン(変形ボーン)に付いていることがあります。VRM は回転ボーンを必要とするため、書き出し前にウェイトを対応する回転ボーンへ移してください。
自動マッピングが失敗したら
  • アーマチュアを選択した状態で、アドオンのAuto Mapをもう一度実行します。
  • Humanoid パネルで不足しているボーンを手動で割り当てます。
  • PMX が標準的な MMD ボーン名を使っているか確認します。日本語名が正しく読み込まれている必要があります。

Step 4:表情(Expression / BlendShape)を設定する

デスクトップコンパニオンで瞬き、口パク、感情表現を動かすには、VRM 標準の表情が必要です。VRM 0.x では BlendShape、VRM 1.0 では Expression と呼びます。概念は同じですが、VRM 1.0 の方ができることが多いです。

感情表現
VRM 1.0VRM 0.xよく使う MMD モーフ意味
happyjoy笑い笑顔
angryangry怒り怒り
sadsorrow困る悲しみ
relaxedfunにっこりリラックス
surprised0.x にないびっくり驚き(VRM 1.0)
口パク
VRM 1.0VRM 0.xよく使う MMD モーフ母音
aaaa
ihii
ouuu
eeee
ohoo
瞬き
VRM 1.0VRM 0.xよく使う MMD モーフ意味
blinkblinkまばたき両目
blinkLeft左まばたき左目のみ(1.0)
blinkRight右まばたき右目のみ(1.0)
視線表現
VRM 1.0意味
lookUp上を見る
lookDown下を見る
lookLeft左を見る
lookRight右を見る
視線表現と目ボーンの違い:VRM の LookAt には2つのモードがあります。BoneleftEye / rightEye を回転させ、Expression は4つの視線表現を頂点やテクスチャオフセットで動かします。MMD モデルの多くはテクスチャ目なので Expression モードが合います。
Blender での設定方法
  1. VRM パネルで BlendShape Master(VRM 0.x)または Expressions(VRM 1.0)を開きます。
  2. 表情グループを1つずつ追加し、MMD モーフを VRM 標準の表情へ対応づけます。
VRM 1.0 の表情バインドタイプ
バインドタイプ効果主な用途
MorphTargetBindメッシュの MorphTarget を動かす瞬き、口を開く、笑顔などの頂点変形
MaterialColorBindマテリアルの色を変える頬の赤み、瞳の色変化
TextureTransformBindテクスチャ UV をずらす / 拡縮する視線用の目テクスチャ回転

VRM 1.0 では1つの表情に複数のバインドをまとめられます。たとえば頬を少し膨らませる MorphTarget と、頬マテリアルを赤くする MaterialColorBind を「照れ」に含めることができます。

VRM 1.0 の Expression Override

アプリが複数の表情を同時に動かすと、顔が崩れることがあります。Override には次の3つの戦略があります。

モード挙動使いどころ
none介入しないデフォルト
blockこの表情が動いている間、対象のプログラム表情を0にする笑顔中に瞬きを止めるなど、はっきり切る場合
blendこの表情が0→1になるのに合わせて対象をフェードさせるなめらかな遷移。推奨

各表情は overrideMouthoverrideBlinkoverrideLookAt を設定できます。

よい初期設定:VRM 1.0 で書き出すなら、happyangrysadoverrideBlink = "blend"overrideMouth = "blend" を設定します。笑顔と瞬きが同時に起きても、まぶたが顔にめり込みにくくなります。
MMD モーフから対応づける VRM 標準表情
感情、口パク、瞬き、視線を MMD モーフへ対応づけます。VRM 1.0 は Override で同時発火を調整します。
モーフを一括マッピングするスクリプト(任意)

モーフが多い場合は、短い Python スクリプトで作業を速くできます。次の例は VRM 0.x の BlendShape グループ向けです。

import bpy

# メッシュを選択した状態で実行する。
# よく使う MMD モーフ名を VRM 0.x BlendShape 名へ対応づける。

Proxy = {
    "blink": "まばたき",
    "a": "あ",
    "i": "い",
    "u": "う",
    "e": "え",
    "o": "お",
    "joy": "笑い",
    "angry": "怒り",
    "sorrow": "困る",
}

for name, morph_name in Proxy.items():
    bpy.ops.vrm.add_vrm0_blend_shape_group(
        armature_object_name=bpy.context.active_object.name,
        name=name
    )
    # 実際のモーフ割り当ては VRM Add-on UI か、このスクリプトを拡張して行う。
VRM 1.0 の注意:VRM 1.0 では happy / sad / relaxed を使い、surprised を追加します。MorphTarget の重みは VRM 0.x の 0-100 ではなく 0-1 です。

Step 5:LookAt を設定する

LookAt はキャラクターの目をターゲットに向けます。AniMate ではマウスカーソルを自然に目で追う動きに使えます。

モード実装向いているモデル
BoneleftEyerightEye を回転目ボーンが分かれているモデル
ExpressionlookUp / lookDown / lookLeft / lookRight を駆動テクスチャ目の MMD モデルに多い
どちらを使うか:Blender で 左目 / 右目 という名前のボーンがあれば Bone モードを試します。目が顔メッシュの一部でテクスチャ表現なら Expression モードにします。MMD モデルの多くは後者です。
LookAt Space とオフセット

LookAt は head ボーンに親子付けされた LookAt Space を使います。offsetFromHeadBone は目の原点、通常は両目の間を指定します。

LookAt Space
|-- Parent: head bone(頭と一緒に動く)
|-- Origin offset: offsetFromHeadBone(例 [0, 0.06, 0])
+-- Rotation: 頭ボーンの静的モデル空間回転の逆行列
RangeMap:目の動く範囲を制御する
プロパティ意味
rangeMapHorizontalInner鼻側への内側水平回転
rangeMapHorizontalOuter耳側への外側水平回転
rangeMapVerticalDown下方向の垂直回転
rangeMapVerticalUp上方向の垂直回転

各 RangeMap には inputMaxValueoutputScale があります。inputMaxValue を小さくすると同じ角度で目が大きく動き、outputScale は Bone モードなら度数、Expression モードなら 0-1 の表情重みです。

調整:目がほとんど動かないなら inputMaxValue を 90 から 45 に下げるか outputScale を上げます。動きすぎなら逆にします。

Step 6:マテリアルを MToon に変換する

PMX と VRM ではマテリアルシステムが異なります。VRM では VRMC_materials_mtoon 拡張で定義されるアニメ調シェーダー MToon を推奨します。MToon はランバート風ライティングに、明暗2色、トゥーン境界、リムライト、アウトラインを組み合わせ、手描き風の見た目を保ちます。

  1. モデルのメッシュを選択します。
  2. マテリアルプロパティで各マテリアルを処理します。
  3. MMD マテリアルからMToonへ変換します。
Alpha Mode と透過
プロパティ意味推奨
Alpha ModeOPAQUE / MASK / BLEND肌: OPAQUE、髪の端: MASK、レース: BLEND
transparentWithZWriteBLEND 描画中に深度を書き込む半透明オブジェクトのソートが必要なとき有効
renderQueueOffsetNumberBLEND 用の描画キューオフセット透過オブジェクト同士のめり込み補正

描画順は OPAQUE > MASK > BLEND + ZWrite > BLEND です。

明色と陰色
プロパティ意味推奨
Lit ColorbaseColorFactor明るい側の色 + テクスチャ元の PMX ベーステクスチャ
Shade ColorshadeColorFactor影側の色 + テクスチャ元テクスチャか少し暗い色。純黒より自然

従来の Lambert モデルは影側が真っ黒になりやすいですが、MToon は影の色を指定できるため、セルルックを保ちやすいです。

トゥーン境界の制御
プロパティデフォルト意味
shadingToonyFactor0.9明暗境界の鋭さ。1に近いほどハードなセルエッジ、0に近いほどグラデーション
shadingShiftFactor0.0境界位置のシフト。正の値で明部が広がる
shadingShiftTextureR チャンネルで領域ごとの境界位置を制御

多くのアニメ調モデルでは shadingToonyFactor を 0.8〜1.0 にします。

リムライト
要素プロパティ意味
MatCapmatcapFactor + matcapTextureビュー空間ノーマルでテクスチャをサンプリングする固定ハイライト
Parametric RimparametricRimColorFactorparametricRimFresnelPowerFactor(既定5.0)、parametricRimLiftFactor(既定0.0)フレネル計算によるリムライト
Rim MaskrimMultiplyTextureリムライトが出る場所を制限

髪には薄い青や紫のリムライトを入れ、Fresnel Power を3〜5にすると柔らかい逆光エッジになります。

アウトライン
プロパティ意味
outlineWidthModenone / worldCoordinates / screenCoordinates
outlineWidthFactor線の太さ。world はメートル、screen は画面高比率
outlineWidthMultiplyTextureG チャンネルで領域ごとの太さを制御
outlineColorFactor線の色
outlineLightingMixFactor0 はフラットな線、1 は表面ライティングを掛ける
マテリアルのトラブル:透過マテリアルは MASK か BLEND にします。見た目がおかしい場合はまず MASK を試し、MMD 風の陰影にしたいなら shadingToonyFactor を調整します。MToon は頂点カラーを無視するため、テクスチャやマテリアル設定で補ってください。
MToon の明色・陰色・リムライト・アウトライン設定
MToon は黒一色の影ではなく明色と陰色のペアを使い、リムライトとアウトラインでアニメ調のシルエットを補強します。
UV アニメーション
プロパティデフォルト意味
uvAnimationScrollXSpeedFactor0.01秒あたりの X 方向 UV スクロール速度
uvAnimationScrollYSpeedFactor0.01秒あたりの Y 方向 UV スクロール速度
uvAnimationRotationSpeedFactor0.0UV 中心 (0.5, 0.5) 周りの回転速度(ラジアン/秒)
テクスチャチャンネルのまとめ
チャンネルテクスチャ
RshadingShiftTexture
GoutlineWidthMultiplyTexture
BuvAnimationMaskTexture
効率化:マテリアルが多いモデルではスクリプトで一括変換し、まずすべて shadingToonyFactor = 0.9 にしてから個別に微調整します。

Step 7:Spring Bone 物理を設定する

VRM では髪、衣装、アクセサリー、しっぽを Spring Bone で揺らします。PMX には MMD の物理データが入っていても、VRM では SpringChain として再構築する必要があります。

対象
髪の毛先のボーンチェーン
必要に応じて胸の物理
衣装スカート、マント、リボン、長袖
アクセサリーリボン、しっぽ、浮遊小物
SpringChain の構造

VRM Spring Bone は物理を SpringChain にまとめ、各チェーンが順番に並んだジョイントを持ちます。チェーン a-b-c-d では、ランタイムが次の head-tail ペアを作ります。

head(回転)   tail(位置 + 衝突)
   a    ->      b
   b    ->      c
   c    ->      d
  • head ノードの回転は tail ノードの変位から計算します。
  • 最後のジョイントは tail としてだけ働き、自身のパラメータは無視されます。
  • 最後のセグメントも揺らすには、末尾に空ボーンを追加します。
ルール:joints[n]joints[n+1] の親または祖先でなければなりません。1つのジョイントを複数の SpringChain に含めることはできません。分岐する髪は実行順が未定義のため、別々の SpringChain にします。
Spring Bone ジョイントのパラメータ
パラメータ意味調整
hitRadiusfloat(メートル)ジョイントの衝突半径ボーン長の小さな割合、例 0.02〜0.05
stiffnessfloat(>=0)初期姿勢へ戻す力小さいと柔らかく、大きいと硬い
gravityPowerfloat毎フレームの重力大きいと垂れやすい。0 で無効
gravityDirfloat[3]重力方向通常 [0, -1, 0]
dragForcefloat(0-1)減衰 / 慣性の減り方小さいと揺れ続け、大きいとすぐ止まる
バージョン差:VRM 0.x はチェーン末尾に約 7cm の終端 SpringJoint を自動追加します。VRM 1.0 は追加しないため、末尾に空ボーンを手動で用意してください。
Verlet 積分の処理
Step 1: 慣性
inertia = (currentTail - prevTail) x (1.0 - dragForce)
spring = deltaTime x parentWorldRotation x initialLocalRotation x boneAxis x stiffness
gravity = deltaTime x gravityDir x gravityPower
nextTail = currentTail + inertia + spring + gravity
nextTail = worldPosition + (nextTail - worldPosition).normalized x boneLength

Step 2: 衝突
SpringChain に割り当てた各コライダーについて、
ジョイント tail との距離が0を下回ったら押し出し、
ボーン長を再制約する。

Step 3: 回転の適用
prevTail = currentTail
currentTail = nextTail
to = (nextTail x inverse(parentWorldMatrix x initialLocalMatrix)).normalized
node.rotation = initialLocalRotation x fromToQuaternion(boneAxis, to)
なぜ重要か:Spring Bone は剛体物理ではなく粒子バネの近似です。コライダーを押しのけるだけで跳ね返りをシミュレートせず、空気抵抗の代わりに dragForce を使います。複雑なスカートは MMD の Bullet 物理より軽く感じることがあります。
コライダー
タイプパラメータ用途
Sphereoffsetradius頭、胸、手
Capsuleoffsetradiustail胴体、もも、腕
典型的な設定:頭にスフィアコライダーを置いて髪のめり込みを防ぎ、胴体にカプセルを置いてスカート用にし、手にスフィアを置いて袖のめり込みを防ぎます。
Center Space

Spring Bone はデフォルトでワールド空間で評価します。VRM 1.0 では center ノードを基準空間にできます。慣性は center 空間、重力はワールド空間のままです。キャラクターが動いたとき髪が激しく振れすぎるなら、centerhead ボーンに設定すると頭の動きへ追従しやすくなります。

Blender で Spring Bone を追加する
  1. アーマチュアを選択します。
  2. VRM パネルのSpring Boneエリアを開きます。
  3. Spring Bone Group(1つの SpringChain)を追加します。
  4. チェーンの Root Bones を設定します。
  5. stiffnessgravityPowerdragForce を調整します。
  6. 必要なら Collider Group を追加します。
Unity で調整する(上級)

より細かい物理を調整したい場合は、Blender で基本変換を済ませ、VRM を Unity にインポートして UniVRM で Spring Bone を設定します。UniVRM のビジュアルコライダー編集は微調整に向いています。

パラメータUnity コンポーネント意味
stiffnessVRM10SpringBoneJoint.m_stiffnessForce硬さ
dragForceVRM10SpringBoneJoint.m_dragForce減衰
gravityPowerVRM10SpringBoneJoint.m_gravityPower重力の強さ
hitRadiusVRM10SpringBoneJoint.m_hitRadius衝突半径
コライダーVRM10SpringBoneColliderSphere / Capsule
Spring Bone チェーン、コライダー、物理パラメータ
Spring Bone は少ないパラメータで髪とスカートを揺らします。頭のスフィアと胴体のカプセルがデスクトップコンパニオンでは基本構成です。

Step 8:メタデータを入力して VRM を書き出す

VRM パネルのMetaエリアでモデル情報(VRMC_vrm.meta)を入力します。

項目意味
Name / Titleモデル名My School Uniform Avatar
Author作者名自分の名前またはモデル作者
Versionバージョン1.0
Descriptionモデルの説明MMD PMX から変換し、VRM 1.0 のデスクトップ用に調整
License利用ライセンスreadme を読んで選択
Avatar Permission他人のアバターとしての利用可否Only allowed / allowed / disallowed
Allow Excessively Violent Usage過激な暴力表現の可否Allowed / disallowed
Allow Excessively Sexual Usage性的表現の可否Allowed / disallowed
Commercial Usage商用利用Allowed / disallowed
Third Party Licenses第三者ライセンスの注記元モデル作者の規約を添付
VRM ライセンスフラグ
ライセンス意味
Redistribution再配布の可否
Modification改変の可否
Creditクレジット表記の要否
元のライセンスを尊重:他人の MMD モデルを変換する場合は、書き出す前に readme を確認してください。多くの MMD モデルは商用利用と再配布を禁止しており、改変、配信、商用利用は作者ごとに別途確認が必要です。
書き出し前チェック
  1. モデルがT-Pose(腕を伸ばし、手のひらを下に向けた姿勢)であることを確認します。VRM Humanoid は T-Pose を初期姿勢とするため、別のポーズだとインポート後にアニメーションがずれます。
  2. 書き出しバージョンを選びます。デスクトップコンパニオンと新しいプラットフォームは VRM 1.0、古い互換性が必要なら VRM 0.x。
  3. ファイル → エクスポート → VRM (.vrm)を実行します。
  4. 保存先と書き出し設定を確認して完了します。

最終ステップ:変換した VRM を AniMate にインポートする

`.vrm` を書き出したら完成ではありません。AniMate にインポートする前に、次のチェックリストを確認しましょう。

  • 骨格:必須 Humanoid ボーンがすべて割り当てられ、腕、脚、頭の自動マッピングに抜けがない。
  • 表情:瞬き、口パク、感情表現があり、必要な箇所で VRM 1.0 の Override が blend になっている。
  • マテリアル:透過マテリアルが黒くならず、MToon の明暗境界が意図通り。
  • 物理:髪やスカートが目立ってめり込まず、頭と胴体にコライダーがある。
  • ライセンス:Meta の項目が元の readme と一致している。

AniMate ではデスクトップキャラクターを右クリックして Workshop(工房)を開き、キャラクターを追加から書き出した `.vrm` を選択します。読み込み後はサイズ、位置、マウス反応を調整し、Workshop でモーション、ダンス、ステージを追加できます。AniMate は VRM 0.x と VRM 1.0 を直接インポートでき、キャラクター、モーション、ダンス、音楽連動アセットを1つのライブラリで管理します。

ゴール:アニメーションソフト内だけでしか動かなかった MMD モデルを、瞬き、視線追従、待機、ダンスまでできるデスクトップキャラクターに変えることです。最初は AniMate の内蔵モデルで使い方を確認し、その後変換した VRM をインポートしてください。

関連ページ

トピックページ
VRM デスクトップコンパニオンとはVRM デスクトップコンパニオン
すでに `.vrm` を持っている場合VRM インポートガイド
モデルを探す無料 VRM モデル一覧VRM モデルの探し方
ダウンロードと整理VRM モデルダウンロード完全ガイド
ダンスやステージを追加するAniMate Workshopダンス・ステージガイド
VRM モデルをゼロから作るAI と Codex で VRM モデルを作るデスクトップマスコットの作り方

よくある質問

AniMate は PMX ファイルを直接読み込めますか?

AniMate は VRM デスクトップコンパニオンを前提としているため、`.vrm` が最も確実です。PMX は Blender と VRM Add-on、または Unity と UniVRM で変換してからインポートしてください。

3D ソフトの経験がなくても PMX を VRM に変換できますか?

はい。Blender と VRM Add-on を使えば、プラグインのインストール、PMX のインポート、VRM Model の作成、各パネルでのボーン・表情・マテリアル・物理の設定まで、ほとんどの作業をスクリプトなしで進められます。

VRM 0.x と VRM 1.0 はどちらを選べばよいですか?

新規のデスクトップコンパニオン用途では VRM 1.0 を推奨します。表情名の統一、Expression Override による競合制御、Spring Bone の仕様がより整っているためです。古いプラットフォームで必要な場合だけ VRM 0.x を使います。

変換後に髪やスカートの物理が劣化するのはなぜですか?

VRM Spring Bone は剛体物理ではなく粒子バネ方式です。SpringChain の親子関係を確認し、hitRadiusstiffnessgravityPowerdragForce を調整したうえで、頭部と胴体にコライダーを追加してください。

他人の MMD モデルを変換して商用利用できますか?

まずモデルの readme を確認してください。多くの MMD モデルは商用利用と再配布を禁止しており、改変、配信、商用利用の可否は作者のライセンスごとに確認する必要があります。

変換した MMD キャラクターをデスクトップに

まず AniMate の内蔵モデルで体験を確認し、その後変換した VRM をインポートしてキャラクター、モーション、ダンスを Workshop で管理しましょう。

AniMate をダウンロード

公式リファレンス