メインコンテンツまでスキップ

マーテリアルモーフィングの有効化

MMDモデルはマーテリアルモーフィングをサポートしており、これはアニメーションを通じてマーテリアルパラメータを制御できる機能です。

この機能は通常、アニメーションを通じてMMDモデルの一部をオンまたはオフにするために使用されます。

この機能は、babylon-mmdではデフォルトで無効になっていますが、MmdModelオブジェクトを作成する際にマーテリアルプロキシインプリメンテーションを渡すことで有効化できます。

const mmdModel = mmdRuntime.createMmdModel(mmdMesh, {
materialProxyConstructor: MmdStandardMaterialProxy
});
備考

「babylon-mmd」パッケージルートをインポートした場合、サイドエフェクトを通じてマーテリアルモーフィングが自動的に有効になります。

これは使いやすさのための便利機能ですが、上記のようにマーテリアルプロキシを渡して明示的に有効化することが推奨されます。

マーテリアルプロキシ

マーテリアルパラメータを操作する際、MMDランタイムはマーテリアルに直接アクセスせず、マーテリアルプロキシを通してアクセスします。

このアプローチにより、任意のタイプのマーテリアルを使用するMMDモデルでマーテリアルモーフィングのサポートが可能になります。

babylon-mmdは2つのマーテリアルプロキシを提供しており、IMmdMaterialProxyインターフェースを実装するクラスを作成することで独自のものを実装することもできます。

  • MmdStandardMaterialProxyMmdStandardMaterialを使用するMMDモデル用のマーテリアルプロキシ
  • StandardMaterialProxyStandardMaterialを使用するMMDモデル用のマーテリアルプロキシ
警告

MMDモデルで使用されているマーテリアルと互換性のないマーテリアルプロキシを渡すと、ランタイムエラーが発生する可能性があります。