評価モードを使用してパフォーマンスをテストする

さまざまな評価モードを使用してパフォーマンスに改善があったかシーンをテストします。各モードのフレーム レートに注意してください。

評価モードをテストするには:

  1. シーンをロードします。
  2. プリファレンス(Preferences)ウィンドウ(ウィンドウ > 設定/プリファレンス > プリファレンス(Windows > Settings/Preferences > Preferences))で、(設定(Settings)の下の)アニメーション(Animation)カテゴリを選択します。
  3. 評価モード(Evaluation Mode)メニューを DG に設定し、ディペンデンシー グラフ(DG)モードになっていることを確認します。

    DG モードは、前の既定の評価モードでした。

  4. DG モードでシーンを再生し、フレーム レートに注意します。
  5. シリアル(Serial)モードに切り替え、シーンを確実に正しく評価します。フレーム レートに注意します。
    注: DG モードよりもシリアル(Serial)モードの方がシーンの実行が遅くなることがあります。これは、シリアル(Serial)モードでは DG モードよりも多くのノードが評価されるためです。
    注: FBIK により評価マネージャでディペンデンシーが失われるため、FBIK を使用するアニメーションはシリアル評価に戻ります。FBIK は廃止されているため、全体インバース キネマティクスおよびリターゲットには HIK を使用します。
  6. シーンが正しく表示される場合は、平行(Parallel)モードに切り替えます。
    注: シリアル(Serial)モードでシーンが間違って表示される場合は、平行(Parallel)モードでも正しく動作しない可能性があります。平行モードでは評価スケジュールが使用されますが、使用可能なすべてのコアに計算が配分されるからです。アトリビュートをダーティにする setDependentsDirty を使用するカスタム プラグインによって、シリアル(Serial)モードで不適切な評価が行われることがあります。
  7. 次に、平行(Parallel)モードである間に、 GPU のオーバーライド(GPU override) をアクティブにします。シーンに標準的な Maya のデフォーマが設定されているかメッシュのジオメトリが高密度である場合に、パフォーマンスが向上する可能性があります。結果は、シーン内のデフォーマとメッシュの密度によって異なります。
    注: GPU オーバーライド エバリュエータはシリアルまたは平行評価モードで使用できますが、GPU のオーバーライド(GPU override)は VP1 では機能しません。

スピードを解析する場合:

平行モードのトラブルシューティング

平行シーン評価では、利用可能なすべてのコンピュータ リソースを活用して、シーンをよりすばやく評価します。これは、ダーティな伝播機構を使用してシーンの説明から評価グラフを作成することで実現されます。

評価グラフで正しい結果を生成するには、DG でディペンデンシーを正確に表現する必要があります。ノードのディペンデンシーがシーンに適さない場合は、平行評価で間違った結果が生成されるか、Maya がクラッシュすることがあります。

たとえば、NodeA が NodeB と NodeC に依存するシナリオでは、評価マネージャは NodeB と NodeC の状態を計算してから A の状態を計算する必要があります。

セーフ モードでは、平行評価がアクティブなときに整合性テストが実行されます。このセーフ モードでは、最も一般的なタイプのエラーである無効なディペンデンシーを防ぐことができます。セーフ モードでエラーが検出されると、HUD で示されているとおりに評価マネージャがシリアル評価モードに戻ります。セーフ モードがシリアル評価に戻ることができる理由の 1 つは、ノード インスタンスが複数のスレッドによって同時に評価される場合です。

セーフ モードでは多くの問題が検出されますが、すべての問題が検出されるわけではありません。したがって、問題を検出するために、シーンをより詳細に(コストをかけて)チェックを実行する新しい解析モードがあります。

解析モード

解析モードは、アニメータがリグを再生したり操作するときに必要とするものではありません。それよりは、新しいリグを作成するときに評価の問題をトラブルシューティングするリグ作成者やテクニカル ディレクタ向けに設計されています。

解析モード:

解析モードは、シリアル モードのときに次のコマンドを使用してアクティブ化します。

dbtrace -k evalMgrGraphValid;

解析モードを無効にするには、次を入力します。

dbtrace -k evalMgrGraphValid -off;

一度アクティブにすると、評価が実行されるたびにエラー検出が行われます。検出された不足ディペンデンシーは、ご使用のコンピュータの一時フォルダのファイルに保存されます。たとえば、Windows では %TEMP%¥_MayaEvaluationGraphValidation.txt に結果が保存されます。

2 つのノード間の不足ディペンデンシーを示すサンプル レポートを次に示します。

フレーム 56 で不足ディペンデンシーが検出された場合

{

NodeA.output <-x- NodeB

NodeA.output <-x- NodeC [cluster]

}

フレーム 57 で不足ディペンデンシーが検出された場合

{

NodeA.output <-x- NodeB

NodeA.output <-x- NodeC [cluster]

}

"<-x-" という記号はディペンデンシーの方向を示し ます。"[cluster]" という用語は、ノードがサイクル クラスタ内部にあることを意味します。つまり、サイクルのいずれかのノードが評価順序外のアトリビュート アクセスをしています。

上記の例では、NodeB が NodeA の "output" アトリビュートにアクセスしていて、これが間違っています。このようなタイプのディペンデンシーは、評価グラフに現れず、平行モードで評価を実行したときにクラッシュの原因になることがあります。

解析モードの不足ディペンデンシー

不足ディペンデンシーが発生する理由は多数あり、それらの対処方法は、問題の原因によって異なります。解析モードで、シーンに不正なディペンデンシーによるエラーが検出された場合は、ノードでダーティ伝搬を管理するための方針を再検討します。同じアトリビュートを毎回ダーティにする "優れた" ダーティ伝搬を常に使用するようにします。アトリビュートの再計算のトリガに、異なる複数の通知メッセージを使用しないようにします。

アニメーション シーン内で問題のある領域を識別するための情報については「プロファイラを使用してアニメーションのボトルネックを特定する」を参照してください。