前回に引き続き、崩壊系エフェクトについて解説します。
●CGWORLD Online Tutorialsにて特別無料配信中!
【無料】Houdini COOKBOOK +ACADEMY 特別編 ~コロナをやっつけよう!~
様々なシチュエーションに応用がきく崩壊エフェクト
崩壊のエフェクトはバリエーションを調整すれば様々なシチュエーションに使用することができます。例えば、タイミングを早めてテレポーテーションのエフェクトに使用したり、消失系やモーフィング系に変更することもできます。作例ではある程度Particleを多めにしてより崩壊の表現に寄せていますが、Houdiniではこうしたフローを貯めておけば、調整次第で使い方は無限です。今回はよく使用するAttributeを利用したエリア指定を駆使して、Particleベースのシミュレーションで動きをつけています。
PrimitiveとPackを上手く行き来したセッティングで、Polygonが崩壊しているように見せています。また、Polygonが徐々に消失していく部分や、Particleの発生方法なども今回のフローの特徴であり基本のテクニックになるので、引き出しの1つとして参考にしていただければと思います。
01 Source Flow / ジオメトリ準備のながれ
ベースのジオメトリを読み込み、Remesh SOPを使って、Adaptiveにリメッシュします【A】【1】。この時点で、VertexにNormalを作成しておきます【B】。
次に、Facet SOP【C】を使ってUnique PointsでPolygonをバラバラにします。こうすることで、リメッシュしたPolygonをそれぞれに動かすことができます。
Rest Position SOPとVOPを使って、Noise Defromをします【D】。これに対して、VOP【E】を使って、PrimitiveのSphereの半径で中心点からの距離【F】を、Distance VOP【G】を使いPointそれぞれで計測します。それの値を整理して0~1の範囲に収め、オフセットをして“area”のAttributeがアニメーションしているように調整します【2】。
その後、Wrangleなどで“rest"の値を使ってPositionを元に戻します【H】。
“area"をAttribute Promote SOPを使って一度、AverageでPrimitiveのAttributeに変更し、再度PointのAttributeへ戻します【I】。このようにすることで、Polygonに付随するPointそれぞれで値が異なることのないようにします。“area"のAttributeをAttribute Remap SOP【J】を使って、別名のAttribute【3】にリマップ【4】。これによって、ベースとなるAttributeは0~1の範囲で線形に値を保持した状態で別のAttributeを作成できるため、この後の作業で、綺麗な元データを再度利用したくなった場合でも、分岐したAttributeを別途使用することが可能です【5】。
最後に、Assemble SOPとPack SOPを使って、PolygonそれぞれをPackに変換します【K】。これによって、Polygon1枚を1つのParticleとしてシミュレーションできます。
02 Prim POP Flow / Polygon崩壊シミュレーションのながれ
続いて、Polygonの崩壊をシミュレーションしていきます。Dopnet【A】を作成します。今回はPOPを使用するので、TabメニューからPOP Networkで作成すると、POPのプリセットとして作成できます。
シミュレーション結果をDop Import SOPで読み込み、File Cache SOPでキャッシュをとりシミュレーションの完了です【K】【3】。次に、ParticleのシミュレーションのためのSourceを作成します。必要AttributeをTransferしつつUnpack【L】をして、Attribute Remap SOP【M】でPrimitiveのスケーリングを行うためのAttributeを作成します。
このAttributeをPrimitive Properties SOP【N】のScaleにAttributeを代入して、崩壊と共に消失するようなアニメーションをつけます。その後、スケールが0の場合を削除【O】してジオメトリの完成です【4】。
スケールが1の場合も削除することで、Sourceとして使用しない部分を削減します【P】【5】。Attribute Create SOP【Q】でPrimitiveの総数をAttribute化して、その最大値をDetaileのAttributeへPromoteします。【R】最後に、PrimitiveをConvert Line SOP【S】でEdgeを抽出し、File Cache SOP【T】でSourceのキャッシュを取り完了です【6】。
Dopnet内部では、POPの基本フローからスタートします。POP Networkで作成した場合、POP Object【B】とPOP Solver【C】は準備されている状態で、さらにPOP Source【D】も作成されますが、デフォルトの設定から、Emission TypeをAll Geometryへ変更し、直接接続しない場合は、Geometry Sourceを指定します。BirthタブのImpulse Activationを“$F ==1”に設定して、初期フレームのみの発生とします。続いて、SOP Solver【E】を使って、Object Merge SOP【F】で元のSourceを読み込み、“area"などのアニメーションしているAttributeをAttribute Copy SOP【G】でシミュレーションジオメトリにコピーします。これによって、シミュレーションジオメトリにアニメーションしているAttributeを反映させることができます。
次にPOP Force【H】で動きをつけます。この際に、Force【1】やNoise【2】にそれぞれAttributeを元にした力がかかるように設定します。必要に応じてPOP Drag【I】などで速度の調整をしたり、Ground Plane【J】で床面の衝突を計算しましょう。
03 Prticle Flow / Particleシミュレーションの手順
次に、Particleシミュレーションの準備をします。前項と同様にPOP Networkで作成します【A】。
POP Networkで作成した場合、POP Object【B】、POP Solver【C】、POP Source【D】はすでに準備されています。続いてPOP Sourceの設定を行います。Particleの発生数を自動計算するようにセッティングします。パラメータ右上のギアマーク【1】からSpare Inputを作成し、Sourceのジオメトリを読み込みます【2】。
このジオメトリには、Primitiveの総数がDetailに入っているため、これを利用します。Impulse CountにPrimitive、1つに対する数値を記述して、それにdetail関数で総数を読み込み乗算します。【3】これによって、自動的にPolygonのEdgeから発生するParticleの数を計算することが可能になります。必要に応じて、ParticleのLifeなども設定します。また、Sourceのジオメトリが持っているVelocityを引き継いでいるため、それも必要に応じて調整しましょう。
動きに関しては、Polygonの崩壊と同等のForceがかかるように、POP Force及びPOP Drag【E】はパラメータをReferenceしておきます。同じくGround Planeも設定します【F】。これでシミュレーションの準備の完了です。
最後に、Dop Import SOPでParticleを読み込み、File Cache SOPでキャッシュを取り完了です【A】【4】【5】。
04 Operators / 今月のオペレータ
今回、紹介するのはAttribute Promote SOPとAttribute Remap SOPです。
Attribute Promote SOPはこれまでにも幾度となく登場している重要なノードの1つです。今回の使用方法は単純なPromoteではなく、値を均一化したり、Detailに最大値を保持させる使用方法をとっています。HoudiniにおいてAttributeの扱いは非常に重要で、ここを使いこなせるかどうかは、レベルに直結するものです。例えば、Attribute Promote SOPで最小値、最大値を計算し、Fit Rangeと組み合わせることで、常に一定の範囲に収めるなど、値の取り扱いやすさを向上させてくれます。
Attribute Remap SOPもクリーンな値、例えば、リニアな変化をもったAttributeが存在したとして、それを保持しつつ、新たな値の幅や、別の補間で新たに値を作成したりする際には欠かせないものです。
Attributeの扱いや作成にはある程度、慣れが必要ですが、自分で作成するAttributeは“整理されていて使いやすいもの”という前提をもっておくと、作業中の迷いや無駄な計算、エラーなどを避けることができると思います。そういった点に注意して、細かなAttribute関連のノードの引き出しを増やしていければ理想です。
「Houdini COOKBOOK +ACADEMY」 Houdiniを基礎から楽しく学ぶオンライン講座
公開日程:毎週金曜日公開(予定)
価格:1,300円(税込)※セットでの割引販売有
※第一回「Houdiniの基本概念とインターフェイス」は無料公開中
受講対象:Houdiniをこれから学びたい方、Houdiniの勉強で挫折した方など
cgworld.jp/special/houdinicookbookacademy
秋元純一 / Junichi Akimoto(トランジスタ・スタジオ/取締役副社長)
日本でも指折りのHoudini アーティスト。
アーティスト業務の傍ら、Houdiniアーティスト育成や布教活動に勤しむ
www.transistorstudio.co.jp
blog.junichiakimoto.com
TEXT_秋元純一 / Junichi Akimoto
EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子/ Momoko Yamada