
こちらの記事では、Labs Make Loop SOPノードについて解説いたします。
▼記事で紹介している内容
- Labs Make Loop SOPノードについて
- Labs Make Loop SOPノードのパラメータ解説
- Labs Make Loop SOPノードの使用方法
- Labs Make Loop SOPノードを使用したシーン例
▼サンプルファイルについて
こちらの記事では、サンプルファイルを配布しています。ファイルは、下記のリンクからダウンロードすることができます。
※本記事では、Houdini19.0.561、SideFXLabs19.0.561を使用しています。
Labs Make Loop SOP
最初に、Labs Make Loop SOPノードの概要や各パラメータについて、紹介します。
1.Labs Make Loop SOPノードとは

Labs Make Loop SOPノードは、入力されたアニメーションをループするアニメーションに変換します。現在のバージョンでは、メッシュ、ボリューム、パーティクルが入力に対応しています。
各入出力の項目については以下の通りです。
①入力
ループさせたいシーケンスを入力します。
②出力1
ループされたジオメトリを出力します。
③出力2
ループされたMotion Vectorを出力します。
2.各パラメータについて

①Input Type
入力するアニメーションのタイプを指定します。入力タイプとして「Volume or VDB」「Particle」「Primitive」の三種類から選択します。
Loop Settings
こちらの項目では、アニメーションをループさせるための設定を行います。
②Start Frame
入力されたアニメーションの最初のフレームを指定します。
③End Frame
入力されたアニメーションの最終フレームを指定します。
④Num of Double-Loops
入力フレームに応じて、ループするフレームの分割数を調整します。
Labs Make Loop SOPはシームレスにアニメーションをループさせるため、入力されたアニメーションを分割します。
- 例えば、Num of Double-Loopsのパラメータが1に設定されており、入力は200フレームあるとします。

- すると、この場合入力されたフレームレンジは100フレームずつの2セクションに分割されます。(パラメータの数値が2のときは、入力フレームが4セクションに分割されます。)

- アニメーションは、分割された最初の100フレームのみを複製し、2回繰り返します。

- 同時に、一番最初のセクション(100フレーム)の半分の長さである50フレーム分だけシフトしたアニメーション(a’)を、シフト前の100フレーム(a)とブレンドすることで、アニメーションの境目を目立たなくさせています。

保持されたベースとなるセクションの中で、実質2度アニメーションが重なった状態で繰り返されることになるため、このパラメータはDouble-Loopsと名づけられています。

①Born Before Loop Start
ループ開始前に生まれたパーティクルに対して、どのように制御するか選択できます。
②Dead After Loop End
ループ終了後に消滅するパーティクルの処理方法を設定します。

①Prevent Loops from Repeating Particle IDs
チェック項目を有効にすると、ID値の重複を防ぐために異なるループからポイントIDをオフセットします。ただし、入力ジオメトリで既に繰り返されているID値を修正することはできません。その為、チェックは外さずに、有効の状態にしておくことをお勧めします。
②Particle Wrap Mode
アニメーションの終了時に生存しているパーティクルの残り寿命がアニメーション開始時に折り返されます。このパラメータで折り返しの形式を変更することができます。
Stay Alive from End to Start:Houdiniに最も適しており、IDの一貫性を保ちながらパーティクルを老化させます。
Die at End and Respawn as New Particles at Start:ID、Age、Lifeアトリビュートをオフセットさせ、アニメーションの開始時と終了時で2つの異なるグループを作成します。アニメーションループ時にパーティクルが幾つか一致しないことがありますが、[①Fade In Pscale]を有効にすることで、対策することができます。
Spawn at Start, Hide, and Reappear near End:Niagaraに最も適しています。パーティクルの折り返しは行わず、アニメーション中にパーティクルを消滅させません。代わりにpscaleアトリビュートの値を0にすることで不可視化します。アニメーション中は不可視化したパーティクルも動かす為、多少のリソースを浪費します。
Never Spawn to Avoid Wrapping:アニメーションループ時に折り返しが必要なパーティクルを事前に削除します。ループ時に発生するような問題をある程度回避できますが、アニメーション終了時と開始時にパーティクル数が著しく減少します。

