ジャンプ先: 概要. 戻り値. キーワード. 関連. フラグ. Python 例.
dgInfo([allNodes=boolean], [connections=boolean], [dirty=boolean], [nodes=boolean], [nonDeletable=boolean], [outputFile=string], [propagation=boolean], [short=boolean], [size=boolean], [subgraph=boolean], [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
| ロング ネーム(ショート ネーム) |
引数タイプ |
プロパティ |
allNodes(all)
|
boolean
|
|
|
|
connections(c)
|
boolean
|
|
|
|
dirty(d)
|
boolean
|
|
|
ダーティかクリーンのノード、プラグ、接続のみを出力します。既定では両方を出力します。
|
|
nodes(n)
|
boolean
|
|
|
指定したノードを出力します。-all を使用した場合はグラフ全体を出力します。
|
|
nonDeletable(nd)
|
boolean
|
|
|
削除できないノードも含まれます(通常は無視します)。
|
|
outputFile(of)
|
string
|
|
|
STDERR ではなく、ファイル FILE に出力を送信します。
|
|
propagation(p)
|
boolean
|
|
|
伝播、非伝播のノード、プラグ、接続のみを出力します。既定では両方を出力します。
|
|
short(s)
|
boolean
|
|
|
ロング フォーマットではなく、ショート フォーマットで出力します。
|
|
size(sz)
|
boolean
|
|
|
指定したすべてのノードのデータブロック サイズを表示します。選択したすべてのノードのタプルの値が返されます(NumberOfNodes、NumberOfDatablocks、TotalDatablockMemory)。
|
|
subgraph(sub)
|
boolean
|
|
|
ノードまたはプラグが影響するサブグラフを出力します。-all を使用した場合は、サブグラフにグループ化されたグラフにすべてのノードを出力します。
|
|
type(nt)
|
string
|
|
|
NODETYPE タイプのノードのみを表示するよう、出力をフィルタします。
|
|
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
# create a node
cmds.createNode('transform',name='NODE')
cmds.setKeyframe('NODE.translate')
# Print all things connected to node NODE
cmds.dgInfo( 'NODE', c=True )
# Print all connections currently in the graph
cmds.dgInfo( c=True, all=True )
# Print the datablock size of all nodes currently in the graph
cmds.dgInfo( sz=True, all=True )
# Return: [12, 12, 12314]
# Print all connections to attribute tx on node NODE
cmds.dgInfo('NODE.tx',c=True)
# Print all dirty connections in the entire graph
cmds.dgInfo( c=True, all=True, d=True )