MMDボーンツール
MMDのボーン名を日本語から英語へ翻訳し、Blender・Unity・VRM・Mixamo と相互変換。どのVMDモーションもどのモデルにも合わせられます。
無料・オープンソース(MIT)· バージョン 1.0.0 · インストール不要 · Python 3.10以上がある環境: pip install mmd-bone-tools
できること
ボーン名の英語化
PMX/PMD/VMDのボーン名・モーフ名・材質名・表示枠・剛体・ジョイント名を英語に翻訳。左腕 → arm_L、右スカート前2 → skirt_front2_R。
命名規則の相互変換
日本語MMD・英語MMD・Blender(arm.L)・Unity Humanoid・VRM 1.0・Mixamo の間で準標準ボーン110本を変換。
モーションのリターゲット
VMDのボーン名をモデルに合わせ、Aポーズ⇔Tポーズなど初期姿勢の違いを補正。移動量も自動調整。
一括処理・zip展開
フォルダごとまとめて翻訳。日本語ファイル名のzipも文字化けせずに展開。
データは名前だけ変更
名前以外はバイト単位でそのまま保存。長い名前はVMDの15バイト制限に合わせて短縮。
アプリ・コマンド・ライブラリ
日英表示のデスクトップアプリ、mmdbt コマンド、Python API。
使い方
- 最新リリースから Windows 用 zip をダウンロードして展開します。
- MMDBoneTools.exe を起動するか、.pmx/.pmd/.vmd ファイルをドラッグ&ドロップします。
- 「翻訳」「変換」「リターゲット」を選んでボタンを押します。結果は元ファイルの隣に _en 付きで保存されます。
コマンドライン
mmdbt translate model.pmx --rename
mmdbt translate dance.vmd
mmdbt retarget dance.vmd --model model_en.pmx
mmdbt convert model.pmx --to unity
mmdbt lookup 上半身2
mmdbt unpack download.zip
mmdbt batch ~/Downloads/mmd
よくある質問
MMDのボーン名を日本語から英語に変換するには?
MMDボーンツールで .pmx / .pmd / .vmd を追加して「翻訳する」を押します。コマンドでは mmdbt translate モデル.pmx --rename です。
モーションを読み込んでもモデルが動かないのはなぜ?
MMDはボーン名でモーションを適用します。日本語名(左腕)のモーションは英語名(arm_L)のモデルを動かせません。mmdbt retarget モーション.vmd --model モデル.pmx で合わせられます。
MMDモデルやモーションを Blender・Unity・VRChat・Mixamo で使うには?
mmdbt convert モデル.pmx --to blender(unity / vrm / mixamo)でボーン名を変換するか、mmdbt map モデル.pmx --to unity で対応表を書き出します。
センター・上半身・下半身・足IKの英語名は?
center、upper body、lower body、leg IK_L / leg IK_R です。下の対応表をご覧ください。
無料ですか?
はい。MITライセンスのオープンソースです。
MMDボーン名 対応表
準標準ボーンの各命名規則での名前(左側のみ表示。右側は 右 / _R / .R / Right)。
| Japanese MMD | English MMD | Blender | Unity Humanoid | VRM 1.0 | Mixamo |
|---|---|---|---|---|---|
| 全ての親 | master | master | – | – | – |
| センター | center | center | – | – | – |
| グルーブ | groove | groove | – | – | – |
| 腰 | waist | waist | – | – | – |
| 下半身 | lower body | lower_body | Hips | hips | mixamorig:Hips |
| 上半身 | upper body | upper_body | Spine | spine | mixamorig:Spine |
| 上半身2 | upper body2 | upper_body2 | Chest | chest | mixamorig:Spine1 |
| 上半身3 | upper body3 | upper_body3 | UpperChest | upperChest | mixamorig:Spine2 |
| 首 | neck | neck | Neck | neck | mixamorig:Neck |
| 頭 | head | head | Head | head | mixamorig:Head |
| 頭先 | head tip | head_tip | – | – | mixamorig:HeadTop_End |
| 両目 | eyes | eyes | – | – | – |
| 左目 | eye_L | eye.L | LeftEye | leftEye | mixamorig:LeftEye |
| あご | jaw | jaw | Jaw | jaw | – |
| 舌 | tongue | tongue | – | – | – |
| 腰キャンセル左 | waist cancel_L | waist_cancel.L | – | – | – |
| 左肩P | shoulderP_L | shoulderP.L | – | – | – |
| 左肩 | shoulder_L | shoulder.L | LeftShoulder | leftShoulder | mixamorig:LeftShoulder |
| 左肩C | shoulderC_L | shoulderC.L | – | – | – |
| 左腕 | arm_L | arm.L | LeftUpperArm | leftUpperArm | mixamorig:LeftArm |
| 左腕捩 | arm twist_L | arm_twist.L | – | – | – |
| 左腕捩1 | arm twist1_L | arm_twist1.L | – | – | – |
| 左腕捩2 | arm twist2_L | arm_twist2.L | – | – | – |
| 左腕捩3 | arm twist3_L | arm_twist3.L | – | – | – |
| 左ひじ | elbow_L | elbow.L | LeftLowerArm | leftLowerArm | mixamorig:LeftForeArm |
| 左手捩 | wrist twist_L | wrist_twist.L | – | – | – |
| 左手捩1 | wrist twist1_L | wrist_twist1.L | – | – | – |
| 左手捩2 | wrist twist2_L | wrist_twist2.L | – | – | – |
| 左手捩3 | wrist twist3_L | wrist_twist3.L | – | – | – |
| 左手首 | wrist_L | wrist.L | LeftHand | leftHand | mixamorig:LeftHand |
| 左ダミー | dummy_L | dummy.L | – | – | – |
| 左親指0 | thumb0_L | thumb0.L | LeftThumbProximal | leftThumbMetacarpal | mixamorig:LeftHandThumb1 |
| 左親指1 | thumb1_L | thumb1.L | LeftThumbIntermediate | leftThumbProximal | mixamorig:LeftHandThumb2 |
| 左親指2 | thumb2_L | thumb2.L | LeftThumbDistal | leftThumbDistal | mixamorig:LeftHandThumb3 |
| 左親指先 | thumb tip_L | thumb_tip.L | – | – | mixamorig:LeftHandThumb4 |
| 左人指1 | fore1_L | index1.L | LeftIndexProximal | leftIndexProximal | mixamorig:LeftHandIndex1 |
| 左人指2 | fore2_L | index2.L | LeftIndexIntermediate | leftIndexIntermediate | mixamorig:LeftHandIndex2 |
| 左人指3 | fore3_L | index3.L | LeftIndexDistal | leftIndexDistal | mixamorig:LeftHandIndex3 |
| 左人指先 | fore tip_L | index_tip.L | – | – | mixamorig:LeftHandIndex4 |
| 左中指1 | middle1_L | middle1.L | LeftMiddleProximal | leftMiddleProximal | mixamorig:LeftHandMiddle1 |
| 左中指2 | middle2_L | middle2.L | LeftMiddleIntermediate | leftMiddleIntermediate | mixamorig:LeftHandMiddle2 |
| 左中指3 | middle3_L | middle3.L | LeftMiddleDistal | leftMiddleDistal | mixamorig:LeftHandMiddle3 |
| 左中指先 | middle tip_L | middle_tip.L | – | – | mixamorig:LeftHandMiddle4 |
| 左薬指1 | third1_L | ring1.L | LeftRingProximal | leftRingProximal | mixamorig:LeftHandRing1 |
| 左薬指2 | third2_L | ring2.L | LeftRingIntermediate | leftRingIntermediate | mixamorig:LeftHandRing2 |
| 左薬指3 | third3_L | ring3.L | LeftRingDistal | leftRingDistal | mixamorig:LeftHandRing3 |
| 左薬指先 | third tip_L | ring_tip.L | – | – | mixamorig:LeftHandRing4 |
| 左小指1 | little1_L | little1.L | LeftLittleProximal | leftLittleProximal | mixamorig:LeftHandPinky1 |
| 左小指2 | little2_L | little2.L | LeftLittleIntermediate | leftLittleIntermediate | mixamorig:LeftHandPinky2 |
| 左小指3 | little3_L | little3.L | LeftLittleDistal | leftLittleDistal | mixamorig:LeftHandPinky3 |
| 左小指先 | little tip_L | little_tip.L | – | – | mixamorig:LeftHandPinky4 |
| 左足 | leg_L | leg.L | LeftUpperLeg | leftUpperLeg | mixamorig:LeftUpLeg |
| 左ひざ | knee_L | knee.L | LeftLowerLeg | leftLowerLeg | mixamorig:LeftLeg |
| 左足首 | ankle_L | ankle.L | LeftFoot | leftFoot | mixamorig:LeftFoot |
| 左つま先 | toe_L | toe.L | – | – | mixamorig:LeftToe_End |
| 左足IK親 | leg IK parent_L | leg_IK_parent.L | – | – | – |
| 左足IK | leg IK_L | leg_IK.L | – | – | – |
| 左つま先IK | toe IK_L | toe_IK.L | – | – | – |
| 左足D | leg D_L | leg_D.L | – | – | – |
| 左ひざD | knee D_L | knee_D.L | – | – | – |
| 左足首D | ankle D_L | ankle_D.L | – | – | – |
| 左足先EX | toe EX_L | toe_EX.L | LeftToes | leftToes | mixamorig:LeftToeBase |