ジャンプ先: 概要. 戻り値. キーワード. 関連. フラグ. MEL 例.
dgInfo [-allNodes] [-connections] [-dirty boolean] [-nodes] [-nonDeletable] [-outputFile string] [-propagation boolean] [-short] [-size] [-subgraph] [-type string]
dgInfo は、取り消し不可能、照会不可能、および編集不可能です。
このコマンドは、DG に関する情報をプレーン テキストで出力します。出力される情報の範囲は、all フラグを使用した場合はグラフ全体、ノードやプラグを指定した場合はコマンド ライン上のノードやプラグ、そしてセレクション リストの順序で出力されます。接続の各プラグには、出力ラインの末尾に一緒に表示される状態情報が 2 つあります。2 つの各状態の 2 つの有効値が表示されます。DG がこれらの値からデータをプルした場合(通常は評価を使用)、またはこれらの値を使用してダーティ メッセージをプッシュした場合、値は更新されます。接続を通してデータをプルする方法には細かな点がいくつかありますが、わかりやすくするためにこれを「評価」と呼ぶことにします表示される値は、CLEAN または DIRTY の後に PROP または BLOCK が続きます。最初のキーワードの意味は、次のとおりです。
- CLEAN は、プラグの接続の評価に成功し、それ以降、ダーティ メッセージが通過していないことを意味します。また、接続の宛先がソースから値を受け取っていることも示します。
- DIRTY は、前回、プラグの接続の宛先側で評価が行われた後に、ダーティ メッセージがその接続を通過したことを意味します。
注: ノードのデータには他の要因に応じて異なる独自のダーティ状態があるため、接続がクリーンであっても、プラグのデータがクリーンであるとは限りません。その逆も同様です。2 番目のキーワードの意味は、次のとおりです。
- PROP は、接続内をダーティ メッセージが通過し、すべての宛先に転送することができることを意味します。
- BLOCK は、この接続でダーティ メッセージが停止し、どの宛先にも送信されないことを意味します。これは、アニメートされたシーケンスのフレーム変更など、多数の値の変更時にダーティ フラグが過剰に伝播することを防止するための最適化です。
CLEAN BLOCK のような組み合わせは、有効な DG では発生しません。これは、前回のダーティ メッセージ以降にプラグ接続が評価されたものの、そこに送信された新しいダーティ メッセージが伝播されないことを示します。 すなわち、下流のノードにはグラフが変更されたことが通知されず、適切に評価が行われません。この無効な状態から復旧するには、コマンド dgdirty -a を入力してダーティなものをすべてマークし、適切な評価を再開する必要がありますこのコマンドは DG ワールドのリセット/再起動に相当します。両方の状態タイプは、接続タイプに応じて動作が異なります。
- シンプル A -> B: 接続の両端のプラグは同じ状態情報を共有します。B から A に評価要求が送信されるか、A から B にダーティ メッセージが送信されると、状態情報が更新されます。
- 展開 A -> B、A -> C: A、B、および C にはそれぞれ一意の状態情報があります。B と C は上記のように動作します。A の状態情報は B および C にリンクされています。これが CLEAN になるのは、B と C の両方が CLEAN である場合のみです。BLOCK になるのは、B と C が両方とも BLOCK である場合のみです。
- イン-アウト A -> B、C -> A: A、B、および C にはそれぞれ一意の状態情報があります。B と C は上記のように動作します。A の状態情報は B および C にリンクされています。CLEAN|DIRTY フラグを指定すると、後方検索の後に、前方検索が行われます。
if( C == CLEAN ) A = CLEAN else if( B == CLEAN ) A = CLEAN
ダーティ メッセージが A を通過すると、BLOCK 状態が設定されます。A がクリーンに設定されているか、評価が A を通過した場合は、PROP 状態が設定されます。
これらのルールには、他の例外がいくつかあります。
-
この状態の変更情報はすべて、標準のコンテキストを使用するダーティ メッセージおよび評価にのみ適用されます。getAttr -t TIME コマンドを使用した場合のような、他のコンテキストにおける変更は、接続の状態に影響を与えません。
-
パラメータ カーブおよびその他のパッシブ入力(パラメータ カーブから取得されたブレンド ノードなど)は、伝播を無効にしません。伝播を無効にすると、キーフレーミング ワークフローを実行できなくなります。
-
メッセージによっては、接続状態情報が完全に無視することができます。たとえば、ノードの状態アトリビュートが変更されると、接続はブロッキング接続に変更されることがあるため、メッセージをすべての宛先の方向に 1 ステップ以上伝播する必要があります。このようにして、情報を更新できます。
-
特定の操作では伝播状態の使用をグローバルに無効にして、メッセージ フローを削減できます。最も単純な例は、評価マネージャでグラフを構築している場合です。評価マネージャはすべてのノードにアクセスする必要があるため、伝播をブロックできません。
-
メッセージ システムは接続を経由するサイクル メッセージに対して保護されていますが、メッセージが接続を完全にバイパスして、ノードに直接送信されることがあります。DAG の親はこの方法で、子にメッセージを送信します。したがって、ノードとの接続がすべて BLOCK 状態になっていても、そのノードは引き続きダーティ メッセージを受信できます。
なし
debug, dependency, graph, node, output, connection
dbfootprint, dgdirty, dgeval
allNodes, connections, dirty, nodes, nonDeletable, outputFile, propagation, short, size, subgraph, type
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
コマンド内でフラグを複数回使用できます。
|
// create a node
createNode -n NODE transform;
setKeyframe NODE.translate;
// Print all things connected to node NODE
dgInfo -c NODE;
// Print all connections currently in the graph
dgInfo -c -all;
// Print the datablock size of all nodes currently in the graph
dgInfo -sz -all;
// Return: 12 12 12314 //
// Print all connections to attribute tx on node NODE
dgInfo -c NODE.tx
// Print all dirty connections in the entire graph
dgInfo -c -all -d on;