Houdini 20.0 Solaris

USDでのVEXの使い方

On this page

概要

VEXは、デフォーマからシェーダ、さらにはソルバまで至るところで使用されているHoudiniのプログラミング言語です。 VEXはSIMD(Single Instruction Multiple Data:1つの命令で複数のデータに適用)言語なので、そのコード/ネットワークのスニペットは、ターゲットとなる'エレメント'毎に実行されるように設計されています。 LOPsでは、このエレメントはデフォルトでプリミティブを意味します。つまり、ターゲットプリミティブ毎に反復処理させたい場合にはループを追加する必要がなく、自動的にそうなります。 プリミティブの各アトリビュートは、@構文またはBind VOPを使ってアクセスします。

Wrangle LOPとVOP LOPにも Run on Elements of Array Attributes という二次モードがあります。 このモードを有効にすると、コードが実行されるエレメントは、プリミティブ上の配列プロパティのエレメントになります。 これによって、PointInstancerやPoints Primsさらに重いメッシュのポイントに対して、もっと高速に処理を実行することができます。

ビルトイン変数

@primpath

ステージ上のPrimのパス。

@elemnum

Primまたは配列エレメントの現在のエレメント番号。

@numelem

Primまたは配列エレメントの合計の数。

@primtype

Primタイプ名。

@primkind

Kindが設定されていれば、そのPrimのKind。

@primname

Primの名前。

@primpurpose

現行Primの表示Purpose。

@primdrawmode

PrimのDaw Mode。

@primactive

現行Primがアクティブか非アクティブかどうかを返します。

@primvisible

Primの可視性を返します。

