On this page |
HoudiniとUnreal間でデータをマーシャリング(等価変換)する際は、特別なグループとアトリビュートが使用されます。
詳細については、以下の参照トピックをご覧ください。
Note
アトリビュートには推奨されている型があるわけですが、プラグインは、その期待とは異なる型を持つアトリビュートに対して変換を試みます。 例えば、int型を必要としているのにfloat型のアトリビュートがある場合です。 アトリビュート値がその必要とする型に変換されると、プラグインはその警告をログに記録します。
Note
パックプリミティブを使用して複数のメッシュ出力をインスタンス化したり作成する際は、アトリビュートの場所に注意してください。 パック前に作成されたアトリビュートは生成されたメッシュに適用され、パック後に作成されたアトリビュートは生成されたコンポーネント/アクターに適用されます。
HoudiniからUnreal ¶
以下のテーブルには、HDAで設定することができ、HoudiniデータからUnreal出力への変換時にプラグインによって認識される特別なアトリビュートを載せています。
アセットにこれらのアトリビュートを設定すると、生成されたUnreal出力の一部のプロパティや動作を制御したり、上書きすることができます。
アトリビュート名 |
オーナー |
型 |
トピック |
説明 |
---|---|---|---|---|
|
任意 |
int, float, string |
汎用UPropertyアトリビュート |
生成された出力オブジェクト/アクター/コンポーネントのUPropertyを変更するのに使用されるアトリビュート接頭辞 |
|
任意 |
string |
マテリアル |
出力に適用するマテリアルアセットのUnrealパス。
マテリアルスロットを指定するには、角括弧の中にスロット番号を指定したものをパスの前に追加します: |
|
prim, detail |
string |
ランドスケープ |
ランドスケープの穴に使用するマテリアルアセットのUnrealパス |
|
prim, detail |
string |
マテリアルインスタンス |
インスタンスを作成するマテリアルアセットのUnrealパス |
|
prim, detail |
string |
マテリアルインスタンス |
インスタンスを作成するマテリアルアセットのUnrealパスで、ランドスケープの穴に使用されます。 |
|
prim, detail |
string |
マテリアル |
出力で物理マテリアルとして使用されるPhysicalMaterialアセットのUnrealパス |
|
prim, detail |
string |
マテリアル |
単純なUnrealコリジョンで使用されるPhysicalMaterialのUnrealパス |
|
detail |
任意 |
マテリアルインスタンス |
生成されたマテリアルインスタンスのパラメータを変更するのに使用されるアトリビュート接頭辞 |
|
prim |
int |
マテリアル |
メッシュスムージングマスクデータ |
|
任意 |
int |
メッシュ |
メッシュコンポーネントのライトマップ解像度 |
|
任意 |
string |
メッシュ |
出力に使用される名前。単一のランドスケープアクターのデフォルト値: |
|
任意 |
string |
メッシュ |
(廃止) 代わりに |
|
任意 |
int |
メッシュ |
生成されたメッシュでNaniteを有効にします(UE5)。 |
|
任意 |
int |
メッシュ |
Naniteメッシュに使用されるPosition Precisionアトリビュート(UE5) |
|
任意 |
int |
メッシュ |
Naniteメッシュに維持する三角形の割合、デフォルトはゼロ(三角形なし)(UE5)。 |
|
detail, prim |
float |
詳細レベル |
現行アセットによって生成されたLOD番号Xの画面サイズ値 |
|
任意 |
string |
出力 |
出力オブジェクトでタグを指定するために使用される接頭辞。アクターと、この出力オブジェクトに関連するすべてのコンポーネントにタグが適用されます。 |
|
任意 |
string |
出力 |
出力オブジェクトでActorタグを指定するために使用される接頭辞 |
|
任意 |
string |
出力 |
出力オブジェクトのすべてのコンポーネントにComponentタグを指定するために使用される接頭辞 |
|
任意 |
string |
出力 |
出力オブジェクトのメインのコンポーネントにのみComponentタグを指定するために使用される接頭辞。出力オブジェクトがアクターの場合、タグはルートコンポーネントにのみ適用されます。 |
|
prim |
int |
出力 |
このアトリビュートが1に設定されているカーブは、SplineComponentsとして出力されます。 |
|
prim |
int |
出力 |
出力カーブを線形にすべきかどうかどうかを示します。 |
|
prim |
int |
出力 |
出力カーブを閉じるべきかどうかどうかを示します。 |
|
point, detail |
string |
インスタンサー |
指定したトランスフォームでインスタンス化されるアセットのUnrealパス。バージョン2では、このアトリビュートはクラス名にもなります( |
|
detail, prim, point |
int, float |
インスタンサー |
インスタンスで使用(および1に設定)されるとき、プラグインは、新しいアクター/コンポーネントを作成する代わりに、現行レベルのFoliageシステムにインスタンスを追加します。 |
|
point |
int |
インスタンサー |
フォリッジをそのレベルの他のオブジェクトに追加すべきかどうかを決定します。Yesなら1、Noなら0、ランドスケープのみに追加する場合は2です。 |
|
point |
float |
インスタンサー |
|
|
任意 |
string |
インスタンサー |
2つ目のアトリビュート値に基づいてインスタンサーを複数のコンポーネントに分割するために使用される、もう1つのアトリビュートの名前を示します。 |
|
detail, prim |
任意 |
インスタンサー |
(廃止) 代わりにunreal_split_attrを使用してください。生成されたインスタンスを1つの |
|
prim |
float(4) |
インスタンサー |
(廃止) unreal_split_instancesと共に使用して、インスタンス毎のカラーを指定し、生成されたStaticMeshComponents頂点カラーを上書きします。 |
|
任意 |
int |
インスタンサー |
1に設定すると、 |
|
任意 |
int |
インスタンサー |
1に設定すると、スタティックメッシュにインスタンスが1つしかない場合でも、インスタンサーコンポーネント( |
|
任意 |
int |
インスタンサー |
インスタンサーのインスタンス毎のカスタムデータに使用される、カスタム浮動小数点の数を示します。 |
|
任意 |
float |
インスタンサー |
インスタンス毎のカスタム浮動小数点データ(Xはカスタムデータのゼロベースのインデックス) |
|
任意 |
int |
ランドスケープ |
タイリングされたランドスケープのために作成されるランドスケープアクターのタイプを示します。個々のランドスケープアクター |
|
任意 |
int |
ランドスケープ |
(廃止) 代わりにunreal_landscape_tile_actor_typeを使用してください。デフォルト値: “{temp}” (String Tokenをサポートしています)。 |
|
任意 |
string |
ランドスケープ |
ランドスケープストリーミングプロキシを使用する際の主要/共有ランドスケープアクターの名前。ランドスケープタイルアクターの名前は、 |
|
任意 |
float |
ランドスケープ |
Height Fieldレイヤー/高さの値をランドスケープに変換する際に使用される最小値を指定できます。これは、すべてのタイルを確実に同じように変換したい場合に特に便利です。 |
|
任意 |
float |
ランドスケープ |
Height Fieldレイヤー/高さの値をランドスケープに変換する際に使用される最大値を指定できます。これは、すべてのタイルを確実に同じように変換したい場合に特に便利です。 |
|
任意 |
int |
ランドスケープ |
ロックされたLandscape Edit Layerに対してレイヤーのデータの書き込みを許可します。 |
|
任意 |
int |
ランドスケープ |
書き込み後にEdit Layerをロックします。 |
|
任意 |
int |
ランドスケープ |
ランドスケープのセクションのサイズを指定します。unreal_landscape_sections_per_componentも設定する必要があります。 |
|
任意 |
int |
ランドスケープ |
ランドスケープのコンポーネント毎のセクションを指定します。unreal_landscape_section_sizeも設定する必要があります。 |
|
prim, detail |
int |
ランドスケープ |
1に設定すると、ランドスケープレイヤーに変換される際、Height Fieldマスクの値は/unreal/0, 1.htmlであるとみなされます。 |
|
prim, detail |
string |
ランドスケープ |
ウェイトがブレンドされていないランドスケープレイヤーとして作成される、スペース区切りのHeight Fieldマスクの名前。 |
|
prim |
string |
ランドスケープ |
指定したHeight Fieldマスクをランドスケープレイヤーに変換する際に使用される、既存のLandscapeLayerInfoオブジェクトのUnrealパス |
|
prim, detail |
int |
ランドスケープ |
Unreal内の呼応するペイントレイヤーのLayerInfoオブジェクトで、'NoWeightBlend'プロパティを、チェックを外した |
|
任意 |
int |
ランドスケープ |
ランドスケープ出力モードをGenerate Landscapeの |
|
任意 |
string |
ランドスケープ |
ターゲットの編集レイヤーの名前 |
|
任意 |
string |
ランドスケープ |
(廃止) 代わりに |
|
任意 |
string |
ランドスケープ |
出力されるレイヤーのタイプ。 |
|
任意 |
int |
ランドスケープ |
出力Heightfieldを描画する前に編集レイヤー全体をクリアするかどうか(デフォルト: |
|
任意 |
string |
ランドスケープ |
ターゲットランドスケープのレイヤー。そのレイヤーの後に、この出力レイヤーを配置します。 |
|
prim, detail |
int |
ランドスケープ |
このアトリビュートをHeight Fieldマスクに設定することで、UnrealのペイントレイヤーのSubtractive Blendプロパティを、チェックを外した |
|
prim |
int |
ランドスケープ |
このアトリビュートは、ランドスケープの作成時、World Partitionグリッドのサイズを制御します。World Partitionが有効なレベルでのみ適用できます。 |
|
prim |
int2 |
ランドスケープ |
単一のタイルのインポート時、ランドスケープ全体のサイズを示すのに使用されます。 |
|
任意 |
string |
出力をベイクする |
アクター/フォリッジへのベイク時、出力がベイクされるレベルを決定します。メッシュ、インスタンサー、フォリッジ、ランドスケープは、指定されたレベルにベイクされます。これは、World Composition向けに特に便利です。ランドスケープタイルと関連インスタンサーまたはフォリッジを、タイル毎に個別のレベルにベイクできます。このアトリビュートは入力でも使用できます(入力が発生するレベルのパスに設定されます)。デフォルト値は |
|
prim, detail |
string |
出力をベイクする |
このアセットのデフォルトのベイクフォルダを上書きするのに使用されるフォルダのUnrealパス。デフォルト値: “{bake}” (String Tokenをサポートしています)。 |
|
任意 |
string |
出力をベイクする |
(廃止) 代わりに |
|
任意 |
string |
出力をベイクする |
指定した出力のベイク時に作成/使用されるアクターのUnrealパス |
|
任意 |
string |
出力をベイクする |
ベイクアクターの生成時に使用するアクタークラスのUnrealパス(またはクラス名)。ない/空白の場合、アクターが使用されます。 |
|
任意 |
string |
出力をベイクする |
指定した出力のベイク時に作成/使用されるWorld OutlinerフォルダのUnrealパス |
|
point |
string |
メッシュソケット |
ポイントグループによって生成されるメッシュソケットの名前 |
|
point |
string |
メッシュソケット |
ポイントグループによって生成されるメッシュソケットのタグ |
|
point |
string |
メッシュソケット |
ポイントグループによって生成されるソケットに自動的にアタッチされる、アクターの名前。V2では、これは、アクターとしてインスタンス化され、ソケットにアタッチされるアセットのパスである場合もあります。 |
|
detail |
float3 |
メッシュソケット |
メッシュソケットの位置を表す、vector3 |
|
detail |
float4 |
メッシュソケット |
メッシュソケットの回転に使用されるクォータニオン |
|
detail |
float3 |
メッシュソケット |
メッシュソケットのスケールを表す、vector3 |
|
detail |
string |
メッシュソケット |
生成されたメッシュソケットの名前 |
|
detail |
string |
メッシュソケット |
生成されたメッシュソケットのタグ |
|
detail |
string |
メッシュソケット |
自動的にアタッチされるアクターの名前 |
UnrealからHoudini ¶
以下のテーブルには、UnrealからHoudiniへのデータのインポート時に、プラグインによって作成される特別なアトリビュートを載せています。
アトリビュート名 |
オーナー |
型 |
トピック |
説明 |
---|---|---|---|---|
|
prim |
string |
入力 |
入力オブジェクトへのパス |
|
prim |
string |
入力 |
入力データを含むレベルへのパス |
|
prim |
string |
入力 |
選択した入力アクターへのパス |
|
prim |
string |
入力 |
入力に接続されたメッシュuassetのUnrealパス |
|
prim |
string |
入力 |
入力に接続されるuassetのソースパス(ソース.fbxへのファイルパスなど) |
|
prim |
string |
入力 |
入力で使用されるマテリアルアセットへのパス |
|
prim |
string |
入力 |
入力ランドスケープで穴のマテリアルとして使用されるマテリアルアセットへのパス |
|
prim |
string |
入力 |
マテリアルのすべてのスカラー/ベクトル/テクスチャパラメータをアトリビュートとしてインポートする際に使用される接頭辞。この接頭辞の後にパラメータ名が続きます。 |
|
prim |
string |
マテリアル |
単純なコリジョンから取り込まれるPhysicalMaterialアセットのUnrealパス |
|
point |
int2 |
ランドスケープ入力 |
コンポーネントの頂点インデックス(グリッドx、y内の頂点インデックス) |
|
detail |
Float |
入力 |
入力メッシュのLOD番号Xの画面サイズ値 |
|
prim |
string |
入力 |
入力オブジェクト/アクタータグをアトリビュートとしてインポートするのに使用される接頭辞 |
|
point |
string |
メッシュソケット |
入力オブジェクトからインポートされるメッシュソケットの名前 |
|
point |
int |
メッシュソケット |
入力オブジェクトからインポートされるメッシュソケットのタグ |
|
float3 |
int |
メッシュソケット |
入力オブジェクトからインポートされるソケットの位置を示したvector3 |
|
float4 |
string |
メッシュソケット |
入力オブジェクトからインポートされるソケットの回転を示したクォータニオン |
|
float3 |
int |
メッシュソケット |
入力オブジェクトからインポートされるソケットのスケールを示したvector3 |
|
detail |
string |
メッシュソケット |
インポートされるメッシュソケットの名前 |
|
detail |
string |
メッシュソケット |
インポートされるメッシュソケットのタグ |
|
point |
string |
入力 |
ジオメトリ入力を介してテーブルをインポートする際に使用される接頭辞。各アトリビュートには |
|
point |
string |
入力 |
入力データテーブル用のデータテーブルのタイプ( |
|
point |
string |
入力 |
レベルインスタンスアクターでインスタンス化されるレベルの名前 |
これらのアトリビュートは、入力タイプを使用してUnrealからHoudiniへデータをマーシャリングする際に、Houdiniで利用可能です。
位置のp
、頂点カラーのCd
、Alpha
、法線のN*
、UVセットのuv
、*uvX
などの標準のHoudiniアトリビュートも通常利用可能です。
これらのアトリビュートとその値は、アセットの入力を初期化した後、内部のHoudiniシーン( File ▸ Open Scene In Houdini )のデバッグを行なうことで確認できます。
グループ ¶
いくつかの特別なグループ名には命名規則があり、HoudiniからUnrealにデータをマーシャリングする際の生成動作を指定します。 それぞれの仕組みの詳細については、以下で参照されているトピックをご覧ください。
グループ名 |
トピック |
説明 |
---|---|---|
|
メッシュソケット |
ソケットの追加に使用される接頭辞 |
|
複雑なコリジョン |
凸状のコライダージオメトリの生成(非表示)に使用される接頭辞 |
|
複雑なコリジョン |
可視コリジョンジオメトリの生成に使用される接頭辞 |
|
凸型コリジョン |
UCXコリジョンジオメトリの生成(非表示)に使用される接頭辞 |
|
凸型コリジョン |
可視UCXコリジョンの生成に使用される接頭辞 |
|
単純なコリジョン |
単純なコリジョンの生成(非表示)に使用される接頭辞 |
|
単純なコリジョン |
レンダリングされた単純なコリジョンの生成に使用される接頭辞 |
|
詳細レベル |
メッシュのLODレベルを定義するのに使用される接頭辞 |
標準のHoudiniアトリビュート ¶
HoudiniとUnreal間でデータをマーシャリングする際は、特定の標準Houdiniアトリビュートが使用されます。
アトリビュート名 |
説明 |
---|---|
|
オブジェクトレベルのインスタンス化向け。インスタンサーを参照 |
|
位置 |
|
回転 |
|
スケール |
|
不均等なスケール |
|
カラー |
|
不透明度 |
|
法線 |
|
UV |
|
追加のUVチャンネルX(2から8) |
Note
Houdini16.5以降、UV SOPノードを使用して、UVの格納に使用されるアトリビュート名を変更することができます。 これらのアトリビュートはプラグインでサポートされており、UVアトリビュートの総数がUnrealのMAX_STATIC_TEXCOORDS値(デフォルトは8)を超えない限り、UVに変換することができます。
UnrealでのHoudiniアセットのトランスフォームは、Houdiniでのアセットの親オブジェクトのトランスフォームで利用可能です。 例えば、HDAでこのPythonエクスプレッション(hou.parent().worldTransform().extractTranslates('trs').x())を使用して、Xの位置を取得することができます。
パラメータタグ ¶
特定のパラメータタグを使用することで、Unreal内に露出されるパラメータの挙動を制御することができます:
パラメータタグ名 |
関連パラメータの型 |
説明 |
---|---|---|
|
string |
1に設定すると、文字列パラメータがUnrealでAssetPickerとして作成され、文字列の値を選択したアセットのパスに設定します。 |
|
string |
“unreal_ref”タグと共に使用すると、アセットピッカーをフィルタリングするのに使用するクラスを指定できます。 |
|
Float (tuple3) |
vector3 YおよびZの値がUnrealで入れ替わらないことを示します。 |
|
File |
読み取りに設定されているとき、ファイルパラメータは読み取り専用になります。 |
|
File |
Browseダイアログを開く際に使用されるデフォルトディレクトリ |
汎用UPropertyアトリビュート ¶
このシステムの目的は、汎用アトリビュートを使用して、プラグインによって生成されたオブジェクトやメッシュで利用可能なプロパティを変更できるようにすることです。 プラグインによって生成されたコンポーネントですべてのプロパティを設定することはできないため、このシステムにより、アトリビュートを使用してこれらのプロパティを事前に設定できるようにします。
これらのプロパティを設定するには:
-
PrimitiveまたはDetailアトリビュートを、
unreal_uproperty_
で始まるHDAに追加します。 -
変更したいupropertyの名前を追加します。
-
するとHoudini Engineが、生成されたメッシュコンポーネントのアトリビュートに呼応するupropertyを見つけ、そのプロパティの値を設定しようと試みます。
例えば、アセットによって生成されたスタティックメッシュコンポーネントで Simulate Physics プロパティをアクティブ化する必要がある場合、unreal_uproperty_SimulatePhysics
というDetailアトリビュートを追加して、その値を1に設定します。
これで、アセットによって生成されたスタティックメッシュで、 Simulate Physics が有効になります。
upropertyアトリビュートは、float(浮動小数点)、int(整数)、またはstring(文字列)です。プラグインは常に、アトリビュートの値をupropertyの型に変換しようとします。
例えば、ブーリアンuproperty UseEmissiveForStaticLighting
は、アトリビュートがunreal_uproperty_UseEmissiveForStaticLighting
という名前の場合、intアトリビュートを1、floatアトリビュートを1.0、またはstringアトリビュートを true に設定することで、trueに設定することができます。
Center Of Mass Offset
をはじめとする、vector型Upropertyは、サイズ3のアトリビュートを使用して設定することができます。
Upropertyとアトリビュートを一致させるには、upropertyの名前(ソースコード内のupropertyの名前)またはスペースなしの表示名(Detailsパネルで使用される名前)のいずれかを使用します。
例えば、Center of Mass Offsetプロパティは、unreal_uproperty_centerofmassoffset
(表示名を使用)またはunreal_uproperty_comnudge
(uproperty名を使用)のいずれかのアトリビュートを使用して、変更することができます。
一般的なプロパティアトリビュートを使用しても、Houdiniアセットコンポーネント自体のプロパティを変更できます。 これを使用することで、Houdiniアセットコンポーネントのデフォルトプロパティの一部(Cook Triggers、Auto Bake、Use Output Nodesなど)を、事前に設定することができます。Houdiniアセットコンポーネント自体に適用するには、これらのアトリビュートをDetailsパネルで設定する必要があります。
例:
i@unreal_uproperty_bUseOutputNodes = 1;
指定したオブジェクトのタイプ/クラスのプロパティアトリビュートのリストを取得したいのであれば、Houdini.DumpGenericAttributeログコマンドを使用すると良いでしょう。 これは、指定したタイプに対してこのプラグインが見る汎用プロパティアトリビュートすべてをリストし、そのアトリビュート名、Unreal名と表示名、さらにはUnrealタイプとHoudiniタイプをリストします。
使い方は、単に“Output Log”パネルを開き、“Cmd”ボックス内に“Houdini.DumpGenericAttribute XXXX”(XXXXはリストが欲しいクラスに置換)と入力します。
例:
Houdini.DumpGenericAttribute StaticMesh Houdini.DumpGenericAttribute InstancedStaticMeshComponent Houdini.DumpGenericAttribute Landscape
文字列トークン ¶
すべてのアトリビュートを事前に決定できるわけではありません。 出力値を完全に計算するには、さらなるコンテキスト情報が必要になることもあります(クック後)。 例えば、スタティックメッシュアセットのデフォルトの出力名またはパスは、HDAが現在実行されているのがTempモードかBakeモードかによって異なります。
トークン |
説明 |
---|---|
|
現行のパーシスタントワールドを含むマップへのパス |
|
現行のHDAが配置されているレベルを含むマップへのパス |
|
現行のHDAのタイプ名 |
|
現行のHDAアクターの名前 |
|
作成したいパッケージの名前。Nullの場合は、 |
|
一時的なPDG出力向け: TOPネットワーク名 |
|
一時的なPDG出力向け: TOPノード名 |
|
一時的なPDG出力向け: TOPノード名 |
|
所有するHoudiniアセットコンポーネントを識別するGUID |
|
コンテキスト出力フォルダ。HDAを実行しているのがTempモードかBakeモードかによって変わります。HDAがTempモードで実行されている場合、この値はtempトークンの値と一致します。HDAがBakeモードで実行されている場合、この値はbakeトークンの値と一致します。 |
|
Tempモードでアセットを作成するときに使用される基本フォルダ |
|
Bakeモードでアセットを作成するときに使用される基本フォルダ |
サンプル ¶
HDAレベルにベイクする ¶
-
パーシスタントレベルではなく、HDAを含む同じレベルにアクターをベイクするには、
unreal_level_path
アトリビュートを“{hda_level}”に設定します。
ターゲットレベルにベイクする ¶
-
アクターを現行のパーシスタントレベルに 相対的な レベル(MySubLevelという名前)にベイクするには、
unreal_level_path
アトリビュートを{world}/MySubLevel
に設定します。 -
アクターを特定のレベルに(絶対パスを使用して)ベイクするには、
unreal_level_path
アトリビュートをパッケージパス /Game/Maps/MyTargetLevel に設定します。