<

Houdini初学の為に簡単に行きたいと思います+簡易ROCKgenerator

他に色々書いている人も居るしレベル上げって余り趣旨としても良くないので、自分は極限までレベル下げていきたいと思います。

 

どちらかと言うと間口広げたいと思うので。

できるだけ簡単に…長くなるのも面倒くさいし読みたくないだろうし。

 

 

その前に多分Houdiniが元々持っている方向性と言うかなんというか

SOPモデリングに関してはですが・・・

古いDCCの考えて的には「シーン」が有ってその「オブジェクトが置かれている」と言う形がHoudiniの基本形の形だと思うとシンプルかな?と思います。

SOP=オブジェクト=ジオメトリオペレーションと言う所でしょうか。

 

オブジェクト1つ1つがそれぞれ座標を自前で持っている訳です。

Houdiniにとっては「座標=数値」で「数値」と言うのは基本で「数値=変化する使える数字」でどの数字でもそれは大概「参照して」割り当てる事が出来る訳です。

 

これは通常アニメーションに使われる「スライダーのカウントすら単なる数値」なので

当然「スフィアの頂点数=スライダーのカウント」にするだけで「スフィアの頂点数が動的に変化する」という事なのです。

 

sopの一杯有るノードとかvexとかvopとか

 VEXが避けて通れないとのもっぱら噂のHoudiniですが…実際そうです。

理由と言うか何故と言う根源に触れた方が良いかと思います。

 

VEX=コードベース

VOP=コードベースをノード化した物

VEX=VEXで書かれた物もVOPノードも基本的に同じ

(完全に断言出来ませんが多分そうですし公式的にもそうのはずです。)

VEXの大本はシェーダー言語らしいので限定的に使いやすくしたカスタムCでPIXARのShaderMANとの絡みが昔から有るようなので同じような物が多く有るらしいです。

 

処理の流れとしてはHoudini < C++ = VEX < VOP <<<<SOP

VOPが処理される時にVEXに自動変換されるので速度的にはVEXと同等だと言う扱い

SOPに関しては速度が劣るけど定型化されているのでつなげるだけで処理が完結すると言う点がVEX/VOPより有利な点ですね。

SOPcompileで処理速度が稼げるとか改善はされていくはず…です。

 

7割はsopでアクセス出来るけど3割は苦手とかアクセス出来ないのでvexがいるような感じでしょうかね。 

 

ではどれを使ったら良いのか?

 「向いているの使えば良いだけ」と言うことみたいです。

sopでも大量に有るノードはベースが有って亜種なだけだったりするので

よく使うから面倒くさいので亜種が有るので大量に有ると言うだけで大本が有るものが多いです。

分かりやすい物だとattributeWrangle系でしょうか。

pointとかは基本同種でポイントにアクセスしやすいだけのノードで基本的に同じ。

旧GameDev系(lab)ノード等も何らかの組合わせから出来たパッキングノードで個別に全てがオリジナルのノードでは無いと言うことですね。

 

デジタルアセット

「知らないと便利なもの」って感じになりますが要は「パッキングノード」でパラメータを出し物です。

つまりなんですがもっと自分でノードを増やせます^^;;

増やせると言うのはアレですが正規の方法だとimportやExportだとか定形な作業で取り込み時とか特定の作業とかで必要な作業を出来るカスタムノードとかも自分で作れちゃうわけです。

 

ROCKジェネレター

 デジタルアセットの基本中の基本のトレーニングでオススメと言えば「岩」

多分敷居が物凄く低いし

幾らでも複雑に出来るのでレベルに応じてたまに作ると面白いかと思います。

どうぞって言うのもアレなので極力簡単で本当に入門なロックジェネレータを作ってみたいと思います。

「ロックの自動生成とリメッシュとUV自動生成」全てを行ってみたいと思います。

f:id:ARTSAK666:20191221043536p:plain

 

 

順番に説明して行きます。

f:id:ARTSAK666:20191221062453p:plain

ロックを形成する要素の一つで

f:id:ARTSAK666:20191221063438p:plain

 

f:id:ARTSAK666:20191221070322p:plain

このノードタイプだとキモになる部分でポイントジェネレーター部分です。

