第十五回
本日の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
で自分も知らなかった機能が沢山あって面白そうだったので、折角なんでと思ってほぼ全解説ということにしました。
パーティクルはビジュアルエフェクトの王道な所があります。これだけでもほんとうに色々な表現ができると思うので、みなさんぜひ掘ってみてください!