Sample 4では外部ファイルからアニメーションを習得し
それを適用します
Sキーを押すと、ファイル1の骨行列がファイル2に適用され
Aキーを押すと解除されます
この処理を使うと、1つのアニメーションファイルを複数のスキン情報ファイルで共有できたりします
観客や、住人なんかに便利だと思います
また、Smaple 3の処理を行わずとも、スキン情報を持った複数ファイル
(顔ファイルや体ファイル等)を1つのアニメーションで再生させることが出来ます
よって、体の装備とかにも使えたり、頭を差し替えたり出来るってな事になります
まず、設定するファイル分のAnimationPlayerを作成し
AnimationPlayer.Updateまでの処理をしてください
それが終わったらアニメーション情報を得たいファイルのBoneTransformsを習得します
- AnimationPlayer.GetBoneTransfomrs();
- AnimationPlayer.GetBoneTransfomrs(int Index);
- AnimationPlayer.GetBoneTransfomrs(string BoneName);
- ()部分に何も設定しなければ全てのBoneTransforms
- 骨のインデックスNoや名前を設定すれば
- 任意骨のBoneTransformsが習得できます
BoneTransformsが習得できたら設定したいファイルのAnimationPlayerに設定します
- AnimationPlayer.SetBoneMatrixP(int index, Matrix BoneTransforms);
- indexには骨のインデックス、Matrixにはその骨に設定したい行列を設定してください
- ちなみに、類似関数
- AnimationPlayer.SetBoneMatrix(int index, Matrix Transforms);
- AnimationPlayer.SetBoneMatrix(string boneName, Matrix Transforms);
- は、骨の回転や移動を渡せるもので
- 顔を相手の方向に向けたりするときなんかに使えると思います
コメント