2014年12月10日水曜日

Houdini Learning(基本編2)

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

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

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

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

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

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

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

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

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

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

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

Foot Prints(足跡を作るチュートリアル)
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は多くありますが、すべて覚える必要ないですし個々のノードはシンプルなので
必要時に調べれば十分だと思います。

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

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

2014年12月6日土曜日

Houdini Learning(基本編1)

Houdini 14 のスニークピークが発表されましたね。見ていない方はこちら→https://vimeo.com/113441818
素晴らしい内容でした。ウィークポイントであったSoft body周りがPosition Base Dynamicsで
一挙に解決されそうです。ゲーム系で多く使われている様なのでパフォーマンスも期待できますね。
こんなにバージョンアップ毎に盛り上がれるソフトは他にないです。
これからも楽しみです。

さて、バージョンアップもありさらに注目を浴びているHoudiniですが
その独特な操作性もあるせいか、様々なチュートリアルがここ数年で沢山みれる様になりました
ここまで学習リソースがネットに揃っているソフトも珍しいと思います。
それだけ最初に苦労するソフトということかもしれませんが、、
twitterでPQ先生のvimeoのチャンネルがおすすめとも書きましたが、他にもチュートリアルが多く
まずどれから見たら良いのか分からないのではと思い、まとめてみました。
他のソフトから移行しようとしている人におすすめです。

Introduction(導入)
UIの概要(03:15〜)ノードベースワークフロー(12:50〜)3Dビューでの操作(22:25〜)
プロシージャルの基本が分かります。

SOP解説+基本操作
よく使うSopの解説をしてくれていて、これを見ればHoudiniがどういうソフトか分かると思います。
Houdiniの根幹point sopの解説。33:00~
今はpoint sopはあまり使わず代わりにvop sopを多く使いますが先にpoint sopを理解すると
後が楽です。point sopにしか無い機能もあります。

そもそもSOPとは。tai先生の「SOP入門前夜」がとても役立ちます。

Attributeを学ぶ前に、基本の以下の変数の意味を知っておくと後が楽です。

$F 現在のフレームナンバー
$T 現在の時間(秒)
$PT ポイント番号
$PR ポリゴン番号

AttributeとGroupの基本。

Orienting Objects To A Curve(NormalとUp vectorの基本)
ポイント毎、パーティクル毎にシェイプの向きをコントロールするのに必須です。

Attribute Transfer (地面のパーティクルが触れた部分にパーティクルカラーを移すチュートリアル)
Attribute Transfer別ジオメトリからアトリビュートを渡すSopです。
このバージョンのPOP Networkは、H13以降はPOP Network-Oldという名前になっています。
古いPOPですが、Attribute Transferを学ぶには問題ないです。

Copy Stamp Basic
Houdini独特の機能Copy stamp基本です。ポイント毎、パーティクル毎にシェイプの形状を操作するのに必須です。

以上は基本の内容とHoudiniならではの機能で導入で押さえておきたい所だと思いピックアップしています。
今回紹介したのは、これでハイクオリティなエフェクトが作れる!といったチュートリアルでは無いですが、
実際のところハイクオリティな物は基本の集合体である事がほとんどですし、ここを押さえおくと
応用範囲が広がります。

次回はもう少し実践的なチュートリアルやFor Each,Vop,Solver SOP等を紹介できたらと思います。
ではでは。