Houdini 20.0 Unreal

Houdini-Niagaraプラグイン

Houdini-Niagaraのインストールとセットアップ。

On this page

Houdini Niagaraプラグインは、SideFX Houdini Niagara GitHubページからダウンロードできます。最新バージョンはUnreal5.3をサポートしています。

プラグインはFXカテゴリの下にあり、Niagaraプラグインをアクティブにする必要があります。

このプラグインによって、Houdiniからエクスポートされる様々なPointアトリビュートを含む、Houdini Point Cache Assetというアセットタイプが追加されます。 また、これらのアセットをNiagaraで解析および処理するための、カスタムのHoudini-Niagaraデータインターフェースも提供されます。

インストール

  1. GitHubから最新リリースをダウンロードします。

  2. ダウンロードしたファイルを解凍します。

  3. HoudiniNiagaraフォルダを _お使いの_Unreal_Project/Plugins_ フォルダにコピーします。

  4. プラグインがインストールされていることを確認するには、プロジェクトをロードして Edit ▸ Plugins に移動します。

  5. PluginsウィンドウのProjectセクションで Houdini Niagara を検索します。

GitHubページの手順に従って、ソースからプラグインをビルドすることもできます。

はじめよう

プラグインには、設定済みのエミッタ、1HoudiniNiagaraBasic1が含まれており、Houdini Point Cacheを使用する大半のNiagaraシステムのベースとして使用できます。以下に、Houdini Point Cacheを読み取るのに必要なモジュールを示します。

ワークフローおよび様々なアセットを簡単に紹介します:

モジュール

モジュール

説明

Init Houdini Point Cache

Emitter Spawnグループ - このモジュールはスポーン情報を追跡し、エミッタ毎に一意のポイントIDを保証します。

Spawn Particles from Houdini Point Cache

Emitter Updateグループ - このモジュールはHoudini Point Cacheを読み取り、Emitter.LoopedAgeに対するageアトリビュートに基づいてパーティクルをスポーンします。

同じエミッタで複数のキャッシュにアクセスする必要がある場合、 SpawnGroup を設定できます。

Sample Spawned Houdini Point Cache

Particle Spawnグループ - このモジュールはHoudini Point Cacheを読み取り、Houdiniネームスペースのデフォルトのアトリビュートを設定します。スポーン時に一度だけ各パーティクルのアトリビュートを設定します。その後、 Set Parameter モジュールを使用して、Particles.Houdini.PositionからParticles.Positionのようなアトリビュートを設定することができます。

SetLifetime は、lifeアトリビュート(存在する場合)に基づいてParticles.Lifetimeを設定します。

SetVelocity は、vアトリビュート(存在する場合)に基づいてParticles.Houdini.Velocityを設定します。

Sample Houdini Point Cache

Particle Updateグループ - このモジュールはHoudini Point Cacheを読み取り、Emitter.LoopedAgeに基づいてHoudiniネームスペースのデフォルトアトリビュートを更新します。

その後、 Set Parameter モジュールを使用して、Particles.Houdini.PositionからParticles.Positionのようなアトリビュートを設定することができます。

UseCustomAge がオンのとき、ユーザはカスタムアトリビュートを指定して、ポイントキャッシュアトリビュートの読み取りに使用される時間インデックスを制御することができます。

デフォルトアトリビュート

サンプルモジュールは、Houdini Point Cacheから以下のアトリビュートを読み取ろうとします。アトリビュートが存在しない場合、パーティクルのアトリビュートは0に設定されます。

  • Particles.Houdini.PositionPから設定

  • Particles.Houdini.NormalNから設定

  • Particles.Lifetimelifeから設定

  • Particles.Houdini.ColorCdから設定

  • Particles.Houdini.AlphaAlphaから設定

  • Particles.Houdini.Impulseimpulseから設定

  • Particles.Houdini.Forceforceから設定

  • Particles.Houdini.Typetypeから設定

  • Particles.Houdini.Velocityvから設定

  • Particles.Houdini.Pscalepscaleから設定

  • Particles.Houdini.Orientorientから設定

カスタムアトリビュート

