第15回: Particle SOPの詳細解説
本日の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 SOP のPrimitive 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 BehaviorがBounce on Contactの時に、ジオメトリの表面方向にどれぐらい反射するかを指定します- Gain Normal
Hit BehaviorがBounce on Contactの時に、ジオメトリの法線方向にどれぐらい反射するかを指定します- Split
- パーティクルの分割の設定です
-
No Splitingパーティクルを分割しない -Split on Contact衝突した時にパーティクルを分割します -Split on Deathパーティクルが消滅する時に新しいパーティクルを発生させます
外部からの力
/project1/FORCE を参照

Particle SOP の3番目のインプットには、パーティクルの動きをコントロールするための力場を設定できます。力場は、Metaball SOP と Force 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 で自分も知らなかった機能が沢山あって面白そうだったので、折角なんでと思ってほぼ全解説ということにしました。
パーティクルはビジュアルエフェクトの王道な所があります。これだけでもほんとうに色々な表現ができると思うので、みなさんぜひ掘ってみてください!