この記事はhoudini advent calendar 2020 23日目の記事です。


・はじめに


ほとんどの皆様、始めまして。
11月よりブログを始めたのですがsnsを利用していなかったこともあって、
誰にも見られない日々で悲しいので、
初めてadvent calendarに参加しようと思います。

軽く自己紹介、
普段は都内のA社でエフェクトSV、リードアーティストをしています。
2年ほど前にセミナーとかやらせてもらいました。

ブログを始めたと言っても、
長文記事は初なので読みにくい部分も多いかもしれませんが、
読んだ人の参考になるように書きたいと思います。


・テーマ


タイトルの通り今回はオーラ系エフェクトについて少し紹介しようかと思います。

きっかけは、友人からhoudiniでのオーラの作り方について相談があったのですが、
その友人はフォトリアルな映像をよく制作している反面、
魔法系エフェクトなどの経験はあまりなく
アプローチ方法や表現の仕方に戸惑っているようでした。

その時に操作画面を見せながらあれこれ説明したところ、
知らなかったアプローチが多くあったようで、
自分にとってベーシックなアプローチでも、
以外と周りでは違うのかも??
と、当たり前の事に気づいたのでどこかで記事にしようと思っており、
今回の書くことにしました。
(もちろん自分も知らない側の立場になってます…)

内容としては自分が普段行うアプローチのベーシックな部分をいくつか紹介していきたいと思います。

houdiniバリバリ使ってるぜ~!みたいな方には当たり前すぎてつまらないかもしれないので、その時は華麗にスルーしてください。Σ(゚c_゚)

では最後までお付き合いください。


一言にオーラ系といってもいろいろなケースがあると思いますが、
今回は人物から出るオーラ系を3つと、そのアプローチを使ったエフェクトを3つほど説明しようかと思います。
こんな感じの↓

ちなみにマシンの諸事情によってレンダリングイメージではなく、
今回はビューポートでの表示になります…


人物オーラその1



まず始めはベーシックにpyroを使ったオーラ表現です。

作り方はシンプル、ターゲットにscatter sopでポイントを配置して、
そのポイントをエミッターにしてpyro simをするだけ。
特別なことは特にないですね。
pyroを使ったオーラなので、炎っぽく全体的に柔らかいオーラになります。
ツリーはこんな↓

体の周りにもやっとした表現するケースだったり、
燃えている感じの時はシンプルにこんな感じです。

難点はディテールを出したり、筋っぽさやシャープ感を出しにくいとこでしょうか?
自分は実際にこの方向で作ることはあまり少ないです。


人物オーラその


お次はpyro simで作ったvelocity fieldを使ってポイントをadvectしてやる方法です。

ちょっと動きが微妙なのは置いといて…
この方法のポイントは筋感を出しやすいところです。
オーラ系エフェクトはこの筋感の表現がポイントそれらの重なりや、
複合的な動きで美しいさが形成されていると思ってます。
ツリーはこんな↓

右側のツリーがpoint advectを使うためのツリーです。

今回は比較も兼ねて、人物オーラその1で使ったsimと同じ設定で、
解像度を落としたvelocity fieldを使って、ポイントをadvectさせています。

point advectについてはこれを見ている人なら説明はいらないかと思いますが、念のため軽く説明を。
一言で言えば、別のvelocityを使ってpointを動かすことが出来る機能です。
詳細は多くの人がチュートリアルをアップしてるので検索してみてください。

pop advect by volumeノードではvelocity fieldをどのように扱って、
ポイントを動かすかを選ぶのですが、今回はupdate velocityを使ってます。
これはケースバイケースで変えることが多いです。
選択基準としてはそのvelocity fieldの動きをどれだけ反映させたいかによって選んでます。

この方法のもう一つのポイントはレンダリングはvolumeにしてレンダリングすることです。
こういったエフェクトをあまり作ったことがない人だと、
以外とこの部分を知らないようで、最初に紹介した友人もその一人でした。

パーティクルとしてレンダリングしてしまうと、どうしても粒感が出やすくなってしまうのですが、volumeにしてやることで、密度があるところは濃く表現でき、密度がない部分はほぼ見えなくなります。
また、volume変換時にvelocity方向にブラーをかけられるので、
ある程度ポイントが少なくても間を埋めて表現することが可能です。

一つ目のpyro版と比べてみると、
同じvelocity fieldをつかっても、ポイントにすることでかなり違う表現になるのが分かると思います。


人物オーラその3


3つ目は自分で作成したvelocity fieldを使った方法です。

基本的な仕組みは2つ目の方法と同じですが、simを使わないことでスピーディに作れたり、自身の狙った動きを作ることが出来ます。
今回はanti aliased noiseを使ってnoise fieldを作成し、
それをpoint advectに渡して使用しています。
細かいnoiseを使うことで、pyro simよりもさらに細かい動きが作りやすいです。

