入力アニメーション ファイル形式 — MRTK2
全体の構造
入力アニメーションバイナリファイルは、64ビット整数のマジック数で始まります。 この数値の 16 進数表記では0x6a8faf6e0f9e42c6
であり、有効な入力アニメーション ファイルを識別するために使えます。
次の 8 バイトは、ファイルのメジャーバージョン番号とマイナーバージョン番号を宣言する 2 つの Int 32 値です。
ファイルの残りの部分はアニメーション データに使用され、バージョン番号が変わる場合があります。
セクション | 型 |
---|---|
マジック ナンバー | Int64 |
メジャー バージョン番号 | Int32 |
マイナー バージョン番号 | Int32 |
アニメーション データ | バージョンセクションを参照 |
バージョン 1.1
入力アニメーションデータは、3つのブール値で構成されます。アニメーションにカメラ、手、視線のデータが含まれているかどうかを示し、その後にアニメーション曲線のシーケンスが続きます。 曲線が存在するかどうかは、これらのブール値の値によって異なります。 各曲線に異なる数のキーフレームを含めることができます。
セクション | Type | メモ |
---|---|---|
カメラポーズがある | Boolean | |
手のデータがある | Boolean | |
目の視線入力がある | Boolean | |
カメラ | ポーズ曲線 | [カメラポーズがある] が true の場合のみ |
手を左にトラック | ブール型曲線 | [手のデータがある] が true の場合のみ |
手を右にトラック | ブール型曲線 | [手のデータがある] が true の場合のみ |
手を左にピンチ | ブール型曲線 | [手のデータがある] が true の場合のみ |
手を右にピンチ | ブール型曲線 | [手のデータがある] が true の場合のみ |
手の左ジョイント | ジョイントポーズ曲線 | [手のデータがある] が true の場合のみ |
手の右ジョイント | ジョイントポーズ曲線 | [手のデータがある] が true の場合のみ |
目の視線入力 | 射線曲線] | [目の視線入力がある] が true の場合のみ |
バージョン 1.0
入力アニメーション データは、一連のアニメーション曲線で構成されます。 アニメーション曲線の数と意味は固定ですが、各曲線は異なる数のキーフレームを含められます。
セクション | 型 |
---|---|
カメラ | ポーズ曲線 |
手を左にトラック | ブール型曲線 |
手を右にトラック | ブール型曲線 |
手を左にピンチ | ブール型曲線 |
手を右にピンチ | ブール型曲線 |
手の左ジョイント | ジョイントポーズ曲線 |
手の右ジョイント | ジョイントポーズ曲線 |
ジョイントポーズ曲線
手ごとに、ジョイントアニメーション曲線のシーケンスが格納されます。 ジョイントの数は固定され、各ジョイントにポーズ曲線のセットが格納されます。
セクション | 型 |
---|---|
なし | ポーズ曲線 |
手首 | ポーズ曲線 |
Palm | ポーズ曲線 |
ThumbMetacarpalJoint | ポーズ曲線 |
ThumbProximalJoint | ポーズ曲線 |
ThumbDistalJoint | ポーズ曲線 |
ThumbTip | ポーズ曲線 |
IndexMetacarpal | ポーズ曲線 |
IndexKnuckle | ポーズ曲線 |
IndexMiddleJoint | ポーズ曲線 |
IndexDistalJoint | ポーズ曲線 |
IndexTip | ポーズ曲線 |
MiddleMetacarpal | ポーズ曲線 |
MiddleKnuckle | ポーズ曲線 |
MiddleMiddleJoint | ポーズ曲線 |
MiddleDistalJoint | ポーズ曲線 |
MiddleTip | ポーズ曲線 |
RingMetacarpal | ポーズ曲線 |
RingKnuckle | ポーズ曲線 |
RingMiddleJoint | ポーズ曲線 |
RingDistalJoint | ポーズ曲線 |
RingTip | ポーズ曲線 |
PinkyMetacarpal | ポーズ曲線 |
PinkyKnuckle | ポーズ曲線 |
PinkyMiddleJoint | ポーズ曲線 |
PinkyDistalJoint | ポーズ曲線 |
PinkyTip | ポーズ曲線 |
ポーズ曲線
ポーズ曲線は、位置ベクトル用の 3 つのアニメーション曲線と、それに続く回転四元数用の 4 つのアニメーション曲線のシーケンスです。
セクション | 型 |
---|---|
位置 X | 浮動曲線 |
位置 Y | 浮動曲線 |
位置 Z | 浮動曲線 |
回転 X | 浮動曲線 |
回転 Y | 浮動曲線 |
回転 Z | 浮動曲線 |
回転 W | 浮動曲線 |
射線曲線
放射線曲線は、原点ベクトル用の 3 つのアニメーション曲線と、それに続く方向ベクトル用の 3 つのアニメーション曲線のシーケンスです。
セクション | 型 |
---|---|
Origin X | 浮動曲線 |
Origin Y | 浮動曲線 |
Origin Z | 浮動曲線 |
方向 X | 浮動曲線 |
方向 Y | 浮動曲線 |
方向 Z | 浮動曲線 |
浮動曲線
浮動小数点曲線は、可変数のキーフレームを持つ本格的なベジェ曲線です。 各キーフレームには、時間、曲線の値、および各キーフレームの左右の接線と重みが格納されます。
セクション | 型 |
---|---|
事前ラップ モード | Int32、ラップ モード |
POSTラップ モード | Int32、ラップ モード |
キーフレームの数 | Int32 |
キーフレーム | 浮動キーフレーム |
浮動キーフレーム
浮動キーフレームには、接線値と重み値が基本的な時間と値とともに格納されます。
セクション | 型 |
---|---|
Time | Float32 |
値 | Float32 |
InTangent | Float32 |
OutTangent | Float32 |
InWeight | Float32 |
OutWeight | Float32 |
WeightedMode | Int32、重み付けモード |
ブール型曲線
ブール型曲線は、オン/オフ値の単純なシーケンスです。 キーフレームごとに、曲線の値が即座にフリップします。
セクション | 型 |
---|---|
事前ラップ モード | Int32、ラップ モード |
POSTラップ モード | Int32、ラップ モード |
キーフレームの数 | Int32 |
キーフレーム | ブール型キーフレーム |
ブール型キーフレーム
ブール型キーフレームには、時間と値のみが格納されます。
セクション | 型 |
---|---|
Time | Float32 |
値 | Float32 |
ラップ モード
ラップ前モードとラップ後モードのセマンティクスは、Unity WrapMode定義に従います。 これらは、次のビットの組み合わせです。
値 | 説明 |
---|---|
0 | 既定値:既定値のリピートモードのより高い設定を読み取ります。 |
1 | 1 回: 時間がアニメーション クリップの最後に達すると、クリップの再生が自動的に停止し、時間がクリップの先頭にリセットされます。 |
2 | ループ: 時間がアニメーション クリップの最後に達すると、時間は先頭から続行します。 |
4 | ピンポン:時間がアニメーションクリップの最後に達すると、開始と終了の間でピンポンのように繰り返されます。 |
8 | ClampForever: アニメーションを再生します。 最後に達すると、最後のフレームの再生を維持し、再生が停止されません。 |
重み付けモード
重み付けモードのセマンティクスは、Unity WeightedMode の定義に従います。
値 | 説明 |
---|---|
0 | None: 曲線セグメントを計算するときに、inWeight と outWeight の両方を除外します。 |
1 | In: 前の曲線セグメントを計算するときに inWeight を含めます。 |
2 | Out: 次の曲線セグメントを計算するときに outWeight を含めます。 |
3 | Both: 曲線セグメントを計算するときに、inWeight と outWeight を含めます。 |