On this page |
Houdini Engine for Unityプラグインは、Houdini Digital Assets(.hda
)を介して、Houdiniの強力で柔軟なプロシージャルワークフローをUnityに取り入れます。
Houdiniアーティストは、ノード、入力、露出されたパラメータのネットワークを含んだパッケージ化された デジタルアセット を作成することができます。
そして、これらのアセットをUnityに渡すことで、アーティストはHoudiniを使用せずにそのアセットに変更を加えることができます。
一般情報: ¶
Houdini Digital Assets(HDA)とは ¶
Houdiniは、ノードベースのワークフローを採用しており、ノードネットワークを使用してシーンを構築します。 これらのネットワークは、ツール、アセット、ランドスケープ、ジオメトリ、カーブ、スケルタルメッシュなどにすることができます。 これらのノードネットワークは、HDAと呼ばれる Houdini Digital Asset にパッケージ化することができます。
詳細は、デジタルアセットの紹介を参照してください。
プラグインセッションのタイプ ¶
以下のセクションでは、Session、Session Sync、Node Syncの違いと、それぞれのいくつかの一般的な使用例について簡単に説明しています。
Houdini Engine Session ¶
Houdini Engine Sessionでは、HDAをUnityに取り込んで、Houdiniを使用せずにそのHDAの入力とパラメータを編集することができます。 パッケージ化されたHDAからHoudiniのノードとネットワークを使用することで、ツール、プロシージャルワークフロー、アセットを作成することができます。 HDA上に露出された入力とパラメータは、Unity内のHoudini Asset Detailsパネルを使用して、さらに編集することができます。 詳細は、Sessionの作成を参照してください。

Houdini Engine Sessionの使用例 ¶
Houdini Engine Sessionは、Houdiniに慣れていないアーティストチームと一緒にいるテクニカルアーティストにとって役に立つことでしょう。 テクニカルアーティストは、パッケージ化されHDAで露出されている入力とパラメータを使用して、ツールまはたワークフローを作成することができます。 そして、これらの設定は、Unity内でHoudini Engine Detailsパネルを介してアーティストが利用することができます。
Session Sync ¶
Session Syncは、Houdini Engine Sessionのすべての機能と、さらにいくつかの追加機能をサポートしています。 Session Syncを起動すると、UnityとHoudini間で同期する新しいHoudiniが開きます。 Houdiniの変更内容をリアルタイムに同期させるので、迅速な試行錯誤とトラブルシューティングが可能になります。 詳しくは、Session Syncの使い方を参照してください。
Session Syncで得られるいくつかの利点には以下のようなものがあります:
-
Houdiniでの変更が自動的にUnityで更新されます。
-
Houdiniでアセットを構築している時にリアルタイムでフィードバックが得られます。
-
UnityとHoudiniのビューポートが同期します。
-
HoudiniとUnity間でHDAの変更がリアルタイムで送信されます。

Session Syncの使用例s ¶
Session Syncの使用例の一つは、アセットなどのレベルの部品を受けとって、ジオメトリやシミュレーションなどの新しいコンテンツを作成できることです。 例えば、Unityで建物をキットバッシュし(既存の建物の部品を組み合わせて新しい建物を作成し)、それをHoudiniに取り込んで、内装を構築したり、建物の部品を追加したり、UVを再調整したりすることができます。 その後、Unityで結果を確認したり、Houdiniで別のアセットとしてエクスポートすることができます。
もう一つの使用例として、より良い環境でツールを試作できることです。 例えば、ツタを生成するツールを作成するとして、Unity内のレベル周辺にツタをばら撒きたいとします。 このツールの試作には、求めている結果が得られるまで何回も繰り返して作業する必要があります。 しかし、UnityからHoudiniにアセットを送信できれば、アセット製作の環境のままに、そのツールを試行することができます。
Node Sync ¶
Node Syncは、専用のHDAを必要とせずにUnityとHoudini間でアセットを転送することができます。 HDA入力でサポートされているタイプのアセットを送信し、このプラグインで出力可能なタイプのアセットを取得することができます。 サポートされているタイプの詳細は、入力と出力を参照してください。

