On this page |
出力タイプ ¶
現在のところ、Houdini Engine for Unityは、Houdiniデジタルアセットから以下のタイプのジオメトリを生成します:
-
Unityメッシュ
-
インスタンス化されたUnityメッシュ
ジオメトリは、Displayフラグが設定されたノード(表示ノードジオメトリ)、または、インスタンス化された/中間/編集可能なノード(一時的なジオメトリ)から生成されます。
表示ノードジオメトリ ¶
SOPタイプのアセットの場合、ジオメトリはサブネットワーク内の表示SOPノードから出力されます。 Objectタイプアセットでは、各Objectサブネットワークの表示ノードが生成されます。 これらの出力は、Houdiniアセットの実際の結果とみなされます。
出力 ¶
インスタンス化されたジオメトリや、中間または編集可能ノードの一部であるジオメトリは、生成されたり、GameObjectに追加されたり、HDA_Data GameObjectに親子化されたりします。 これらは通常、MeshRendererコンポーネントを無効にすることで非表示になります。 これらはビルド時に削除されるという意味で、一時的なジオメトリです。 EditorOnly タグでHDA_Dataに親子化すると、これが自動的に行なわれます。
Unityメッシュ ¶
通常、Houdiniアセットは、クックの結果としてUnityメッシュを生成します。 Unityメッシュは作成され、MeshRenderer、1つ以上のマテリアル、そして場合によっては独自のメッシュを持つメッシュコライダーと共に、GameObjectの一部として、MeshFilterコンポーネントに適用されます。
出力ジオメトリがHoudiniで複数のマテリアルを持つ場合、Unityでも同じ数のマテリアルを持つことになります。
最初のクックでは、出力GameObjectとそのコンポーネントが新しく作成されます。 その後の再クックでは、出力GameObjectのコンポーネントのメッシュとマテリアルが更新されます。
詳細はメッシュを参照してください。
インスタンス化されたUnityメッシュ ¶
パックプリミティブやオブジェクトインスタンサーでは、出力は、一時的なインスタンス化されたGameObjectとメッシュ(一時的なジオメトリ)の組み合わせと、実際のGameObjectインスタンスになります。 インスタンス化されたGameObjectには以下のような特別なプロパティがあります:
-
生成されたUnityメッシュはメモリ内で共有されます(
MeshFilter.sharedMesh
を使用)。 -
生成されたマテリアルではGPUインスタンシングが自動的に有効になります。
GameObjectインスタンスは、階層でグループ化して整理するために空っぽのGameObjectの下に配置されます。
出力の命名規則 ¶
デフォルトでは、生成されるGameObjectの名前は、オブジェクトノード、ジオメトリノード、パート(表示ノード)の名前をアンダースコアで区切って組み合わせたものになります。 アセット内でこの名前の一意のバージョンを生成するために、整数が追加されます。 一意の名前が必要なのは、Bake Update機能のためです。 Bake Updateは、ソースアセットの出力GameObjectの名前を使用して、呼応するターゲット出力のGameObjectを見つけ、それを更新することで機能します。 一意の名前がない場合、呼応するGameObjectを見つけて更新することはできません。
出力にパート名(表示ノード)だけを使用する(つまりフルパス名を無視する)には、 HoudiniEngine メニューから Plugin Settings を開き、GENERALセクションの Use Full Path Names for Output オプションを無効にします。