On this page |
概要
インポートしたジオメトリは、多くの色々なネイティブUSD Primタイプで構成可能なネイティブUSD表現に変換されます。 (ソースのSOPジオメトリ上のアトリビュートを使うことで、取り込まれるUSDの階層構造を制御することができます)
インポーターがどのようにSOP情報をUSDに変換するのかについての詳細は、SOPをUSDに取り込む方法を参照してください。
サブレイヤー化(シーンツリーの現在の内容の上にSOPジオメトリを合成する)またはリファレンス化(シーンツリーの特定のブランチでSOPジオメトリを取り付ける)によってSOPジオメトリを取り込むことができます(サブレイヤー化とリファレンス化を参照してください)。
インポートしたジオメトリを含んだレイヤーには、HoudiniのUSDプラグインで理解される形式のソースメタデータが含まれます。 このメタデータは、HoudiniのUSDプラグインがディスク上のファイルではなくSOPノードからジオメトリを取得するように指示します。
このノードは、インポートしたジオメトリを アクティブレイヤー に格納することができるので、このノードの出力に接続されたLOPノードによって、そのレイヤーを修正することができます。
ジオメトリだけでなく、そのジオメトリ上のHoudiniアトリビュートをUSD Primvarsとしてインポートすることができます。
Note
このノードは、SOPジオメトリをUSDジオメトリPrimsの階層に変換してから、そのUSDデータを(サブレイヤー化またはリファレンス化によって)シーングラフツリーに取り込むことで動作しています。
この事を知っていれば、"どのPrimが参照されているか"などパラメータの一部を解釈するのに役立ちます。 既に変換済みのUSDジオメトリPrimsを扱う場合でも同様のことが言えます。
How to
To... | Do this |
---|---|
ポリゴンメッシュを接続性で分ける |
|
パラメータを有効にする
このノード上の多くのパラメータの横には、そのパラメータを有効にするためのチェックボックスが付いています。 これらのチェックボックスは、実際にこのノードで編集されるオプションを制御し、それらのオプションがSOP変換処理に渡されます。
パラメータが無効になっていると、このノードは、そのオプションに該当するDetailアトリビュートから値の取得を試みます。 USD Configure SOPを使用することで、ジオメトリ上にそのようなアトリビュートを作成することができます。 アトリビュートが見つからなかった場合は、デフォルト値が使用されます。
このノード上のオプションを有効にすると、ジオメトリ上にそのオプションに該当するアトリビュートが存在すれば、そのアトリビュートをオーバーライドします。
Tips
-
SOPsからパックプリミティブをUSDネイティブインスタンスまたはポイントインスタンサーとして取り込むことができます。
-
このノードは、(
shop_materialpath
SOPアトリビュートからUSD Primvarsまたはジオメトリサブセットを作成できることを除いて)マテリアル情報を取り込みません。Houdiniで編集されたオブジェクトからジオメトリを取得したり、USDマテリアルを生成する場合、ジオメトリの取り込みには、SOP CreateノードまたはSOP Importの組み合わせを使用し、 マテリアルの取り込みには、
Material Library LOPを使用し、ジオメトリとマテリアルをバインドするにはMaterial Assign LOPを使用します。
他にも
Scene Import LOPを使用すれば、ジオメトリとマテリアルを1個のノードで取り込むことができますが、その取り込みの処理に関するコントロールが少ないです。
-
Houdiniのシェイプ系SOPs(BoxやTorusなど)は、ポリゴンメッシュを作成したり、数学的なプリミティブの代わりにポリゴンを作成するためのオプションがあります。 USDにはCubeやTorus用の数学的なプリミティブが備わっているものの、オリジナルのSOPがポリゴンメッシュを出力している場合には、それはUSDではポリゴンメッシュとして取り込まれます。
パラメータ
SOP Path
取り込みたいSOPノードのノードパス。
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"に設定した時の挙動と同じになります。)
Primitive Path
リファレンスするブランチの取り付け先となるシーングラフパス。 リファレンスしたPrimは、このPrim上にオーバーレイされ、そのリファレンスしたPrimの子PrimsはこのPrimの子Primsになります。 このPrimが存在しなかった場合は、このノードがそのPrimを作成します。
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
レイヤーファイルに保存されます。
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
を使用するのが一般的な慣例になっています。)
See also |