今回はHoudiniの超基本的なアトリビュートのみを使用して、パーティクルの動きに追従したライン作成エフェクトを解説していきます。
TEXT_森田悠揮 / Yuuki Morita(OnenessArt)
EDIT_三村ゆにこ / Uniko Mimura(@UNIKO_LITTLE)
パーティクルの動きに追従したライン作成エフェクト
大まかなながれは、「モデルにカラーアトリビュートを作成」→「カラーを基にvアトリビュートを作成」→「そのvを基にパーティクルを動かす」→「動かしたパーティクル にTrail SOPでポイントを追従させる」→「ラインを作成しレンダリング」となります。とてもシンプルなながれなので、初心者の方でもマネがしやすいエフェクトかと思います。ぜひ遊んでみてください。
バリエーションに富んだパーティクルの動きやライン形成が可能
【1】モデルをFileノードで読み込む
ZBrushで作成した猫のモデルをFileノードでHoudiniに読み込みます。
【2】「Colorノード」で頂点カラーに黒を割り当てる
次の工程でカラーを割り当てるための下準備として、「Colorノード」で頂点カラーに黒を割り当てます。
【3】カラーノイズを割り当てる
「Attribute Noiseノード」を作成してCd(頂点カラーアトリビュート)にカラーノイズを割り当てていきます。[Signature] は「3D」で [Attribute] に「Cd」と入力します。
【4】確認
カラーノイズを適用したモデルはこのような感じです。
【5】ベクトルデータを作成
Polyframe SOPで先ほど作成したカラーノイズを基に「v」というベクトルデータを作成します。
【6】ベクトルの可視化を確認
vベクトルをビューポートに表示してみます。このように、色を基にしたベクトルの可視化が確認できます。
【7】vアトリビュートをPointクラスに移行
Polyframeノードで作成したvをVertexアトリビュートからPointアトリビュートへ変更するために「Attribute Promoteノード」を作成し、[Original Class] を「Vertex」に変更します。
これでvアトリビュートはPointクラスに移行できました。
【8】面に平行な新規vアトリビュートを作成
Attribute VOP内で、vアトリビュートを基にした新規ベロシティアトリビュートを作成。まずは既存のvとNアトリビュートをノーマライズし、その後、Nとvの外積を求めます。これにより、面に平行な新規vアトリビュートを作成することができます。
【9】ビューで確認
実際にビューで確認すると、このように複数個所を起点とした「ツムジ」のようなベクトルアトリビュートが作成できていることが確認できます。
【10】POP Networkの [Input 1] と [2] に接続
続いて、POP Networkの [Input 1] と [2] を画像のように接続します。はじめに作成したvアトリビュートを使用しない場合は、[Input 1]のみで構いません。
【11】POP Network内でPOP VOPを作成
POP Network内でPOP VOPを作成します。ここではフレームごとに [Input 1] のvを取得し、ポイントのベロシティを更新していきます。
【12】「Inputsタブ」の項目を任意のものに設定
複数のInputでPOP VOPを操作したい場合は、必ず「Inputsタブ」の項目を任意のものに設定する必要があります。今回は [Input 1]、[Input 2] が接続されているのでそれぞれ設定します。
【13】 [Input 1] と [2] のvアトリビュートを取得
POP VOP内に入り、Point Cloud OpenとPoint Cloud Filterを使用し [Input 1] と [2] のvアトリビュートを取得します。Point Cloud の[Search radius] とMaxpointsスライダを調節しながらポイントの動きを見ていくためPromoteしておきます。[Input 1] からのvと [Input 2] からのvをMixノードで混ぜつつBiasでコントロールしていく方法で、好みのパーティクルの動きを探っていくことにしました。
【14】パーティクルの動きを確認
[Search radius] と [Number of points] の数値を変えながらパーティクルの動きを確認していきます。
【15】POP NetworkにTrail SOPを接続
ちょうど良い動きが見つかったら、minposでサーフェスにパーティクルをフィットさせます。その後、POP NetworkにTrail SOPを接続。ビュー上では、このようなポイント配置になるかと思います。
【16】Add SOPを作成
Add SOPを作成し [Polygonsタブ→By Group→By Attribute] と設定して、[Attrubute Name] に「id」と入力します。これで、パーティクルIDごとにラインポリゴンが作成されるようになりました。
【17】IDアトリビュートを指定
「Colorノード→Random from Attribute」でIDアトリビュートを指定します。ビューポートではこのような感じになっています。
【18】レンダリング時のワイヤーの太さを設定
今回もRedshiftでレンダリングするため、ラインカーブを直接レンダリングする場合は「Redshift OBJプロパティ」のStrandsタブ内で、レンダリング時のワイヤーの太さを設定する必要があります。
【19】バリエーションに富んだパーティクルの動きやライン形成が可能
初めの頂点カラーを変えさえすれば、様々なパターンのパーティクルの動きやライン形成が可能です。
【完成】
Profile.
-
森田悠揮 / Yuuki Morita
フリーランスキャラクターデザイナー/デジタルアーティスト/造形作家
国内外問わずアート、映画、ゲーム、広告、デジタル原型など様々なジャンルで活動しているフリーランスのアーティスト。ZBrushでの生物や怪獣などのクリーチャーデザインを得意とする傍ら、Houdiniを用いた動画、アート制作なども行う。
初の著書 『the Art of Mystical Beasts』ボーンデジタルから発売中。
website: itisoneness.com
Instagram: yuukimorita
Twitter: @YuukiM0rita