Houdini 猫モデリング その2

先日Houdiniで作成した猫にファーを生成してみた。

今回はぬいぐるみのような質感を目指してグルーミング(毛の流れを作る作業)を行った。
Houdiniのノードベースのプロシージャルな手法は
グルーミングにも非常に役に立った。

レンダリングはKarmaXPUを使用。
ノルウェージャンのモフモフ感はいい感じに再現できたと思う。

Houdini 猫モデリング

飼い猫のエルをモデルにしてHoudiniで猫をモデリングしてみた。
今回のテーマは映画「Zootopia」に出てきそうなキャラクター。

ボックスから開始して、ひたすらPolyExtrudeで容積を増やして
PolySplitでトポロジーを整える作業を続けた。
テクスチャーはSubstance Painterで描いた。

エルは♀なので、一応女の子のキャラクター設定。
今後はファーを作ってぬいぐるみのような質感にしてみたい。

 

以下は、以前Houdiniで作ったロボットと戦車。

Houdiniでポリゴンモデリング

Houdini 戦車モデリング

Houdini FLIP その10

FLIPシミュレーションのテスト。
弾丸をグラスにぶつけてグラス内の液体が飛散するシーンを作成。

Houdini FLIP test from Shuichi Sakuma on Vimeo.

衝突設定にはCollision Sourceノードを使用した。
一点注意が必要なのは、Velocity Approximationを”Backward Differece”に設定しないと
グラスが液体に衝突する前にFLIPパーティクルが@vフィールドの影響を受けて動いてしまう。

Houdini FLIP その9

Houdini metaball

今さら感があるが、Houdiniのメタボール機能をおさらいしてみた。

メタボールとは、球体など単純な曲面を持つ複数の立体を融合することで
シームレスな滑らかな曲面を作る機能で、Houdiniには昔から搭載されている。

こんな感じで球体同士の融合が可能。

それを応用して、今回は以下のような流体っぽいアニメーションを作ってみた。
FLIPやVellumを使用せずMetaball+POPのみを使用。
そんなに重くないため、場合によっては流体系の代わりに使えるかもしれない。

Houdini KineFX

Houdiniの中で定期的に触っていないと忘れる機能の代表格はKineFX。

案の定、今回も完全に使い方を忘れていたため
リハビリもかねて以下の作業を通しでやってみた。

  1. ジョイント作成
  2. リグ作成
  3. 歩行サイクルアニメーション作成
  4. セカンダリ(二次的)アニメーション作成

セカンダリアニメーションはSecondary Animationノードを使用して
耳の揺れとお腹の揺れを作成した。
そのための揺れ用のジョイントとして耳とお腹に追加のジョイントを入れた。

上半身はFK、下半身はIKで制御。足回りはリバースフットを実装して
かかとからIKリンクを動かせるようにした。

備忘録:
アセット化して複数のRigPoseをアセットから一括してコントロールする場合には
アセットにする際に以下の設定を入れる。

 

Mayaグッズ

本日職場でもらったグッズ。

・Mayaバッグ
・Aliasパスケースホルダー
・ファイナルファンタジームービー Tシャツ

全部未使用。
HoudiniじゃなくてMayaかい!と心の中で突っ込んだが、
ある意味すごく貴重かもしれん。
おそらく20年前くらいのもの。

Mayaが一番輝いていた、あの時代を思い出した。

Houdini Husk Procedural

先日作成したクマのぬいぐるみアセットに
Houdini 19.5から導入されたHusk Proceduralsを組み込んでみた。
今回は9体のファーキャラクターをレンダリングできるかのテストを行った。
(アニメーションはVellumコンストレイントを使用して作成)

Houdini Fur Vellum sim from Shuichi Sakuma on Vimeo.

Husk Proceduralはレンダリング時にファーデータをメモリ上に展開し、ファーを生成するプロシージャ(関数)。
これによって作業時の表示は常にガイドカーブのみになり、Hydraレンダラーが走ったときのみファーが生成されるようになる。(昔のmentalrayのジオメトリシェーダのようなもの)

このプロシージャにはGenerateモードとDeformモードがあり、
簡単に言えばガイドカーブのみにグルーミングがある場合はGenerateモードを使用し
ファーカーブに対してもグルーミングを行っている場合にはDeformモードを使用する。
今回はファーカーブに対してクランプを行っているためDeformモードで使用した。

Husk Proceduralによって1台のマシンでも複数のファーキャラクターを無理なく扱えるようになった。ちなみに、Husk Proceduralを組み込んだcurve primはアイコン画像が変わる。

Houdini 19.5のHusk Proceduralはファーだけの対応のようだが、
以下のSideFXのプレゼン動画を見ると今後その種類は増えていくようだ。

Houdini Vellumシミュレーション

先日作ったクマのぬいぐるみにアニメーションをつけてみた。

ジョイント等は使用せず、基本はVellumコンストレイントの切り替えのみで作った。
Houdiniはキャラクターアニメーションにも柔軟にダイナミクスを組み込むことができる。

Houdini Fur:Karma XPU レンダリング

今回はHoudiniのFur機能を使ってクマのぬいぐるみを作成してみた。
Solaris内で複数のインスタンスを作成し、インスタンスごとにファーのバリエーションを作ってからKarma XPUでレンダリング。モデリングから全てHoudiniで作成。
今回はそのワークフローの備忘録。

 

① Solaris内でTabキーを押して”Component Builder”を選択し、以下のテンプレートを作成。


② SOP Importを作成し以下の場所に接続。クマを構成するファー・スキン・眼球ジオメトリをSOPからそれぞれ読み込む。

③ MaterialLibrary内にKarma Hairマテリアルを作成。ここでMtlX Geometry Property Valueノードを作成してUSDアセットのインターフェースを作成しておく。ここで作成したインターフェースはInstancerノードの内部からVEXなどを使用して同名のアトリビュート経由で制御可能となる。作成したインターフェースはテクスチャーから取得したテクセルカラーを変調するための[色相、彩度、明度]の3つのパラメーター。(名前はそれぞれhueShift、satShift、valShiftとした)

④ Component Outputノードを使用してUSDファイルへ書き出し。これによってクマのジオメトリ(geo)とマテリアル(mtl)が一つにパッケージ化される。

⑤ AssetRreferenceノード(アイコンはクマ!)を作成し手順4で保存したUSDファイルを読み込む。さらにInstancerノードをつなげておく。

⑥ Instancerノードの内部でポイントを作成する。ポイントに対して手順3で作成した[色相、彩度、明度]の3つのアトリビュートを作成。名前はUSDアセットのインターフェースと同じ名前(hueShift、satShift、valShift)にしておく。それぞれにVEXのrand関数などで値を設定。

 

⑦ ライト・カメラ・レンダリングの設定を行い、ビュー上でKarma XPUでインタラクティブレンダリングを行うと、インスタンスごとにファーの色調の変化が確認できる。

<補足:Karma Hairのメラニン設定とその結果>

エルの寝相

冬は床暖房のみで過ごしているが
エルはこの寝相で床に寝ていることが多い。
この姿勢が一番暖かくて気持ちいいんだろうな。