izhoudiniTweetこの記事では、HoudiniがSOPジオメトリをUSDに変換する方法と、プロセスを制御する方法の詳細について紹介します。LOPは、SOPジオメトリをLOPネットワークのUSDステージにインポートします。ジオメトリの変換方法に関する設定があります。LOPの設定に対応するSOPジオメトリのアトリビュートを作成します。各アトリビュート(存在する場合)を使用するようにLOPを設定したり、対応するアトリビュートをオーバーライドするパラメータをLOPに明示的に設定したりできます。SOPのパラメータに加えて、以下で説明するさまざまなSOPアトリビュートを使用して、インポータがジオメトリを変換する方法に影響を与えることができます。階層SOPレベルでは、Houdiniジオメトリには基本的に階層関係がありません。(Houdiniでは、モデル間の階層関係はオブジェクトレベルで定義されます。)パスを定義するアトリビュートがない場合:すべてのポリゴンフェースは、mesh_0と呼ばれる単一のポリゴンメッシュに入ります。同等のUSDプリミティブ(SphereやVolumeなど)を持つSOPプリミティブは、自動生成された名前(sphere_0、volume_0など)を持つ兄弟としてインポートされます。パックプリミティブやAlembicプリミティブなどの一部のジオメトリタイプには、階層内の位置を指定するアトリビュートが含まれている場合があります。これらが存在する場合、インポータはそに従います。ジオメトリをUSDにインポートするときに階層関係を制御するために、SOPにアトリビュートを追加することもできます。attributes]パラメータを使用すると、パス情報を含むSOPプリミティブアトリビュートのリストを指定できます。インポートされるプリミティブにパスプリミティブがないと、自動的に名前が生成されます。自動的に生成された名前(mesh_0など)がある場合、またはパスプリミティブがあるが、パスが相対パスの場合は、ノードは名前またはパスフラグメントに自動的に接頭辞(prefix)を付けます。prefix]のパスを使用します。これは、「パスのない」プリミティブを単一のブランチの下に整理する方法です。prefixを/world/geoに設定します。その際に、異なる名前/アトリビュート値を持つプリミティブは、以下の表のようにシーングラフツリーにマッピングされます。/world/geo/chair/legアトリビュート値の無効なパスまたは文字は、有効なパスに変換されます。これには通常、不正な文字をアンダースコアに置き換えることが含まれます。互換性のないジオメトリタイプのパスアトリビュート値が同じ場合、接尾辞として番号を付与することで、一意の名前を付けます。ように、異なる名前の2つのプリミティブを作成します。ボリュームデフォルトでは、すべてのSOPフィールドは単一のvolume_0プリミティブの下にインポートされます。usdvolumepathという名前のSOPアトリビュートをボリュームに割り当てて、ボリュームのフィールドをインポートするためのUSDシーングラフパスを指定できます。フィールドがボリュームの下の既存のフィールドと同じ名前の場合、インポータは新しいボリュームプリミティブ(volume_1など)を開始して、そのフィールドと後続のフィールドを保持します。これは、2つのPyroシミュレーションが一緒にマージされた場合、インポータは2つの別々のボリュームプリミティブの下で密度、速度、温度フィールドの2つのシーケンスをグループ化します。stringアトリビュートをusdinstancerpathという名前のパックプリミティブに割り当てることができます。アトリビュート値は、作成するインスタンサーのUSDシーングラフパスを指定します。SOPパックプリミティブには、固有のLOD可視性設定があります。メタデータに変換します。SOPアトリビュートの値に基づいて面を選択してサブディビジョンを適用できます。設定可能な値は、catmullClark、loop、bilinear、またはnoneです。SOPは、USDをSOPにアンパックするときにこのSOPアトリビュートを作成し、USDへの往復をサポートします。SOPで認識されるSOPアトリビュートも使用できます。以下の一般的なHoudiniアトリビュートのいずれかをインポートする場合、インポータはそれらを対応するUSDアトリビュート、またはprimvarsに自動的に変換します。PUSDのポイントアトリビュートになります。NUSDの法線アトリビュートになります。vUSDの速度アトリビュートになります。wUSDのangularVelocitiesアトリビュートになります。(ポイントインスタンサープリミティブを作成する場合のみ)id(ポイントまたはポイントインスタンサープリミティブの)USDのIDになります。UVアトリビュートのSTパラメータ設定によっては、primvars:stになる場合があります。CdUSDのprimvars:displayColorです。AlphaUSDのprimvars:displayOpacityです。widthsアトリビュートに変換できます。Houdiniは配列アトリビュートをサポートしますが、配列アトリビュートはUSDで同等のネイティブ表現を持ちません。primvarsを作成します。foo(すべての配列を連結して作成されたリスト)foo:lengths(配列の長さのリスト)たとえば、バー配列アトリビュート値[1,5]および[2,6,8]を持つ2つのポイントは、下記の2つのprimvarsとして変換されます。SOPアトリビュートを作成することで、対応するUSDプリミティブの可視性メタデータを制御できます。inheritのいずれかある必要があります。USDアトリビュートに変換されます。SOPは、インポータ設定を表すSOPジオメトリにアトリビュートを作成できます(このノードでパラメータをオンにすることでオーバーライドできます)。SOPアトリビュートにその他のプリミティブを変換する方法の設定を保存できます。SOPアトリビュートを作成する場合、この設定をプリミティブごとに指定できます。アトリビュートがある場合、USDプリミティブとしてインポートされます。インポータは、ポイントの位置と標準のインスタンス化の向きのアトリビュートを新しいプリミティブのTranslateに変換します。アトリビュートもある場合、プリミティブの種類(Kind)として使用されます。これを使用して、SOPのUSDプリミティブの階層を、path、usdprimtype、およびusdkindアトリビュートを持つポイントとして表すことができます。Sphereプリミティブに変換します。Coneプリミティブに変換します。プリミティブに変換します。meshに変換されます。notesHoudiniが左向きのメッシュであるのに対し、USDはデフォルトで右向きのメッシュになります。SOPジオメトリをUSDに変換するときは、できるだけ効率的になるようにしてください。Values」に追加することで、タイムサンプリングされないアトリビュートを指定できます。Attributesを「Static」に設定して、時間以外のサンプリングアトリビュートを取得することも忘れないでください。USD(特にHydra)は、タイムサンプルが1つしかない場合でも、値がタイムサンプリングされるとより多くの作業を行います。小規模なセットアップではおそらく大きな違いはありませんが、大きなシーンでは間違いなく影響が出てきます。Inc.の商標または登録商標です。他のすべてのブランド名、製品名、および商標はそれぞれの所有者に帰属します。当サイトは株式会社インディゾーンが運営しています。