Node Syncの使用例 ¶
One Node Syncの使用例は、ツールやノードネットワークの一部をHDAとしてパッケージ化することなく、作業中の段階でそれをテストできることです。 例えば、Houdiniに建物アセットがある場合、Unityでそのノードを取得して、マテリアルやカーブが正しく動作するか、ジオメトリの寸法が正しいかどうかを確認することができます。
これによって、ツールが大きくなるにつれてそのツールの取得時間も節約され、Node Syncでは、HDAを継続的に再構築する必要がなくなります。
機能 ¶
対応している機能 ¶
-
HDAファイルのロード(.hda,.otl,.otllc,.hdalc,.otlnc,.hdanc)
-
ポリゴンジオメトリを生成するSOPの大半
-
ランプを含むすべてのパラメータタイプ(パラメータを参照)
-
Houdiniマテリアル
-
Curve SOPとカーブ編集(カーブを参照)
-
入力ノードとアセットの接続(Unityメッシュ、HDA、地形(入力を参照)
-
オブジェクトのインスタンス化(オブジェクトインスタンサーを参照)
-
パックプリミティブ(パックプリミティブを参照)
-
入力メッシュのマテリアルの割り当てとメッシュ名のラウンドトリップ(双方向変換)のサポート
-
アトリビュートを介した衝突ジオメトリの生成(ボックス、球、メッシュ)
-
Unity 2017.3以降でメッシュあたり65Kを越える三角形のサポート
-
Houdini Engine SessionSync
-
新しいスタンドアロンのGameObjectおよび/または新しいPrefabのベイク
-
既存のスタンドアロンのGameObjectおよび/または既存Prefabのベイク更新
-
コールバックのロード、クック、ベイク
-
既存のUnityマテリアルとSubstanceマテリアルをマテリアルアトリビュートを介して接続
-
既存のUnityスクリプトをアトリビュートを介して接続
-
Editorモードに戻ると、Playモードの変更が元に戻る
-
UnityでのUndoにより、パラメータの変更が元に戻り、自動的に再クック
-
アトリビュートのペイントと編集(編集可能なノード) (ペイントと編集を参照)
-
Height FieldのUnity Terrain(地形)への変換(Terrainを参照)
-
Transformerハンドル(xform) (ハンドルを参照)
-
LODグループ(LOD(詳細レベル)を参照)
-
カスタム入力スクリプトフック(カスタム入力スクリプトを参照)
廃止 ¶
以下は対応していません:
-
アニメーションのベイク。
-
ジオメトリをグループ別に分割するオプション(衝突とLODグループのみサポート)。
-
頂点アトリビュートによるポイント分割(デフォルトでは頂点が分割されるが、オプションでHDAオプションを介してポイントを使用可能)。
-
Playモードでのフレーム毎のクック。
制限事項 ¶
現時点で既知の制限事項を以下に示します:
-
スペイン語(es-ES)など、小数点にドットではなくカンマを使用するシステムロケールでは、.Net 4.6以降を使用する場合、浮動小数点値に文字列を使用するカーブやその他のアセットの解析に問題が発生します。 これを回避するために、プラグインはSystem.Threading.Thread.CurrentThread.CurrentCultureをCultureInfo.InvariantCultureとして設定します。これは、プラグイン設定で無効にすることができます。
-
Unityでは、アセットを作成/ロードした後、すぐにUndoを実行してもシーンからアセットは削除されません。
-
インスタンス化されたアセットの複製/コピーアンドペーストは、Unityの組み込みのメカニズムでは機能しません。代わりに、HDA自体でDuplicate Assetボタンを使用します。
-
シーンに保存された生成アセットのGameObjectを削除しても、Unityプロジェクト内で生成されたテクスチャファイルは削除されません。
-
アトリビュートによるSubstanceマテリアルの指定はまだ対応していません。
入力 ¶
この 入力 とは、UnityからHoudini Digital Asset(HDA)へのデータ送信を指します。 入力に変更を加えると、それが自動的にHDAに入り、そのHDAの出力が再評価されて再クックされます。 詳細は、入力を参照してください。
Houdini Engine for Unityは、以下の入力タイプに対応しています:
現在のところ、以下の入力データに対応しています:
-
HDA(ノード接続として)
-
Unity Mesh
-
Curve
-
Spline(Unityバージョン2022.1以降)
-
Terrain(Terrain Inputを参照してください)
-
Bounding Box
-
Tilemap
出力 ¶
この 出力 とは、Houdini Digital Asset(HDA)からUnityへのデータ送信を指します。 詳細は、出力を参照してください。
現在のところ、Houdini Engine for Unityは、Houdini Digital Assetから以下のタイプのジオメトリを生成します:
-
Unity Mesh
-
Instanced Unity Mesh
パラメータ ¶
この パラメータ とは、ノード内のオプションのことです。 HDAでは、パラメータをプロモートして、利用者に公開したいパラメータをカスタマイズすることが重要です。 これらのパラメータは、Unityで修正可能なオプションとして表示されます。


以下のパラメータに対応しています:
-
integers
-
floats
-
strings
-
buttons
-
colors
-
files
-
folders
-
labels
-
multiparams
-
ramps
-
separators
-
toggles
-
operator path
-
menus
アセットの再クックと再ビルド ¶
HDAをUnityにインポートすると、Houdini Engine DetailsパネルでそのHDAのパラメータを確認することができます。 アセットを 再ビルド、クック、ベイク するためのパラメータは、HDA全体の挙動を制御します。

アセットの再クック ¶
アセットを 再クック すると、HDAは、パラメータの変更の有無に関わらず、処理と更新を行ないます。 この クック という用語はHoudiniと同じ概念です。 クックが発動されると、HDAの出力は再計算されます。 Unity内で入力とパラメータの変更を確認するには、アセットを再クックする必要があります。
アセットの再ビルド ¶
アセットを 再ビルド すると、そのアセットは 再クック され、さらに、そのHDAをインポートし直します。 これは、HoudiniでHDAに変更を加えて、その新しい入力またはパラメータをUnityに表示させたい時に役立ちます。