ジャンプ先: 概要. 戻り値. キーワード. フラグ. Python 例.
cacheEvaluator([cacheFillMode=string], [cacheFillOrder=string], [cacheInvalidate=timerange], [cacheName=string], [cachedFrames=boolean], [cachingPoints=boolean], [creationParameters=boolean], [delegateEvaluation=boolean], [dynamicsAsyncRefresh=boolean], [dynamicsSupportActive=boolean], [dynamicsSupportEnabled=boolean], [flushCache=string], [flushCacheRange=[timerange, boolean]], [flushCacheSync=boolean], [flushCacheWait=boolean], [hybridCacheMode=string], [layeredEvaluationActive=boolean], [layeredEvaluationCachingPoints=boolean], [layeredEvaluationEnabled=boolean], [listCacheNames=boolean], [listCachedNodes=boolean], [listValueNames=boolean], [newAction=string], [newActionParam=string], [newFilter=string], [newFilterParam=string], [newRule=string], [newRuleParam=string], [pauseInvalidation=boolean], [preventFrameSkip=boolean], [resetRules=boolean], [resourceUsage=boolean], [resumeInvalidation=boolean], [safeMode=boolean], [safeModeMessages=boolean], [safeModeTriggered=boolean], [valueName=string], [waitForCache=float])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
cacheEvaluator は、取り消し不可能、照会可能、および編集可能です。
このコマンドはキャッシングの設定をコントロールします。これにより、キャッシング システムを操作できるようになります。
キャッシングを設定するには、一連のルールを使用します。ほとんどのルールは、「フィルタ」と「アクション」で構成されています。フィルタは、ルールを適用する必要があるかどうかを判別するために実行されるテストのことです。アクションは、ルールを適用したときに、基準を満たすノードが受ける効果のことです。
したがって、キャッシング モードは、どのノードがキャッシングされているのかを判別する一連のルールを意味します。このモードは、照会モードで「creationParameters」フラグを使用することにより、JSON 文字列にシリアル化できます。
組み込みのキャッシュ設定モード
既定の組み込みキャッシング モードをサポートするために、いくつかのキャッシュ設定ルール、フィルタ、およびアクションが用意されています。
組み込みフィルタ
-
- evaluationCacheNodes
- このフィルタは、評価用キャッシュでサポートされている既定のリストにノード タイプが含まれているすべてのノードと一致します。現在サポートされているタイプのリストについては、以下のコード例を参照してください。
-
- nodeTypes
- このフィルタは、newFilterParam フラグで指定したリスト内にノード タイプが含まれているすべてのノードと一致します。パラメータの文字列は、「-」または「+」のプリフィックスが付いたノード タイプからなる、カンマ区切りのリストです。フィルタはリスト内を順番に移動し、指定したノード タイプ(または派生したノード タイプ)のノードが見つかった場合は、そこで停止します。プリフィックスが「-」の場合、フィルタは一致しなかったノードを返して、処理を停止します。プリフィックスが「+」の場合、フィルタは一致を返して、処理を停止します。
-
- downstreamNodeTypes
- このフィルタは、newFilterParam フラグで指定されたリスト内にノード タイプが含まれているすべてのノードのうち、該当するノード タイプのノードがすぐ下流に存在するものと一致します。パラメータの文字列は、「type=+type1,+type2 downstreamTypes=+type3,+type3」の形式になります。ノード タイプのリストには、nodeTypes フィルタと同じセマンティックが使用されます。
-
- vp2CacheNodes
- このフィルタは、VP2 キャッシングでサポートされているノード タイプのリストにノード タイプが含まれているすべてのノードと一致します。他のノード タイプに対して VP2 キャッシングを有効にしても、効果はありません。現在サポートされているタイプのリストについては、以下のコード例のコメントを参照してください。
-
- vp2FallbackNodes
- このフィルタは、サポートされていない機能であるために、VP2 キャッシングから評価用キャッシングに戻す必要があるすべてのノードと一致します。つまり、VP2 キャッシングが有効であるにもかかわらず、アニメートされた可視性またはアニメートされたトポロジを持つノードと一致します(頂点、エッジ、フェースなどの個数が変わる可能性があります)。 また、スタティック ジオメトリを持つノード、つまりフレームごとに VP2 形式でキャッシュする必要のある要素がないノードとも一致します。
-
- hybridCache
- このフィルタは、どのメッシュを考慮するかを制御するパラメータに基づいて、デフォーマ エバリュエータによって既に取得済みのすべてのノードに一致します。newFilterParam は、「mode」パラメータに対して次の値を指定できます: 「mode=disabled」は、このフィルタを常に false を返す no-op にします。「mode=smp」は、スムーズ メッシュ プレビューを使用する少なくとも 1 つのメッシュを持つデフォーマ エバリュエータ クラスタの一部であるノードに対して true を返します。「mode=all」はデフォーマ エバリュエータ クラスタの一部であるすべてのノードに対して true を返します。「mode=usePreference」はキャッシュされた再生プリファレンスの「ハイブリッド キャッシュ」プリファレンスを使用します。newFilterParam は、次の値を持つ「allowAnimatedInput」パラメータも受け入れます: 「allowAnimatedInput=0」(デフォルト値)は、メッシュが入力ジオメトリの 1 つがアニメートされるクラスタの一部である場合、そのメッシュを考慮しません。このような設定ではハイブリッド キャッシュの利点が失われます。それは、入力ジオメトリを GPU デフォーマにフィードするにはキャッシュする必要がありますが、ジオメトリがアニメートされるため、出力をキャッシュするのとほぼ同じ量のメモリが必要になるからです。「allowAnimatedInput=1」は、このフィルタリングを削除し、入力がアニメートされているかどうかに関係なくメッシュを取得できるようにします。
組み込みアクション
-
- enableEvaluationCache
- このアクションは、一致するノード上で評価用キャッシュを有効にします。評価用キャッシュが既に有効になっている場合は、効果がありません。
-
- disableEvaluationCache
- このアクションは、一致するノード上で評価用キャッシュを無効にします。評価用キャッシュが既に無効になっている場合は、効果がありません。
-
- disableAllCache
- このアクションは、一致したノード上のすべてのキャッシング タイプを無効にします。
-
- enableVP2Cache
- このアクションは、一致するノード上で VP2 キャッシュを有効にします。「useHardware=1」を newActionParam に渡すと、VP2 ハードウェア キャッシュが有効になり、「useHardware=0」を渡すと、VP2 ソフトウェア キャッシュが使用されます。このアクションを実行すると、一致したノード上で評価用キャッシュが無効化(VP2 キャッシュのみが維持)され、メモリを節約できます。「useevaluation=1」と指定すると、VP2 キャッシュとともに評価用キャッシュが有効になります。たとえば、NURBS サーフェスの場合、選択内容を効率的にハイライト表示するために、評価用キャッシュが維持されます。この操作を行うと、必要に応じて安全を確保するために、評価キャッシュ ルールにもフォールバックが自動的に適用されます。ノードが「vp2FallbackNodes」フィルタの基準と一致する場合は、このフォールバックが適用され、「fallbackFromVP2CacheToEvaluationCache」アクション内のアクションが適用されます。「fallback=0」を使用してこのフォールバックを無効にできますが、この操作を行うと、正確性に関する問題が生じ、不安定になって、クラッシュすることもあります。「useevaluation=0」と指定して、フォールバックの動作に影響を与えないようにします。複数のパラメータを使用する場合は、「useHardware=1 fallback=0 useEvaluation=1」のようにスペース(「 」)で区切ります。
-
- disableVP2Cache
- このアクションは、一致するノード上で VP2 キャッシュを無効にします。VP2 キャッシュが既に無効になっている場合は、効果がありません。
-
- fallbackFromVP2CacheToEvaluationCache
- このアクションは、一致したノード上で VP2 キャッシュを無効にして、代わりに評価用キャッシュを有効にします。
-
- delegateEvaluation
- このアクションにより、一致したノードおよび同じクラスタ内のすべてのノードでデリゲート評価が可能になります。つまり、これらのノードはキャッシュされず、フレームごとに評価されます。その結果として、評価をデリゲートするように設定されたノードの下流に、評価をデリゲートするように設定されていないノードは存在しなくなります。また、デリゲート評価ノードへのすべての入力(つまり、直接の親またはアップストリーム)がキャッシュ ポイントとして追加され、評価されるダウンストリーム ノードに対するデータの準備が完了します。
組み込みルール
-
- evaluationCache
- このルールは、evaluationCacheNodes フィルタと enableEvaluationCache アクションを使用した場合と同じ効果があります。
-
- customEvaluators
- このルールを使用すると、キャッシュ エバリュエータよりも優先度の高いカスタム エバリュエータで要求されているノードに、適切な動作を確実に実行できます。まず、優先度が高いカスタム エバリュエータで要求されているノードで、キャッシングが無効になっていることが確認されます。次に、優先度の高いカスタム エバリュエータがデータを要求している場合、このエバリュエータに属しているクラスタの入力ノードに評価用キャッシング ポイントとしてマークされます。これにより、エバリュエータが評価されているときに、プル型の評価が行われなくなります。
既定モード以外のキャッシュ設定ルールを組み合わせた場合、この組み合わせはサポート対象外とみなされ、ユーザ側の責任で使用する必要があることに注意してください。既定のモードは「Evaluation cache」、「VP2 software cache」、および「VP2 hardware cache」です。各モードを有効にするために使用されるルールのセットは、コード例に示されています。
キャッシュ設定の値を照会する
指定したノードまたはノード リストのキャッシュ設定値を取得するには、照会モードで cacheName フラグを使用します。追加パラメータを指定しない場合、この照会は valueName フラグが「active」に設定されている場合と同じです。つまり、指定したキャッシュがアクティブかどうかが照会されます。
照会したノードがキャッシング ポイントでない場合は、そこに関連付けられているキャッシング設定の情報はなく、空の文字列が返されます(基本的に、非アクティブなすべてのキャッシュ モードと同じです)。照会したノードがキャッシング ポイントである場合は、指定したキャッシュ内にある要求された情報が文字列として返されます。たとえば、「active」値を照会した場合の返り値は、「0」または「1」です。
string | メモリ制限に達したかどうかを示す状態(「resourceUsage」フラグで「out」、「okay」、「low」、または「unlimited」を指定) |
boolean | セーフ モードを有効にするかどうかを示す状態(「safeMode」フラグを指定) |
boolean | セーフ モードがトリガされたかどうかを示す状態(「safeModeTriggered」フラグを指定) |
boolean | フレームのスキップ禁止が有効かどうかを示す状態(「preventFrameSkip」フラグを指定) |
boolean | バックグラウンドでキャッシュが計算されたかどうかを示す状態(「waitForCache」フラグを指定) |
string[] | 使用可能なキャッシュ名(「listCacheNames」フラグを指定)。 |
string | キャッシュ エバリュエータによって現在キャッシュされているノードのリスト(「listCachedNodes」フラグを指定) |
string[] | 使用可能な値の名前(「listValueNames」フラグを指定) |
string[] | 要求されたノードのパラメータ値(「cacheName」フラグを指定) |
string[] | 要求されたノードでデリゲート評価が有効かどうかの状態(「delegateEvaluation」フラグを指定) |
string | JSON 配列として表された、現在モードの作成パラメータ(「creationParameters」フラグを指定) |
string[] | キャッシング ポイントとしてマークされたノードのリスト(「cachingPoints」フラグを指定) |
string[] | レイヤ評価のためにキャッシング ポイントとして強制されるノードのリスト(「layeredEvaluationCachingPoints」フラグを指定) |
int[] | キャッシュされるフレームのリスト(「cachedFrames」フラグを指定) |
string | 現在のキャッシュ充填モード(「cacheFillMode」フラグを指定) |
string | 現在のキャッシュ充填順序(「cacheFillOrder」フラグを指定) |
string | すべてのセーフ モード メッセージのリスト(「safeModeMessages」フラグを指定) |
string | 現在のハイブリッド キャッシュ モード(「hybridCacheMode」フラグを指定) |
照会モードでは、戻り値のタイプは照会されたフラグに基づきます。
Caching
cacheFillMode, cacheFillOrder, cacheInvalidate, cacheName, cachedFrames, cachingPoints, creationParameters, delegateEvaluation, dynamicsAsyncRefresh, dynamicsSupportActive, dynamicsSupportEnabled, flushCache, flushCacheRange, flushCacheSync, flushCacheWait, hybridCacheMode, layeredEvaluationActive, layeredEvaluationCachingPoints, layeredEvaluationEnabled, listCacheNames, listCachedNodes, listValueNames, newAction, newActionParam, newFilter, newFilterParam, newRule, newRuleParam, pauseInvalidation, preventFrameSkip, resetRules, resourceUsage, resumeInvalidation, safeMode, safeModeMessages, safeModeTriggered, valueName, waitForCache
ロング ネーム(ショート ネーム) |
引数タイプ |
プロパティ |
cacheFillMode(cfm)
|
string
|

