第十五回

本日のtoeファイル ← ダウンロードしておいてください

パーティクル + ジオメトリインスタンス

今回は、第十回 で紹介したジオメトリインスタンスを、Particle SOPなどと連携させてもっと表現力を上げる方法を紹介します。

ジオメトリインスタンスの作り方、覚えてますでしょうか…?

/project1/SIMPLE_INSTANCE を参照

↑ を何も見ずに自分で作ってみてください! できなかったら 第十回 を見ながらやってみてください。今日の授業はここまでの知識をベースにするので、確実に覚えていて欲しいです!

Particle SOP と連動させる

/project1/PARTICLES を参照

では、SOPの入力を Particle SOP に変更してみましょう。 SOP to CHOP 前の null1 SOP に接続されているジオメトリを Particle SOP を使用したセットアップに変更しただけです。これだけでパーティクルを使ったジオメトリインスタンスができます。

Particle SOP は、色々な設定で多彩な表現ができます。 第七回 でほんのすこし触れましたが詳しく見ていきます

パーティクルのエミッタ (パーティクルの発生ポイント)

Particle SOP は、 Input 0 に入力されたジオメトリの各ポイントからパーティクルを発生させます。ポイントの並び順に応じて順番に発生されます。なので、Sphere SOPPrimitive Type を変更したり、 Sort SOP でポイントオーダーを変更するだけでだいぶ表情を変えられます。

また、Particle SOP で生成されたポイントの表示が見辛い場合は Display Option からポイントの強調表示機能を入れると改善されます。

Particle SOP のパラメーター

Particle SOP の中からよく使うパラメーターを紹介します

External Force
XYZ軸に対して一定量の加速度を与えます
Wind
XYZ軸に対して一定量の加速度を与えます。External Forceとの違いは、こちらのほうがかかりがマイルド (多分)
Turbulence
XYZ軸に対して空気の乱流のような動きを追加します。
Turb Period
Turbulenceの動きの細かさを決定します。大きいほどゆったりとした動き、小さければ細かな振動になります
Seed
Turbulenceのランダムシード

Drag
空気抵抗です。ゼロにすると真空状態になり、一度動きを与えられたパーティクルは減速せず、そのまま進み続けるようになります。逆に値を高くすると水中でシミュレーションをしているような質感になります
Birth
1秒の間に生成されるパーティクル数を指定します
Life Except
パーティクルの存続時間を指定します
Life Variance
存続時間にランダムなゆらぎを付加します

Remove Unused Points
On にすると寿命を終えたパーティクルが削除されます。Off の場合は最後の位置で静止状態になります
Reset
パーティクルの状態を消去してリセットします

と、これまでのSOPよりもたくさんのパラメーターがあります。パラメーターがたくさんあるということは、より多彩な表現ができる、ということです。

他のオブジェクトとの衝突

/project1/COLLISION を参照

Particle SOP の2番目のインプットにSOPジオメトリをつなぐと、パーティクルが入力ジオメトリに衝突します。

あまり複雑なジオメトリを入力すると処理負荷が高いかもなので、それなりのもののほうがいいと思います。

Limits タブのパラメーターで衝突した時にどうするかを指定します

Hit Behavior

衝突した時の挙動を指定します。

  • Die on Contact パーティクルが消滅します
  • Bounce on Contact パーティクルが跳ね返ります
  • Stick on Contact パーティクルがジオメトリ表面に貼り付きます
Gain Tangent

Hit BehaviorBounce on Contact の時に、ジオメトリの表面方向にどれぐらい反射するかを指定します

Gain Normal

Hit BehaviorBounce on Contact の時に、ジオメトリの法線方向にどれぐらい反射するかを指定します

Split

パーティクルの分割の設定です

  • No Spliting パーティクルを分割しない
  • Split on Contact 衝突した時にパーティクルを分割します
  • Split on Death パーティクルが消滅する時に新しいパーティクルを発生させます

外部からの力

/project1/FORCE を参照

Particle SOP の3番目のインプットには、パーティクルの動きをコントロールするための力場を設定できます。力場は、Metaball SOPForce SOP を組み合わせて表現します。

Radial Force
メタボールの中心から外にかけての引力、斥力を設定します
Directional Force
メタボールの大きさの範囲の中で、任意の軸方向の力 (Axial Force)、任意の軸まわりのらせん状の回転(Vortex Force)、軸と垂直な方向に対する引力、斥力(Spiral Force) を設定します

また、複数のメタボールを Merge SOP でひとまとまりにすることもできます。

他のジオメトリ表面への引力

/project1/SURFACE_TO_ATTRACTOR を参照

Particle SOP の4番目にSOPジオメトリを入れると、入力したジオメトリ表面のランダムな位置にパーティクルが向っていくようになります。

パーティクルのふるまいをデザインしてみよう

Particle SOP の色々な機能を紹介してきました。今まで紹介した機能を使って、パーティクルの動きがいい感じになるように触ってみてください!

最初は要素が多すぎて困ってしまうかもしれませんが、パラメーターの働きを一個づつ確認しながら進めていくのがポイントです。

まとめ

今回は Particle SOP の使い方についてみっちりやっていきました。本当はパーティクルはほどほどにやって、Script CHOP あたりをやろうかとも考えていたのですが思いのほか Particle SOP で自分も知らなかった機能が沢山あって面白そうだったので、折角なんでと思ってほぼ全解説ということにしました。

パーティクルはビジュアルエフェクトの王道な所があります。これだけでもほんとうに色々な表現ができると思うので、みなさんぜひ掘ってみてください!