Houdini 20.5 Unity

アトリビュートとグループ

HoudiniとUnity間で使用するアトリビュートとグループのリスト。

On this page

HoudiniとUnity間でデータをマーシャリング(等価変換)する際は、特別なグループとアトリビュートが使用されます。

標準のHoudiniアトリビュート

HoudiniとUnity間でデータをマーシャリング(等価変換)する際は、特定の標準Houdiniアトリビュートが使用されます。

アトリビュート名

説明

p

位置

rot

回転

Cd

カラー

Alpha

不透明度

N

法線

uv

UV

uv2, uv3

追加のUVチャンネル

instance

オブジェクトレベルのインスタンス向け。インスタンス化を参照してください。

HoudiniからUnity

以下のテーブルは、HoudiniからUnityへのデータマーシャリング時に認識される特別なアトリビュートをリストしたものです。 アセットにこれらのアトリビュートを設定すると、生成されたUnityジオメトリの一部のプロパティを制御したり上書きすることができます。

General

アトリビュート名

オーナー

タイプ

説明

unity_tag

prim, detail

string

生成されたGameObjectに設定するUnityタグ。 タグは、Unity Editorシーンに既存のものでなければなりません。

unity_static

prim, detail

int

1に設定すると生成されたGameObjectが静的になり、0に設定すると非静的になります。

unity_layer

prim, detail

string

生成されたGameObjectに設定するUnityレイヤ。 レイヤは、Unity Editorシーンに既存のものでなければなりません。

Instancers

アトリビュート名

オーナー

タイプ

説明

unity_instance

point, detail

string

指定されたオーナートランスフォームでインスタンス化するアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスである必要があります。

例: Assets/Prefabs/Hero.prefab

unity_use_instance_flags

point, detail

int

インスタンス化する時に、Prefabの元の静的、タグ、レイヤのアトリビュートを使用します(親のHDAのアトリビュートではなく)。 unity_staticよりも優先されます。

instance_prefix

point, detail

string

インスタンスオブジェクトに追加する接頭辞。

例: City_Instance1(Cityが接頭辞)

unity_split_attr

point, detail

int

2つ目のアトリビュート値に基づいてインスタンサーを複数のコンポーネントに分割するために使用される、もう1つのアトリビュートの名前を示します。

Level of Detail

アトリビュート名

オーナー

タイプ

説明

lod_screensizes

detail

float array

LODレベルの遷移画面サイズ(範囲は0から1または1から100である必要があります)。

Materials

アトリビュート名

オーナー

タイプ

説明

unity_material

prim, detail

string

パートに適用するマテリアルアセットのUnityでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスである必要があります。

例: Assets/Materials/HeroMat.mat

Meshes

アトリビュート名

オーナー

タイプ

説明

unity_mesh_readable

point, detail

int

これが1の場合、生成されたメッシュは読み取り可能としてマークされます。 デフォルトでは、生成されたメッシュは読み取り可能ではありません。

Terrain Data

以下のテーブルは、使用する既存のTerrainDataアセットファイルを指定するために、 height Height Fieldレイヤに設定できる特別なアトリビュートのリストです。 TerrainDataアセットファイルのコピーは、Unityでの生成時に作成されます。

アトリビュート名

オーナー

タイプ

説明

unity_hf_terraindata_file

prim

string

地形データとして設定するTerrainDataアセットのUnityプロジェクトでのパス。プロジェクトのAssetsフォルダを基準とした相対パスです。

例: Assets/Terrain/terlayer.asset

unity_hf_terraindata_export_file

prim

string

生成またはコピーされたTerrainDataアセットの書き出し先のパス。

unity_hf_tile

point

int

散乱したポイントの地形タイルを指定します。タイル分割ノードを使った木のインスタンス化に便利です。

Heightfield Layers

以下のテーブルは、生成されたUnity Terrainに対応する地形レイヤプロパティを設定するために、Height Fieldレイヤに設定できる特別なアトリビュートのリストです。 地形レイヤの作成時、 height および mask レイヤは無視されることに注意してください。 これらのアトリビュートは他のHeight Fieldレイヤに設定する必要があります。

アトリビュート名

オーナー

タイプ

説明

unity_hf_terrainlayer_file

prim

string

地形レイヤとして設定するTerrainLayerアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。

例: Assets/Terrain/base.terrainlayer

