On this page

概要

Houdini Engine for Unityは、Unityメッシュを出力ジオメトリとして生成することができ、さらにUnityメッシュを入力ジオメトリとしてHoudiniにアップロードすることもできます。

入力

ノード入力またはオブジェクトパス入力パラメータを使用することで、UnityメッシュジオメトリをHoudiniにマーシャリング(等価変換)することができます。 マテリアルの割り当ては、そのマテリアルパスが入ったPrimiriveアトリビュートとして保存することができるので、同じジオメトリをUnityにエクスポートして戻す双方向変換でもそのマテリアルの割り当ては維持されます。

出力

Houdiniアセットからのジオメトリ出力は、通常ではUnityメッシュであり、 MeshFilter または MeshCollider に格納されます。

アセットには通常 オブジェクト が含まれ、そしてそのオブジェクトには ジオメトリ が含まれ、そしてそのジオメトリには パーツ が含まれています。この構造によって、Unityメッシュがどのように生成されるかが決まります。

  • オブジェクト(OBJ) ノードは、Houdiniのトランスフォームノードです。他のOBJノードやジオメトリ(SOP)ノードを含んでいます。

  • ジオメトリ(SOP) ノードは、Houdiniのジオメトリコンテナノードです。ジオメトリを直接含むのではなく、パーツを含んでいます。

  • パーツ は、メッシュを生成するのに使用される実際のジオメトリおよびアトリビュートデータを含んでいます。

通常、パーツ内のすべてのジオメトリは単一メッシュとして生成されます。 コリジョングループまたはLODグループを使用した場合のみ、ジオメトリを別々のメッシュに分割することができます。 それ以外のグループは1つのメッシュにまとめられ、LODグループが存在した場合は、それ以外のジオメトリが無視されます。

Note

デフォルトでは、メッシュは分割された頂点を使用して生成されます(つまり、それぞれの三角形が固有の頂点を持ちます)。 これを変更して、ポイント(共有の頂点)を使用するようするには、 ASSET OPTIONS セクションの Generate Mesh Using Points チェックボックスをオンにします。

LOD(詳細レベル)

LOD(詳細レベル)メッシュは、LODグループを使用して生成することができます。

Note

LODはUnity 2017.1以降でのみ対応しています。

Houdiniでは、各LODのジオメトリを“lod”で始まる名前のプリミティブグループに追加します。 グループ名のアルファベット順がLODの順番になります(lod0、lod1、lod2など)。

プラグインがこれらのグループを検出すると、 LODGroup コンポーネントが出力GameObjectに追加され、LODメッシュを含む子GameObjectが作成されます(LODグループごとに1つの子)。 ASSET OPTIONS セクションの Use LOD Groups チェックボックスがオンになっていることを確認してください(オフの場合は、オンにしてからアセットを再クックします)。

LODGroupに使用されるscreenRelativeTransitionHeight(スクリーン相対遷移高さ)の値は、lod_screensizesという Detail float配列アトリビュートで指定することができます。 このfloat配列は、対応する数のfloat値を含む必要があり、それぞれの値は0から1、または1から100の範囲でなければなりません。 後者の場合、UnityのLODシステムとの互換性を維持するために、1を越える値は100で割られます。 このアトリビュートが指定されていない場合は、デフォルト値が使用され、各LODは0から1の間で均等な遷移範囲を受け取ります。

Note

LODグループ内の パック ジオメトリは、LODメッシュとして作成されません。 むしろそれはインスタンス化されたジオメトリとして扱われます(パックプリミティブを参照)。

コライダー

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

メッシュコライダー :

コリジョン

説明

collision_geo

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

rendered_collision_geo

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

単純なコライダー(Unityプリミティブコライダー) :

コリジョン

説明

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_geo

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

rendered_convex_collision_geo

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

トリガー :

コライダーをトリガーに変換するために、上記の名前に trigger を追加します(つまり、 Is Trigger トグルをオンにします)。 メッシュコライダーについては、凸状でなければならないことに注意してください。

  • 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

上記のいずれかにグループ化されたジオメトリは、他のジオメトリから分離された個別のメッシュとして生成され、MeshColliderコンポーネントのメッシュとして設定されます。

三角形と四角形

デフォルトでは、ジオメトリのConnectivityがQuadrilateralsに設定されていても、プラグインは常に三角形トポロジーのメッシュを生成します。 四角形トポロジーのメッシュを生成するには以下を実行します:

  1. Plugin SettingsのGEOMETRYセクションで、 Max Vertices Per Primitive4 に変更します。

  2. ジオメトリのConnectivityがQuadrilateralsに設定されていることを確認するか、ジオメトリがすべて四角形で構成されていることを確認します。

  3. HDAを再クックします。これで、四角形トポロジーのメッシュが生成されるはずです。

Note

  • 四角形トポロジーを使用する場合でも、Unityはメッシュのワイヤーフレームを三角形で表示します。 メッシュトポロジーを照会するには、GameObjectを選択し、 HoudiniEngine ▸ Utility ▸ Query Mesh Topology メニューに移動します。 頂点数は三角形の場合より少なくなります。

  • 同一メッシュでのトポロジーの混在(三角形と四角形など)はサポートされておらず、エラーが発生します。 混合トポロジーが必要な場合は、メッシュを分割する必要があります。

  • Plugin SettingsのMax Vertices Per Primitiveは3または4でなければなりません。 3に設定すると、常に三角形が生成されます。 4に設定すると、Connectivityに応じて三角形または四角形が生成されます。

読み取り可能なメッシュ

デフォルトでは、プラグインは読み取り可能なメッシュを生成しません。 しかし、 unity_mesh_readable という整数アトリビュートに1を指定すれば、読み取り可能なメッシュを生成することができます。

Unity

はじめよう

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

Houdini Engineを使用する

リファレンス