On this page |
概要
リファレンスは、参照したファイル内のツリーを取り込み、そのツリーを現行ツリー内のブランチ上で"graft(接ぎ木)"させます。
例えば、以下のツリーから始めると仮定します:
参照する前のシーンツリー
/Lights/ light1 light2 /Models/ tableside_lamp
/Models/tableside_lamp
がlamp.usd
を参照し、そのファイルが以下の内容だとします:
lamp.usd
の内容
/lamp/ base bulb shade socket switch
このファイルを参照した後のツリーは、以下のようになります。
参照した後のシーンツリー
/Lights/ light1 light2 /Models/ tableside_lamp/ base bulb shade socket switch
-
参照(
/Models/tableside_lamp
)を含んだPrimと参照先のPrim(lamp.usd
内の/lamp
)は、(オピニオン強度で決定したプロパティ値でオーバーライドして)合成されますが、その合成されたPrimは、参照元のPrimの名前を維持します。 -
内容を参照する時は、参照先のファイル内のPrim(上記の例だと
/lamp
)を指定しなければなりません。そして、そのPrimはルート(/
)にすることができません。そのため、他のレイヤーから参照されることを想定してファイルを作成する時は、単一ルートプリミティブ下にその内容が収まるようにしてください。(ファイルのデフォルトプリミティブを指定することができます。ファイルを参照した際に、そのファイル内の特定のPrimを指定しなかった場合には、そのファイルの"デフォルトプリミティブ"が取得されます。)
リファレンスは、個々の小さなアセットを大きなシーンに"graft(接ぎ木)"させるのに役立ちます。 特に、 リファレンスは、同じファイルを何回も別々の場所に読み込むことができる唯一の方法です (サブレイヤー化はツリー全体に対して動作するので、同じファイルを何回もサブレイヤー化しても何の効果もありません)。
単純なゴミ箱アセット
#usda 1.0 ( defaultPrim = "TrashCan" ) def Xform "TrashCan" ( kind = "component" ) { def Cylinder "Can" { token axis = "Y" bool doubleSided = 0 double height = 2 double radius = 1 } }
セット内の3部屋でゴミ箱アセットを3回参照したファイル
#usda 1.0 () def Xform "Scene" { def Xform "Set" { def "BathroomTrashCan" ( append references = @./trashcan.usda@ ) { double3 xformOp:translate = (2, 0, 1.4) uniform token[] xformOpOrder = ["xformOp:translate"] } def "KitchenTrashCan" ( append references = @./trashcan.usda@ ) { double3 xformOp:translate = (16.01, 5, -43.072) uniform token[] xformOpOrder = ["xformOp:translate"] } def "OfficeTrashCan" ( append references = @./trashcan.usda@ ) { double3 xformOp:translate = (-7.12, 0, 11.9) uniform token[] xformOpOrder = ["xformOp:translate"] } } }
Reference LOPと
Stage Manager LOPが参照を作成します。
Graft LOPも同様ですが、これはファイルから参照するのではなくて、LOPネットワーク内のどこからかのシーングラフツリーにブランチを挿入します。
Tips
-
リファレンスしたいPrimに既存の参照が含まれている場合、その新しい既存の参照が すべての既存の参照 と合成されます。 新しい参照を追加する前にそれらの既存の参照をクリアする方法に関しては、 Pre-Operation パラメータを参照してください。
How to
シーングラフツリー内のPrim上でリファレンスされる"ターゲット"としては外部ファイルを指定することが多いですが、このノードでは、他のLOPノードの出力のPrimをリファレンスすることもできます。
To... | Do this |
---|---|
外部ファイルのPrimをリファレンスする |
|
LOPノードの出力からPrimをリファレンスする |
|
1番目の入力のシーングラフツリー内の他のPrimをリファレンスする |
|
すべての既存リファレンスをブロック(遮断)する |
|
1個の既存リファレンスをブロック(遮断)する |
|
パラメータ
Primitive Path
リファレンスするブランチの取り付け先となるシーングラフパス。 リファレンスしたPrimは、このPrim上にオーバーレイされ、そのリファレンスしたPrimの子PrimsはこのPrimの子Primsになります。 このPrimが存在しなかった場合は、このノードがそのPrimを作成します。
Primitive Kind
Primitive Path にPrimが存在しなかった場合、このノードがそのPrimを作成します。 このノードがそのPrimを作成する必要がある場合、そのPrimには、このKindが設定されます。
Parent Primitive Type
Primitive Path にPrimが存在しなかった場合、このノードがそのPrimを作成します。 このノードがそのPrimを作成する必要がある場合、その途中で作成する必要のある中間Primsがこのタイプになります。
Make Instanceable
Destination Primを("ネイティブインスタンス"と同様の)インスタンス化可能としてマークします。 これによって、同じブランチを複数の場所でリファレンスした場合にメモリが節約されますが、リファレンスしたPrimの子Primsは編集不可になります。
Reference Type
リファレンスするPrimに適用するコンポジションアークのタイプ。
Reference Files
外部USDファイルからPrimを参照します。
Payload Files
外部USDファイルからPrimをペイロードとして参照します。
Reference From Multi-input
このノードのマルチ入力に接続されているノードのどれかのPrimを参照します。
Payload From Multi-input
このノードのマルチ入力に接続されているノードのどれかのPrimをペイロードとして参照します。
Reference From First Input
1番目の入力のシーングラフツリーの他のPrimを参照します。
Inherit From First Input
(1番目の入力の)シーングラフツリーの他のPrimに"Inherits"コンポジションアークを適用します。
Specialize From First Input
(1番目の入力の)シーングラフツリーの他のPrimに"Specializes"コンポジションアークを適用します。
Handle Missing Files
外部USDファイルを参照している場合、これは、その参照したファイルが存在しなかった場合のこのノードの挙動を制御します。
Error for Missing Files
このノードがエラーになり、残りのネットワークのクックを停止します。
Warn for Missing Files
このノードは、警告を出して、1番目の入力をそのまま通過させます。
Ignore Missing Files
このノードは、何もメッセージを出さずに見つからなかったファイルを無視し、1番目の入力をそのまま通過させます。
Allow Missing Files on the Stage
現在のところファイルが存在しなくても、リファレンスを編集します。 このノードとその下流のノードでは、おそらくファイルが見つからない旨についてUSDライブラリから警告が出されます。
Pre-Operation
"No Pre-opertation"以外の値に設定すると、このノードは、このノード上の既存のリファレンスをクリアします。
No Pre-Operation
Primitive Path にあるPrim上の既存リファレンスをクリアしません。
Clear Reference Edits in Active Layer
現在のアクティブレイヤー で作成されたこのPrim上のリファレンスのリストの追加/削除の編集をクリアします。
これは非破壊的なUSD編集ではありません 。アクティブレイヤー内で現在"保留中"の以前のノードから変更をアンドゥーすることとほぼ同様です。
Clear All References
どのレイヤーが編集されているかどうかに関係なく、このPrim上のすべての既存リファレンスがマスクされるように、指定したReference Typeをオーバーライドします。 これによって、このノードで指定したリファレンスのみが残るように白紙状態にすることができます。
Reference Operation
このノードによって追加された新しいリファレンスを Primitive Path のPrim上の既存リファレンスに作用させる方法。
Prim上のリファレンスを編集する時、実際にはリストの編集をしています。 これらの編集は、すべての弱いレイヤーを合成またはリストから明示的に特定のアイテムを削除することで作成されるリストの先頭または末尾に追加して表現されています。
Add as Strongest References in Prepend List
新しいリファレンスを、下位レイヤーのどのリファレンスよりも強く、現行アクティブレイヤー内のこれまでの"先頭に追加した"編集よりも強くします。
Add as Weakest References in Prepend List
新しいリファレンスを、下位レイヤーのどのリファレンスよりも強く、現行アクティブレイヤー内のこれまでの"先頭に追加した"編集よりも弱くします。
Add as Strongest References in Append List
新しいリファレンスを、下位レイヤーのどのリファレンスよりも弱く、現行アクティブレイヤー内のこれまでの"末尾に追加した"編集よりも強くします。
Add as Weakest References in Append List
新しいリファレンスを、下位レイヤーのどのリファレンスよりも弱く、現行アクティブレイヤー内のこれまでの編集よりも弱くします。
Remove References
このノードによってリファレンスされたレイヤーまたはPrimsは、Destination Primitive上のリファレンスのリストに追加ではなく削除されます。
この削除は、リスト編集として表現されているので、どのレイヤーがオリジナルのリファレンスを編集したかどうかに関係なく、リファレンスのリストから特定のレイヤーを選択的に削除することができます。
Number of Files (ファイルベースのモードと第一入力モード)
このノードは、指定したPrimに複数のリファレンスを追加することができますが、Reference Typeとオペレーションは、すべての追加に対して同じになります。
Enable
このマルチパラメータのインスタンス内でリファレンスを実行します。
Reference File
Reference Type が"Reference Files"または"Payload Files"の時に参照するファイルのファイルパス。
Reference Primitive
Reference Type が"Reference Files"または"Payload Files"の時、これは、外部ファイルからどのPrimを取り込むのかを制御します。 Reference Type が"From First Input"または"From Multi-input"の時、ここには"Reference Specific Primitive"を設定してください(他のオプションは、たいていの場合では無意味です)。
Reference Automatically Chosen Primitive
参照したファイルにデフォルトPrimが設定されていれば、そのPrimが使用されます。 デフォルトPrimがない場合は、ルートにある最初のXform Primが使用されます。 ルートに何もXform Primがない場合は、任意のタイプの最初のルートPrimが使用されます。
Reference Default Primitive
参照したファイルにデフォルトPrimが設定されていれば、そのPrimが使用されます。 デフォルトPrimがない場合は、このノード上に警告が表示され、このマルチパラメータのインスタンスが無視されます。
Reference Specific Primitive
Reference Primitive Path パラメータのシーングラフパスを参照します。
Reference Primitive Path
Reference Primitive が"Reference Specific Primitive"の時、ここには、参照するPrimのシーングラフパスを指定します。
(このフィールドにautomaticPrim
またはdefaultPrim
を設定すると、 Reference Primitive を"Reference Automatically Chosen Primitive"または"Reference Default Primitive"に設定した時の挙動と同じになります。)
Time Offset (in Frames)
ファイルのすべてのタイムサンプルをオフセットします。 これを使用することで、参照したファイルのアニメーションの時間を変更することができます。
Time Scale
ファイルのすべてのタイムサンプルをスケールします。 これを使用することで、参照したファイルのアニメーションの時間を変更することができます。
Reload Files
クリックすると、このノードで取り込まれたすべてのファイルの内容がリロードされます。