|
|
キャッシュの充填モードを指定します。有効な値は、再生中にキャッシュを充填する「syncOnly」、再生中に、およびバックグラウンドでキャッシュする「syncAsync」、およびバックグラウンドでのみキャッシュを充填する「asyncOnly」です。照会により、現在のモードが返されます。
|
|
cacheFillOrder(cfo)
|
string
|

|
|
キャッシュがタイムラインを充填する順序を指定します。有効な値は、順方向にキャッシュを充填する「forward」、逆方向にキャッシュを充填する「backward」、順方向と逆方向に同時にキャッシュを充填する「bidirectional」、アニメーションの先頭から順方向にキャッシュを充填する「forwardFromBegin」です。照会により、現在のキャッシュ充填モードが返されます。
|
|
cacheInvalidate(ci)
|
timerange
|
|
|
キャッシュを無効化する必要があるフレーム レンジを指定します。範囲は、正の整数のペアとして指定する必要があります。
使用例:
- -ci "10:20"{Python equivalent: ('10','20')} は、10 ~ 20 の範囲(現在の時間単位、両方の値を含む)のすべてのフレームを意味します。
範囲の一端を省略すると、次の例のように、アニメーション範囲のいずれかの端(または両端)が使用されます。
- -ci "10:" は、時間 10 (現在の時間単位)から(タイムライン上の)アニメーション範囲内の最大時間までのすべてのフレームを意味します。
- -ci ":10" は、(タイムライン上の)アニメーション範囲の最大時間から、時間 10 (現在の時間単位、両方の値を含む)までのすべてのフレームを意味します。
- -ci ":" は、現在のアニメーション範囲の、最小時間から最大時間までのすべてのフレームを指定する短縮形です。
|
|
cacheName(cn)
|
string
|
|
|
値の照会元のキャッシュの名前を指定します。
照会モードでは、このフラグに値が必要になります。
|
|
cachedFrames(cfs)
|
boolean
|
|
|
有効なキャッシュ データを持つフレームのリストを取得します。結果は、(cache-status, begin-frame, end-frame)の複数のトリプレットを含む整数配列です。たとえば 9 個の整数の配列[(0b01, 1, 3), (0b10, 7, 10), (0b11, 13, 15)]のようになります。MEL では、結果は「int[9]」と入力されます。Python では、結果は「Tuple[int,int,int][3]」と入力されます。結果は、フレーム 1:3 (1,2,3)、7:10 (7,8,9,19)、および 13:15 (13,14,15)がキャッシュされていることを示しています。他のフレームには有効なキャッシュ データは含まれていません。「layeredEvaluationActive」が false の場合、cache-status 番号は常に 1 です。「layeredEvaluationActive」が true の場合、cache-status は {1,2,3} のいずれかになります。フレームがアニメーション キャッシュまたはダイナミクス キャッシュのどちらで有効かを表します。エンコーディングは次のとおりです。
- 1 (0b01) : アニメーション キャッシュのみが有効です
- 2 (0b10) : ダイナミクス キャッシュのみが有効です
- 3 (0b11) : アニメーション キャッシュとダイナミクス キャッシュの両方が有効です
上記の例は、フレーム 1:3 はアニメーション キャッシュでのみ有効であることを示しています。フレーム 7:10 は、ダイナミクス キャッシュでのみ有効です。フレーム 13:15 は両方のキャッシュで有効で、「完全キャッシュ」と見なされます。
|
|
cachingPoints(cps)
|
boolean
|
|
|
キャッシング ポイントとしてマークされたノード(少なくとも 1 つのタイプのキャッシュがアクティブなノード)のリストを取得します。
|
|
creationParameters(cp)
|
boolean
|
|
|
現在のモードの作成パラメータを取得します。結果は、各ルールの要素を含む配列を表す JSON 文字列です。各要素は、ルール作成時のパラメータ名とその値の間の関連付けを表します。
|
|
delegateEvaluation(de)
|
boolean
|
|
|
指定されたノードが評価をデリゲートされているかどうかを返します。
|
|
dynamicsAsyncRefresh(dar)
|
boolean
|