unity_hf_texture_diffuse

prim

string

地形レイヤのディフューズテクスチャとして設定するTextureアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。

例: Assets/Texture/sand.png

unity_hf_texture_mask

prim

string

地形レイヤのマスクテクスチャとして設定するTextureアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。

unity_hf_texture_normal

prim

string

地形レイヤの法線テクスチャとして設定するTextureアセットのUnityプロジェクトでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスです。

unity_hf_normal_scale

prim

float

地形レイヤの法線スケール(サイズが1の浮動小数点)。

unity_hf_metallic

prim

float

地形レイヤのシェーダのメタリック値(サイズが1の浮動小数点、値は0から1)。

unity_hf_smoothness

prim

float

地形レイヤのシェーダの滑らかさの値(サイズが1の浮動小数点、値は0から1)。

unity_hf_specular

prim

float array

地形レイヤのシェーダのスペキュラーカラー(サイズが4の浮動小数点、値は0から1)。

unity_hf_tile_offset

prim

float array

地形レイヤのテクスチャのタイルオフセット(サイズが2の浮動小数点)。

unity_hf_tile_size

prim

float array

地形レイヤのテクスチャのタイルサイズ(サイズが2の浮動小数点)。

Terrain Detail Layers

アトリビュート名

説明

unity_hf_layer_type

Height FieldレイヤをDetailレイヤに変換します。 Height Fieldレイヤ上にDetail値を含んだ文字列型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_prefab

DetailPrototypeレイヤ上でprefabを使用するには、インスタンス化するprefabまたはメッシュのレイヤ上に文字列型rimitiveアトリビュートを設定します。

unity_hf_detail_prototype_texture

DetailPrototypeレイヤ上でテクスチャを使用するには、そのレイヤ上にテクスチャパスを含んだ文字列型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_bendfactor

ベンド係数値を含んだ浮動小数点型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_drycolor

Dry Color値を含んだカラー(float4)型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_healthycolor

Healthy Color値を含んだカラー(float4)型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_maxheight

Max Height値を含んだ浮動小数点型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_maxwidth

Max Width値を含んだ浮動小数点型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_minheight

Min Height値を含んだ浮動小数点型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_minwidth

Min Width値を含んだ浮動小数点型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_noisespread

Noise Spread値を含んだ浮動小数点型Primitiveアトリビュートを設定します。

unity_hf_detail_prototype_rendermode

DetailRenderMode値を含んだ整数型Primitiveアトリビュートを設定します(GrassBillboardが0、VertexLitが1、Grassが2(Default))。

Detail Layers - Global Detail Properties

  • Height レイヤ上には、以下のアトリビュートを指定することで、生成されるTerrainDataのDetail値を設定することができます:

アトリビュート名

説明

unity_hf_detail_distance

Detail Distance値(0から250)を含んだ整数型Detailアトリビュートを設定します。

unity_hf_detail_density

Detail Density値(0から1)を含んだ浮動小数点型Detailアトリビュートを設定します。

unity_hf_detail_resolution_patch

Density Resolution Per Patch値(8から128)を含んだ整数型Detailアトリビュートを設定します。

Tree Instances

Tree Instancesは、ネットワーク内のHeightField Scatterノードの後に以下のPointアトリビュートを使用して定義します。 Terrain Tree Instancesの自動設定は、Unity 2019.1以降でのみ利用可能です。

アトリビュート名

説明

unity_hf_treeinstance_prototypeindex

使用するTreePrototypeのインデックス(0から始まる整数)を設定します。 このインデックスは、上記で説明しているTreePrototype定義を指します。

unity_hf_treeinstance_heightscale

TreePrototypeの高さスケール(浮動小数点)を設定します。

unity_hf_treeinstance_widthscale

TreePrototypeの幅スケール(浮動小数点)を設定します。

unity_hf_treeinstance_lightmapcolor

TreePrototypeのライトマップカラー(float4)を設定します。

Cd

TreePrototypeのカラー(float4)を設定します。

orient

TreePrototypeの回転を設定します。

UnityからHoudini

以下のテーブルは、UnityからHoudiniへのデータマーシャリングの際に、プラグインによって作成される特別なアトリビュートをリストしたものです。

これらのアトリビュートは、入力を使用してUnityからHoudiniにデータをマーシャリングする際にHoudiniで利用可能になります。

