先日作成した動画の中で、熊が川を遡上している際の
熊に付着した水滴表現についての補足。
基本はファーにポイントを付着させておき、
そこからPOP Networkの中でパーティクルを発生させている。
発生させたパーティクルにはパーティクルの年齢に比例して
タービュランスが大きくなるような力を加えている。
<通常状態>
<水滴表現あり>
先日Houdiniで作成した熊を使って、川の流体シミュレーションを行ってみた。
今回からはHoudini20を使用。
それに伴い流体シミュレーションのワークフローをFLIP SOPに全面移行した。
レンダリングにはKarma XPUを使用し、要素分けなしの一発レンダリング。
背景はHoudiniで全てモデリングした。
Houdini19.5から実装されたFLIP SOPによりFLIPのワークフローは完全に新しくなった。
SOP内で全て完結できるため、結論から言うとセットアップがかなり分かりやすくなっている。
SOP版のFLIP Solverの実装はDOP版のものとは異なるためパラメーターには若干の違いがある。
ソルバーにはAPICとFLIPと二つのアルゴリズムが用意されており、今回はFLIPを選択。
以下は二つのアルゴリズムを使った今回のシミュレーションの比較。
ホワイトウォーターの表現には標準のものに加えて、スプラッシュ用に自分で実装したものを追加した。標準のホワイトウォーターはボリュームシェーダで、自分で実装したものはSSSを調整したサーフェイスシェーダでレンダリングしている。
熊のファーもウェット用にグルーミングを少し修正している。
さらにファーのウェット用のシェーダを作り、ファーからの第二の飛沫もパーティクルで表現してみた。
飛沫が岩石に衝突した際の岩石のウェット表現はSOP内のAttributeTransferで実装した。
数年前にHoudiniで作った熊のファーを今回作り直してみた。
以前はMantraでレンダリングしていたが今回はKarma XPUを使用。
ファーのシミュレーションにはVellumを使用した。
ファーのグルーミングは再構築し、今回ほぼ作り直した。
最初はプロシージャルにグルーミングを行い、その後局所的にブラシで
グルーミングしていった。
ファーの根元から毛先にかけての色の変化を作るために
Karma用のカスタムシェーダも作った。
ファーに関してはKarma CPUもKarma XPUもレンダリング結果はほぼ同一の結果になった。
おそらくピクセルレベルでは数パーセント程度の差だと思われる。
レンダリング時間はThreadripper(32コア)+RTX 3090の組み合わせで
フルHDサイズで1フレーム90秒程度。
1フレームを数時間かけてレンダリングしていたMantra時代とは隔世の感がある。
しかしKarma XPUは異次元のスピードだな…
スピードを追い求めて以前みたいにRedshfitやV-Rayを購入する必要ないもんな~。
Karma XPUがクォリティ的に厳しい場合にはRenderman XPUを使えばいいわけだし。
今回ふと思ったが、数年前に自分で作ったシーンファイルを開いて
中身を振り返りながら作り直していく作業は
Houdiniのスキルを上げていく上で一番いい方法かもしれない。
現在のHoudiniではLabs Tree系ノードを使用すれば簡単にリアルな木が作れる。
基本的な木の形状を作成するためのノードネットワークは以下の通り。
パラメーターを変えながらWedgeを使って数種類のパターン形状を作成。
今回、木を使った様々なシーンを作ってみた。
①「カールじいさんの空飛ぶ家」をイメージ
② 紅葉
今後、木を作るためにL-Systemを使用することはもうないだろうな。
家猫エルのキャラクター作成プロジェクトその6
先日作成したクロスシミュレーションにファーを追加。
クロスもファーも猫のひげも、全てVellumによるダイナミクス計算によって駆動。
今回は以下のようにクロスとファーの干渉を避けるためにクロス内部に入るファーを
動的に削除するVEXを書いた。
レンダリング時間はフルHDサイズで、32コアのCPUで1フレーム40秒程度。
今回は以下のキャラクター作成の作業を
全てHoudini内でやってみた。
今回、実際に自分で手を動かしてキャラクターを作ってみて
キャラクターを作る大変さがよくわかった。
特にかわいい(と、自分が思う)キャラクターを作るのは大変すぎる…
家猫エルのキャラクター作成プロジェクトその5
今回はHoudiniのVellumを使って猫に衣服を着せてみた。
ワンピースとTシャツの2タイプを作成。
ワンピースにはEdgeCuspで首と裾の両端にスリットを入れ
ボタンもくっつけてみた。
クロスの素材(柔らかめか硬めか)はVellum ConstraintsのBend:Stiffnessパラメーターを
調整することで簡単に設定ができる。
衣服の場合、どのように衣服の初期状態を設定するかの問題がある。
今回はTスタンスからアニメーションの最初のフレームまで
コリジョンメッシュを変形させながら一回目のVellumシミュレーションを行い、
さらにそのシミュレーションの動きが落ち着いた最終フレームを
二回目のVellumシミュレーションの初期状態として使用してみた。
Vellumで衣服を作る場合には、Solverのサブステップには5以上は必要。
この猫プロジェクトはもう少し続きます。
先日、Houdiniで作成した猫にKineFXでリグを設定して歩行アニメーションを作ってみた。
作業には3週間ほどかかった。
目の瞬き、口の動きはブレンドシェイプで作成。
瞬きのタイミング制御はCHOP内でパルス波を作り、波の振幅を調整することで行った。
耳・尻尾のジョイントの動きはSecondary Motionノードを使って作成した。
今回のキャラクターの目はデフォルトで寄り目で、かつ完全な球体ではなかったため、
ジョイントで動かすのは難したかったので眼球の制御にはVEXを使った。
猫のひげの制御にはVellumを使用し、ダイナミクスで動かしてみた。
今回、Houdiniでこのようなキャラクターリグとアニメーションを作ってみたが、
リグはロジックの積み上げなので、キャラクターリグの作成にも
Houdiniのプロシージャルな使い方は向いていると感じた。
https://www.sidefx.com/houdini-hive/siggraph-2023/#xpu
8月のシーグラフでHoudini 20(主にレンダリング周り?)が公開されるらしい。
この記事で初めて知ったが、Karma XPUの開発者って元Weta Digitalの方で
Wetaの独自GPUレンダラーGazeboのリードプログラマーだったのね。
だからいきなりあのレンダリングスピードが達成できたわけか。
現在ベータ版なので、今度こそ製品版になると思うが
現在未実装な機能はほぼ網羅している感じなので
これは期待できそう。
Houdiniで作成する家猫エル その3
今回はファーのダイナミクスのテストを行った。
シンプルな風を吹かせて、ファーの揺れ具合を確認。
毛のフワフワ感が出るように調整してみた。
ダイナミクス周りの大体のパラメーターは決定できたので
今後はリグを設定し、歩かせながらファーの揺れ具合を確認する予定。