COOK BOOK

houdini delicious recipes

December 2010

Particle to Plants



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を埋め込むことが出来、非常にバリエーションに富んだ効果を創りだすことが可能になります。






 

Melt and Spark


 
更新がご無沙汰になってしまいました。
ここ数ヶ月はありがたい事に激務に追われてブログをかまってあげる暇はなかったです。
単純に続けるということは難しいものです。。。

さて、数ヶ月分を更新していかなくてはいけないわけですが、
まず、置いてけぼりにしてしまっているCGWORLDの記事について書いていこうかと思います。

タイトルはCGWORLD vol.148の記事関連です。
Melt and Spark。
溶解と火花。そのままですね。

この回で紹介する手法は、主に2つあって、プロシージャルなモデリングと、
パーティクルをPoint Cloud(点群、点の分布)として、ライティングに利用するというものです。

まず最初に、プロシージャルなモデリング方法です。
これは本誌にも書きましたが、モデリングとエフェクトは表裏一体であるということです。

少し大雑把な言い回しですが、エフェクト単体で表現する場合においても、
パーティクルなどのエミッターとなる物体は決して無ではない事が多いです。

例えばポイント1つにしても、どの場所に配置するのか、どの向きでVelocityを持たせるか。
これは、モデリングに大きく関わってくる要素です。

これら踏まえて、予めエフェクトを予想したアプローチを取ることが非常に重要です。

今回の場合は、溶接で切断される様を描いています。
概要は本誌で確認していただければと思います。

細かいポイントの再確認としては、PeakSOPを使用したモーフィングです。
これはとてもHoudiniらしいアプローチですね。
PeakSOPは法線方向にポイントを移動させるオペレータです。
予め、移動させたい方向に法線を再計算させておいて、PeakSOPでモデリングします。

それを、AttributeとVOPSOPを使用してブレンドモーフィングします。
モーフィングには、MixVOPを使用しています。
これを使用すれば、どうブレンドするかを、Attributeを利用してアマウント出来ます。

次に、メインディッシュとなるのがPointCloudです。
シェーディングにPointCloudを利用することは、レンダリングのコストを下げるためや、
メッシュの分割に頼ることなくAttributeを持たせたい時などに非常に有効な手段です。

それを今回は少しイレギュラーな手法を用いて利用しています。

通常、PointCloudは、サーフェイス上に分布していることが多いですが、
今回はパーティクルを利用しているため、そうとは限りません。

PointCloudとサーフェイスの距離と法線を利用して、
ライティングされている様を擬似的に表現しています。
そうすることで、火花の発光感をよりたしかなものにしています。

VOPでのシェーダーワークは、CGWORLD.jpからhipを落としてみていただければと思います。

簡単な説明ですがこのへんで。。。

 

Profile
  • ライブドアブログ