CGWORLD vol.149の内容になります。
今回はパーティクルの軌跡をそのままラインにしてしまい、
それを元に、植物をつくってしまおうというものです。
ポイントは3つあります。
はじめに、パーティクルの軌跡を取る作業です。
これは、単純にTrailSOPで取ることが出来ます。
TrailSOPは非常に便利ですが、諸刃の剣でもあります。
時間に順方向で作業することが前提で、キャッシュをとりながらクッキングするオペレータです。
なので、 上流で何か変更を加えた場合、キャッシュをクリアしてあげるか、イニシャルフレームからクッキングすることをおすすめします。
基本的には、そこまで気になるエラーが出ることはありませんが、そういった仕組みを理解していて、癖をつけておくことが、のちのち大事になってくるでしょう。
今回は、TrailSOPの軌跡を残す機能を応用していますが、TrailSOPにはVelocityを再計算させる機能などもあります。これも非常に有用ですね。
キャッシュしたパーティクルをつなげる作業は、AddSOPで行います。IDを利用してポイントを接続してあげます。
そうすることで、パーティクルひとつひとつの軌跡を分割してつなぐことが可能になります。
次に、ラインを元にメッシュを張る作業です 。
これは非常に難解です。
今回の場合、まず単純にSweepSOPなどで一発で張ることは簡単です。SweepSOPは非常にスマートで、ラインのプリミティブごとに分けてメッシュを張ってくれます。
ただ、ラインに残るAttributeを移すことや、メッシュに対する細かいアプローチが難しくなってきます。
そこで今回は、CopySOPを使ってメッシュを張ることにしました。
CopySOPならば、Attributeのトランスファーや、メッシュに対するアプローチが大幅に広がります。
ただ、同時に問題も出てきます。
それは、SkinSOPでメッシュを生成するとき、ラインのプリミティブごとにメッシュを分けることが難しいということです。
以前はDeleteSOPとCopySOPのStamp機能を利用して、ループ処理をして回避しました。
近年のバージョンにはForEachSOPが追加されて、ループ処理が非常に簡単に出来るようになりました。
この機能は非常にHoudini的で、プロシージャルなアプローチの幅をひろげてくれます。
最後に、葉の成長のアニメーションです。
自分があまりキーフレームアニメーションが得意ではないということもあり、タイミングの調整は最小限におさえています。
TwistSOPやTransformSOP、BlendSOPなどを使用して、成長する様を一種類だけアニメーションします。
そして、CopySOPで配置します。
その時、コピー元のポイントは、パーティクルを利用します。
パーティクルを利用することで、タイミングをLifeを利用した自動的なものにすることが出来ます。
パーティクルの年齢と時間軸を利用すれば、パーティクルの生まれた時間を割り出すことが出来ます。
それと葉の成長のアニメーションのオフセットを使ってあげることで簡単に成長のアニメーションをずらすことが出来ます。
オフセットにはTimeShiftSOPを使います。
CopySOPを利用することで、様々なStampを埋め込むことが出来、非常にバリエーションに富んだ効果を創りだすことが可能になります。