何を使ってもvexでポイント出しても問題無いのですがボックス等primitiveはpoint等持っているのでコレを使って「pointgenerator」でpointに変換します。

「pointjitter」でpointの座標を動かします。

f:id:ARTSAK666:20191221085039p:plain
ジッターで動かした部分にスフィアで変型した物がコピースタンプで置かれます

このままだといわゆる「ぶっ刺し」

f:id:ARTSAK666:20191221063721p:plain

 この後、「vdbfrompolygon」でvdb変換でボクセル変換します。

コンバートを使いポリゴンに変換します。

 

f:id:ARTSAK666:20191221064343p:plain

インスタントメッシュでリメッシュしますがlabのQuadリメッシャーを使っても良いです。

後はautouvで自動的にuvが開かれます。

quadリメッシャー使ってない理由は単に速度が遅いからですね。

Houdini内で完結するならば細かい事やExport特にバージョンもグレード関係なく比較的リアルタイムに動くのでお試しどうぞ。

 

f:id:ARTSAK666:20191221043811p:plain
f:id:ARTSAK666:20191221061847p:plain

 

総括として一番大事な部分としては「POINT」部分でPOINTのばら撒きでしょうかね。

Houdiniではpointを目印にrockを置いているだけで制御はpointのジッター側にあるのですがこの手の方法はHoudiniでは多い基本だと言うことです。

で…制限なくpoint動かすとか条件付け強くするとVEXが出てくると言うことですね。

 

通常はノードパラメータを「nullでパラメータを」ってヤツを使うのですが

(ここでは言及しないですですがHDA作成では必ず使うので自然と遭遇するでしょう)

TIPSとして追加するのはHoudiniのパラメーターはビューポートにもドラッグ出来るので一次的な小さい事なら代用も出来ます。

やり方は簡単でパラメータのラベル部分をビューポートにドラッグ。

f:id:ARTSAK666:20191222041307p:plain

f:id:ARTSAK666:20191222041340p:plain

f:id:ARTSAK666:20191222041448p:plain

グレーアウトしていたらビューポートをクリックしてエンターでアクティブになるので

こちらからもパラメータを操作出来ると言うことです。

 

ちなみにどのグレードのHoudiniでもuv付きOBJは吐き出せるはずです。

(FBXノードは駄目ですね。indeiユーザーなので下位にあたる物全てがokかどうかは保証し難いですが多分大丈夫だったはずです)

やり方はノードを選択して右クリック→SAVE→Geometry

これでその時点のGeometryが保存されます。

f:id:ARTSAK666:20191222042549p:plain

現時点なのでハイメッシュ/ローメッシュもセーブ出来ますね。

 

危険な甘い謳い文句

優秀か超優秀だと別ですが思った都合の良い結果を取得を一発で生成出来ないのでノード組んで都合よくコストダウンってまずあり得ないので、DCCで出ているそれらしいプラグインがあるなら買って作るほうが手っ取り早くローコストだと思います。

後シュミレーションに対して「正確」って変な信仰が有るので言っておくと

「正確」=低速

「再現性の高さ」=単純性

なので「Houdiniは別に正確なシュミレーションを行う物ではないです」

正確じゃないってのは語弊が有るけど不必要な正確さはそこまで必要無いので見た目に必要な正確性を担保して速度を稼いでいるので物理上正しいとかとはちょっと違ってシュミレーションと言うよりアーティスト思考なCGツールだと思います。

 

まぁそれの何が甘い罠かと言うと定例の話で「正確」「完璧」ってパターンで挑むと出来るまでに時間が掛かるとか作られたものが柔軟性低いので結果としてコストが高く付くってパターンが定番なので…

「成果は小さく」「イテレーション(試行数)は多く」「お気楽に」がオススメです。

 

以上。

ノードの詳細の詳細作り方機能まで触れてないですがSOPの触りにはこれぐらい簡単にしたアドカレ一つ位有っても良いだろうと言うことで書いておきます。

本当はVOP=VEX=SOPで書き直す記事上げるつもりだったんですけど

間口広げた方が良いと思うのでレベルを限界まで下げて作成しましたw

 

とりあえずチュート等成果の見やすい物をなぞると良いんですが再現するより意味を知って構成していく事をおすすめします。