FBXのモーション再生
モーションビルダーから作ったアニメーション込のFBXを、Bloom Postprocess Sampleのtankと入れ替えましたが
アニメーションが再生されません
アニメーションデータやセットアップデータが読みこまれていないようなのですが、なにかアニメーション再生するための
サンプルプログラムは存在しますか?
回答
上記の問題はプロパティを変更することにより解消しました
デフォルトでFBXをContentフォルダにセットしたときは、"Content Processor"が Model-XNA Framework
でしたが、これを SkinnedModelProcessor に変更したら表示されました
ただしFBXは XSI6 Mod Tool で作成したもので、MayaからのFBXは試していません
すべての返信
恐らく、Bloom Postporcessサンプルではなく、Simple Animation Sampleの事だと思われますが、このサンプルは単にプログラムでボーン情報を書き換えてアニメーションしているだけで、アニメーションデータを再生している訳ではありません。
アニメーションデータはコンテントパイプライン内でBoneContent.Animationsに変換されるようになって、そこからデータを持ってくる必要があります。スキンアニメーションの場合はSkinned Model Sample内でAnimationClip.csとSkinnedModelProcessor.csが参考になります。またリジットアニメーションの場合でも各ボーンのアニメーションデータを使うというところまではスキンアニメーションと同じ処理をするので同じサンプルが参考になると思います。
確かに、現状ではリジットアニメーションサンプルがないのでサンプル追加することをチーム内で検討します。
ありがとうございます
たしかにSimple Animation Sampleのほうですね
また質問なのですが、Simple Animation SampleでFBXのデータを入れ替えたのですが
protected override void LoadGraphicsContent(bool loadAllContent)
{
if (loadAllContent)
{
// Load the model.
//currentModel = content.Load<Model>("Content/dude");
currentModel = content.Load<Model>("Content/ex"); // <-★1// Look up our custom skinning information.
SkinningData skinningData = currentModel.Tag as SkinningData;if (skinningData == null) // <- ★2
throw new InvalidOperationException
("This model does not contain a SkinningData tag.");// Create an animation player, and start decoding an animation clip.
animationPlayer = new AnimationPlayer(skinningData);AnimationClip clip = skinningData.AnimationClips["Take 001"];
animationPlayer.StartClip(clip);
}
}★1でデータ先を変更したのですが、★2でnullでエラーとなります
(ex.fbxはmayaでつくった簡単なサンプルデータです)
★2を通すためには、FBXのデータの持ち方とかSkinningData.csを変更しないといけないのでしょうか?
基本的な質問でもうしわけございませんが、よろしくお願いいたします
上記の問題はプロパティを変更することにより解消しました
デフォルトでFBXをContentフォルダにセットしたときは、"Content Processor"が Model-XNA Framework
でしたが、これを SkinnedModelProcessor に変更したら表示されました
ただしFBXは XSI6 Mod Tool で作成したもので、MayaからのFBXは試していません


