このチュートリアルはXMLファイルを使用し、アニメーションを分割する方法を紹介します。多くのエクスポータは一つのモデルから複数のアニメーションをエクスポートすることができないので、これは便利です。

このチュートリアルはXMLの基本的な知識があることを前提としています。もしXMLの知識がなかったとしても心配しないで下さい。XMLはあなたが学ぶことの中で最も簡単なものです。XMLについてはGoogleで検索して下さい。

始める前において覚えてほしいことがあります。モデルに関連付けされたXMLファイルを変更した場合、全てリビルドするか、モデルをコンテントパイプラインを使用し強制的にリビルドしなければなりません。

「ドワーフが歩いたり走ったりするアニメーション」 チュートリアルで使用したプロジェクトをセットアップして下さい。
○「dwarfmodelanimation.xml」を削除して下さい。
「dwarfmodel.x」に関連付けされた新しいXMLファイルを作成して下さい。
○XMLファイルに新しいアニメーションノードを作成します。これはアニメーションをパートに再分割し、そのパートを元のアニメーションと置き換えることを示します。
  1. // Add this as the XML file root
  2. <animation>
  3.  
  4. </animation>
  5.  
複数アニメーションファイルのアニメーション分割の選択に関する情報
○ドワーフのファイルには、15個の AnimTicksPerSecond が設定されていることが分かります。次のようにアニメーションの速さを表すノードを追加して下さい。
  1. // Add this as a child of animation
  2. <tickspersecond>15.0</tickspersecond>
  3.  
○<animation>ノードの子ノードとして<animationsubset>ノードを追加します。このノードは元の時間セグメントから新しいアニメーションを作成することを表します。
  1. // Add this as a child of animation
  2. <animationsubset>
  3.  
  4. </animationsubset>
  5.  
○新しいアニメーションの名前が必要です。<animationsubset>の子ノードを追加し、「attack」という名前を付けます。
  1. // Add this as a child of animationsubset
  2. <name>attack</name>
  3.  
○時間セグメントの使い方を指定する方法が2つあります。
○<tickspersecond>ノードを追加する場合、キーフレームのインデックスを指定できます。
○開始と終了が分かっている場合、それを同様に使うことができます。
  1. // Add this as a child of animationsubset
  2. <startframe>127</startframe> OR <starttime>8.46666</starttime>
  3. <endframe>141</endframe> OR <endtime>9.4</endtime>
  4.  
○あなたの好きなように <animationsubset>ノードを追加できます。
○ここでのポイントは「全てリビルド」を選択し、コンテントパイプラインにXMLファイルの変更を反映させることです。
○最後のステップは、アニメーションを表示させることです。
  1. // Add this to the LoadGraphicsContent method
  2. AnimationController attack = new AnimationController(
  3. this, dwarfAnimator.Animations["attack"]);
  4. foreach (BonePose p in dwarfAnimator.BonePoses)
  5. {
  6. p.CurrentController = attack;
  7. }
  8.  

最終更新:2009年06月21日 12:51