①Fade In Pscale
チェック項目を有効にすると、各パーティクルの発生時にpscaleアトリビュートの値を0%から100%まで徐々に大きくします。
[②Particle Wrap Mode]が「Die at End and Respawn as New Particles at Start」に設定されている場合、このパラメータは特に有用です。
②Fade-In Duration
[①Fade In Pscale]の効果時間を秒単位で制御します。
③Fade Out Pscale
チェック項目を有効にすると、各パーティクルの消滅時にpscaleアトリビュートの値を100%から0%まで徐々に小さくします。
④Fade-Out Duration
[③Fade Out Pscale]の効果時間を秒単位で制御します。

Visualization
こちらでは、パーティクルの視覚化にかかわる設定を行います。
①Output Preview Geometry
チェック項目を有効にすると、プレビュージオメトリを出力します。このジオメトリは、入力されたパーティクルにPrimitive形式の球体として割り当てられます。パーティクルを出力したい場合はこちらの項目をオフにします。
②Preview Sphere Scale
プレビュージオメトリの大きさを制御します。
③Color by Normalized Age
チェック項目を有効にすると、Cdアトリビュートが生成され、プレビュージオメトリに色が割り当てられます。この色は0から1の値にかけてバイオレットから赤のグラデーションがマッピングされ、AgeアトリビュートをLifeアトリビュートで割った値の色となります。
3.Labs Make Loop SOPノードの使用方法
ここからは 、 Labs Make Loop SOPノードの使用方法についてご紹介します。
今回は、Pyroエフェクトとして 、 Legacy Pyro FXシェルフのCandleを使用します。

もし画面にLegacy Pyro FXシェルフがない場合は、画面右上の「+」ボタンから、Shelves → Legacy Pyro FXにチェックを入れることでシェルフツールを追加できます。

まず、Sphere SOPノードを作成します。
画面右上のLegacy Pyro FXシェルフからCandleを選択後、シーンビューのSphereオブジェクトをクリックして、シーンビュー上にカーソルを置いた状態でEnterキーを押すと以下のような画面になります。

Uキーを押して一つ上の階層に戻り、自動的に生成されたpyro_import1ジオメトリの中に入ります。

Labs Make Loop SOPノードを作成し、import_pyro_visualizationジオメトリノードと接続します。

Labs Make Loop SOPノードにディスプレイフラグを移動し、タイムスライダーを再生することで、以下のようなループするアニメーションが生成されたことがわかります。
ParticleなどのアニメーションをLabs Make Loop SOPノードに入力している場合は、Input TypeをParticleに変更した後、タイムスライダーを再生することでループされたアニメーション結果を確認することができます。
また、各パラメータを変更することでループの様子を調整することができます。詳しくは「2.各パラメータについて」をご参照ください。

Labs Make Loop SOPノードの使用方法については、以上です。
4.Labs Make Loop SOPノードを使用したシーン例
最後に、Labs Make Loop SOPノードの使用例を簡単にご紹介いたします。
今回は 、 パーティクルにLabs Make Loop SOPノードを適用し、ループするエフェクトアニメーションを作成していきます。
まず、①のDOP Network内でパーティクルシミュレーションを作成し、②のFile Cache SOPノードでシミュレーションのキャッシュを保存しておきます。

File Cache SOPノードの下にLabs Make Loop SOPノードを接続し、Labs Make Loop SOPノードのディスプレイフラグを点灯させます。
続いて、Labs Make Loop SOPノードのパラメータを変更します。
今回は、パーティクルアニメーションを入力している為、①のInput TypeをParticleに変更します。
②のBorn Before Loop StartとDead After Loop EndをRemove Particleに変更し、ループ時のパーティクルの消滅が不自然にならないようにします。
③のParticle Wrap ModeをStay Alive from End to Start (Houdini) に変更することでパーティクルの折り返し形式を変更します。

これにより、以下のようなループされたパーティクルアニメーションが生成されました。
最後にParticletrail SOPノードとColor SOPノードを接続し、トレイルが好みの形状や色になるよう設定したら完成です。

完成したループアニメーションは以下の通りです。
こちらのHipファイルは、下記のリンクからダウンロードすることができます。詳しくは、こちらをご参照ください。
これでLabs Make Loop SOPノードについての解説は以上となります。
今後の学習や制作のご参考にしていただけますと幸いです。