|
|
ダイナミクス サポート モードで非同期更新を有効/無効にします。これまでは、シミュレーション システム関連の編集を行うには、ユーザがシーンを再生し直して、結果を確認する必要がありました。非同期更新をアクティブにすると、Maya はシミュレーションをバックグラウンドで処理し、結果の準備ができた後にビューポートを更新します。フレームに一時的な編集内容が含まれている場合は、自動更新が行われないことに注意してください。たとえば、オブジェクトはキーフレームの設定なしで移動されます。
|
|
dynamicsSupportActive(dsa)
|
boolean
|
|
|
ダイナミクス サポート モードがアクティブかどうかを照会します。ダイナミクス サポート モードは、ヘアや流体などの物理シミュレーションをサポートする場合に使用します。このようなノードがシーン内に検出された場合は、このモードがアクティブになり、「enableDynamicsSupport」が true に設定されます。ダイナミクス サポート モードがアクティブな場合は、次の動作に注目してください。
- キャッシュされていないフレームでは、ダイナミクス ノードがフリーズします
- タイム スライダに別のダイナミクス キャッシュ ラインが表示されます
- ダイナミクス キャッシュはアニメーション キャッシュがフィルされた後で開始します
- ダイナミクス キャッシュはバックグラウンドでのみフィルされます
- ダイナミクス キャッシュは常に最初から前方にフィルされます
- ダイナミクス キャッシュの評価ではフォアグラウンドのダイナミクス ノードが更新される場合があります(「dynamicsAsyncRefresh」フラグを参照)
|
|
dynamicsSupportEnabled(dse)
|
boolean
|

