On this page |
概要
このノードは、実質的には、SOP Import LOPと組み合わされた埋め込みSOPサブネットワークです。 これによって、そのサブネット内の"その場で"SOPジオメトリを作成し、SOP Import LOPと同様のSOP-to-USDコントロールを使ってそのサブネットからそのジオメトリを"インポート"することができます。
インポータがどのようにSOP情報をUSDに変換するかの詳細に関しては、SOPインポートの挙動を参照してください。
How to
-
SOP Createノードを追加します。
-
ネットワークエディタでSOP Createノードをダブルクリックして、SOPサブネットの中に入ります。
-
SOPsを使ってジオメトリを生成します。
ジオメトリを生成したら、SOPプリミティブに
path
文字列アトリビュートを追加することで、そのジオメトリをインポートした際のUSDシーングラフツリー内の位置を指定することができます。 相対パス(/
で始まらないパス)を指定した場合、SOP Createノードの Import Path Prefix パラメータの値の後にそのパスが追加されます。ポリゴンに関しては、同じUSDメッシュPrimの一部にしたいすべてのフェースの
path
アトリビュートは同じ値でなければならないことを忘れないでください。ジオメトリ階層の生成を参照してください。
(他にも、SOP Createノードは、SOP文字列アトリビュートやSOPグループに基づいてUSD ジオメトリサブセット を作成することができます。ジオメトリサブセットは、フェースのグループにマテリアルを割り当てるのに役立ちます)
-
ジオメトリネットワークの最後にOutput SOPを接続します。
このOutputノードがサブネットワークの出力として使用されます。 サブネットワークにOutputノードを使用しなかった場合、ディスプレイフラグが有効になっているノードが使用されます。
-
ネットワークエディタでUを押してLOPネットワークに戻ります。
-
SOP Createノードのパラメータエディタで、 Import Path Prefix パラメータを設定します。
path
アトリビュートが付いていないジオメトリには、任意で生成された名前が付けられ(例えば、すべてのポリゴンがmesh_0
のような名前のメッシュPrimになります)、このPrimパス下に格納されます。相対
path
アトリビュート値が付いたジオメトリのパスの頭には、このPrimパスが付けられます。ジオメトリ階層の生成を参照してください。
パラメータ
Load As Reference
これを有効にすると、ジオメトリがペイロードとして取り込まれます。 これを無効にすると、既存のシーンツリー上に階層をサブレイヤー化してジオメトリが取り込まれます(サブレイヤーとリファレンスを参照)。
Copy Contents Into Editable Layer
( Load As Reference が無効な時)デフォルトでは、SOPsから取り込まれたジオメトリは、ディスク上のファイルから取り込まれたジオメトリと同様に扱われます。 つまり、強いオピニオンのレイヤーをそのレイヤーの上に適用しないとそのジオメトリを編集することができません。 しかし、これを有効にすると、このノードは、そのジオメトリを アクティブレイヤー に配置するので、このノードの出力に接続されたLOPノードでジオメトリを修正することができます。
このノードは、SOPジオメトリから生成された内容を匿名In-Memory USDレイヤーにコピーすることで、これを行ないます。 この方が遅くなりますが、ディスクに書き込む必要のあるUSDレイヤーの数、各レイヤーに取り込む内容の選択肢が増えます。 これは、Load Layer LOPのオペレーションと同様です。
Adjust Transforms for Input Hierarchy
( Load As Reference が無効な時)これが有効な時(デフォルト)、このノードは、LOPsから(パックUSD Primsとして)SOPsに取り込んで再度LOPsに戻した場合に発生するトランスフォームの問題を自動的に補正します。 LOPs → SOPパックUSD Prims → LOPsのように双方向な変換をしないことがわかっている場合には、これを無効にすることでインポートを高速化することができます。
SOPsのパックプリミティブは、そのパックジオメトリのローカルからワールドへの完全トランスフォームを表現したトランスフォームを1個だけ持ちます。 USDジオメトリPrimを パックUSD Prim としてSOPsにエクスポートすると、Houdiniは、そのUSD Prim下の完全トランスフォーム階層を単一トランスフォーム行列に平坦化します。
これは、SOPパックプリミティブをLOPsに"戻す"際に、その子プリミティブ自身にトランスフォームがあると、そのトランスフォーム も SOPsから取り込まれたルートPrimのトランスフォームに組み込まれるので問題を起こしてしまいます。 その結果、トランスフォームが間違って二重に適用されてしまいます。
このパラメータを有効にすると(デフォルト)、このノードは、シーングラフ階層内でPrimの位置関係を考慮して、SOPsから取り込まれたすべてのトランスフォームを検査します。 Prim(または子Prims)が既に入力ステージ上に存在している場合、このノードは、親Primsの逆トランスフォームをPrimの追加ローカルトランスフォームとして適用します。 これによって、LOPsでのPrimの最終ワールド空間位置がSOPsでの位置と同じになります。
Copy Contents Into Editable Layer が有効になっている場合、このノードは、取り込んだPrimsに直接それらの追加トランスフォームを適用します。 無効になっている場合、このノードは、新しいアクティブレイヤーを作成し、その新しいレイヤー内にオーバーライドとしてトランスフォームを配置します。
Reference Primitive
( Load As Reference が有効な時)このノードは、変換されたジオメトリを外部USDジオメトリファイルのように扱います。 これは、SOPジオメトリの変換によって生成されたUSD Prim階層からどのルートレベルPrimを取り込むのか制御します。 ここは、"Reference Automatically Chosen 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"に設定した時の挙動と同じになります。)
Make Instanceable
Destination Primを("ネイティブインスタンス"と同様の)インスタンス化可能としてマークします。 これによって、同じブランチを複数の場所でリファレンスした場合にメモリが節約されますが、リファレンスしたPrimの子Primsは編集不可になります。
Parent Primitive Kind
Primitive Path にPrimが存在しなかった場合、このノードはそのPrimを作成します。 Primを作成する必要になった場合、作成する必要のある中間PrimにこのKindを設定します。
Parent Primitive Type
Primitive Path にPrimが存在しなかった場合、このノードがそのPrimを作成します。 このノードがそのPrimを作成する必要がある場合、その途中で作成する必要のある中間Primsがこのタイプになります。
Import Group
これを有効にして、インポートするグループ名(または、グループ構文をスペースで区切ったリスト)を指定します。 これを有効にして、フィールドを空っぽのままにすると、すべてのジオメトリが取り込まれます。
Import Path Prefix
取り込んだPrimにパスPrimがなかったことで(mesh_0
のような)自動生成された名前が付けられている場合、または、パスPrimがあってもそのパスが(/
から始まっていない)相対パスであった場合、
このノードは、その名前/パスの頭に自動的にこのパスを追加します。
これは、"パスなし" Primsを単一ブランチ下に整理しておくための方法です。
(ジオメトリ階層を作成する方法を参照。)
(デフォルトは/$OS
です。これは、このノードの名前を使ってルートPrim下に"パスなし" Primsを配置します。)
Layer Save Path
これを有効にすると、ジオメトリを含んだレイヤーのSave Pathメタデータにこのファイルパスを設定します。
USD Renderノードを使ってUSDを書き出す時、(出力処理の後に)このファイルパスを使ってジオメトリが.usd
レイヤーファイルに保存されます。
Transform
SOPネットワークから取り込まれたPrimsにトランスフォームを適用します。
Transform
以下のトランスフォームパラメータをPrimに適用する方法(各USD Primには複数のトランスフォームを含めることができ、 且つ 、親トランスフォームから影響を与えることができるので、新しいトランスフォームを適用する色々な方法がたくさんあります)。
Append
新しい最上位のローカルトランスフォームとしてパラメータを適用します。
Prepend
新しい 最下位 ローカルトランスフォームとしてパラメータを適用します。
Overwrite or Append
ローカルトランスフォームがxformOp:transform
という名前で存在すれば、そのトランスフォームがパラメータで 上書き されます。
そうでない場合は、新しい最上位のローカルトランスフォームとしてパラメータを適用します。
これが既存のトランスフォームを置換する場合、そのトランスフォームのローカルトランスフォームスタック内の順番は影響を受けません。
Overwrite or Prepend
"Overwrite or Append"と同様ですが、 最下位 のローカルトランスフォームとしてパラメータを適用します。
Apply Transform in World Space
新しい最上位のローカルトランスフォームとしてパラメータを適用します。 しかし、トランスフォームを適用する前に、そのトランスフォームの結果がすべてのローカルまたは親のトランスフォームをPrimに適用する前のワールド空間で適用されたかのようにそのトランスフォームが更新されます。
Replace All Local Transforms
残りのトランスフォームパラメータで指定されたトランスフォームは、常に新しいトランスフォームとして適用されます。 このトランスフォームを適用する前に、ローカルトランスフォームスタック上のすべての既存トランスフォームオペレーションがクリアされて、指定したトランスフォームのみがローカルトランスフォームスタック上に残ります(しかし、親のトランスフォームはまだ影響を持ちます)。
Transform order
Houdiniが移動/回転/スケールを適用する順番とHoudiniが回転を適用する順番。
Translate
XYZ軸方向の移動量。
Rotate
XYZ軸による回転量(単位は度)。
Scale
XYZ軸方向の非均一スケール。
Uniform scale
すべての3軸に沿って均一にオブジェクトをスケールします。
Pivot translate
オブジェクトのローカル原点を移動させます。
Pivot rotate
オブジェクトのローカル原点を移動させた後に回転させます。
SOP Import
Primitive Definition
このグループ内のパラメータは、ソースSOPジオメトリからUSD Primsを生成する方法に関する変換処理を指示します。
Packed USD Primitives
インポートしたSOPジオメトリのパックUSD Primsの扱い方。
Overlay Transforms
パックUSD Primのトランスフォームをオーバーライド(Over
)Primとして取り込みます。
これは、パックUSD Primsをアンパックすることなくトランスフォームするのを容易にします。
Ignore
ソースSOPジオメトリ内のパックUSD Primsを無視します。
Other Primitives
通常の非パックPrims(ポイント、カーブ、ポリゴン、球など)の扱い方。
Define
インポートしたジオメトリにUSD Primsがまだ存在していなければ、それらのUSD Primsを作成します。 これがジオメトリをインポートする通常の方法です。
Overlay
USD Primsをオーバーライドとして作成します。 同じパスを持つ下位レベルに存在するどれかのPrimsへの変更部分だけをUSD Primsとして可視化します。 これは、SOPsの特定のアトリビュートだけを既存のUSDジオメトリ上に取り込んで修正したい場合に役立ちます。
Overlay Transforms
"Overlay"と同様ですが、トランスフォームデータのみを取り込みます。
Define Only Leaf Primitives
中間Prims(例えば、 Import Path Prefix 用に生成されたXform
Prims)を定義の代わりにオーバーライドとして編集します。
これは、中間Primsが下位レイヤー内の大元のPrimsと一致しなかった場合に、Leaf Primsがシーンに追加されないことを意味します。
これは、親Primsがシーンツリー内に既に存在している場合にのみジオメトリをインポートしたい時に役立ちます。
(すべてのデータがインポートされるものの、シーングラフツリーまたはビューポート内では単に表示されないだけであることに注意してください。)
Packed Primitives
SOPネイティブのパックプリミティブの扱い方。
Create Xforms
パックプリミティブのトランスフォームとアトリビュートからXform
Primを生成します。
そのパックプリミティブのジオメトリは、このXform
Prim下に取り込まれます。
Create Native Instances
パックプリミティブ内のジオメトリをインスタンス化可能リファレンスとして取り込みます。
これは、 Import Path Prefix Prim下のPrototypes
Prim下に各ピースをプロトタイプとして取り込みます。
Create Point Instancer
パックプリミティブ内のジオメトリをポイントインスタンスジオメトリとして取り込みます。 これは、ポイントインスタンサーPrim下に各固有のピースをプロトタイプとして取り込みます。
インスタンサーのシーングラフパスを示したusdinstancerpath
という名前のSOP Primitiveアトリビュートをパックプリミティブに割り当てることができます。
Unpack
パックプリミティブのジオメトリのみを取り込みます。 Create Xforms モードとは違い、これは追加の階層を作成せず、パックプリミティブを取り込む前にアンパックすることと等価です。 これは、アトリビュートをマージすることなく複数のジオメトリを取り込むのに役立ちます。
NURBS Curves
NURBSカーブPrimsの扱い方。
Convert to Basis Curves
カーブをBasisCurves
Primとして取り込みます。
これは3次曲線しか対応していませんが、Hydraによるレンダリングで役立ちます。
Create NURBS Curves
カーブをNurbsCurves
Primとして取り込みます。
これは、NURBSカーブを双方向で完全に互換性を持たせることができますが、Hydraによるレンダリングの対応が制限されます。
Kind Authoring
インポートしたPrimsにKindsを割り当てる方法。
All Geometry is One Component
インポートしたツリー内のルートPrimsをComponentに設定します。 子PrimsにはKindを設定しません。
Nested Groups and Components
インポートしたツリー内のリーフ(末端)PrimsをComponentに設定します。 ブランチ(分岐)PrimsをGroupに設定します。
Nested Assembly, Groups, and Components
インポートしたツリー内のルートPrimsをAssemblyに設定します。 中間ブランチ(分岐)PrimsをGroupに設定します。 リーフ(末端)PrimsをComponentに設定します。
None
インポートしたPrimsにKindを設定しません。
Path Attributes
SOPジオメトリの格納先となるPrimパスとして使用するSOP 文字列Primitiveアトリビュート の名前の(カンマまたはスペースで区切った)リスト。
デフォルトはpath,name
です。
上記のジオメトリ階層を参照してください。
このリストに2つ以上のアトリビュートが含まれていれば、インポーターは、各アトリビュートの中で最初に空っぽでない値をチェックします。
文字列値がフルパスであれば、そのパスがそのPrimのUSDシーングラフパスとして使用されます。 文字列値が相対パス(または名前のみ)であれば、その文字列を Import Path Prefix 文字列の後に追加してフルシーングラフパスを生成します。
リストのアトリビュートがどれも指定したSOP Prim上に存在しなかった場合、または、どの値も空っぽの文字列だった場合、インポーターは、自動的に名前を生成します(例えば、sphere_0
)。
Import HeightFields as Mesh
ソースのSOPジオメトリにHeight Fieldボリュームが含まれていれば、そのボリュームがポリゴンメッシュとして取り込まれます。 他のレイヤーの値が可変ならば頂点Primvarとして、定数ならば定数Primvarとして取り込まれます。
Geometry Handling
これらのパラメータは、SOPジオメトリデータの解釈を変更するためのオプションを備えています。
Treat Polygons as Subdivision Surfaces
サブディビジョンスキームを使ってまだタグ付けされていないポリゴンメッシュに対して、subdivisionScheme
アトリビュートをcatmullClark
に設定します。
これは、ポリゴンメッシュをサブディビジョンサーフェスに変換します。
Subdivision Group
Treat Polygons as Subdivision Surfaces が有効な場合、このプリミティブグループ内のポリゴンのみがサブディビジョンサーフェスに変換されます。
Reverse Polygon Vertex Ordering
USDは、ポリゴンが左手周回か右手周回のどちらなのかを示したメッシュPrims上のorientation
アトリビュートに対応しています。
それに対して、SOPジオメトリは常に左手周回です。
このオプションを有効にすると、インポーターは常に頂点が右手周回になるように頂点(とその関連Primvars)を並べ替えます。
これは、USDから右手周回のポリゴンをSOPsに取り込んでからUSDに戻す時に役立ちます。 このデータは、SOPsに取り込まれると常に左手周回に変換されます。 このオプションを使わないでポリゴンをUSDに取り込むと、そのポリゴンはオリジナルとは異なって左周回になります。
Import Data
これらのパラメータは、SOPジオメトリアトリビュートからUSDアトリビュートとPrimvarsへの変換に影響し、デフォルト値とタイムサンプル値の編集方法を選択することができます。
Topology Attributes
USDトポロジー系アトリビュートをタイムサンプル値またはデフォルト値のどちらで編集するのかを制御します。
Animated
ソースジオメトリのトポロジーが時間の経過と共に変化することが分かっているのであれば、USDシーングラフのタイムサンプルとしてトポロジーアトリビュートを記録するこのオプションを選択してください。 トポロジーをアニメーションさせると、再生時の負荷が非常に重くなってしまうので、必要な時にのみこのオプションを使用してください。
Static
トポロジーアトリビュートをデフォルト値として書き出します。 この方が再生を非常に高速化することができますが、時間の経過と共にトポロジーの変化に制限が入ります。
None
トポロジーアトリビュートを編集しません。
これは、USDデータを処理するためにSOPsにそのデータを送信してから、LOPsに戻す時に役立ちます。 このオプションを使用すると、ジオメトリトポロジーがこの処理では変更がなかったことをインポーターに伝えるので、 変化するポイントポジションまたは他のPrimvarsのみがインポートされます。
Attributes
USDにPrimvarsとしてインポートするSOPアトリビュートを指定したアトリビュートの名前/パターンをスペースで区切ったリスト。
アトリビュート名を直接マッチングさせるだけでなく、他にも特別な意味を持った値がいくつかあります:
bounds
関連するSOPジオメトリから計算された境界ボックスを使って、USD extent
アトリビュートを編集します。
visibility
usdvisibility
ジオメトリアトリビュートの値に基づいてUSD visibility
アトリビュートを編集します。
インポーターが特定のよく知られたHoudiniアトリビュートをそれに相当するUSDアトリビュートに変換する際の挙動に関する情報は、アトリビュートのインポートを参照してください。
Indexed Attributes
USDにインデックス指定のPrimvarsとしてインポートするSOPアトリビュートを指定したアトリビュートの名前/パターンをスペースで区切ったリスト。
SOPアトリビュートがこのパターンに合致すると、インポーターは、Primvarをインデックス配列(値配列はprimvars:name
の形式で、その値配列の値のインデックスを指したインデックス配列はprimvars:name:indices
形式)として編集します。
整数でも文字列でもないアトリビュートに対してインデックス指定のPrimVarを用意するのは負荷が掛かってしまう可能性があります。 少数の固有な値が多数のコンポーネントに渡って使用されている時にストレージサイズを大幅に節約できそうな場合にのみインデックス指定のPrimvarを使用してください。
Import as Single Element Array
SOPジオメトリアトリビュートがPoint/Primitive/Vertexのどのアトリビュートにも関係なくUSDにConstant
補間のPrimvars(Prim全体に対して単一値の配列)としてインポートするSOPアトリビュートを指定したアトリビュートの名前/パターンをスペースで区切ったリスト。
特定のUSD Primに対して複数値を選択できてたとしても、インポーターが最初に見つけた値が選択されます。
これがDetailアトリビュートを取り込む場合のデフォルトの挙動です。
( Import as Single Value と違って)単一エレメント配列としてのインポートは、Primvarのタイプを変更することなく、Primvarの補間をオーバーライドすることができるので便利です。
Import as Single Value
SOPジオメトリアトリビュートがPoint/Primitive/Vertexのどのアトリビュートにも関係なくUSDにConstant
補間のPrimvars(Prim全体に対して単一値)としてインポートするSOPアトリビュートを指定したアトリビュートの名前/パターンをスペースで区切ったリスト。
特定のUSD Primに対して複数値を選択できてたとしても、インポーターが最初に見つけた値が選択されます。
これは、 Import as Single Element Array と同様ですが、Primvarのタイプは単一エレメントの配列ではなくてスカラー値です(例えば、vector3f[]
の代わりにvector3f
)。
Set Default Values
USD Primvarsのデフォルト値(タイムサンプルなし)として常に編集するためのSOPアトリビュートを指定したアトリビュートの名前/パターンをスペースで区切ったリスト。 これは、 Author Time Samples を"If Not Specifically Excluded"に設定した時の排他のリストです。
Partition Attributes
ジオメトリのサブセットを表現したSOP文字列Primitiveアトリビュートを指定したアトリビュートの名前/パターンをスペースで区切ったリスト。 メッシュPrimとカーブPrimに関しては、インポーターは、このアトリビュートで同じ値を持ったエレメントをジオメトリサブセットに格納します。
インポーターは、そのサブセット名にアトリビュート値を設定しようとしますが、そのサブセット名を正式なUSD Prim名に変更する必要があります。
インポーターは、ジオメトリサブセットPrim上のそのままのアトリビュート値をpartitionValue
キーを持ったCustom Dataとして保存します。
Subset Groups
SOPプリミティブグループを指定したグループの名前/パターンをスペースで区切ったリスト。 SOPの各グループ内のポリゴンPrimとカーブPrimは、そのグループ名から名付けられたジオメトリサブセットとしてインポートされます。
USD Custom Attributes
USDに(Primvarsではなく)アトリビュートとしてインポートするSOPアトリビュートを指定したアトリビュートの名前/パターンをスペースで区切ったリスト。
Translate UV Attribute to ST
SOP Vertexアトリビュートのuv
をUSD Primvarのprimvars:st
に変換します。
これを有効にする必要があるかどうかは、使用しているレンダラーとシェーダの編集の方法によって異なります。
Karmaを使ってレンダリングする場合は、これを無効のままにしてください。
(このドキュメントを書いている時点では、USDではテクスチャ座標の命名に厳格な規格がありませんが、st
を使用するのが一般的な慣例になっているのに対して、SOPジオメトリではuv
を使用するのが一般的な慣例になっています。)
Materials
マテリアルを定義し、それをジオメトリに割り当てるためのパラメータ。これらのパラメータは、SOPレベルのマテリアルの割り当てを真似て設計されています。
Auto-fill Materials
インポートしたジオメトリのshop_materialpathアトリビュートで定義されているマテリアルを自動的に収集し、結果的にそれらのマテリアルがインポートしたジオメトリサブセットに割り当てられます。
Number of Materials
このノードは、VOPマテリアルをUSDマテリアルとしてインポートすることができます。 インポートするマテリアルの数を設定するか、または、プラスとマイナスのボタンを使ってインポートの追加/削除をします。
Material VOP
インポート毎に、USDマテリアルとしてインポートするマテリアlVOPのHoudiniノードパスを設定します。
Material Path
インポート毎に、インポートするUSDマテリアルPrimのUSD Primパスを設定します。
Geometry Path
インポート毎に、ここでインポートしたマテリアルの割り当て先となるジオメトリのUSD シーングラフパス に合致させるパターンのリストを設定します。
See also |