2014年12月10日水曜日

Houdini Learning(基本編2)

さて、前回の続きで知っておくべき機能のチュートリアルの紹介です。

本題に入る前に、個人的に思うHoudini最大のメリットを紹介です。

例えば破壊のシミュレーションのバリエーションを作りたい場合どうするでしょうか?

Houdiniの場合、バリエーションをtakeで管理して一気に全てファームに投げるなんて事も可能です。
さらに、その破片の断面からの煙をsim→レンダリング→コンポまで一つなぎに組む事もできるので
帰りがけに投げて帰れば、翌朝バリエーション違いのコンポ済みの結果を見る事が出来ます。

他のソフトですと、sim後のオブジェクトのインポートや、エミッタ用にアサインするなど、
どうしても手作業またはスクリプトを実行させる作業が生じてしまいますが、
そういった手作業の部分が極力少なくなるのが、一番のメリットだと思っています。
そしてこれがアーティストレベルで実現可能な所が素晴らしいです。
Houdiniを触ってようやくコンピューターで仕事をしているなと思える様になりました。

Houdiniは導入時期が一番大変ですが、ベースが出来あがると色々な組み合わせが可能になり
(SOP POP  DOP SHOP ROP COPすべて繋ぐ事が可能なので)
さらに、基本の組み合わせで高度な事も出来る様になるのも大きなメリットだと思います。

では、チュートリアルの紹介です。

Copy stamp応用編 (それぞれ形状の違うポリゴンに石をピタッと敷き詰める(?) チュートリアル)
上手い説明が思いつきません ^^; が、Houdiniならではの無限に異なる形状を操作できる例だと思います。
https://www.sidefx.com/index.php?option=com_content&task=view&id=1399&Itemid=261
Copy stampを使えば、パーティクルの1粒1粒が全て違う形状なんて事があっさり出来ます。

For Each(グループ毎やアトリビュート毎に異なる操作する際に必須)
Houdiniでは複数のオブジェクトを1つとして扱う為、オブジェクト毎に違う値を使用したい際に必要です。(説明に”オブジェクト”という言葉を使用していますが、Houdiniのobjではなく他のソフトでそう呼ぶ部分に対してオブジェクトという言葉を使っています。)
気をつける点として、For Eachを使用しなくてもアトリビュート毎に操作出来る方法が有る場合はそちらを優先した方が速度が速いです。For Eachは他に方法がない場合の使用をおすすめします。

Flying Letters 
ロゴの破壊・破片のコントロール(For Each, Primitive)

Vop sop基本(スクリプト言語VEXをノードベースのUIで組めるSop)
https://www.sidefx.com/index.php?option=com_content&task=view&id=1744&Itemid=254
https://vimeo.com/67677051
https://vimeo.com/52551778
 (2017/12/13 修正 元ネタが見つからないので似たようなのを貼っておきます。1つ目はVopとVEX(wrangle)を教えています。2つ目はインスタンスも学べます)

他のSopはノード同士のコネクトですが、Vopでは値同士をコネクトでき操作できます。
簡単にいうとジオメトリを数式で変形・編集したい時に使います。
数式なんて面倒くさいと思うなかれ、ノイズの種類も豊富ですし低レベルの数式のノードは
キチンと用意されています。三角関数やランダムまで自分で書く事どはありませんのでご安心を ^^
可能性は本当に無限ですし、式も複雑な事は普段そこまでやりません。メリットは何と言っても速度。
マルチスレッドで高速に動くのでC++で書いたノードより速いなんて事も。
その辺りはtai先生の記事に詳しく書かれています。
アトリビュートを作るなどといった基本的な事もVopやった方が速いです。
Volumeを操作できるVolume vopなどもあり、大げさですがもはやVop無しにはHoudiniは語れないでしょう。
H12.5 からWrangleと呼ばれるコードを直書く出来るノードもあり、
複雑な式を書く時はWrangleの方が良いです。

Foot Prints(足跡を作るチュートリアル)
https://www.sidefx.com/index.php?option=com_content&task=view&id=2159&Itemid=255
https://vimeo.com/40157341 (2017/12/13 修正)
Sop solverというsopを使用し地面の触れた部分凹ませ、その状態を保つやり方です。
基本普通のsopが現在のフレームの値のみの計算に対して(time shiftやchfで別フレームの参照は可能)、Sop solverは過去のフレームを積算したりする事が可能です。Sop solver登場以前はPOPを使用して補っていました。

PQ先生 Solver Sop + Attribute Transfer
Solver SopとAttribute Transferで地面のタイヤの軌跡を作るチュートリアルです。

Music Driven
音楽データでジオメトリを操作するチュートリアルです。

POPs in DOPs(Popの基本)
h13(12.5?)からPopがDopベース(マルチスレッドで高速化)になりました。
たぶんですが再帰の機能などは古いpopにしか無いと思います。要検証。
以前作った樹木システムは(https://vimeo.com/70711934)
旧popでrecursiveを組んで作りました。ベースの部分は全てパーティクルで出来ています。
幸いpopnet-old として残っています。(ちなみにさらに前のPOPも残っている)
時間が見つかったら新popでトライしてみようかと思います。

Bullet (リジッドボディの基本)
POP用のforceも使えて非常に便利になりました。

これまで紹介した機能は、何を作るにしても登場するようなものばかりです。
あとおさえておくべきはPoint cloudくらいでしょうか。(PQ先生のTipsありhttps://vimeo.com/9109254
その他にもSOPは多くありますが、すべて覚える必要ないですし個々のノードはシンプルなので
必要時に調べれば十分だと思います。

この先は自分の作りたいものにあった、チュートリアルを探して見ていくのが効率よいと思います。

これまでの紹介も以前に見た記憶で書いているので、もっと良い物があったら是非教えてくれたら幸いです。

2 件のコメント :

Unknown さんのコメント...

杉ちゃん、全部やってみると心に誓いました。またまた貴重な情報ありがとうございます。あ、自腹でHoudiniFXを会社に導入してしまいました。かなり横暴な感じですが、これでjittoにもHoudiniチームができる感じになります。といっても僕と床井さんしかいませんが・・・

Sugimura さんのコメント...

Yoongさん熱いですね!!自腹でHoudiniFX同鵜入とは!!
しかもユンさん床井さん組んだら最強じゃないですか
羨ましいです!