[WEB Add] MMD to GLB - MMDモデルをアニメーション付きGLBに変換

[WEB Add] MMD to GLB - MMDモデルをアニメーション付きGLBに変換

概要

MMD(MikuMikuDance)のPMXモデルとVMDモーションファイルを読み込み、アニメーション付きGLBファイルに変換するWebツール。 アップロード不要で、ファイルはローカル環境(ブラウザ内)で処理され、外部サーバーには送信されません。

MMD形式は専用ソフトウェアでの利用が前提ですが、GLBに変換することでThree.js、Babylon.js、Blender、Sketchfabなど、glTF対応のあらゆる環境で利用可能になります。

🔗 ツールを開く: MMD to GLB

MMDモデルは以下でお借りしています。

3D model: にーしか氏

「MMD to GLB」 でMMDの読み込み及びGLB変換。

[WEB Add] MMD to GLB - MMDモデルをアニメーション付きGLBに変換

出力したGLBモデルを再生テスト。

[WEB Add] MMD to GLB - MMDモデルをアニメーション付きGLBに変換

使い方

1. PMXモデルを読み込む(ZIP形式)

画面左上の「MODEL (ZIP)」エリアからモデルを読み込む。

  • ドラッグ&ドロップ — PMXファイルとテクスチャをまとめたZIPファイルを破線エリアにドロップ
  • クリックで選択 — エリアをクリックしてファイル選択ダイアログから選ぶ

PMXモデルはテクスチャファイル(PNG/JPG/TGA/BMP等)と一緒にZIPに圧縮する必要があります。PMX単体では正しく表示されません。

[WEB Add] MMD to GLB - 1. PMXモデルを読み込む(ZIP形式)

2. ファイル情報の確認

読み込みが完了すると、FILE INFO セクションにモデルの解析データが表示される。

項目内容
NameZIPファイル名
PMXPMXファイル名
Triangles総ポリゴン(三角形)数
Vertices総頂点数
Materialsマテリアル数
Bonesボーン数
Morphsモーフ(表情)数

プレビューエリアにはモデルが描画され、マウス操作(回転・拡縮・パン)で確認できる。

[WEB Add] MMD to GLB - 2. ファイル情報の確認

3. VMDアニメーションの追加(オプション)

右パネルの「ANIMATIONS」エリアにVMDファイルをドロップする。

  • 複数のVMDファイルを追加可能
  • クリップ名はインラインで編集可能(デフォルトはファイル名)
  • リスト上のクリックでプレビュー再生
  • ✕ボタンで個別削除

アニメーションなしでもポーズ固定のGLBとしてエクスポートできる。

[WEB Add] MMD to GLB - 3. VMDアニメーションの追加(オプション)

4. エクスポート設定

EXPORT OPTIONS セクションでオプションを指定する。

オプション内容
Remove Morphs (blend shapes)モーフデータ(表情)を削除。ファイルサイズが大幅に減少する。NPCなど表情が不要な用途向け。
Convert to Unlit materialsマテリアルをUnlit(影なし)に変換。描画負荷が下がる。
[WEB Add] MMD to GLB - 4. エクスポート設定

5. エクスポートとダウンロード

▶ EXPORT GLB ボタンをクリックすると、アニメーションベイク→マテリアル変換→GLBエクスポートが実行される。

処理完了後、RESULT セクションに元のZIPサイズとGLBサイズの比較が表示される。 ⬇ DOWNLOAD ボタンをクリックすると .glb ファイルがダウンロードされる。

なぜMMDからGLBに変換するのか

互換性

MMDのPMX形式は専用ソフトウェアでしか扱えませんが、GLB(glTF Binary)はWeb3Dの国際標準フォーマットです。変換することで以下の環境で利用可能になります。

  • Three.js / Babylon.js — WebGLアプリケーション
  • Blender — 3Dモデリング・レンダリング
  • Sketchfab — 3Dモデルの公開・共有
  • Unity / Unreal Engine — ゲームエンジン

パフォーマンス

MMDLoaderはランタイムでPMXのパース、トゥーンマテリアル処理、物理演算(Bullet Physics)を行いますが、GLBにすると標準的なGLTFLoaderだけで読み込めます。複数キャラクターを同時に表示する場合、描画負荷が大幅に下がります。

アニメーション

VMDモーションデータはMMD専用形式ですが、GLBに変換することでglTFの標準AnimationClipとして扱えます。Three.jsのAnimationMixerで再生・切り替えが可能です。

const mixer = new THREE.AnimationMixer(model);
const idle = gltf.animations.find(a => a.name === 'idle');
mixer.clipAction(idle).play();
[WEB Add] MMD to GLB -  アニメーション

アニメーションベイクについて

VMDモーションデータはMMDのボーン構造に依存するため、GLTFExporterでそのまま書き出すと正しく再生されない場合があります。

本ツールでは、MMDAnimationHelperで各フレームを実行し、ボーンの変換結果(位置・回転)を30FPSでサンプリングして新しいAnimationClipを構築する「ベイク方式」を採用しています。これにより、IK(逆運動学)やモーション補間の結果を含めた正確なアニメーションがGLBに焼き込まれます。

ZIP形式について

PMXモデルはテクスチャファイルへの相対パス参照を持っています。テクスチャとPMXファイルをまとめてZIPに圧縮してください。

model.zip
├── model.pmx
├── tex/
│   ├── body.png
│   ├── face.png
│   └── hair.png
└── toon/
    ├── toon01.bmp
    └── toon02.bmp

ZIP内のディレクトリ構造は保持されます。PMXからの相対パスでテクスチャが解決されます。

関連ツール

ツール用途
VRM to GLBVRM + VRMAからアニメーション付きGLBを生成
GLB CompressorGLBモデルのWebP + Draco圧縮
VRM OptimizerVRMモデルのWebP + Draco圧縮
VRM Texture ReplacerVRMテクスチャの確認・差し替え
VRM ValidatorVRMファイルのバリデーション

技術仕様

項目内容
レンダリングThree.js 0.160.0 (WebGL)
MMDパースMMDLoader + mmdparser
アニメーションMMDAnimationHelper(ベイク方式)
GLBエクスポートGLTFExporter
ZIP展開JSZip
フレームワークAstro(CDN + importmap)
データ処理全てブラウザ内、サーバー通信なし

対応ブラウザ

WebGL対応のモダンブラウザ(Chrome / Edge / Firefox / Safari)。 ZIP展開およびメモリ上のバイナリ処理を伴うため、PC環境での利用を推奨。

利用上の注意

  • MMDモデル・モーションデータの利用にあたっては、各データの利用規約を遵守してください
  • 改造・再配布が許可されているデータのみを使用してください