On this page |
Houdini Niagaraプラグインは、SideFX Houdini Niagara GitHubページからダウンロードできます。最新バージョンはUnreal5.3をサポートしています。
プラグインはFXカテゴリの下にあり、Niagaraプラグインをアクティブにする必要があります。
このプラグインによって、Houdiniからエクスポートされる様々なPointアトリビュートを含む、Houdini Point Cache Assetというアセットタイプが追加されます。 また、これらのアセットをNiagaraで解析および処理するための、カスタムのHoudini-Niagaraデータインターフェースも提供されます。
インストール ¶
-
GitHubから最新リリースをダウンロードします。
-
ダウンロードしたファイルを解凍します。
-
HoudiniNiagaraフォルダを _お使いの_Unreal_Project/Plugins_ フォルダにコピーします。
-
プラグインがインストールされていることを確認するには、プロジェクトをロードして Edit ▸ Plugins に移動します。
-
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を読み取り、 同じエミッタで複数のキャッシュにアクセスする必要がある場合、 SpawnGroup を設定できます。 |
Sample Spawned Houdini Point Cache |
Particle Spawnグループ - このモジュールはHoudini Point Cacheを読み取り、Houdiniネームスペースのデフォルトのアトリビュートを設定します。スポーン時に一度だけ各パーティクルのアトリビュートを設定します。その後、 Set Parameter モジュールを使用して、 SetLifetime は、 SetVelocity は、 |
Sample Houdini Point Cache |
Particle Updateグループ - このモジュールはHoudini Point Cacheを読み取り、 その後、 Set Parameter モジュールを使用して、 UseCustomAge がオンのとき、ユーザはカスタムアトリビュートを指定して、ポイントキャッシュアトリビュートの読み取りに使用される時間インデックスを制御することができます。 |
デフォルトアトリビュート ¶
サンプルモジュールは、Houdini Point Cacheから以下のアトリビュートを読み取ろうとします。アトリビュートが存在しない場合、パーティクルのアトリビュートは0
に設定されます。
-
Particles.Houdini.Position
はP
から設定 -
Particles.Houdini.Normal
はN
から設定 -
Particles.Lifetime
はlife
から設定 -
Particles.Houdini.Color
はCd
から設定 -
Particles.Houdini.Alpha
はAlpha
から設定 -
Particles.Houdini.Impulse
はimpulse
から設定 -
Particles.Houdini.Force
はforce
から設定 -
Particles.Houdini.Type
はtype
から設定 -
Particles.Houdini.Velocity
はv
から設定 -
Particles.Houdini.Pscale
はpscale
から設定 -
Particles.Houdini.Orient
はorient
から設定
カスタムアトリビュート ¶
カスタムアトリビュートは、独自のモジュールを作成することで読み取ることができます。
以下のビデオでその方法を紹介します。
Houdini Point Cache Asset ¶
HoudiniのNiagara ROPによって生成された.hbjson
、.hjson
、.hcsv
ファイルをインポートできます。 hcsvは廃止され 、ASCIIとバイナリのjsonファイルフォーマットが使用されています。プラグインは、float
、vector
(カラーを含む)、int
値をサポートします。
ベクトルまたはタプル値がエクスポートされると、プラグインで解析される際に展開されます(つまり、P
はP.x, P.y, P.z
になります)。
Houdini Point Cache Asset を選択した場合、以下のようなファイルのプロパティが表示されます:
これは、ファイルのヘッダ情報(ポイント数、フレーム数など)をチェックするのに便利です。また、ファイルに格納されているアトリビュートの配列もリストされます。
コンテンツブラウザでHoudini Point Cache Assetにカーソルを合わせると、利用可能なデータに関する以下の情報が表示されます:
特別なアトリビュート ¶
ポイントキャッシュファイルのヘッダには、エクスポートされるすべてのアトリビュートの名前が含まれています。 特定のアトリビュートには、その値を取得するための組み込み関数があります。 :
-
Position
値はP
として保存 -
Time
値はtime
として保存。Niagara ROPはこのアトリビュートを自動的に追加します。また、ユーザが設定することも可能です。 -
Point ID
はid
として保存 -
Normal
値はN
として保存 -
Velocity
値はv
として保存 -
Color
値はCd
として保存 -
Alpha
値はAlpha
として保存 -
Life
値はlife
として保存 -
Type
値はtype
として保存 -
Impulse
値はimpulse
として保存
時間の経過と共にポイント位置を更新したい場合は、Point ID
とtime
値が必要になります。
ファイルの指定されたポイントのスポーン時間は、次のように計算されます:
-
アセットに
age
アトリビュートがある場合、スポーン時間はage
とtime
を比べることで算出されます。 -
アセットに
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 Assetへの参照 |
|
一意のパーティクルID、通常は |
|
経時的な一連のアトリビュート値におけるインデックスの整数値。 この値を取得するには、 Get Sample Indexes for Point at Time または Get Last Sample Index 関数を使用します。 |
|
エミッタの現行時間、通常は |
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 |
指定した時間における指定したポイントについて、(名前で)指定したアトリビュートの線形補間されたクォータニオン値を返します。
|
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値を返します。
|
Get Point Vector Value at Time Ex by String |
指定した時間における指定したポイントについて、(名前で)指定したアトリビュートの線形補間されたVector値を返します。
|
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の座標系に変換されます。 |