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

Houdini Vellum + VEX

引続きHoudini VellumのR&D。

今回はVellumシミュレーションにコンストレイントによる回転アニメーションを加えてみた。
コンストレイントには通常のキーフレームが入るので、ドラゴンに対するコンストレイントを
通した手打ちの動きをVellumシミュレーションに反映させることが出来る。

槍の動きはVEXで全て制御し、ドラゴンの動きに合わせてタイミング調整した。
VEX制御だと動きの調整が簡単になるため、素早いトライ&エラーが可能になる。

Houdini Vellum 簡易版FEM

簡易版FEMとしてVellumを使ったサンプルを作ってみた。
このやり方はFEMと比較すると処理が早いため、1台のPCでも処理が十分回る。

今回はTet Conformノードを使ってドラゴンを四面体で構成しておき
それにVellumコンストレイント(Tetrahedral Stretch)を適用した。

さらに胴体部分に対してNULLに対するコンストレイントを作り、NULLを動かすことで
Vellum Solverでボディ全体の振動を発生させた。

以下はコンストレイントの強さによるボディ振動の違い。

Vellumにはいろいろな可能性がありそうだ。

Houdini Vellum 翼

HoudiniのVellum使って翼のアニメーションを作ってみた。

まずはAttributePaintでマスクを作成。赤はVellumで揺らすポイント、紫はベースメッシュに固定させるポイント。翼の骨付近のポイントはVellumで揺らさずにベースメッシュに追従するようにするため紫になっている。

次にGroupノードのバウンディングボックスを使って翼をグループ化。
これはこの後のBendデフォーマーのため。

Bendで翼のアニメーションづけ。sin関数を使って動かし、翼の可動領域はfit関数で調整。

60*fit(sin(15*@Frame),-1,1,-2,0.5)

その後、Vellum ConstraintsのプリセットClothとPin To Targetを使って
Vellumシミュレーションを行って翼の二次的な揺れアニメーションを設定。
以下はPin To Targetの設定項目。(Clothの方はデフォルトのまま)

実行結果。いい感じにシワができた。

最初Pin To TargetのTarget(ターゲット)って何?と思ったが、
VellumSolverのadvacedタブ内で設定してあった。
First Input、つまりVellumに刺す前の状態のメッシュということ。
(今回はBendでアニメーションした状態のメッシュ)

今回のモデルはフリーモデルを使用。

 

Houdini 薔薇

Houdiniで薔薇をモデリングしてみた。
ベースは以前作ったものがあったので、今回はそれを改良した。
以下はMantraでのレンダリング。SSS(サブサーフェイススキャッタリング)使用。

今回は最初に螺旋カーブを回転しながら複数コピーし、
その後はVEXを使って徐々に花びらの形に近づけていった。
花びらのカール具合はパラメーターから簡単にコントロールできるようにした。
また、枝分かれする葉の部分にはL-systemを使用した(すっかり忘れていたため自分の本で勉強)






 

Houdini RBD その2

HoudiniのRBDを使って地面の崩落シミュレーションを作ってみた。

Houdini RBD 2 from Shuichi Sakuma on Vimeo.

今回は粉砕処理をカメラ基準にして行った。
具体的には以下のように各リジッドボディのカメラ方向基準で前部分30%くらいを再分割した。
最初はForEachブロックでリジッドボディごとにループを回して割っていたが
スピードが遅いためVEXでやる方法に切り替えた。

拙書「Houidni SOP&VEX編」にも書いたが(p474,p505)、detailモードでVEXを実行し
(1回だけの実行)その中でfindattribval系関数を使うことで、ForEachブロックの使用を
多くの場合回避することができる。このやり方のメリットは処理スピード。

 

以下はPyroのボクセルサイズによる煙の出方についてのテスト。
5cm(0.05)のサイズだと煙のディテールを失わずにシミュレーションできるが
今回はシーンサイズが大きいため、メモリを限界まで使うことになった。

Houdini RBD その1

RBDシミュレーションその1。

18.0からRBD Connected Faces、 RBD Disconnected Facesノードが
追加されたので、破片の割れ目検知が簡単にできるようになった。
(以前は自前のVEXでintersect関数でレイを打って破片の隙間判定を行っていた)
これにより、破片の割れ目からパーティクルや煙を出すためのノードネットワークが
かなりシンプルになった。

Houdini カスタムワイヤーデフォーマー

Houdiniで自前のワイヤーデフォーマーを実装してみた。
最初PointDeformでやっていたが、レスト状態が直線のカーブではうまくいかなかったため、
対応可能な自前のデフォーマーをVEXで実装した。

サンプルとして以前Houdiniでモデリングしたラピュタのロボットに対して
花を咲かせるエフェクトを作成してみた。

Houdiniでポリゴンモデリング

Houdini 粒子化

Houdiniで粒子化エフェクトを作成。

全てSOP内で実装し、VEXでカスタムフォースを作った。
最初に指向性を決めるベクトルを作り、それに対してカールノイズとタービューランス(乱流)を
混ぜ合わせたベクトルを加算してポイントを移流させた。
このブレンド率を決めるのに時間がかかった。

Houdini Pyro その2

HoudiniのSparse Pryoを使って衝撃波(Shock Wave)を作ってみた。
今回も大規模なシミュレーションだが、ボクセルサイズを5cmにしても
Sparse Pryoでは実用的なスピードで計算が回った。

Sparse Pryoのおかげで、個人レベルで一台のマシンでの作業でも
大規模な流体計算が可能になったと実感した。

Houdini Pyro その1

HoudiniのSparse Pyroを使って爆発を作ってみた。
基本はシェルフから作成したが、
そのままではリアルな爆発にはならないので
色々とカスタマイズした。

爆破の規模は100立方メートル以上の非常に巨大なものだが、
Sparse Pyroのおかげで作業は比較的軽かった。