|
|
ダイナミクス ノードがキャッシュされた再生に参加できるかどうかを指定します。オフにすると、「セーフ モード」がトリガされて、キャッシングが禁止されます。オンにすると、ダイナミクス ノードはキャッシングに参加するようになり、「ダイナミクス サポート モード」がトリガされます。詳細については、フラグ「dynamicssupportactive」を確認してください。
|
|
flushCache(fc)
|
string
|
|
|
現在のキャッシュをフラッシュするよう指定します。有効な値は、既存のキャッシュをバックアップとして保存する「keep」、現在のキャッシュを削除する「destroy」、および現在のキャシュと管理されているすべてのデータブロックを削除する「disable」です。
|
|
flushCacheRange(fcr)
|
[timerange, boolean]
|
|
|
キャッシュをフラッシュする必要があるフレーム レンジを指定します。 既定では、これによってキャッシュが破壊されます。「flushCache」も設定されている場合は、フラッシュされるキャッシュ範囲で何を行うべきかを定義します。範囲は、正の整数とブール値のペアとして指定する必要があります。
使用例:
- -flushCacheRange "10:20" on {Python equivalent: ('10','20',True)} は、10 ~ 20 の範囲(現在の時間単位、両方の値を含む)のすべてのフレームを意味します。
- -flushCacheRange "12:18" off {Python equivalent: ('12','18',False)} は、12 より前と 18 より後(現在の時間単位、両方の値を含まない)のすべてのフレームを意味します。
範囲の一端を省略すると、次の例のように、アニメーション範囲のいずれかの端(または両端)が使用されます。
- -flushCacheRange "10:" on は、時間 10 (現在の時間単位)から(タイムライン上の)アニメーション範囲内の最大時間までのすべてのフレームを意味します。
- -flushCacheRange ":10" on は、(タイムライン上の)アニメーション範囲の最大時間から、時間 10 (現在の時間単位、両方の値を含む)までのすべてのフレームを意味します。
- -flushCacheRange ":" on は、現在のアニメーション範囲の、最小時間から最大時間までのすべてのフレームを指定する短縮形です。
|
|
flushCacheSync(fcs)
|
boolean
|

