| On this page |
紹介 ¶
Unrealでは、Procedural Content Generation Framework(PCG)を使用することで、エンジン内でプロシージャルコンテンツを作成することができます。 詳細は、UnrealのPCGドキュメントを参照してください。
PCGプラグインは、Houdini Digital Asset(HDA)とその機能をUnrealのPCG Graphに統合します。 HoudiniのノードネットワークとHDAを使用することで、PCGノードの統合された機能を活用して、ツール、アセット、ランドスケープ、ジオメトリ、カーブ、スケルトンメッシュを作成し、Unreal内のアセットを強化することができます。
Houdini Digital Assetノード ¶
Houdini Digital Asset(HDA)ノードは、PCGのネットワークをHoudini Engine for Unrealプラグインの機能に接続するためのフレームワークです。 このノードを使用すると、Unreal内のHDAの全機能とPCGノードを組み合わせて、アセットを出力したり、データを渡したりすることができます。
HDAノードは、パラメータ、入力、出力の送受信を行うように設定されています。
PCGでのHDAノードの使い方 ¶
Houdini Asset Componentと同様に、HDA PCGノード上でパラメータやHDA入力を設定することができます。
単一の出力ピンには、すべての出力に関する情報が含まれています。
PCGでHDAノードを作成するには:
-
HDAをUnrealにインポートします。詳細は、HDAのインポートとエクスポートのワークフローをご参照ください。
-
PCG Gprah内でTABをクリックして、
Houdiniと入力します。 これによって、ノードオプションとして Houdini Digital Asset が表示されます。 このノードをPCG Graphに配置します。 -
HoudiniのPCG Detailsパネルで、 Houdini Asset パラメータを探します。
-
ドロップダウンメニューから、目的のHDAを選択します。
-
これでHoudiniセッションが作成され、そのHDAの入力、出力、パラメータが解析されます。
-
PCG内では、サポートされているHDAタイプを利用することができます。 詳細は、アセットを参照してください。
パラメータ ¶
パラメータピンに1つ以上のアトリビュートセットを割り当てることで、それらのパラメータを上書きすることができます。 アトリビュートセットは、プロパティやデータテーブルなどのビルトインPCGノードから作成することができます。
入力 ¶
メッシュやランドスケープなどのUnrealオブジェクトは、アトリビュートセットを使用してHDA入力に送信することができます。
objectアトリビュートは、使用されているオブジェクトを識別します。
HDA PCGノードのDetailsパネルで、追加の入力設定を行なうことができます。
HDAの入力ノードにアトリビュートまたはポイントデータが割り当てられていて、且つ、objectアトリビュートが含まれていない場合、
このプラグインは、RawデータをHoudiniにアップロードします。
これは、ランドスケープ全体ではなく、ランドスケープ上の特定のポイントをサンプリングしてHoudiniに送信したい場合に役立ちます。
Note
ポイントデータは、UnrealとHoudini間で座標をトランスフォームします。 汎用ベクトルアトリビュートは、それがポイント、ベクトル、任意のデータのどれなのか区別することができないので変換されません。
出力 ¶
Houdini Asset Componentと同様に、Houdiniから直接Unrealオブジェクトを作成することができます。 PCGは、ノード間でUnrealオブジェクトを渡さないため、これらのオブジェクトはコンテンツブラウザ内またはPCG Graph Actorが置かれているレベル内に作成されます。
HDA PCGノードは、PCGノード間でオブジェクトに関する情報を渡すことができます。
HDA PCGノードは、Unrealオブジェクトの代わりにRaw PCGデータを作成することができます。
例えば、HDAはHoudini Height Fieldをサンプリングして、ランドスケープ全体ではなくポイントのリストを返すことができます。
unreal_pcg_paramsを使用することで、パラメータやアトリビュートセットをエクスポートすることができます。
Houdini PCG ¶
PCGグラフ内でHoudini Digital Asset(HDA)PCGノードを作成すると、 Houdini PCG タブが追加で表示されます。 HDA設定の完全リストは、Detailsパネルを参照してください。
設定 |
説明 |
|---|---|
Houdini Asset |
PCGグラフ内のHDA PCGノードのドロップダウンからHoudini Assetを設定します。 |
Output Type |
出力を選択するためのドロップダウンメニュー。 Cook - アセットをクックする時、以下の手順に準拠します
メッシュなどのシーンコンポーネントをクックした後、そのシーンコンポーネントがHoudiniPCGActorに取り付けられます。 Unrealアクターが現在のレベルに配置されます。 アセットは、 Game/HoudiniEngine/Temp のHoudini一時ディレクトリ内に作成されます。 Cook and Bake - まず最初に Cook の説明通りにPCGノードをクックします。次に、そのクックされたデータをベイクします。これは通常では、 Cook ステージのデータを最終出力先へコピーすることを意味します。シーンコンポーネントは、レベル内のアクターに置換されます。アクターは、最終的にベイクされたアクターの命名規則に従って配置されます。アセットは Baked フォルダに移されます。 Note ベイクされたアクターとアセットは、PCGグラフを再生成した時、または、PCGComponent設定で Cleanup を選択した時に削除されます。 これを回避したいのであれば、PCGComponentで Clear PCG Link を選択してください。 |
Create Scene Component |
オンの時、現在のレベル内のHDA出力に対してシーンコンポーネントとアクターが作成されます。 オフの時、アセットのみがコンテンツフォルダ内に作成されます。 これは、 Static Mesh Spawner ノードなど、PCGグラフ内で他のアクターをSpawnさせるのに使用されるアセットを作成するのに役立ちます。 |
Automatically Delete Temp Assets |
オンの時、 Content フォルダ内のHoudini Engine一時フォルダに保存されているアセットが自動で削除されます。 PCGを使用すると、このフォルダが満杯になる可能性があるので、ディスク容量を節約するために、これをオンにしてください。 |
Use PCG Cache |
PCGのパフォーマンスを最適化するために、Unrealは内部キャッシュを使用してPCGノードで生成された出力を保存します。 入力に変更がなければ、キャッシュは出力が再利用可能であると判断し、PCGグラフの生成を高速化します。 ただし、HDA PCGノードがUnreal外部のアセットに依存している場合は、PCGキャッシュの使用は望ましくありません。
例えば、HDAが Note この設定は、適用されたノードにのみ影響し、グラフ内のその他のノードは引き続きPCGキャッシュを使用します。 Tip この設定がオンで、ノードが正しく生成されない場合、 Force Generate を使用してキャッシュをクリアしてください。
または、PCGコンポーネントの Generate ボタンをCTRL + |
サポートされている機能 ¶
一般的にHoudini Asset Componentで利用可能な機能は、以下に挙げているいくつかの制限を除き、HDA PCGノードと互換性があります。
ランドスケープ ¶
PCGにおけるランドスケープの作成は、Houdiniによって完全にサポートされています。 ランドスケープの修正については、いくつかの注意点がありますがサポートされています。
HDAが既存のUnrealランドスケープを修正する場合は、レベル内のPCGコンポーネントで“Ignore Landscape Tracking”を有効にしてください。 これによって、ランドスケープが修正された際にUnrealが依存関係ループを作成してしまうのを防ぐことができます。
現在のところ、Houdini Engine for Unrealプラグインは、既存のランドスケープレイヤの修正を完全にはサポートしていません。 既存レイヤへの修正は適用されますが、PCG Graphが再生成された際に元に戻されることはありません。 PCGでの推奨ワークフローは、HDA内でランドスケープ編集レイヤを作成することです。その理由は、作成されたレイヤがHDAのクリーンアップや再生成時に削除されるからです。
Session Sync ¶
Session Syncは、主に単純なPCG Graph内でPCG HDAを使用する場合に機能します。
PCGループを使用する際は、PCG内のループの反復毎に1個のHDA SOPがインスタンス化される点にご注意ください。 これは、Session Sync内のHDAへの編集がそのHDAが再度保存されるまでループの1回の反復にのみ影響することを意味します。
PCG Loops ¶
Session Syncで述べたように、ループの反復毎に1個のHDAがインスタンス化されます。 ロードできるHDAの数に制限はありませんが、何回も反復される可能性のある複雑なHDAについては注意が必要です。
ループを含んだPCG Graph内のすべてのHDAは、入力データを共有します。 例えば、3個のHDA PCGノードが同じランドスケープを入力として使用している場合、そのランドスケープはHoudiniに1回だけ送信されます。