ツリーはこれ↓

今回のケースではvopノードでnoiseを追加しただけなのでシンプルなツリーにですが、よりコントロールした動きを作りたい場合には複雑になっていきます。
velocity fieldを自分で作成する以外は2つ目の方法と同じです。

自分でfieldを作れる反面、知識が少ないとfluidのような自然動きを作るのは難しく、注意して作らないと不自然な動きになってしまう恐れがあります。

このcustom fieldを使う考え方は、この後の方法でも紹介しますが、オーラエフェクトでは一番使用する手法なんじゃないかと思います。

3つを比較

先の2つとくらべてかなり細かい感じになってます。


以上3つが自分がよくやる人物オーラのベーシックな作り方です。
今回はアプローチがメインなので作りはシンプルですが、
実際に作るときはこれをベースにあれこれ調整して仕上げていく感じになります。

ではここからは今紹介したアプローチを使ったエフェクトを紹介したいと思います。

人物オーラその1+その3 = その4


1つ目に紹介したpyro simにcustom fieldを加えてやる方法です。
人物オーラの方で説明しようかと思ったのですが、
基本的に応用なので別にしました。

simをかけるためcustom fieldでadvectするだけのように、お手軽には作れないですが、自分でコントロールをしながら、fluidの動きをプラスで出来るので、自然な動き保ちつつコントロールして扱うことが出来ます。先程紹介したポイントをadvectしてvolume化して筋感を出すのもいいですね。

作成したvelocity fieldはvolume sourceでdop内に入れてます。
H18以降のpyro solver sopだと一つ下の階層に入力すればよかった気がしますが、
いつも中に入ってしまうので、詳しくは分かりません…


チャージ系オーラっぽいの


二つ目は螺旋描きながら収束していくエフェクトの紹介です。
こんなの↓

sphereのアウトライン感出まくり…(sampleなので許してください)
螺旋丸とかこんな感じ作っていけそうですね。

ここでは、先程使ったnoise fieldをベースに螺旋状に収束するfiledを追加しています。
螺旋の部分はこんな感じのwrangleでコントロールしています。

vector up = set(0,1,1);
vector dir = normalize(getbbox_center(1) - @P);

vector rot = cross(up, dir) * ch("spin");

@vel += rot + dir*2;

このfieldでpoint advectさせてvolume rastraizeをするのですが、
その前にv方向へoffsetさせたポイントとmergeさせてボリューム感を追加してやってます。


・漂うオーラ


最後は空間に漂うオーラ系などに使えるエフェクトの紹介です。

こんな感じに浮遊して漂う動きをしているのですが、
見てわかるようにsphere形状に作ってます。
さらに言うと外側側を動いているだけです。
ターゲットを中心にいれて配置を調整するだけで、
レンダリングすると良い感じになったります。

画像は荒いですが、きちんとpscaleや解像度を調整すれば中々良い素材になります。
作り方はpoint advectした後にvolume sampleで表面へ付着させるといった、
少し変わったアプローチをしています。
何故したのかは不明ですが、当時の自分には何か見えたのでしょう…

表面へ付着というこの考えが意外と良い効果を得られ、
簡単に漂うオーラのような表現を作ることができます。

ファイナルクオリティですはそこそこのポイント数が必要になるため、
volume rasterizeの際に重くなりますが、
数を抑えれば基本的には軽く出来るためイテレーション回数を増やせ、
チェックバックにサッと対応出来ます。

もし奥行感が欲しければレイヤー構造にすることで、
外側感も減らせますし、手前と奥で分けることで、すべてを同じ解像度にしなくていいので、データ効率化も良く出来ます。

ターゲットの形状を変えたり、deformさせたりもアリです。
最近自分でよく使う手法の一つだったりします。


・まとめ


以上が自分が行っているオーラエフェクトのアプローチ方法です。

オーラに限らずエフェクトのアプローチは人それぞれで、
他の人のアプローチを知る機会はとても良い勉強になります。
自分も良く人のシーンを覗いて、コピ…勉強させてもらっています!

今回の内容が誰かの視野を広げる結果になると嬉しいです。

今後ブログにも自分用のメモとして手法や、スニペットメモを書いていこうと思っているので、
良ければたまに覗いてみてください。
あと今回のhipファイルは年末あたりに整理して後日配布しようかと思っています。

更新の際はTwitterにて報告します。
Twitter→@yu_nnnnnnnn

では、最後まで御覧いただきありがとうございます


12/29 hipファイル用意できたので参考にどうぞ

Follow me!

カテゴリー: houdini

PAGE TOP