Xファイルのフォーマット(4)
Posted on Thu 05 February 2009 in DirectX
Xファイルのフォーマット(1) Xファイルのフォーマット(2) Xファイルのフォーマット(3)
今回は、アニメーションのまとめ。
アニメーションは以下のように表されます。
AnimationSet AnimationSet_name {
Animation Animation0 {
{ frame1 } //フレーム名frame1のアニメーション
AnimationKey {
キータイプ;
キー数;
キー値;データ個数;データ;, //繰り返し
}
}
}
AnimationSetは、一つのアニメーションを表し、1\~N個のAnimationを持ちます。
Animationは、一つのフレームについての、キーアニメーションデータを格納するAnimationKeyを持ちます。
AnimationKey内のキータイプが0の場合は回転、1の場合はスケーリング、2の場合は平行移動、4の場合は変換行列を表します。
- 回転の場合は、w,x,y,zの順でクォータニオンデータが格納されています
- スケーリングの場合は、x,y,zの順で拡大縮小データが格納されています
- 平行移動の場合は、x,y,zの順で平行移動値データが格納されています
- 変換行列の場合は、4x4の回転、スケーリング、平行移動行列が掛け合わされた状態の行列が格納されています
Frame frame1{
FrameTransformMatrix { //単位行列なので変換は行わない
1.0, 0.0, 0.0, 0.0,
0.0, 1.0, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0,
}
Mesh {
頂点の数;
頂点の座標達;
面の数;
面のを表す頂点のインデックス;
MeshMaterialList {
使用するマテリアルの数;
面の数;
それぞれの面の使用する引数;//繰り返し
使用するマテリアルへの参照;//繰り返し
TextureFilename{
"ファイルへのパス";
}
}
MeshNormals {
法線の数;
法線の座標達;
面法線インデックスの数;
インデックス達;
}
MeshTextureCoords {
頂点の数;
テクスチャ座標u;テクスチャ座標v;//繰り返し
}
}
}
AnimationSet AnimationSet_name {
Animation Animation0 {
{ frame1 } //フレーム名frame1のアニメーション
AnimationKey {
キータイプ;
キー数;
キー値;データ個数;データ;, //繰り返し
}
}
}