Labs Make Loop SOP


こちらの記事では、Labs Make Loop SOPノードについて解説いたします。



▼記事で紹介している内容

  1. Labs Make Loop SOPノードについて
  2. Labs Make Loop SOPノードのパラメータ解説
  3. Labs Make Loop SOPノードの使用方法
  4. 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はシームレスにアニメーションをループさせるため、入力されたアニメーションを分割します。

  1. 例えば、Num of Double-Loopsのパラメータが1に設定されており、入力は200フレームあるとします。
  1. すると、この場合入力されたフレームレンジは100フレームずつの2セクションに分割されます。(パラメータの数値が2のときは、入力フレームが4セクションに分割されます。)
  1. アニメーションは、分割された最初の100フレームのみを複製し、2回繰り返します。
  1. 同時に、一番最初のセクション(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ノードについての解説は以上となります。
今後の学習や制作のご参考にしていただけますと幸いです。