On this page |
|
HoudiniとUnity間でデータをマーシャリング(等価変換)する際は、特別なグループとアトリビュートが使用されます。
標準のHoudiniアトリビュート ¶
HoudiniとUnity間でデータをマーシャリング(等価変換)する際は、特定の標準Houdiniアトリビュートが使用されます。
アトリビュート名 |
説明 |
---|---|
|
位置 |
|
回転 |
|
カラー |
|
不透明度 |
|
法線 |
|
UV |
|
追加のUVチャンネル |
|
オブジェクトレベルのインスタンス向け。インスタンス化を参照してください。 |
HoudiniからUnity ¶
以下のテーブルは、HoudiniからUnityへのデータマーシャリング時に認識される特別なアトリビュートをリストしたものです。 アセットにこれらのアトリビュートを設定すると、生成されたUnityジオメトリの一部のプロパティを制御したり上書きすることができます。
General ¶
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
prim, detail |
string |
生成されたGameObjectに設定するUnityタグ。 タグは、Unity Editorシーンに既存のものでなければなりません。 |
|
prim, detail |
int |
1に設定すると生成されたGameObjectが静的になり、0に設定すると非静的になります。 |
|
prim, detail |
string |
生成されたGameObjectに設定するUnityレイヤ。 レイヤは、Unity Editorシーンに既存のものでなければなりません。 |
Instancers ¶
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
point, detail |
string |
指定されたオーナートランスフォームでインスタンス化するアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスである必要があります。 例: Assets/Prefabs/Hero.prefab |
|
point, detail |
int |
インスタンス化する時に、Prefabの元の静的、タグ、レイヤのアトリビュートを使用します(親のHDAのアトリビュートではなく)。
|
|
point, detail |
string |
インスタンスオブジェクトに追加する接頭辞。 例: |
|
point, detail |
int |
2つ目のアトリビュート値に基づいてインスタンサーを複数のコンポーネントに分割するために使用される、もう1つのアトリビュートの名前を示します。 |
Level of Detail ¶
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
detail |
float array |
LODレベルの遷移画面サイズ(範囲は0から1または1から100である必要があります)。 |
Materials ¶
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
prim, detail |
string |
パートに適用するマテリアルアセットのUnityでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスである必要があります。 例: Assets/Materials/HeroMat.mat |
Meshes ¶
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
point, detail |
int |
これが1の場合、生成されたメッシュは読み取り可能としてマークされます。 デフォルトでは、生成されたメッシュは読み取り可能ではありません。 |
Terrain Data ¶
以下のテーブルは、使用する既存のTerrainDataアセットファイルを指定するために、 height Height Fieldレイヤに設定できる特別なアトリビュートのリストです。 TerrainDataアセットファイルのコピーは、Unityでの生成時に作成されます。
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
prim |
string |
地形データとして設定するTerrainDataアセットのUnityプロジェクトでのパス。プロジェクトのAssetsフォルダを基準とした相対パスです。 例: Assets/Terrain/terlayer.asset |
|
prim |
string |
生成またはコピーされたTerrainDataアセットの書き出し先のパス。 |
|
point |
int |
散乱したポイントの地形タイルを指定します。タイル分割ノードを使った木のインスタンス化に便利です。 |
Heightfield Layers ¶
以下のテーブルは、生成されたUnity Terrainに対応する地形レイヤプロパティを設定するために、Height Fieldレイヤに設定できる特別なアトリビュートのリストです。 地形レイヤの作成時、 height および mask レイヤは無視されることに注意してください。 これらのアトリビュートは他のHeight Fieldレイヤに設定する必要があります。
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
prim |
string |
地形レイヤとして設定するTerrainLayerアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。 例: Assets/Terrain/base.terrainlayer |
|
prim |
string |
地形レイヤのディフューズテクスチャとして設定するTextureアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。 例: Assets/Texture/sand.png |
|
prim |
string |
地形レイヤのマスクテクスチャとして設定するTextureアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。 |
|
prim |
string |
地形レイヤの法線テクスチャとして設定するTextureアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。 |
|
prim |
float |
地形レイヤの法線スケール(サイズが1の浮動小数点)。 |
|
prim |
float |
地形レイヤのシェーダのメタリック値(サイズが1の浮動小数点、値は0から1)。 |
|
prim |
float |
地形レイヤのシェーダの滑らかさの値(サイズが1の浮動小数点、値は0から1)。 |
|
prim |
float array |
地形レイヤのシェーダのスペキュラーカラー(サイズが4の浮動小数点、値は0から1)。 |
|
prim |
float array |
地形レイヤのテクスチャのタイルオフセット(サイズが2の浮動小数点)。 |
|
prim |
float array |
地形レイヤのテクスチャのタイルサイズ(サイズが2の浮動小数点)。 |
Terrain Detail Layers ¶
アトリビュート名 |
説明 |
---|---|
|
Height FieldレイヤをDetailレイヤに変換します。 Height Fieldレイヤ上にDetail値を含んだ文字列型Primitiveアトリビュートを設定します。 |
|
DetailPrototypeレイヤ上でprefabを使用するには、インスタンス化するprefabまたはメッシュのレイヤ上に文字列型rimitiveアトリビュートを設定します。 |
|
DetailPrototypeレイヤ上でテクスチャを使用するには、そのレイヤ上にテクスチャパスを含んだ文字列型Primitiveアトリビュートを設定します。 |
|
ベンド係数値を含んだ浮動小数点型Primitiveアトリビュートを設定します。 |
|
Dry Color値を含んだカラー(float4)型Primitiveアトリビュートを設定します。 |
|
Healthy Color値を含んだカラー(float4)型Primitiveアトリビュートを設定します。 |
|
Max Height値を含んだ浮動小数点型Primitiveアトリビュートを設定します。 |
|
Max Width値を含んだ浮動小数点型Primitiveアトリビュートを設定します。 |
|
Min Height値を含んだ浮動小数点型Primitiveアトリビュートを設定します。 |
|
Min Width値を含んだ浮動小数点型Primitiveアトリビュートを設定します。 |
|
Noise Spread値を含んだ浮動小数点型Primitiveアトリビュートを設定します。 |
|
DetailRenderMode値を含んだ整数型Primitiveアトリビュートを設定します(GrassBillboardが0、VertexLitが1、Grassが2(Default))。 |
Detail Layers - Global Detail Properties ¶
-
Height レイヤ上には、以下のアトリビュートを指定することで、生成されるTerrainDataのDetail値を設定することができます:
アトリビュート名 |
説明 |
---|---|
|
Detail Distance値(0から250)を含んだ整数型Detailアトリビュートを設定します。 |
|
Detail Density値(0から1)を含んだ浮動小数点型Detailアトリビュートを設定します。 |
|
Density Resolution Per Patch値(8から128)を含んだ整数型Detailアトリビュートを設定します。 |
Tree Instances ¶
Tree Instancesは、ネットワーク内のHeightField Scatterノードの後に以下のPointアトリビュートを使用して定義します。 Terrain Tree Instancesの自動設定は、Unity 2019.1以降でのみ利用可能です。
アトリビュート名 |
説明 |
---|---|
|
使用するTreePrototypeのインデックス(0から始まる整数)を設定します。 このインデックスは、上記で説明しているTreePrototype定義を指します。 |
|
TreePrototypeの高さスケール(浮動小数点)を設定します。 |
|
TreePrototypeの幅スケール(浮動小数点)を設定します。 |
|
TreePrototypeのライトマップカラー(float4)を設定します。 |
|
TreePrototypeのカラー(float4)を設定します。 |
|
TreePrototypeの回転を設定します。 |
UnityからHoudini ¶
以下のテーブルは、UnityからHoudiniへのデータマーシャリングの際に、プラグインによって作成される特別なアトリビュートをリストしたものです。
これらのアトリビュートは、入力を使用してUnityからHoudiniにデータをマーシャリングする際にHoudiniで利用可能になります。
位置( P )、頂点カラー( Cd 、 Alpha )、法線( N )、UVセット( uv 、 uv2 、 uv3 )などの標準のHoudiniアトリビュートも通常利用可能です。
これらのアトリビュートとその値は、アセットの入力を初期化した後、内部のHoudiniシーン( File ▸ Open Scene In Houdini )のトラブルシューティングを行なうことで確認することができます。
Materials ¶
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
prim |
string |
メッシュに適用するマテリアルアセットのUnityでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスである必要があります。 入力メッシュの使用時に自動的に設定されます。 |
入力 ¶
アトリビュート名 |
オーナー |
タイプ |
説明 |
---|---|---|---|
|
prim |
string |
メッシュのオーナーGameObjectの名前。 入力メッシュの使用時に自動的に設定されます。 |
グループ ¶
いくつかの特別なグループ名には命名規則があり、HoudiniからUnityにデータをマーシャリングする際の生成動作を指定します。
コリジョングループに属するプリミティブは、メッシュコライダーコンポーネントとして個別に作成され、出力GameObjectに追加されます。
rendered_collision_geo
グループには、MeshRendererおよびMeshFilterコンポーネントもあります。
Collision ¶
ジオメトリのグループ名にキーワードを使用することで、生成されたメッシュにコライダーを自動で追加することができます。それらのグループ名は以下のとおりです:
Mesh Collision ¶
グループ名 |
説明 |
---|---|
|
レンダリングされない非凸メッシュコライダーを追加します。 |
|
レンダリングされる非凸メッシュコライダーを追加します。 |
Simple Collision ¶
Unity Primitive Collisionと呼ばれています。
グループ名 |
説明 |
---|---|
|
単純なボックスコライダーを追加します(グループ内のジオメトリを無視します)。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なボックスになります。 |
|
単純な球コライダーを追加します(グループ内のジオメトリを無視します)。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行な球になります。 |
|
単純なカプセルコライダーを追加します(グループ内のジオメトリを無視します)。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なカプセルになります。 |
|
メッシュとして生成されたジオメトリを持つ単純なボックスコライダーを追加します。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なボックスになります。 |
|
メッシュとして生成されたジオメトリを持つ単純な球コライダーを追加します。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行な球になります。 |
|
メッシュとして生成されたジオメトリを持つ単純なカプセルコライダーを追加します。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なカプセルになります。 |
Convex Collision ¶
グループ名 |
説明 |
---|---|
|
レンダリングされない凸メッシュコライダーを追加します。 |
|
レンダリングされる凸メッシュコライダーを追加します。 |
Triggers Collision ¶
グループ名 |
説明 |
---|
コライダーをトリガーに変換するには(つまり、 Is Trigger トグルを有効にするには)、上記の名前に trigger を追加します。
Note
メッシュコライダーの場合、それらのメッシュは凸でなければなりません。 そのジオメトリは他のジオメトリとは別のメッシュとして生成され、MeshColliderコンポーネントのメッシュとして設定されます。
-
convex_collision_geo_trigger
-
rendered_convex_collision_geo_trigger
-
collision_geo_simple_trigger_box
-
collision_geo_simple_trigger_sphere
-
collision_geo_simple_trigger_capsule
-
rendered_collision_geo_simple_trigger_box
-
rendered_collision_geo_simple_trigger_sphere
-
rendered_collision_geo_simple_trigger_capsule
Level of Detail ¶
|
メッシュLODレベルの定義に使用される接頭辞(lod0、lod1など)。 |
Attributes Store ¶
Attributes Store機能を使用すると、生成されたGameObjectにアタッチされたスクリプトコンポーネント(HEU_OutputAttributesStore
)にアトリビュートデータを保存することができます。
これにより、対応しているアトリビュートタイプ(int、float、string)をHoudiniからUnityに取り込んで、後でアクセスすることができます。
HDAにこの機能を使用するには:
-
HDA内のSOPジオメトリのポイント、プリミティブ、ディテールのアトリビュートを作成し、名前と値を設定します。
-
名前が
hengine_attr_store
で、クラスが Detail で、タイプが String の別のアトリビュートを作成します。 -
保存したいアトリビュートの名前を、カンマで区切って指定します(health,ammo,armorなど)。
Unityでは、HDAがクックされると、生成されたGameObjectにHEU_OutputAttributesStore
スクリプトコンポーネントが追加されます。
これにはアトリビュートのマップが含まれ、スクリプトを介して照会することができます。
P、rot、N、UVなどのHoudiniのネイティブのアトリビュートも保存することができます。
オプションですが、Attributes Storeから値を照会して割り当てることができるスクリプトを追加して、自動的にコールバックすることもできます。 Assets/Plugins/HoudiniEngineUnity/HDAs/HEUInstanceAttributesStore.hdaで提供されているサンプルHDAをチェックしてください。