USD固有の関数

  • usd_addattrib

    Prim上に指定したタイプのアトリビュートを作成します。

  • usd_addcollectionexclude

    コレクションからオブジェクトを除外します。

  • usd_addcollectioninclude

    コレクションにオブジェクトを追加します。

  • usd_addinversetotransformorder

    Primのトランスフォーム順序に逆トランスフォーム処理を追加します。

  • usd_addorient

    Primにクォータニオン方向を適用します。

  • usd_addprim

    指定したタイプのPrimを作成します。

  • usd_addprimvar

    Prim上に指定したタイプのPrimvarを作成します。

  • usd_addrelationshiptarget

    Primのリレーションシップにターゲットを追加します。

  • usd_addrotate

    Primに回転を適用します。

  • usd_addscale

    Primにスケールを適用します。

  • usd_addschemaattrib

    指定したタイプのアトリビュートをプリミティブ上に作成し、customメタデータフラグをFalseに設定します。

  • usd_addtotransformorder

    Primのトランスフォーム順序にトランスフォーム処理を追加します。

  • usd_addtransform

    Primにトランスフォームを適用します。

  • usd_addtranslate

    Primに移動を適用します。

  • usd_applyapi

    APIスキーマをプリミティブに適用します。

  • usd_attrib

    USD Primからアトリビュートの値を読み込みます。

  • usd_attribelement

    配列アトリビュートからエレメントの値を読み込みます。

  • usd_attriblen

    配列アトリビュートの長さを返します。

  • usd_attribnames

    Primで利用可能なアトリビュートの名前のリストを返します。

  • usd_attribsize

    アトリビュートのタプルサイズを返します。

  • usd_attribtimesamples

    アトリビュート値が編集されているタイムコードを返します。

  • usd_attribtypename

    アトリビュートタイプの名前を返します。

  • usd_blockattrib

    アトリビュートをブロックします。

  • usd_blockprimvar

    Primvarをブロックします。

  • usd_blockprimvarindices

    Primvarをブロックします。

  • usd_blockrelationship

    Primのリレーションシップをブロックします。

  • usd_boundmaterialpath

    指定したPrimにバインドされているマテリアルパスを返します。

  • usd_childnames

    プリミティブの子の名前を返します。

  • usd_clearmetadata

    メタデータの値をクリアします。

  • usd_cleartransformorder

    Primのトランスフォーム順序をクリアします。

  • usd_collectioncomputedpaths

    コレクションに属しているすべてのオブジェクトのリストを返します。

  • usd_collectioncontains

    オブジェクトパスがコレクションに属しているかどうかをチェックします。

  • usd_collectionexcludes

    コレクションの除外リストに入っているオブジェクトパスのリストを返します。

  • usd_collectionexpansionrule

    コレクションの展開ルールを返します。

  • usd_collectionincludes

    コレクションの包含リストに入っているオブジェクトパスのリストを返します。

  • usd_drawmode

    Primの描画モードを返します。

  • usd_findtransformname

    指定したトランスフォーム処理接尾辞のPrimのトランスフォーム処理フル名を返します。

  • usd_flattenediprimvar

    USD Primまたはその親Primsから直接、平坦化されたPrimvarの値を読み込みます。

  • usd_flattenediprimvarelement

    USD Primまたはその親Primsから直接、平坦化された配列Primvarのエレメント値を読み込みます。

  • usd_flattenedprimvar

    USD Primから直接、平坦化されたPrimvarの値を読み込みます。

  • usd_flattenedprimvarelement

    USD Primから直接、平坦化された配列Primvarのエレメント値を読み込みます。

  • usd_getbbox

    Primの境界ボックスの最小コーナーと最大コーナーを2つのベクトルに設定します。

  • usd_getbbox_center

    Primの境界ボックスの中心を返します。

  • usd_getbbox_max

    Primの境界ボックスの最大コーナーを返します。

  • usd_getbbox_min

    Primの境界ボックスの最小コーナーを返します。

  • usd_getbbox_size

    Primの境界ボックスのサイズを返します。

  • usd_getbounds

    Primの境界を返します。

  • usd_getpointinstancebounds

    Primの境界を返します。

  • usd_hasapi

    指定したAPIがPrimに適用されているかどうかをチェックします。

  • usd_haspayload

    指定したAPIがPrimに適用されているかどうかをチェックします。

  • usd_iprimvar

    USD Primまたはその親Primsから直接、Primvarの値を読み込みます。

  • usd_iprimvarelement

    USD Primまたはその親Primsから直接、配列Primvarのエレメント値を読み込みます。

  • usd_iprimvarelementsize

    USD Primまたはその親Primsから直接、Primvarのエレメントサイズを返します。

  • usd_iprimvarindices

    USD Primまたはその親Primsから直接、インデックスPrimvarのインデックス配列を返します。

  • usd_iprimvarinterpolation

    USD Primまたはその親Primsから直接、Primvarのエレメントサイズを返します。

  • usd_iprimvarlen

    USD Primまたはその親Primsから直接、配列Primvarの配列長を返します。

  • usd_iprimvarnames

    USD Primまたはその親Primsから直接、利用可能なPrimvarの名前のリストを返します。

  • usd_iprimvarsize

    USD Primまたはその親Primsから直接、Primvarのタプルサイズを返します。

  • usd_iprimvartimesamples

    USD Primまたはその親Primsから直接、Primvar値が編集されているタイムコードを返します。

  • usd_iprimvartypename

    USD Primまたはその親Primsで見つかったPrimvarタイプの名前を返します。

  • usd_isabstract

    Primが抽象Primかどうかをチェックします。

  • usd_isactive

    Primがアクティブかどうかをチェックします。

  • usd_isarray

    アトリビュートが配列かどうかをチェックします。

  • usd_isarrayiprimvar

    USD Prim上またはその親Prims上に配列Primvarが直接存在するかどうかをチェックします。

  • usd_isarraymetadata

    指定したメタデータが配列かどうかをチェックします。

  • usd_isarrayprimvar

    USD Prim上に配列Primvarが直接存在するかどうかをチェックします。

  • usd_isattrib

    指定した名前のアトリビュートがPrimに含まれているかどうかをチェックします。

  • usd_iscollection

    コレクションが存在するかどうかをチェックします。

  • usd_iscollectionpath

    パスが有効なコレクションパスかどうかをチェックします。

  • usd_isindexediprimvar

    USD Prim上またはその親Prims上にインデックスPrimvarが直接存在するかどうかをチェックします。

  • usd_isindexedprimvar

    USD Prim上にインデックスPrimvarが直接存在するかどうかをチェックします。

  • usd_isinstance

    Primがインスタンスかどうかをチェックします。

  • usd_isiprimvar

    指定した名前のPrimvarがPrimまたはその親Primsに含まれているかどうかをチェックします。

  • usd_iskind

    Primが指定したKindかどうかをチェックします。

  • usd_ismetadata

    指定した名前のメタデータがPrimに含まれているかどうかをチェックします。

  • usd_ismodel

    Primがモデルかどうかをチェックします。

  • usd_isprim

    パスが有効なPrimを参照しているかどうかをチェックします。

  • usd_isprimvar

    指定した名前のPrimvarがPrimに含まれているかどうかをチェックします。

  • usd_isrelationship

    指定した名前のリレーションシップがPrimに含まれているかどうかをチェックします。

  • usd_isstage

    ステージが有効かどうかをチェックします。

  • usd_istransformreset

    Primトランスフォームがリセットされているかどうかをチェックします。

  • usd_istype

    Primが指定したタイプかどうかをチェックします。

  • usd_isvisible

    Primが可視かどうかをチェックします。

  • usd_kind

    PrimのKindを返します。

  • usd_localtransform

    Primのローカルトランスフォームを返します。

  • usd_makeattribpath

    Primパスとアトリビュート名からアトリビュートパスを構築します。

  • usd_makecollectionpath

    Primパスとコレクション名からコレクションパスを構築します。

  • usd_makepropertypath

    Primパスとプロパティ名からプロパティパスを構築します。

  • usd_makerelationshippath

    Primパスとリレーションシップ名からリレーションシップパスを構築します。

  • usd_makevalidprimname

    文字列をUSD Primの命名規則に準拠させます。

  • usd_makevalidprimpath

    文字列をUSD Primパスの命名規則に準拠させます。

  • usd_metadata

    USDオブジェクトからメタデータの値を読み込みます。

  • usd_metadataelement

    配列メタデータからエレメントの値を読み込みます。

  • usd_metadatalen

    配列メタデータの長さを返します。

  • usd_metadatanames

    オブジェクトで利用可能なメタデータの名前のリストを返します。

  • usd_name

    Primの名前を返します。

  • usd_parentpath

    Primの親のパスを返します。

  • usd_pointinstance_getbbox

    ポイントインスタンサー内の指定したインスタンスの境界ボックスの最小コーナーと最大コーナーを2つのベクトルに設定します。

  • usd_pointinstance_getbbox_center

    ポイントインスタンサーPrim内のインスタンスの境界ボックスの中心を返します。

  • usd_pointinstance_getbbox_max

    ポイントインスタンサーPrim内のインスタンスの境界ボックスの最大位置を返します。

  • usd_pointinstance_getbbox_min

    ポイントインスタンサーPrim内のインスタンスの境界ボックスの最小位置を返します。

  • usd_pointinstance_getbbox_size

    ポイントインスタンサーPrim内のインスタンスの境界ボックスのサイズを返します。

  • usd_pointinstance_relbbox

    ジオメトリの境界ボックスを基準としたポイントの相対位置を返します。

  • usd_pointinstancetransform

    指定したポイントインスタンスのトランスフォームを返します。

  • usd_primvar

    USD Primから直接、Primvarの値を読み込みます。

  • usd_primvarattribname

    指定したPrimvarのネームスペース付きアトリビュート名を返します。

  • usd_primvarelement

    USD Primから直接、配列Primvarからエレメントの値を読み込みます。

  • usd_primvarelementsize

    USD Primから直接、Primvarのエレメントサイズを返します。

  • usd_primvarindices

    USD Prim上で直接見つかったインデックスPrimvarのインデックス配列を返します。

  • usd_primvarinterpolation

    USD Prim上で直接見つかったPrimvarのエレメントサイズを返します。

  • usd_primvarlen

    USD Prim上で直接見つかった配列Primvarの長さを返します。

  • usd_primvarnames

    指定したUSD Primで利用可能なPrimvarの名前のリストを返します。

  • usd_primvarsize

    USD Prim上で直接見つかったPrimvarのタプルサイズを返します。

  • usd_primvartimesamples

    指定したPrim上で直接見つかったPrimvar値が編集されているタイムコードを返します。

  • usd_primvartypename

    指定したPrim上で直接見つかったPrimvarタイプの名前を返します。

  • usd_purpose

    PrimのPurposeを返します。

  • usd_relationshipforwardedtargets

    リレーションシップ内の転送ターゲットを返します。

  • usd_relationshipnames

    Primで利用可能なリレーションシップの名前のリストを返します。

  • usd_relationshiptargets

    リレーションシップターゲットのリストを返します。

  • usd_relbbox

    ジオメトリの境界ボックスを基準としたポイントの相対位置を返します。

  • usd_removerelationshiptarget

    Primのリレーションシップからターゲットを削除します。

  • usd_setactive

    Primのアクティブ状態を設定します。

  • usd_setattrib

    アトリビュートの値を設定します。

  • usd_setattribelement

    配列アトリビュート内のエレメントに値を設定します。

  • usd_setcollectionexcludes

    コレクションに除外リストを設定します。

  • usd_setcollectionexpansionrule

    コレクションに展開ルールを設定します。

  • usd_setcollectionincludes

    コレクションに包含リストを設定します。

  • usd_setdrawmode

    Primの描画モードを設定します。

  • usd_setkind

    PrimのKindを設定します。

  • usd_setmetadata

    メタデータの値を設定します。

  • usd_setmetadataelement

    配列メタデータ内のエレメントに値を設定します。

  • usd_setprimvar

    Primvarの値を設定します。

  • usd_setprimvarelement

    配列Primvar内のエレメントに値を設定します。

  • usd_setprimvarelementsize

    Primvarのエレメントサイズを設定します。

  • usd_setprimvarindices

    指定したPrimvarにインデックスを設定します。

  • usd_setprimvarinterpolation

    Primvarの補間方法を設定します。

  • usd_setpurpose

    PrimのPurposeを設定します。

  • usd_setrelationshiptargets

    Primのリレーションシップにターゲットを設定します。

  • usd_settransformorder

    Primのトランスフォーム順序を設定します。

  • usd_settransformreset

    Primのトランスフォームリセットフラグを設定/クリアします。

  • usd_setvariantselection

    指定したバリアントセットに選択したバリアントを設定します。

  • usd_setvisibility

    Primを可視/不可視に設定したり、親Primの可視性を継承するように設定します。

  • usd_setvisible

    Primを可視または不可視にします。

  • usd_specifier

    Primのspecifier(指定子)を返します。

  • usd_transformname

    トランスフォーム処理のフル名を構築します。

  • usd_transformorder

    Primのトランスフォーム順序を返します。

  • usd_transformsuffix

    フル名からトランスフォーム処理接尾辞を抽出します。

  • usd_transformtype

    フル名からトランスフォーム処理タイプを推測します。

  • usd_typename

    Primのタイプの名前を返します。

  • usd_uniquetransformname

    トランスフォーム処理から固有のフル名を構築します。

  • usd_variants

    Prim上の指定したバリアントセットに属しているバリアントのリストを返します。

  • usd_variantselection

    指定したバリアントセット内の現在選択されているバリアントを返します。

  • usd_variantsets

    Primで利用可能なバリアントセットのリストを返します。

  • usd_worldtransform

    Primのワールドトランスフォームを返します。