カスタムアトリビュートは、独自のモジュールを作成することで読み取ることができます。

以下のビデオでその方法を紹介します。

Houdini Point Cache Asset

HoudiniのNiagara ROPによって生成された.hbjson.hjson.hcsvファイルをインポートできます。 hcsvは廃止され 、ASCIIとバイナリのjsonファイルフォーマットが使用されています。プラグインは、floatvector(カラーを含む)、int値をサポートします。

ベクトルまたはタプル値がエクスポートされると、プラグインで解析される際に展開されます(つまり、PP.x, P.y, P.zになります)。

Houdini Point Cache Asset を選択した場合、以下のようなファイルのプロパティが表示されます:

これは、ファイルのヘッダ情報(ポイント数、フレーム数など)をチェックするのに便利です。また、ファイルに格納されているアトリビュートの配列もリストされます。

コンテンツブラウザでHoudini Point Cache Assetにカーソルを合わせると、利用可能なデータに関する以下の情報が表示されます:

特別なアトリビュート

ポイントキャッシュファイルのヘッダには、エクスポートされるすべてのアトリビュートの名前が含まれています。 特定のアトリビュートには、その値を取得するための組み込み関数があります。 :

  • Position値はPとして保存

  • Time値はtimeとして保存。Niagara ROPはこのアトリビュートを自動的に追加します。また、ユーザが設定することも可能です。

  • Point IDidとして保存

  • Normal値はNとして保存

  • Velocity値はvとして保存

  • Color値はCdとして保存

  • Alpha値はAlphaとして保存

  • Life値はlifeとして保存

  • Type値はtypeとして保存

  • Impulse値はimpulseとして保存

時間の経過と共にポイント位置を更新したい場合は、Point IDtime値が必要になります。

ファイルの指定されたポイントのスポーン時間は、次のように計算されます:

  • アセットにageアトリビュートがある場合、スポーン時間はagetimeを比べることで算出されます。

  • アセットにageアトリビュートがない場合、time==0のとき、パーティクルがスポーンされます。

アセットにlifeアトリビュートがある場合、それによってパーティクルのライフタイムが直接設定されます。これはサンプルモジュールで無効にすることができ、エミッタスタックでも設定できます。

指定されたポイントのタイプは、その最初のtype値に設定されます。ファイルに特定のtype値がない場合、すべてのポイントのタイプは0に設定されます。

Houdini-Niagara Data Interface

Houdini Point Cache Assetに含まれるポイントキャッシュデータにアクセスするには、プラグインが提供するカスタムのHoudini-Niagara Data Interfaceを使用する必要があります。

Data Interfaceには、Niagaraのモジュール/エミッタ/システムにHoudini Point Cache Infoパラメータを追加し、それにHoudini Point Cache Assetを選択することで、アクセスできます。

Houdini Point Cache Assetからアトリビュートを取得するすべての関数が以下を必要とします:

アトリビュート

説明

Houdini Point Cache Info

Houdini Point Cache Assetへの参照

PointID

一意のパーティクルID、通常はParticles.Houdini.NID

SampleIndex

経時的な一連のアトリビュート値におけるインデックスの整数値。 この値を取得するには、 Get Sample Indexes for Point at Time または Get Last Sample Index 関数を使用します。

Time

エミッタの現行時間、通常はEmitter.LoopedAge

Data Interface

Data Interfaceにより、以下の機能にアクセスできるようになります:

機能

説明

Get Sample Indexes for Point at Time

指定時間における、指定ポイントのサンプルインデックスを返します。 前のインデックス、次のインデックス、ウェイトを使用して、値を線形補間することができます。

Get Last Sample Index at Time

Timeパラメータより小さいまたは等しいtime値を持つ、ポイントキャッシュの最後のサンプルインデックスを返します。

Get Point IDs to Spawn at Time

指定されたtime値にスポーンすべきポイントの数とポイントIDを返します。 実装については、 Spawn Particles From Houdini Point Cache モジュールを参照してください。

Get Number Of Attributes

キャッシュ内のアトリビュートの数を返します。

Get Number Of Points

キャッシュ内のポイントの数を返します。

Get Color

