Houdini 20.5 Unreal

Houdini-Niagaraプラグイン

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

On this page

Houdini Niagaraプラグインは、HoudiniインストールディレクトリのHoudini Engineプラグイン内にあります: HoudiniXX.Y\engine\unreal\5.Z\HoudiniNiagara 。 Houdini Niagaraプラグインは、SideFX Houdini Niagara GitHubページからもダウンロードすることができます。

最新バージョンはUnreal5.4に対応しています。 Houdini Engineプラグインと同様に、Houdini Niagaraプラグインのソースコードは、これまでのすべてのUE5バージョンでも使用できるように設計されています。

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

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

インストール

Houdini Niagaraプラグインのダウンロードには、次の3つの方法があります:

  • Houdini Launcher

  • 旧式のインストーラ

  • Githubリポジトリ

Houdini Launcher

  1. Launcherをインストールします(まだインストールしていない場合)。

  2. Launcherを開きます。

  3. Houdini ▸ Install をクリックします。

  4. Choose a Version to Install で、目的のビルドバージョンに応じて、Production BuildまたはDaily Buildのいずれかを選択します。特定のバージョンを選択する必要がある場合は、Choose Another Versionを選択して、目的のバージョンをインストールします。

  5. Preferencesポップアップウィンドウ で、 Unreal Plug-in をオンにして、 Install をクリックします。

  6. Houdini Engineディレクトリの場所を覚えておきます。デフォルトの場所は、 \Side Effects Software\Houdini Engine\X.Y.Z.\U.E\HoudiniNiagara です。

    • X.Y.Z.は、お使いのHoudiniバージョンを意味しています。

    • U.E.は、お使いのUnreal Engineバージョンを意味しています。

  7. HoudiniNiagaraフォルダをUnrealディレクトリの Plugins フォルダにコピーします。Unreal EngineのPluginsディレクトリまたはUnrealプロジェクトディレクトリのPluginsディレクトリのいずれかにコピーできます。

    • Unrealのディレクトリの場所は \Epic Games\UE5.X\Engine\Plugins で、プロジェクトディレクトリの場所は \Unreal Project\Plugins です。

Note

Unreal Engine 5.Xでは、 必ず Unrealのプロジェクトディレクトリを使用してください。

Old Installer

  1. SideFXダウンロードから、ダウンロードバージョンを選択します。Old Installerでは、プロダクションビルド版、デイリービルド版のどちらでも選択することができます。

  2. Houdiniインストールのセットアップ内のHoudini Engineセクションで、 Houdini Engine for Unreal のチェックボックスをオンにします。

  3. Houdini Engineディレクトリの場所を覚えておきます。デフォルトの場所は、 \Side Effects Software\Houdini X.Y.Z\engine\unreal\U.E\HoudiniNiagara です。

    • X.Y.Z.は、お使いのHoudiniバージョンを意味しています。

    • U.E.は、お使いのUnreal Engineバージョンを意味しています。

  4. HoudiniNiagaraフォルダをUnrealディレクトリの Plugins フォルダにコピーします。Unreal EngineのPluginsディレクトリまたはUnrealプロジェクトディレクトリのPluginsディレクトリのいずれかにコピーできます。

    • Unrealのディレクトリの場所は \Epic Games\UE5.X\Engine\Plugins で、プロジェクトディレクトリの場所は \Unreal Project\Plugins です。

Note

Unreal Engine 5.Xでは、 必ず Unrealのプロジェクトディレクトリを使用してください。

Github Repository

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

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

  3. HoudiniNiagaraフォルダを \Unreal Project\Plugins フォルダにコピーします。

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

プラグインの検証

プラグインが正しくインストールされていることを確認するには:

  1. Unrealで、プロジェクトをロードして Edit ▸ Plugins を選択します。

  2. PluginsウィンドウのProjectセクションで Houdini Niagara を検索します。そのチェックボックスが選択されていることを確認します。

はじめよう

プラグインには、設定済みのエミッタ、HoudiniNiagaraBasicが含まれており、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を使用する

スクリプト

リファレンス