このライブラリはあなたが独自に開発したエフェクトを使用し、法線マップ、ライティングアルゴリズム、バンプマップ、またはその他のどんなエフェクトでもアニメーションモデルに適用することができます。

このチュートリアルのサンプル「CustomShader.zip」は Using Custom Effects のページからダウンロードして下さい。

プロジェクトのセットアップ
「ドワーフが歩いたり走ったりするアニメーション」 チュートリアルで使用したプロジェクトをセットアップして下さい。

エフェクトのコーディング
○最初のステップはあなたが使いたいカスタムエフェクトを作成します。ここでいくつか制限事項があります。
 ●メッシュが非スキニングの場合、エフェクトのパラメータに "Matrix World;" を持っておかなければなりません。
 ●メッシュがスキニングの場合、エフェクトのパラメータに "Matrix World;" と "float4x4 MatrixPalette[ palette size constant ];" の両方を持っておかなければなりません。
○プロジェクトに新しいテキストファイルを追加し、名前を "MyPaletteEffect.fx" として下さい。
エフェクトのソースコードを書きます。

エフェクトの使用
○カスタムエフェクトを使用する方法は3つあります。
○最初に次のブロックを削除して下さい。
  1. // Remove this from LoadGraphicsContent
  2. foreach (ModelMesh mesh in model.Meshes)
  3. {
  4. foreach (BasicPaletteEffect effect in mesh.Effects)
  5. {
  6. effect.View = view;
  7. effect.Projection = projection;
  8. }
  9. }
  10.  
○最初の方法は最も簡単です。ModelAnimator クラスを作成する前にモデルにあなたが独自に開発したエフェクトを設定します。
○また、ModelAnimator クラスを作成した後でもエフェクトを変更することもできます。
○最も柔軟性のある方法として、コンテントパイプラインでエフェクトを設定できます。
○Update メソッドのエフェクト更新を次のソースコードに置き換えて下さい。
  1. // Remove this code from Update if applicable
  2. foreach (ModelMesh mesh in dwarfAnimator.Model.Meshes)
  3. foreach (BasicPaletteEffect effect in mesh.Effects)
  4. effect.View = view;
  5.  
  6. foreach (ModelMesh mesh in ground.Model.Meshes)
  7. foreach (BasicEffect effect in mesh.Effects)
  8. effect.View = view;
  9.  
  1. // Add this code to Update
  2. foreach (ModelMesh mesh in dwarfAnimator.Model.Meshes)
  3. foreach (Effect effect in mesh.Effects)
  4. effect.Parameters["View"].SetValue(view);
  5.  
  6. foreach (ModelMesh mesh in ground.Model.Meshes)
  7. foreach (Effect effect in mesh.Effects)
  8. effect.Parameters["View"].SetValue(view);
  9.  

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