|
|
キャッシュのフラッシュ方法(同期または非同期)を指定します。同期の場合は true、非同期の場合は false です。
|
|
flushCacheWait(fcw)
|
boolean
|
|
|
hybridCacheMode(hcm)
|
string
|

|
|
ハイブリッド キャッシュ モードを指定します。有効な値は、ハイブリッド キャッシュを使用しない「disabled」、(キャッシュするのではなく)スムーズ メッシュ プレビューを使用する場合に GPU でサポートされるデフォメーション スタックを持つメッシュを GPU で評価する「smp」、GPU でサポートされるデフォメーション スタックを持つすべてのメッシュを GPU で評価する「all」です。照会により、現在のモードが返されます。
|
|
layeredEvaluationActive(lea)
|
boolean
|
|
|
レイヤ評価モードがアクティブかどうかを照会します。レイヤ評価がアクティブな場合は、バックグラウンド キャッシュ フィル プロセスが複数のパスに分割されて、さまざまなコンテンツ(評価ノード)に対応できるようになります。これらのコンテンツは「評価レイヤ」と呼ばれ、アニメーション評価中にそれぞれ異なる LOD (詳細レベル)を表します。例:
- 1 番目のレイヤには、キャラクタ モーションをなどの通常のアニメーションが含まれています。
- 2 番目のレイヤには、キャラクタのヘアやクロスなどのダイナミクス シミュレーションが含まれています。
Maya はレイヤごとに独立したキャッシュおよびキャッシュ フィル パスを作成します。これらのレイヤを表す追加のキャッシュ バーがタイム スライダの UI に追加されます。各レイヤのバックグラウンド キャッシュ フィル パスは順番に開始されます。上の例では、バックグラウンド キャッシュ フィルの 2 つのパスが観察されます。バックグラウンド キャッシュ フィル(再生フィル)の最初のパスでは、キャラクタ モーションのみが評価およびフィルされ、ヘアおよびクロスはフリーズします。すべてのフレームで 2 番目のレイヤのキャッシュがフィルされた後に、キャッシュ フィルの 1 番目のパスによってヘアおよびクロスの物理シミュレーションが開始し、2 番目のレイヤのキャッシュがフィルされます。1 つのフレームで 2 番目のレイヤのキャッシュがフィルされたら、ユーザはタイムラインをスクラブして、完全に更新されたエフェクトを表示することができます。レイヤ評価がアクティブな場合に、フォアグラウンドで再生または操作を行うと、最初の評価レイヤのみが評価されます。すべての FX コンテンツは、バックグラウンド シミュレーションが完了するまでビューポート内でフリーズします。たとえば、キャラクタの頭部を回転しても、ヘアはリアルタイムで追従しません。フラグ「dynamicsAsyncRefresh」が有効な場合は、シミュレーションがキャッシュされた後、FX コンテンツは自動的に更新されます。詳細については、フラグを参照してください。
|
|
layeredEvaluationCachingPoints(lec)
|
boolean
|
|
|
レイヤ評価のためにキャッシング ポイントとしてマークされたノード リストを取得します。
|
|
layeredEvaluationEnabled(lee)
|
boolean
|

