カテゴリー別アーカイブ: houdini

Houdini FLIP その12

自分のPCのメモリを256GBに増やして、ホワイトウォーターの計算精度を上げて
Houdiniでシミュレーションを行ってみた。

ある程度のシーンの規模でホワイトウォーターの計算精度を上げていくと
メモリを200GB近くすぐに消費する。

メモリの価格は比較的安定しているため、メモリは積めるだけ積みたいが
Ryzen Threadripper用のマザーボードは最大256GBになっている。
ちなみに最新のThreadripper Proのマザボだと2TBまでいけるらしい。

Houdini 個人作品リール

今まで作ってきたHoudiniの個人作品を3分のリールにまとめてみた。

今回新しくリールに追加した作品はクマ型のロボットが海中から出現するFLIPシミュレーション。
モデルはHoudiniで作成し、装甲や内部のパイプはプロシージャルにモデリングした。
テクスチャー作成にはサブスタンスペインターを使用。コンポジットはNuke。

モデルのサイズはそこそこ巨大なため、ホワイトウォーターのパーティクル数は億を超えた。

この規模だと作業PCのメモリは128GBでは厳しかったため、
ホワイトウォーターのシミュレーション精度は少し下げてシミュレーションを行った。
規模の大きなFLIPシミュレーションを行うためにはメモリは256GB必要だと毎回痛感する。

Houdini 水滴表現

先日作成した動画の中で、熊が川を遡上している際の
熊に付着した水滴表現についての補足。

基本はファーにポイントを付着させておき、
そこからPOP Networkの中でパーティクルを発生させている。
発生させたパーティクルにはパーティクルの年齢に比例して
タービュランスが大きくなるような力を加えている。

<通常状態>

<水滴表現あり>

Houdini FLIP その11

先日Houdiniで作成した熊を使って、川の流体シミュレーションを行ってみた。

今回からはHoudini20を使用。
それに伴い流体シミュレーションのワークフローをFLIP SOPに全面移行した。

レンダリングにはKarma XPUを使用し、要素分けなしの一発レンダリング。
背景はHoudiniで全てモデリングした。

Houdini19.5から実装されたFLIP SOPによりFLIPのワークフローは完全に新しくなった。
SOP内で全て完結できるため、結論から言うとセットアップがかなり分かりやすくなっている。
SOP版のFLIP Solverの実装はDOP版のものとは異なるためパラメーターには若干の違いがある。

ソルバーにはAPICとFLIPと二つのアルゴリズムが用意されており、今回はFLIPを選択。
以下は二つのアルゴリズムを使った今回のシミュレーションの比較。

ホワイトウォーターの表現には標準のものに加えて、スプラッシュ用に自分で実装したものを追加した。標準のホワイトウォーターはボリュームシェーダで、自分で実装したものはSSSを調整したサーフェイスシェーダでレンダリングしている。

熊のファーもウェット用にグルーミングを少し修正している。
さらにファーのウェット用のシェーダを作り、ファーからの第二の飛沫もパーティクルで表現してみた。

飛沫が岩石に衝突した際の岩石のウェット表現はSOP内のAttributeTransferで実装した。

 

Houdini Fur

数年前に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 Tree

現在のHoudiniではLabs Tree系ノードを使用すれば簡単にリアルな木が作れる。
基本的な木の形状を作成するためのノードネットワークは以下の通り。

  1. Labs Tree Controller : 木の形状をコントロール
  2. Labs Tree Trunk Genrator : 幹を作成
  3. Labs Tree Branch Generator : 枝を作成(複数接続すると枝の世代が増える)
  4. Labs Tree Leaf Generator : 葉のテクスチャーを貼るためのカードを作成
  5. Labs Tree Simle Leaf : カードを葉のジオメトリに置き換え

パラメーターを変えながらWedgeを使って数種類のパターン形状を作成。

今回、木を使った様々なシーンを作ってみた。

①「カールじいさんの空飛ぶ家」をイメージ

② 紅葉

今後、木を作るためにL-Systemを使用することはもうないだろうな。

Houdini 猫その6

家猫エルのキャラクター作成プロジェクトその6

先日作成したクロスシミュレーションにファーを追加。

クロスもファーも猫のひげも、全てVellumによるダイナミクス計算によって駆動。

今回は以下のようにクロスとファーの干渉を避けるためにクロス内部に入るファーを
動的に削除するVEXを書いた。

レンダリング時間はフルHDサイズで、32コアのCPUで1フレーム40秒程度。

今回は以下のキャラクター作成の作業を
全てHoudini内でやってみた。

  1. モデリング
  2. リギング
  3. キーフレームアニメーション(歩行サイクル)
  4. 顔アニメーション(ブレンドシェイプ)
  5. 二次的アニメーション(耳、尻尾)
  6. FX(ファー、クロス、ひげ)
  7. レンダリング

今回、実際に自分で手を動かしてキャラクターを作ってみて
キャラクターを作る大変さがよくわかった。
特にかわいい(と、自分が思う)キャラクターを作るのは大変すぎる…

Houdini 猫その5

家猫エルのキャラクター作成プロジェクトその5

今回はHoudiniのVellumを使って猫に衣服を着せてみた。
ワンピースとTシャツの2タイプを作成。
ワンピースにはEdgeCuspで首と裾の両端にスリットを入れ
ボタンもくっつけてみた。

クロスの素材(柔らかめか硬めか)はVellum ConstraintsのBend:Stiffnessパラメーターを
調整することで簡単に設定ができる。

衣服の場合、どのように衣服の初期状態を設定するかの問題がある。
今回はTスタンスからアニメーションの最初のフレームまで
コリジョンメッシュを変形させながら一回目のVellumシミュレーションを行い、
さらにそのシミュレーションの動きが落ち着いた最終フレームを
二回目のVellumシミュレーションの初期状態として使用してみた。

Vellumで衣服を作る場合には、Solverのサブステップには5以上は必要。

この猫プロジェクトはもう少し続きます。

Houdini 猫その4

先日、Houdiniで作成した猫にKineFXでリグを設定して歩行アニメーションを作ってみた。
作業には3週間ほどかかった。

目の瞬き、口の動きはブレンドシェイプで作成。
瞬きのタイミング制御はCHOP内でパルス波を作り、波の振幅を調整することで行った。

耳・尻尾のジョイントの動きはSecondary Motionノードを使って作成した。

今回のキャラクターの目はデフォルトで寄り目で、かつ完全な球体ではなかったため、
ジョイントで動かすのは難したかったので眼球の制御にはVEXを使った。

猫のひげの制御にはVellumを使用し、ダイナミクスで動かしてみた。

今回、Houdiniでこのようなキャラクターリグとアニメーションを作ってみたが、
リグはロジックの積み上げなので、キャラクターリグの作成にも
Houdiniのプロシージャルな使い方は向いていると感じた。