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ノードを作成するには:

  1. HDAをUnrealにインポートします。詳細は、HDAのインポートとエクスポートのワークフローをご参照ください。

  2. PCG Gprah内でTABをクリックして、Houdiniと入力します。 これによって、ノードオプションとして Houdini Digital Asset が表示されます。 このノードをPCG Graphに配置します。

  3. HoudiniのPCG Detailsパネルで、 Houdini Asset パラメータを探します。

  4. ドロップダウンメニューから、目的のHDAを選択します。

    • これでHoudiniセッションが作成され、そのHDAの入力、出力、パラメータが解析されます。

PCG内では、サポートされているHDAタイプを利用することができます。 詳細は、アセットを参照してください。

パラメータ

パラメータピンに1つ以上のアトリビュートセットを割り当てることで、それらのパラメータを上書きすることができます。 アトリビュートセットは、プロパティやデータテーブルなどのビルトインPCGノードから作成することができます。

入力

Unrealオブジェクト

メッシュやランドスケープなどのUnrealオブジェクトは、アトリビュートセットを使用してHDA入力に送信することができます。 objectアトリビュートは、使用されているオブジェクトを識別します。 HDA PCGノードのDetailsパネルで、追加の入力設定を行なうことができます。

PCGデータ

HDAの入力ノードにアトリビュートまたはポイントデータが割り当てられていて、且つ、objectアトリビュートが含まれていない場合、 このプラグインは、RawデータをHoudiniにアップロードします。 これは、ランドスケープ全体ではなく、ランドスケープ上の特定のポイントをサンプリングしてHoudiniに送信したい場合に役立ちます。

Note

ポイントデータは、UnrealとHoudini間で座標をトランスフォームします。 汎用ベクトルアトリビュートは、それがポイント、ベクトル、任意のデータのどれなのか区別することができないので変換されません。

出力

Unrealオブジェクト

Houdini Asset Componentと同様に、Houdiniから直接Unrealオブジェクトを作成することができます。 PCGは、ノード間でUnrealオブジェクトを渡さないため、これらのオブジェクトはコンテンツブラウザ内またはPCG Graph Actorが置かれているレベル内に作成されます。

HDA PCGノードは、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 - アセットをクックする時、以下の手順に準拠します

  1. 現在のHDA、入力、パラメータをHoudiniに読み込みます。

  2. Houdini内でそのHDAをクックします。

  3. そのHDAからの出力を処理し、必要に応じてUnrealアクター、シーンコンポーネント、アセットを作成します。

メッシュなどのシーンコンポーネントをクックした後、そのシーンコンポーネントが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が.bgeoを読み込んだ場合、その.bgeo が変更されてもUnrealはそれを認識できず、そのHDAは再実行されません。 このような場合、HDA PCGノードのPCG Cache設定をオフにすることをお勧めします。

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回だけ送信されます。

Unreal

はじめよう

基本

Houdini Engineを使用する

スクリプト

リファレンス