|
|
ダイナミクス サポート モードでレイヤ評価を有効/無効にします。レイヤ化された評価が有効な動作の詳細については、フラグ「dynamicsSupportActive」および「layeredEvaluationActive」を参照してください。このフラグは、テストの目的でプラグイン開発者をサポートするために提供されています。本番環境でこのオプションを無効にすることはお勧めしません。無効にすると、ダイナミクス ノードは通常のアニメーションと同じキャッシュを共有します。ダイナミクス ノードを評価し、フォアグラウンドでキャッシュに保存できます。バックグラウンドの「cacheFillOrder」オプションは「forwardFromBegin」にロックされます。cacheFillMode を「syncOnly」に設定して使用すると、バックグラウンドで評価できないレガシー ダイナミクス ノードをサポートするために使用することもできます。
|
|
listCacheNames(lcn)
|
boolean
|
|
|
listCachedNodes(lcd)
|
boolean
|
|
|
listValueNames(lvn)
|
boolean
|
|
|
指定したキャッシュに対して照会できる値名のリストを返します。
|
|
newAction(na)
|
string
|
|
|
新しいフィルタ/アクション ルール内に作成する新しいアクションの名前を指定します。
|
|
newActionParam(nap)
|
string
|
|
|
新しいフィルタ/アクション ルール内に作成する新しいアクションに渡すパラメータ文字列を指定します。
|
|
newFilter(nf)
|
string
|
|
|
新しいフィルタ/アクション ルール内に作成する新しいフィルタの名前を指定します。
|
|
newFilterParam(nfp)
|
string
|
|
|
新しいフィルタ/アクション ルール内に作成する新しいフィルタに渡すパラメータ文字列を指定します。
|
|
newRule(nr)
|
string
|
|
|
newRuleParam(nrp)
|
string
|
|
|
新規作成するルールに渡すパラメータ文字列を指定します。
|
|
pauseInvalidation(pi)
|
boolean
|

|
|
キャッシュのすべての受信無効化を一時停止します。resumeInvalidation フラグを指定して、対称的に操作します。PauseInvalidation は複数回呼び出すことができ、ネストされた状況で役立ちます。無効化を再開するには、再開を同じ回数だけ呼び出す必要があります。照会した場合、キャッシングが一時停止される期間が返されます。0 を指定すると、キャッシングが再開されます。
|
|
preventFrameSkip(pfs)
|
boolean
|

|
|
フレームのスキップを有効にするかどうかを指定します。フレームのスキップが有効な場合は次の動作が発生し、再生がリアルタイムで行われるように設定されます。
- キャッシュをリアルタイムのフレーム レートで充填できない場合、フレームはスキップされません。
- すべてのフレームがループされた(そのため、すべてのフレームがキャッシュされた)後も、キャッシュからの再生をリアルタイム フレーム レートで実行できない場合、フレームはスキップされます。
- すべてのフレームがキャッシュされる前にメモリ制限に到達した場合、フレームはスキップされます。
- 再生時にキャッシュが無効化されている場合は(キャッシュのフラッシュなど)、(キャッシュが再びいっぱいになるまで)フレームはスキップされません。
|
|
resetRules(rr)
|
boolean
|
|
|
キャッシュ設定ルールをリセットして、ルール セットを空にします。
|
|
resourceUsage(ru)
|
boolean
|
|
|
リソース使用率の現在の状態を文字列として返します。「unlimited」の場合は、リソース制限が無視されています。「out」の場合は、メモリ制限に達しています。「low」の場合は、メモリ使用率が指定された制限の 90% に達しています。「okay」の場合は、メモリ使用率が指定された制限の 90% 未満です。
|
|
resumeInvalidation(ri)
|
boolean
|

|
|
キャッシュのすべての受信無効化を再開します。pauseInvalidation フラグを指定して、対称的に操作します。PauseInvalidation は複数回呼び出すことができ、ネストされた状況で役立ちます。無効化を再開するには、再開を同じ回数だけ呼び出す必要があります。照会した場合、キャッシュが再開されている場合は true、それ以外の場合は false を返します。
|
|
safeMode(sf)
|
boolean
|

