基礎編4: babylon-mmdの歴史と役割
本章のゴール
Babylon.jsにおけるMMD公式サポートの歴史と、現在のbabylon-mmdが果たす役割の全体像を理解する。
本章では、なぜ素のBabylon.jsだけでなく「babylon-mmd」という拡張パッケージを使用するのか、その開発の歴史と役割について解説します。
1.旧公式ローダーからプラグイン化への流れ
Babylon.jsは過去、公式リポジトリの一部(組み込みの公式ローダー)としてMMDフォーマット(PMX / VMD 等)の読み込み機能を提供していました。
しかし、Babylon.js本体が常に最先端の技術を取り入れて進化を続ける中で、美麗な表現や、物理エンジン(Havok)の対応が進み、ローダーの整理が行われるなどして、新たな仕組みが求められるようになりました。
2.2023年:新生「babylon-mmd」の開発スタート
こうした中、2023年に、有志の開発者(nonon氏 / noname0310氏)個人のプロジェクトとしてbabylon-mmd の開発がスタートしました。
同氏は最新のBabylon.jsに完全対応するモダンなツール群として完成させました。
3.babylon-mmd の守備範囲(機能の全体像)
babylon-mmd を導入することで、Babylon.jsの空間上にMMDの世界を再現するための強力な機能が利用可能になります。主な機能は以下の通りです。
-
モデルローダー と MMDマテリアルの再現
モデルデータを読み込み、MMD特有の質感を再現するための専用マテリアル(MmdStandardMaterial)を適用し、ブラウザ上で元のMMDに近い描画スタイルを表現します。 -
アニメーションローダー と 同期
モーションデータから、キャラクターの骨格(ボーン)の動きだけでなく、カメラの視点移動や、表情モーフ(目、口、眉などの変化)を正確に読み込み、Babylon.jsのアニメーションシステムに統合して再生します。 -
オーディオとの同期
ブラウザ上で音楽を再生すると同時に、再生時間に合わせてモーションを追従させるためのプレイヤー機能(MmdRuntime)を提供します。 -
物理演算の最適化(Ammo.js / Havokの連携)
MMD特有の物理演算(スカートや髪の揺れ)には、MMD元来の挙動に近いBullet PhysicsのWebAssembly版(Ammo.jsベース)を利用しつつ、空間全体に影響する最新のHavokエンジンと共存可能な仕組みを提供します。
お疲れ様でした。これでbabylon-mmd登場の歴史が把握できましたね。