質問する質問する
 

回答済みFBXのモーション再生

  • 2007年9月6日 4:24HelloJapon ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     

     

    モーションビルダーから作ったアニメーション込のFBXを、Bloom Postprocess Sampleのtankと入れ替えましたが

    アニメーションが再生されません

    アニメーションデータやセットアップデータが読みこまれていないようなのですが、なにかアニメーション再生するための

    サンプルプログラムは存在しますか?

回答

  • 2007年10月2日 10:13HelloJapon ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み

    上記の問題はプロパティを変更することにより解消しました

     

    デフォルトでFBXをContentフォルダにセットしたときは、"Content Processor"が Model-XNA Framework

    でしたが、これを SkinnedModelProcessor に変更したら表示されました

     

    ただしFBXは XSI6 Mod Tool で作成したもので、MayaからのFBXは試していません

     

すべての返信

  • 2007年9月7日 23:39Yuichi Ito - MSFT ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     

    恐らく、Bloom Postporcessサンプルではなく、Simple Animation Sampleの事だと思われますが、このサンプルは単にプログラムでボーン情報を書き換えてアニメーションしているだけで、アニメーションデータを再生している訳ではありません。

     

    アニメーションデータはコンテントパイプライン内でBoneContent.Animationsに変換されるようになって、そこからデータを持ってくる必要があります。スキンアニメーションの場合はSkinned Model Sample内でAnimationClip.csとSkinnedModelProcessor.csが参考になります。またリジットアニメーションの場合でも各ボーンのアニメーションデータを使うというところまではスキンアニメーションと同じ処理をするので同じサンプルが参考になると思います。

     

    確かに、現状ではリジットアニメーションサンプルがないのでサンプル追加することをチーム内で検討します。

  • 2007年9月11日 9:43HelloJapon ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     

    ありがとうございます

    たしかに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を変更しないといけないのでしょうか?

     

    基本的な質問でもうしわけございませんが、よろしくお願いいたします

  • 2007年10月2日 10:13HelloJapon ユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダルユーザーのメダル
     回答済み

    上記の問題はプロパティを変更することにより解消しました

     

    デフォルトでFBXをContentフォルダにセットしたときは、"Content Processor"が Model-XNA Framework

    でしたが、これを SkinnedModelProcessor に変更したら表示されました

     

    ただしFBXは XSI6 Mod Tool で作成したもので、MayaからのFBXは試していません