-
モーションファイル ( *.mot ) のフォーマットリファレンスです。
Version 1.0.0.0
- 最初のフォーマット
| ファイルヘッダ |
| 情報ヘッダ |
| ルートトランスフォーム |
| ボディトランスフォーム |
-
ファイルヘッダは、モーションファイルを識別するためのものになります。
- MOT_FILE_HEADER
| ファイルヘッダ ( MOT_FILE_HEADER ) |
| 名前 | 型 | 説明 | 値 |
|---|---|---|---|
| magic | UInt32 | マジック値 | 0x5F544F4D |
| version | UInt32 | バージョン | 0x01000000 |
情報ヘッダ
-
情報ヘッダはモーション全般の情報を記述します。
- MOT_INFO_HEADER
| 情報ヘッダ ( MOT_INFO_HEADER 構造体 ) |
| 名前 | 型 | 説明 |
|---|---|---|
| name | wchar_t[32] | 名前 |
| framesPerSec | Float32 | 1秒間のフレーム数 |
| lastFrame | Float32 | 最後のフレーム |
| speed | Float32 | 再生速度 |
| blendRatio | Float32 | ブレンド率 |
| startLoopFrame | Float32 | ループを開始するフレーム |
| endLoopFrame | Float32 | ループを終了するフレーム |
| numRTCurve | UInt32 | ルートトランスフォームのカーブの数 |
| numBTCurve | UInt32 | ボディトランスフォームのカーブの数 |
ルートトランスフォーム、ボディトランスフォーム 共通の定義
- MOT_QUATERNION_KEY 構造体
- MOT_VECTOR_KEY 構造体
| 名前 | 型 | 説明 |
|---|---|---|
| frame | Float32 | フレーム |
| reserve | UInt32 | 予約領域 |
| value | Float32[4] | クォータニオン { X, Y, Z, W } |
| 名前 | 型 | 説明 |
|---|---|---|
| frame | Float32 | フレーム |
| value | Float32[3] | ベクトル { X, Y, Z } |
ルートトランスフォーム
-
ルートトランスフォームはルートにのみ影響を与えるため、カーブは最大で一つになります。
- MOT_ROOT_CURVE_DESC
そのため、MOT_INFO_HEADER::numRTCurve の値は、0 もしくわ 1 になります。
また、MOT_INFO_HEADER::numRTCurve の値が 0 の場合は存在しません。
ルートトランスフォーム
|
カーブ
-
ルートトランスフォームは、ローテーション、トランスレーションのみをサポートします。
| カーブの記述 | MOT_ROOT_CURVE_DESC |
| ローテーションキーの配列 | MOT_QUATERNION_KEY [ MOT_RT_DESC::numRotationKey ] |
| トランスレーションキーの配列 | MOT_VECTOR_KEY [ MOT_RT_DESC::numTranslationKey ] |
| 名前 | 型 | 説明 |
|---|---|---|
| numRotationKey | UInt32 | ローテーションキーの数 |
| numTranslationKey | UInt32 | トランスレーションキーの数 |
ボディトランスフォーム
-
ボディトランスフォームは複数のノードに対して影響を与えるため、カーブは MOT_INFO_HEADER::numBTCurve の値の数だけ存在します。
- MOT_BODY_CURVE_DESC
また、MOT_INFO_HEADER::numBTCurve の値が 0 の場合は存在しません。
ボディトランスフォーム
|
カーブ
-
ボディトランスフォームは、スケーリング、ローテーション、トランスレーションの全てをサポートします。
| カーブの記述 | MOT_BODY_CURVE_DESC |
| スケーリングキーの配列 | MOT_VECTOR_KEY [ MOT_BT_DESC::numScalingKey ] |
| ローテーションキーの配列 | MOT_QUATERNION_KEY [ MOT_BT_DESC::numRotationKey ] |
| トランスレーションキーの配列 | MOT_VECTOR_KEY [ MOT_BT_DESC::numTranslationKey ] |
| 名前 | 型 | 説明 |
|---|---|---|
| name | wchat_t[32] | 名前 対象となるアクターモデルのノードの名前になります。 |
| numScalingKey | UInt32 | スケーリングキーの数 |
| numRotationKey | UInt32 | ローテーションキーの数 |
| numTranslationKey | UInt32 | トランスレーションキーの数 |
| reserve | UInt32 | 予約領域 |