Solaris

USD

ジオメトリ

  • SOP Geometry I/O

    HoudiniがSOPジオメトリをUSDに変換する方法、その工程を制御する方法の詳細。

  • Component Builder

    Component Builderツールは、マテリアル、バリアント、ペイロード、レイヤーをサポートし、SOPからUSDモデルを作成するためのネットワークスニペットを配置します。

レイアウト

  • Editノード

    ビューア内でインタラクティブにPrimsをトランスフォームさせます。物理衝突を使用して、プロップを現実的に配置することができます。

  • Layoutノード

    インスタンス化されたUSDアセットをシーンに取り込むツールが備わっています。個々にコンポーネントを配置したり、カスタマイズ可能なブラシを使って色々な方法でコンポーネントをペイント/スキャッターしたり、既存のインスタンスを編集することができます。

  • カスタムレイアウトブラシ

    Layout LOPの挙動をカスタマイズして利用可能なレイアウトブラシデジタルアセットの作成方法。

ルック開発

  • MaterialX

    HoudiniにはMaterialXシェーダノードに呼応させたVOPノードが用意されています。これらのノードを使用してシェーダネットワークを構築したり、既存のMaterialXベースのシェーダをインポートすることで、(HoudiniのUSDレンダラーの)KarmaでMaterialXシェーダノードを利用することができます。

  • UDIMパス

    テクスチャ空間の異なるタイルを、それぞれ別の解像度で、異なるテクスチャファイルにエンコードすることができます。その後、kaiju.exrといったテクスチャファイル名を指定すると、Houdiniがロード時にそのトークンを特定のタイルアドレスに置き換えてくれます。

  • シェーダ変換フレームワーク

    シェーダノードのUSDプリミティブへの変換を含む、Solarisシェーディングフレームについて説明しています。

Karmaレンダリング

チュートリアル