位置( P )、頂点カラー( CdAlpha )、法線( N )、UVセット( uvuv2uv3 )などの標準のHoudiniアトリビュートも通常利用可能です。

これらのアトリビュートとその値は、アセットの入力を初期化した後、内部のHoudiniシーン( File ▸ Open Scene In Houdini )のトラブルシューティングを行なうことで確認することができます。

Materials

アトリビュート名

オーナー

タイプ

説明

unity_material

prim

string

メッシュに適用するマテリアルアセットのUnityでのパス。 プロジェクトのAssetsフォルダを基準とした相対パスである必要があります。 入力メッシュの使用時に自動的に設定されます。

入力

アトリビュート名

オーナー

タイプ

説明

unity_input_mesh_name

prim

string

メッシュのオーナーGameObjectの名前。 入力メッシュの使用時に自動的に設定されます。

グループ

いくつかの特別なグループ名には命名規則があり、HoudiniからUnityにデータをマーシャリングする際の生成動作を指定します。

コリジョングループに属するプリミティブは、メッシュコライダーコンポーネントとして個別に作成され、出力GameObjectに追加されます。 rendered_collision_geoグループには、MeshRendererおよびMeshFilterコンポーネントもあります。

Collision

ジオメトリのグループ名にキーワードを使用することで、生成されたメッシュにコライダーを自動で追加することができます。それらのグループ名は以下のとおりです:

Mesh Collision

グループ名

説明

collision_geo

レンダリングされない非凸メッシュコライダーを追加します。

rendered_collision_geo

レンダリングされる非凸メッシュコライダーを追加します。

Simple Collision

Unity Primitive Collisionと呼ばれています。

グループ名

説明

collision_geo_simple_box

単純なボックスコライダーを追加します(グループ内のジオメトリを無視します)。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なボックスになります。

collision_geo_simple_sphere

単純な球コライダーを追加します(グループ内のジオメトリを無視します)。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行な球になります。

collision_geo_simple_capsule

単純なカプセルコライダーを追加します(グループ内のジオメトリを無視します)。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なカプセルになります。

rendered_collision_geo_simple_box

メッシュとして生成されたジオメトリを持つ単純なボックスコライダーを追加します。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なボックスになります。

rendered_collision_geo_simple_sphere

メッシュとして生成されたジオメトリを持つ単純な球コライダーを追加します。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行な球になります。

rendered_collision_geo_simple_capsule

メッシュとして生成されたジオメトリを持つ単純なカプセルコライダーを追加します。これは、ジオメトリグループ内のすべての頂点を囲んだサイズの軸平行なカプセルになります。

Convex Collision

グループ名

説明

convex_collision_geo

レンダリングされない凸メッシュコライダーを追加します。

rendered_convex_collision_geo

レンダリングされる凸メッシュコライダーを追加します。

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

メッシュLODレベルの定義に使用される接頭辞(lod0、lod1など)。

Attributes Store

Attributes Store機能を使用すると、生成されたGameObjectにアタッチされたスクリプトコンポーネント(HEU_OutputAttributesStore)にアトリビュートデータを保存することができます。 これにより、対応しているアトリビュートタイプ(int、float、string)をHoudiniからUnityに取り込んで、後でアクセスすることができます。

HDAにこの機能を使用するには:

  1. HDA内のSOPジオメトリのポイント、プリミティブ、ディテールのアトリビュートを作成し、名前と値を設定します。

  2. 名前がhengine_attr_storeで、クラスが Detail で、タイプが String の別のアトリビュートを作成します。

  3. 保存したいアトリビュートの名前を、カンマで区切って指定します(health,ammo,armorなど)。

Unityでは、HDAがクックされると、生成されたGameObjectにHEU_OutputAttributesStoreスクリプトコンポーネントが追加されます。 これにはアトリビュートのマップが含まれ、スクリプトを介して照会することができます。

P、rot、N、UVなどのHoudiniのネイティブのアトリビュートも保存することができます。

オプションですが、Attributes Storeから値を照会して割り当てることができるスクリプトを追加して、自動的にコールバックすることもできます。 Assets/Plugins/HoudiniEngineUnity/HDAs/HEUInstanceAttributesStore.hdaで提供されているサンプルHDAをチェックしてください。

Unity

はじめよう

プロジェクトのセットアップ

Houdini Engineを使用する

リファレンス