メインコンテンツへスキップ
VMDファイルは、キャラクターの動き、カメラの軌跡、その他のアニメーション情報を記録するために主に使用されます。本記事では、VMDファイルの構造と使用方法について詳しく説明します。

ファイル構造

VMDファイルはバイナリストリームファイルで、複数の部分を含んでいます。
  • 最初の30バイトはバージョンの説明です:
    • v1 バージョンは “Vocaloid Motion Data file” で識別されます
    • v2 バージョンは “Vocaloid Motion Data 0002” で識別されます
  • モデル名(ShiftJISでエンコード):
    • v1では10バイト
    • v2では20バイト
各部分の先頭には uint32_t 型の値があり、その部分のキーフレームの数を示します。以下のレコードが含まれます:
  • ボーンキーフレーム(Bone KeyFrame)
  • モーフキーフレーム(Morph KeyFrame)
  • カメラキーフレーム(Camera KeyFrame)
  • ライトキーフレーム(Light KeyFrame)

キーフレームレコードの詳細

ボーンキーフレームレコード

struct BoneKeyFrame {
  char BoneName[15];     // ボーン名 (ShiftJISエンコード)
  uint32_t FrameTime;    // キーフレーム時間
  float Translation[3];  // 位置座標 (X, Y, Z)
  float Rotation[4];     // 回転クォータニオン (X, Y, Z, W)
  uint8_t Curve[64];     // X, Y, Z方向の曲線データ (各16バイト)
};

モーフキーフレームレコード

struct MorphKeyFrame {
  char MorphName[15];    // モーフ名 (ShiftJISエンコード)
  uint32_t FrameTime;    // キーフレーム時間
  float Weight;          // 重み値
};
カメラとライトのキーフレームの構造は似ていますが、それぞれ特有のパラメータを含んでいます。

使用と互換性

VMDファイルは通常、MikuMikuDanceソフトウェアと共に使用され、異なるモデル間でアニメーションデータのインポートとエクスポートをサポートします。
異なるモデルは異なるボーン構造を持つ可能性があるため、VMDファイルを使用する際は、モデルとアニメーションデータの互換性を確認する必要があります。不自然なアニメーション効果を避けるためです。

まとめ

VMDファイル形式は、MMDアニメーション制作において欠かせない部分です。アニメーション内のさまざまなパラメータを正確に記録することで、ユーザーは滑らかで表現力豊かなアニメーションを作成することができます。その構造と使用方法を理解することは、高品質なMMDアニメーションを制作する上で非常に重要です。

もっと知る

VMDファイル形式に関する詳細情報はMMD Wikiをご覧ください
I