|
|
セーフ モードをオンまたはオフにします。照会モードでは、キャッシュ エバリュエータのセーフ モードのステータスを返します。
|
|
safeModeMessages(sfm)
|
boolean
|
|
|
セーフ モードのメッセージをコンソールに出力します。
|
|
safeModeTriggered(sft)
|
boolean
|
|
|
キャッシュ エバリュエータに対してセーフ モードがトリガされたかどうかを返します。
|
|
valueName(vn)
|
string
|
|
|
値を照会するパラメータの名前を指定します。
照会モードでは、このフラグに値が必要になります。
|
|
waitForCache(wfc)
|
float
|
|
|
キャッシュがバックグラウンドで充填されるまで待機するよう指定します。[待機時間(秒)]でタイムアウトします。
|
|
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
import maya.cmds as cmds
# Enable evaluation cache.
cmds.cacheEvaluator(resetRules=True)
cmds.cacheEvaluator(newFilter="evaluationCacheNodes", newAction="enableEvaluationCache")
cmds.cacheEvaluator(newRule="customEvaluators")
# Enable VP2 software cache.
cmds.cacheEvaluator(resetRules=True)
# VP2 cache only works on a subset of types (mesh, nurbsCurve, nurbsSurface, bezierCurve),
# so we still enable evaluation cache for other types.
cmds.cacheEvaluator(newFilter="evaluationCacheNodes", newAction="enableEvaluationCache")
# Enabling VP2 cache will disable evaluation cache on the supported types.
cmds.cacheEvaluator(newFilter="vp2CacheNodes", newAction="enableVP2Cache", newActionParam="useHardware=0")
# Custom evaluators of a higher priority than the caching evaluator
# may need additional caching points around its boundary to evaluate properly.
cmds.cacheEvaluator(newRule="customEvaluators")
# Enable VP2 hardware cache.
cmds.cacheEvaluator(resetRules=True)
# VP2 cache only works on a subset of types (mesh, nurbsCurve, nurbsSurface, bezierCurve),
# so we still enable evaluation cache for other types.
cmds.cacheEvaluator(newFilter="evaluationCacheNodes", newAction="enableEvaluationCache")
# Enabling VP2 cache will disable evaluation cache on the supported types.
# Note that using the vp2CacheNodes filter is equivalent to using the
# "nodeTypes" filter with the right types specified as the "newFilterParam"
# string, i.e. "types=+mesh,+nurbsCurve,+bezierCurve,+nurbsSurface".
cmds.cacheEvaluator(newFilter="vp2CacheNodes", newAction="enableVP2Cache", newActionParam="useHardware=1")
# Custom evaluators of a higher priority than the caching evaluator
# may need additional caching points around its boundary to evaluate properly.
cmds.cacheEvaluator(newRule="customEvaluators")
# Enable evaluation cache using explicit node types.
cmds.cacheEvaluator(resetRules=True)
cmds.cacheEvaluator(newFilter='nodeTypes', newFilterParam='types=-constraint,+transform,+mesh,+nurbsCurve,+bezierCurve,+nurbsSurface,+subdiv,+lattice,+baseLattice,+cMuscleDebug,+cMuscleDirection,+cMuscleDisplace,+cMuscleDisplay,+cMuscleFalloff,+cMuscleKeepOut,+cMuscleObject,+cMuscleSmartCollide,+cMuscleSpline,+cMuscleSurfAttach,-THlocatorShape,+locator,+light,+camera,+imagePlane,+clusterHandle,+deformFunc,+hwShader,+pfxGeometry,+follicle,+motionTrailShape', newAction='enableEvaluationCache')
cmds.cacheEvaluator(resetRules=True)
cmds.cacheEvaluator(newFilter="evaluationCacheNodes", newAction="enableEvaluationCache")
cmds.cacheEvaluator(query=True, creationParameters=True)
# Result: [
{
"newAction": "enableEvaluationCache",
"newFilter": "evaluationCacheNodes"
}
] #
# Query current cache fill mode.
cmds.cacheEvaluator(query=True, cacheFillMode=True)
# Result: syncAsync #
# Set new cache fill mode. Options are: 'asyncOnly', 'syncOnly', 'syncAsync'.
cmds.cacheEvaluator(cacheFillMode = 'syncAsync')
# Query current cache fill order.
cmds.cacheEvaluator(query=True, cacheFillOrder=True)
# Result: bidirectional #
# Set new cache fill order. Options are: 'forward', 'backward', 'bidirectional', 'forwardFromBegin'.
cmds.cacheEvaluator(cacheFillOrder='forward')
# Enable the Dynamics (Simulation) Support
# Outcome: Scenes with Dynamics nodes will be cached in 'Dynamics Support Mode'
# Caching HUD will indicates the state as 'On (Dynamics Mode)'
cmds.cacheEvaluator(dynamicsSupportEnabled=True)
# Query if Dynamics Support Mode is active (Dynamics nodes present in the scene)
cmds.cacheEvaluator(query=True, dynamicsSupportEnabled=True)
# Disable the Dynamics Support
# Outcome: Safe mode being triggered and cached playback is disabled when Dynamics nodes present.
cmds.cacheEvaluator(dynamicsSupportEnabled=False)
# Query or set the Dynamics-Async-Refresh option
cmds.cacheEvaluator(q=True,dynamicsAsyncRefresh=False)
cmds.cacheEvaluator(dynamicsAsyncRefresh=True)
# Query current hybrid cache mode.
cmds.cacheEvaluator(query=True, hybridCacheMode=True)
# Result: disabled #
# Set new hybrid cache mode. Options are: 'disabled', 'smp', 'all'.
cmds.cacheEvaluator(hybridCacheMode = 'smp')
# Invalidate cache for all the frames in range from 10 to 20, inclusive, in current time unit.
cmds.cacheEvaluator(cacheInvalidate=('10','20'))
cmds.cacheEvaluator(cacheInvalidate=('10:20',))
# Invalidate cache for all the frames in range from 10 onwards to the maximum time in the animation range, in current time unit.
cmds.cacheEvaluator(cacheInvalidate=('10:',))
# Invalidate cache for all the frames in range from minimum time on the animation range up to (and including) to 10, in current time unit.
cmds.cacheEvaluator(cacheInvalidate=(':10',))
# Invalidate cache from minimum to maximum time on the current animation range.
cmds.cacheEvaluator(cacheInvalidate=(':',))
# Check whether or not evaluation cache is active on a given node.
cmds.cacheEvaluator("myNode", query=True, cacheName="evaluation")
# Result: [u'1'] #
cmds.cacheEvaluator("myNode", query=True, cacheName="evaluation", valueName="active")
# Result: [u'1'] #
# Check whether or not VP2 cache is active, and using hardware cache.
cmds.cacheEvaluator("myNode", query=True, cacheName="VP2")
# Result: [u'1'] #
cmds.cacheEvaluator("myNode", query=True, cacheName="VP2", valueName="active")
# Result: [u'1'] #
cmds.cacheEvaluator("myNode", query=True, cacheName="VP2", valueName="useHardware")
# Result: [u'1'] #
# Check whether or not delegate evaluation is active on a given node.
cmds.cacheEvaluator("myNode", query=True, delegateEvaluation=True)
# Result: [u'0'] #
cmds.cacheEvaluator(query=True, cachingPoints=True)
# Result: [u'nurbsCone1', u'nurbsConeShape1'] #
# Flush current cache. "keep" and "destroy" flags can be used to store or destroy the existing cache.
cmds.cacheEvaluator(flushCache='destroy')
# Result: destroy #
# Query the cache evaluator's flush synchronization mode.
cmds.cacheEvaluator(query=True, flushCacheSync=True)
# Result: 0 #
# Set the cache evaluator's flush synchronization mode. Valid values are: True for synchronous, False for asynchronous.
cmds.cacheEvaluator(flushCacheSync=True)
# Wait for cache destruction.
cmds.cacheEvaluator(flushCacheWait=True)
# Check the available types of cache.
cmds.cacheEvaluator(query=True, listCacheNames=True)
# Result: [u'evaluation', u'VP2'] #
# Query the list of cached nodes.
cmds.cacheEvaluator(query=True, listCachedNodes=True)
# Result: nurbsSphere1,nurbsSphereShape1 #
# Check the available values that can be queried for available caches.
cmds.cacheEvaluator(query=True, cacheName="evaluation", listValueNames=True)
# Result: [u'active'] #
cmds.cacheEvaluator(query=True, cacheName="VP2", listValueNames=True)
# Result: [u'active', u'useHardware'] #
# Query if prevent-frame-skipping is on.
cmds.cacheEvaluator(query=True, preventFrameSkip=True)
# Result: 1 #
# Set prevent-frame-skipping to on.
cmds.cacheEvaluator(preventFrameSkip=True)
# Query if the cache invalidation is paused. Returns how many times invalidation is paused.
cmds.cacheEvaluator(query=True, pauseInvalidation=True)
# Result: 0 #
# Pause cache invalidation.
cmds.cacheEvaluator(pauseInvalidation=True)
# Resume cache invalidation.
cmds.cacheEvaluator(resumeInvalidation=True)
# Query whether or not the resource limit has been reached.
cmds.cacheEvaluator(query=True, resourceUsage=True)
# Result: okay #
# Turn safe mode state for evaluator on.
cmds.cacheEvaluator(safeMode=True)
# Query the safe mode state for evaluator.
cmds.cacheEvaluator(query=True, safeMode=True)
# Result: 1 #
# If safe mode was triggered return the safe mode messages
cmds.cacheEvaluator(query=True, safeModeMessages=True)
# Result: #
# Check if safe mode was triggered
cmds.cacheEvaluator(query=True, safeModeTriggered=True)
# Result: 0 #
# Wait for 10 seconds for cache to fill in background
cmds.cacheEvaluator(waitForCache=10)
# Result: True #
# Save the current caching mode.
cacheModeString = cmds.cacheEvaluator(query=True, creationParameters=True)
useEval = True
if useEval:
# The return string can be evaluated as regular Python code to get an array
# of dictionaries describing the rule.
cacheMode = eval(cacheModeString)
else:
# json.loads can also be used to parse that string. However, it creates
# unicode strings as keys which cannot be used as argument names when
# unpacking the dictionary.
import json
jsonCacheMode = json.loads(cacheModeString)
cacheMode = []
for rule in jsonCacheMode:
newRule = { key.encode('ascii'): value for key, value in rule.items() }
cacheMode.append(newRule)
# Restore previous cache mode.
cmds.cacheEvaluator(resetRules=True)
for rule in cacheMode:
cmds.cacheEvaluator(**rule)
# Use the CacheEvaluatorManager to get/set modes.
from maya.plugin.evaluator.CacheEvaluatorManager import CacheEvaluatorManager
manager = CacheEvaluatorManager()
currentMode = manager.cache_mode
from maya.plugin.evaluator.CacheEvaluatorManager import CACHE_STANDARD_MODE_VP2_HW, CACHE_STANDARD_MODE_VP2_SW, CACHE_STANDARD_MODE_EVAL
# Enable evaluation cache.
manager.cache_mode = CACHE_STANDARD_MODE_EVAL
# Enable VP2 software cache.
manager.cache_mode = CACHE_STANDARD_MODE_VP2_SW
# Enable VP2 hardware cache.
manager.cache_mode = CACHE_STANDARD_MODE_VP2_HW
# Restore the previous mode.
manager.cache_mode = currentMode