ポイントキャッシュ内の指定されたサンプルインデックスのカラー値を返します。

Get Float Value

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュートインデックスの浮動小数点値を返します。

Get Float Value by String

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュート名の浮動小数点値を返します。

Get Impulse

ポイントキャッシュ内の指定されたサンプルインデックスのimpulse(力積)値を返します。

Get Normal

ポイントキャッシュ内の指定されたサンプルインデックスの法線値を返します。 返された法線ベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Point Alpha at Time

指定した時間における指定したポイントの線形補間されたアルファを返します。

Get Point Color at Time

指定した時間における指定したポイントの線形補間されたカラーを返します。

Get Point Impulse at Time

指定した時間における指定したポイントの線形補間されたimpulse(力積)を返します。

Get Point Life

スポーン時に指定したポイントのlife値を返します。 life値はaliveアトリビュートから計算されるか、スポーン時のlifeアトリビュートです。

Get Point Life at Time

ポイントキャッシュ内における、指定した時間の指定したポイントの残りのlife値を返します。

Get Point Normal at Time

指定した時間における指定したポイントの線形補間された法線を返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Point Position at Time

指定した時間における指定したポイントの線形補間された位置を返します。返された位置ベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Point Quat Value at Time

指定した時間における指定したポイントについて、指定したアトリビュートインデックスの線形補間されたクォータニオン値を返します。

DoHoudiniToUnrealConversionパラメータは、vector4をHoudiniの座標系からUnrealの座標系に変換する必要があるかどうかを示します。

Get Point Quat Value at Time by String

指定した時間における指定したポイントについて、(名前で)指定したアトリビュートの線形補間されたクォータニオン値を返します。 DoHoudiniToUnrealConversionパラメータは、ベクトルをHoudiniの座標系からUnrealの座標系に変換する必要があるかどうかを示します。

Get Point Type

スポーン時に、指定したポイントのタイプをint型の値で返します。

Get Point Type at Time

指定した時間における指定したポイントのint型の値を返します。

Get Point Value at Time by String

指定した時間における指定したポイントについて、(名前で)指定したアトリビュートの線形補間されたfloat型の値を返します。

Get Point Vector4 Value at Time

指定した時間における指定したポイントについて、指定したアトリビュートインデックスの線形補間されたVector4値を返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Point Vector4 Value at Time by String

指定した時間における指定したポイントについて、(名前で)指定したアトリビュートの線形補間されたVector4値を返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Point Vector Value at Time

指定した時間における指定したポイントについて、指定したアトリビュートインデックスの線形補間されたVector値を返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Point Vector Value at Time by String

指定した時間における指定したポイントについて、(名前で)指定したアトリビュートの線形補間されたVector値を返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Point Vector Value at Time Ex

指定した時間における指定したポイントについて、指定したアトリビュートインデックスの線形補間されたVector値を返します。

DoSwapパラメータは、ベクトルをHoudiniの座標系からUnrealの座標系に変換する必要があるかどうかを示します。

DoScaleパラメータは、Vector値をメートル(Houdini)からセンチメートル(Unreal)に変換する必要があるかどうかを決定します。

Get Point Vector Value at Time Ex by String

指定した時間における指定したポイントについて、(名前で)指定したアトリビュートの線形補間されたVector値を返します。

DoSwapパラメータは、ベクトルをHoudiniの座標系からUnrealの座標系に変換する必要があるかどうかを示します。

DoScaleパラメータは、Vector値をメートル(Houdini)からセンチメートル(Unreal)に変換する必要があるかどうかを決定します。

Get Point Velocity at Time

指定した時間における指定したポイントの線形補間されたVelocityを返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Position

ポイントキャッシュファイル内の指定されたサンプルインデックスのposition値を返します。 返された位置ベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Position and Time

ポイントキャッシュ内の指定されたサンプルインデックスのpositionおよびtime値を返します。 返された位置ベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Quat Value

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュートインデックスのクォータニオン値を返します。

Get Quat Value by String

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュート名のクォータニオン値を返します。

DoHoudiniToUnrealConversion パラメータは、ベクトルをHoudiniの座標系からUnrealの座標系に変換する必要があるかどうかを示します。

