小さい頃はずっと膝の上で抱っこしていても平気だったが、
大人になったエルは膝の上にいる時間は最大で10分程度になった。
それ以上は我慢できないらしい。
膝の上にいる間にいつもブラッシングを行う。
ノルウェージャンは毛がモフモフなので冬場は暖かそう。
以前Houdiniで作成したFurのグルーミングを修正した。
さらに今回はテクスチャーからファーの色をコントロールしてみた。
動物系のファーはどのくらいの太さパラメーターが適切なのか今回も試行錯誤。
レンダリングはMantra。
作業途中ではPaintノードを多用したが、Houdini18.5では隠しノードになっており
[TAB]キーからは作れないため、その対処法を書いておく。
1 メニューから[Windows] -> [HScript Textport]を選択しターミナルを表示
2「cd 現在作業しているパス」と書いて[Enter]を押す
3「opadd -e paint」と書いて[Enter]を押す
[参照元]
https://forums.odforce.net/topic/30008-accessing-old-polyextrude-sop-in-h16/
Houdini FLIPのテスト。
岩に凹みをつけて、岩が浮き上がった際に水が凹みに溜まるようにしてみた。
レンダリングはRenderMan。
最新のRenderMan23.5では途中でレンダリングが止まってしまうため
Houdini 18.0.532上でRenderMan23.4を使用した。
Houdini FLIP test from Shuichi Sakuma on Vimeo.
Houdini 18.5上で色付きの砂のシミュレーションを行ってみた。
モデルはmixamo.comのものを使用。
Houdini Colored Sand test01 from Shuichi Sakuma on Vimeo.
Houdini Colored Sand test02 from Shuichi Sakuma on Vimeo.
今回は、VDBを使ってキャラクター内部のパーティクルにまで
テクスチャーの色が遷移するよう設定してみた。
Houdini 18.5のKineFXを使って蜘蛛のアニメーションを作ってみた。
今回、蜘蛛の脚の動きにはサイクロイド曲線を使用し
Rig Attribute Wrangleノード内のVEXで制御した。
(サイクロイドとは円が回転するときの円上の点が描く軌跡のこと)
蜘蛛のジョイント階層のルートジョイントの毎フレームの移動量から
サイクロイド曲線上の各脚先の動きを割り出している。
【テスト1】
蜘蛛を動かしながら衝突判定を行った。
蜘蛛の脚先からintersect関数を使って特定方向にレイを打ち、衝突検知を行っている。
衝突した際の姿勢の制御もVEXで行った。
【テスト2】
壁を上るテスト。
平地からのスムーズなトランジションを実現。
以下、サイクロイド曲線を可視化したもの
今回感じたKineFXの強み
・ローカル座標系<–>ワールド座標系の使い分けが簡単にできる
・フルボディIKをプロシージャルに使用できる
・モーションのブレンドをプロシージャルに行える
・どこでどのようなモーション編集を行っているかが一目でわかる
・必要なタイミングでFK・IKを組み込める
・CHOPを簡単に組み込める(蜘蛛の頭の振動を抑えるためにFilter CHOPを使用)
Houdini18.5 のKineFXを使って、以前Houdiniでモデリングしたロボットを
動かしてみた。
モーションはmixamo.comからダウンロードしたもの。
ロボットの体型に合わせてモーションの調整を行い、
Vellumで腕のインナーチューブのシミュレーションを行った。
足の接地にはStabilizeJointノード、関節の曲がり角度制限にはFullBodyIKConfFgureJointsノード、重心制御にはIKChainノード、腕のモーション修正にはRigPoseノードを使用した。
今回mixamoのジョイント階層とロボットの階層構造がかなり異なるため、
モーションを移し替えた際にロボットの膝の振動が発生してしまった。
そのためにRigAttributeWrangleでIKのTwist位置を調整するVEXを書いた。
さらにAttachControlGeometryノードを使用し、Vellumシミュレーションのベースとなる
チューブの初期位置を確定した。
KineFXを触ってみた所感だが、SOP内で階層構造を扱うための行列計算が格段にやり易くなった。
数年前に書籍「Houdini SOP&VEX編」を書いているときは、SOP内で階層構造を実現するための
行列計算が大変だった記憶がある。
また、KineFXとVellumの親和性はかなり高そうだ。
そういえば、SideFXのHouidni18.5のデモ動画にも
このタイプのロボットが出ていたな~。流行ってるのかな?
今回RenderManのボリュームシェーダと屈折系シェーダのテストを行うために
以下のような海中を泳ぐクラゲのシーンを作成した。
海の中を表現するために大きなコンテナに対してボリュームシェーダを設定。
その上部にエリアライトを置き、ライトとコンテナの間にライトをブロックするための
複数のグリッドを配置した。それをVEXで小刻みに動かして水中に差し込む光を表現した。
Houdini Jellyfish test from Shuichi Sakuma on Vimeo.
クラゲの頭の動きはH18から新しくなったBendノードとsin関数を組み合わせて制御。
クラゲの触手はVellumを使って動かした。
シーンに大量の屈折体やボリュームシェーダが割り当てられたスケールの大きいオブジェクトが
ある場合でも、RenderManは極端にレンダリングスピードが落ちることがない。
このあたりが標準レンダラーのmantraとは違う点。
今回少しだけRenderManカスタムシェーダを書いたが、SeExprは必要な関数が
一通り揃ってるため使いやすかった。
(以前ブログにも書いたがSeExprはWalt Disney Animation Studiosが策定した
エクスプレッション言語)
http://wdas.github.io/SeExpr/doxygen/userdoc.html
シェーダ内でSeExpr関数を使う際には以下の本が役に立った。
REYESが終わってもこの本はまだまだ活躍できる。