On this page |
Primitive Definition ¶
このグループ内のパラメータは、ソースのSOPジオメトリからどのようにUSDプリミティブを生成するのかという観点で、変換プロセスをガイドします。
Packed USD Primitives
インポートしたSOPジオメトリ内のパックUSDプリミティブの扱い方。
Ignore
ソースのSOPジオメトリ内のパックUSDプリミティブを無視します。
Overlay Transforms
パックUSDプリミティブのトランスフォームをオーバーライド(Over
)Primとして取り込みます。
これによって、パックUSDプリミティブをアンパックすることなく簡単にトランスフォームさせることができます。
Overlay Transforms and Attributes
Overlay Transforms に加えて、パックUSDプリミティブ上のSOP Point/Primitiveアトリビュートは、constant
補間のPrimvarとして取り込まれます。
Other Primitives
通常の非パックプリミティブ(ポイント、カーブ、ポリゴン、球など)の扱い方。
Define
インポートしたジオメトリにまだUSDプリミティブが存在しなかった場合、そのUSDプリミティブを作成します。 これがジオメトリをインポートする標準の方法になっています。
Overlay
USDプリミティブをオーバーライドとして作成します。 これは、同じパスで下位レベルに存在するプリミティブを変更するだけの可視プリミティブとなります。 これは、SOPから特定のアトリビュートを既存のUSDジオメトリに取り込んで編集したいだけの場合に役立ちます。
Overlay Transforms
“Overlay”と同様ですが、トランスフォームデータのみを取り込みます。
Define Only Leaf Primitives
中間プリミティブ(例えば、 Import Path Prefix で作成されるXform
Prims)を定義ではなくオーバーライドとして作成します。
つまり、中間プリミティブが下位レイヤー内の大元のプリミティブと一致しなかった場合、そのLeaf Primsはシーンに追加されません。
これは、親プリミティブがシーンツリー内にまだ存在しなかった場合にのみジオメトリを取り込みたい時に役立ちます。
(ただ、すべてのデータは取り込まれ、シーングラフツリーまたはビューポート内で可視にできないだけなので注意してください。)
Packed Primitives
SOPネイティブのパックプリミティブの扱い方。
Create Xforms
パックプリミティブのトランスフォームとアトリビュートからXform
Primを作成し、その下にパックプリミティブのジオメトリを取り込みます。
Create Native Instances
パックプリミティブ内のジオメトリをインスタンス化可能なリファレンスとして取り込みます。
これは、 Import Path Prefix Prim下のPrototypes
Prim下にプロトタイプとして各ピースを取り込みます。
Create Point Instancer
パックプリミティブ内のジオメトリをポイントインスタンスジオメトリとして取り込みます。 これは、ポイントインスタンサーPrim下にプロトタイプとして各固有のピースを取り込みます。
SOP Primitiveアトリビュートをusdinstancerpath
パックプリミティブに割り当てることで、インスタンサーのUSDシーングラフパスを指定することができます。
Unpack
パックプリミティブのジオメトリのみを取り込みます。 Create Xforms モードとは違って、このノードは、追加で階層を作成しないので、インポート前にパックプリミティブをアンパックすることと同じです。 これは、複数のジオメトリをアトリビュートをマージせずに取り込むのに役立ちます。
Agents
エージェントプリミティブの扱い方。 どのモードでも、エージェントプリミティブのトランスフォームとアトリビュートからPrimが生成され、エージェントのジオメトリとアニメーションはそのPrim下に取り込まれます。
Create Instanced SkelRoots
エージェントのスケルトンとジオメトリをインスタンス化可能なリファレンスとして、スケルトンPrimとスキンPrimを含んだSkelRoot
Primに取り込みます。
これは、各固有のエージェント定義をプロトタイプとして、 Import Path Prefix Prim下のagentdefinitions
Prim下に取り込みます。
Create SkelRoots
エージェントのスケルトンとスキンジオメトリを格納するSkelRoot
Primを作成し、そのPrim下にそれらが取り込まれます。
これは、大規模な群衆だと Create Instanced SkelRoots よりも効率が悪くなりますが、例えば、1体のキャラクタを取り込むようなインスタンス化が不要な場合で役立ちます。
Create Instanced Skeletons
エージェントのスケルトンをインスタンス化可能なリファレンスとして、Skeleton
Primに取り込みます。
これは、各固有のエージェント定義をプロトタイプとして、 Import Path Prefix Primのagentdefinitions
Prim下に取り込みます。
Create Skeletons
エージェントのスケルトンをSkeleton
Primとして、エージェントのXform
Prim下に取り込みます。
これは、大規模な群衆だと Create Instanced Skeletons よりも効率が悪くなりますが、例えば、1体のキャラクタを取り込むようなインスタンス化が不要な場合で役立ちます。
Create SkelAnimations
エージェントのジョイントアニメーションのみを取り込んで、SkelAnimation
Primを作成します。
エージェントのスケルトンとRestジオメトリは通常ではフレーム間で変化することはないので、これを使用することで、フレームシーケンスを効率的に取り込むことができます。
NURBS Curves
NURBSカーブプリミティブの扱い方。
Convert to Basis Curves
カーブをBasisCurves
プリミティブとして取り込みます。
これは、3次カーブにしか対応していませんが、Hydraを介したレンダリングで役に立ちます。
Create NURBS Curves
カーブをNurbsCurves
プリミティブとして取り込みます。
これは、NURBSカーブを完全に双方で変換できますが、Hydraを介したレンダリングに制限があります。
NURBS Surfaces
NURBSサーフェスプリミティブの扱い方。
Convert to Meshes
NURBSサーフェスをMesh
Primとして取り込みます。これは、Hydraを介したレンダリングに役立ちます。
Create NURBS Patches
NURBSサーフェスをNurbsPatch
Primとして取り込みます。
これは、NURBSサーフェスの双方向変換に役立ちますが、Hydraを介したレンダリングで機能が制限されます。
Kind Authoring
取り込んだプリミティブにKindを割り当てる方法。
All Geometry is One Component
取り込んだツリー内のルートプリミティブをComponentに設定します。子プリミティブにはKindを設定しません。
Nested Groups and Components
取り込んだツリー内のLeaf(末端)プリミティブをComponentに設定します。ブランチ(分岐)プリミティブをGroupに設定します。
Nested Assembly, Groups, and Components
取り込んだツリー内のルートプリミティブをAssemblyに設定します。中間のブランチプリミティブをGroupに設定します。LeafプリミティブをComponentに設定します。
None
取り込んだプリミティブにKindを設定しません。
Path Attributes
SOPジオメトリの格納先となるPrimパスとして使用するSOP Primitive文字列アトリビュート を(カンマまたはスペースで区切った)リスト。
デフォルトはpath,name
です。
上記のジオメトリ階層を参照してください。
このリストに2個以上のアトリビュートが含まれていれば、インポーターは、各アトリビュートから最初に空っぽでない値をチェックします。
その文字列値がフルパスだった場合、そのパスがそのプリミティブのUSDシーングラフパスとして使用されます。 その文字列値が相対パス(または、名前だけ)だった場合、その文字列を Import Path Prefix 文字列の後に追加して、フルシーングラフパスを生成します。
リスト内のアトリビュートがどれも指定したSOPプリミティブ上に存在しなかった場合、または、どの値も空っぽの文字列だった場合、インポーターは自動的に名前を生成します(例えば、sphere_0
)。
Prefix Absolute Paths
Path Attributes の絶対パス値に接頭辞/親を付けるかどうか。 デフォルトでは、これは無効になっていて、相対パス値にのみ接頭辞が付きます。
Import HeightFields as Mesh
ソースのSOPジオメトリにHeight Fieldボリュームが含まれていた場合、そのボリュームはポリゴンメッシュとして取り込まれます。 他のレイヤーは、値がVaryingなら頂点Primvar、Constantなら定数Primvarとして取り込まれます。
Geometry Handling ¶
以下のパラメータには、SOPジオメトリデータの解釈を変更するためのオプションが用意されています。
Treat Polygons as Subdivision Surfaces
サブディビジョンスキームのタグがまだ付けられていないポリゴンメッシュに対して、catmullClark
が設定されたsubdivisionScheme
アトリビュートを追加します。これによって、それらのポリゴンメッシュはサブディビジョンサーフェスに変換されるようになります。
Subdivision Group
Treat Polygons as Subdivision Surfaces が有効な場合、このプリミティブグループ内のポリゴンのみがサブディビジョンサーフェスに変換されます。
Reverse Polygon Vertex Ordering
USDはポリゴンの頂点順が左手系なのか右手系なのかを示したメッシュプリミティブ上のorientation
アトリビュートに対応しているのに対して、
SOPジオメトリは頂点順が常に左手系です。
このオプションを有効にすると、インポーターは常に頂点順が右手系になるように頂点(と関連するPrimvar)を並べ替えます。
これは、右手系の向きのポリゴンをUSDからSOP、SOPからUSDに双方向に変換する時に役立ちます。 データは、SOPに取り込む時には常に左手系の頂点順に変換されます。 このオプションを使わないでポリゴンをUSDに戻した場合、そのUSDはオリジナルの右手系とは異なり左手系の頂点順のままになります。
Import Data ¶
以下のパラメータは、SOPジオメトリアトリビュートからUSDのアトリビュートとPrimvarへの変換に影響し、デフォルト値とタイムサンプル値のどちらで編集するのか選択することができます。
Topology Attributes
USDトポロジーアトリビュートをタイムサンプル値またはデフォルト値のどちらで作成するのかを制御します。
以下のアトリビュートがトポロジーアトリビュートとして扱われます:
プリミティブのタイプ |
アトリビュート |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Animated
ソースジオメトリのトポロジーが時間軸で変化するのか分かっているのであれば、USDシーングラフ内でトポロジーアトリビュートをタイムサンプルとして記録するこのオプションを選択してください。 アニメーションするトポロジーが含まれていると、再生するのに非常に負荷がかかってしまうので、このオプションは必要な時にだけ使用してください。
Static
トポロジーアトリビュートをデフォルト値として書き込みます。 これによって再生を非常に速くすることができますが、トポロジーが時間軸で変化できなくなる制限がかかります。
None
トポロジーアトリビュートを作成しません。
これは、USDデータをSOPsに送信して処理を加えて、それをLOPsに戻すのに役立ちます。 このオプションを使用すると、このプロセスではジオメトリトポロジーが変化しなかったとインポーターに伝わるので、変化のあったポイントポジションまたは他のPrimvarのみが取り込まれるようになります。
Attributes
USDにPrimvarとして取り込みたいSOPアトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。
アトリビュート名を直接マッチさせるだけでなく、特別な意味を持った値がいくつか用意されています:
bounds
関連するSOPジオメトリから計算された境界ボックスを使用して、USD extent
アトリビュートを作成します。
visibility
usdvisibility
ジオメトリアトリビュートの値に基づいて、USD visibility
アトリビュートを作成します。
インポーターが特定の共通Houdiniアトリビュートをそれに呼応するUSDアトリビュートにどのように変換するのかに関する情報は、アトリビュートのインポートを参照してください。
Indexed Attributes
USDにIndex Primvarとして取り込みたいSOPアトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。
SOPアトリビュートがこのパターンにマッチすると、インポーターは、Primvarをインデックス配列の値として作成します(つまり、primvars:name
に値の配列、primvars:name:indices
にそれらの値のインデックスの配列が入ります)。
整数でも文字列でもないアトリビュートに対してIndex Primvarを用意するのは、処理に負荷がかかってしまいます。 少数の固有な値を多数のコンポーネントにわたって使用することでストレージサイズを大幅に節約できそうな場合にのみIndex Primvarを使用してください。
Import as Single Element Array
SOPジオメトリアトリビュートがPoint/Primitive/Vertexアトリビュートのどれかに関係なく、USDにConstant
補間(プリミティブ全体で1個の値を持つ配列)のPrimvarとして取り込みたいSOPアトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。
特定のUSDプリミティブに対して複数の値を選択できる場合、インポーターは、見つかった最初の値を選択します。
( Import as Single Value の代わりに)アトリビュートを単一要素配列として取り込むと、Primvarのタイプを変えずにそのPrimvarの補間を上書きすることができるので便利です。
Import as Single Value
SOPジオメトリアトリビュートがPoint/Primitive/Vertexアトリビュートのどれかに関係なく、USDにConstant
補間且つプリミティブ全体で単一値のPrimvarとして取り込みたいSOPアトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。
特定のUSDプリミティブに対して複数の値を選択できる場合、インポーターは、見つかった最初の値を選択します。
これは、Detailアトリビュートが取り込まれるデフォルトの挙動です。
これは、 Import as Single Element Array に似ていますが、Primvarのタイプが単一要素の配列ではなくスカラー値となります(例えば、vector3f[]
ではなくvector3f
となります)。
Boolean Attributes
bool
タイプのPrimvarに変換したい整数SOPアトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。
Set Default Values
常にデフォルト値(タイムサンプルなし)としてUSD Primvarを作成したいSOPアトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。 ここには、 Author Time Samples を“If Not Specifically Excluded”に設定した場合のその除外アトリビュートのリストを指定します。
Partition Attributes
ジオメトリのサブセットを表現したSOP Primitive文字列アトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。 メッシュプリミティブとカーブプリミティブに関しては、インポーターは、このアトリビュートが同じ値のエレメントを自身のジオメトリサブセットに格納します。
インポーターは、サブセット名をアトリビュート値に設定することを試みますが、その名前を有効なUSDプリミティブ名に変更する必要性が出てきます。
インポーターは、ジオメトリサブセットPrim上のそのままのアトリビュート値をpartitionValue
キーを持つCustom Dataとして格納します。
Prefix Subsets with Attribute Name
Partition Attributes からサブセットを作成する時、それらのサブセットの名前は、アトリビュート名とパーティションアトリビュート値(文字列または整数)を組み合わせた名前になります。 これによって、複数のパーティションアトリビュートに同じ値が含まれている時に名前の干渉が回避されますが、サブセット名を正確に制御したい場合には望ましい名前が得られない場合があります。 文字列アトリビュートの場合、このオプションを無効にすると、アトリビュート値が直接サブセット名として使用されます。
Subset Groups
SOPプリミティブグループを指定したスペース区切りのグループ名/パターンのリスト。 各グループ内のSOPのポリゴンプリミティブとカーブプリミティブは、そのグループの名前でジオメトリサブセットとして取り込まれます。
USD Custom Attributes
USDに(Primvarではなく)アトリビュートとして取り込みたいSOPアトリビュートを指定したスペース区切りのアトリビュート名/パターンのリスト。
Translate UV Attribute to ST
uv
SOP頂点アトリビュートをprimvars:st
USD Primvarに変換します。
これを有効にする必要があるかどうかは、あなたが使用しているレンダラーとシェーダの作り方で決まります。
Karmaでレンダリングする場合は、これを無効のままにしてください。
(これを書いた時点では、USDでのテクスチャ座標の命名に厳格な基準はありませんが、st
を使用するのが一般的な慣例であるのに対して、SOPジオメトリではuv
を使用するのが一般的な慣例です。)