Get Time

ポイントキャッシュ内の指定されたサンプルインデックスのtime値を返します。

Get Vector4 Value

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュートインデックスのVector4を返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Vector4 Value by String

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュート名のVector4を返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Vector Value

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュートインデックスのベクトルを返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Vector Value by String

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュート名のベクトルを返します。 返されたベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Get Vector Value Ex

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュートインデックスのVector3を返します。

DoSwap パラメータは、ベクトルをHoudiniの座標系からUnrealの座標系に変換する必要があるかどうかを示します。

DoScale パラメータは、Vector値をメートル(Houdini)からセンチメートル(Unreal)に変換する必要があるかどうかを決定します。

Get Vector Value by String

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュート名のVector3を返します。

DoSwap パラメータは、ベクトルをHoudiniの座標系からUnrealの座標系に変換する必要があるかどうかを示します。

DoScale パラメータは、Vector値をメートル(Houdini)からセンチメートル(Unreal)に変換する必要があるかどうかを決定します。

Get Velocity

ポイントキャッシュ内における、指定されたサンプルインデックスおよびアトリビュート名のVector3を返します。 ポイントキャッシュ内の指定されたサンプルインデックスのVelocity値を返します。 返されたVelocityベクトルは、Houdiniの座標系からUnrealの座標系に変換されます。

Unreal

はじめよう

基本

Houdini Engineを使用する

リファレンス

Houdini Engine for Unreal Engineは、HoudiniのテクノロジーをUnrealに統合できるプラグインです。 Session SyncとNode Syncは、Houdiniのライブセッションと相互作用するためのHoudini Engineプラグインの2つの機能です。

このプラグインを使用すると、Houdiniの強力かつ柔軟なプロシージャルワークフローを、Houdiniデジタルアセットを通してUnreal Engineで実現できます。 アーティストはエディタ内でアセットパラメータをインタラクティブに調整して、Unrealアセットを入力として使用することができます。 その後、Houdiniのプロシージャルエンジンがアセットを“クック”し、その結果をエディタで使用できるようになります。ベイクする必要はありません。

一般情報:

互換性:

現在のところ、プラグインにはUE5.3、5.2、5.1、5.0、UE4.27、UE4.26向けにビルドされたバイナリがあり、Houdiniの最新のプロダクションビルドにリンクされています。

プラグインのソースコードは、UE5.3、5.2、5.1、5.0、UE4.27、UE4.26のこのリポジトリで利用可能です。

Note

UE5.1およびUE5.0は、同じソースファイル/ブランチを使用し、5.0ソースは5.1でも使用できるようになっています。

サポートおよびバグのレポート:

便利なリンク:

SessionSync

Houdini Engine SessionSync機能を使用すると、GUIを使ってHoudini内で実行されているHoudini Engineのセッションに接続することができます。 通常のHoudini Engineワークフローのすべての機能と、Session Sync固有の追加機能をサポートしています。

Houdini Engineは非UIバージョンのHoudiniを使用しますが、Session SyncではHoudiniのユーザインターフェースを通してHoudiniセッションを確認したり、操作することができます。 また、UnrealやHoudiniで加えた変更は同期されるため、どちらのプログラムでも変更を加えても、同じ結果が得られます。

NodeSync

NodeSyncは、UnrealとHoudini Session Sync間のアセット共有を可能にする、Houdini Engine for Unrealプラグインの機能です。スケルタルメッシュとスタティックメッシュで機能します。

専用のHDAを使用することなく、Unrealにデータを送信したり、Unrealからデータを受信することができます。アクターに加えて、スタティックメッシュやスケルタルメッシュでも機能します。

Houdini Niagara

Houdini-Niagaraプラグインを使用すると、HoudiniNiagara Data Interfaceを使用して、HoudiniとUnrealのNiagaraシステム間でポイントクラウドデータを交換することができます。 Houdiniのアトリビュートデータを、HoudiniPointCacheアセットとしてエクスポートできます。 これらをUnrealにインポートし、Niagaraシステムとエミッターを使用して、複雑なエフェクトやパーティクルシステムを作成できます。