<2>トラスタ流Houdiniテクニカル事例
後半は、デジタルアーティストであると同時にテクニカル・ディレクターとしても活躍する平井豊和氏より、Houdiniを使った技術的な事例紹介となった。
基本スタンスとして、ここで紹介した内容が必ずしもHoudiniで必須なわけではなく、『難しいと思わないでほしい』、『わからないとHoudiniができないというわけではない』と念を押し気味に語る平井氏が最初に紹介したのは「TS M2H Converter」だ。その名の通りMayaからHoudiniへのデータを橋渡しするツールである。(なお接頭辞のTSはTransistor Studioの略)アニメーションデータ、Alembic形式のジオメトリデータをやりとりするのに用いる。
MayaからHoudiniを起ち上げ、バックグラウンドで処理してもらう「TS M2H Converter」
「他のアプリケーションではツール化しないとできないことも、ノードの組み合わせ次第で標準機能でできてしまうのがHoudiniの強みですが、アプリケーション間のデータのやり取りは、ツール化した方が利便性が高まります」。
このツールでは、「Mayaからhipファイルを操作する」というのがひとつのテーマとなっているのだが、下記のような手順で実現されている。
STEP 1.Mayaから設定等に合わせた内容のPythonスクリプトを書き出す
STEP 2.MayaからHoudiniのPython環境をコール
STEP 3.Houdiniは先ほど出力されたPythonスクリプトを実行
......このように裏でHoudiniを動かすことで、作業中それと意識せずMayaからhipファイルを編集することができるようになっている。
MayaからPythonスクリプトを書き出してHoudiniを起動し、書き出したPythonスクリプトに従ってhipを編集させるというもの。「Houdiniを使っているとどんどん別の3DCGツールを遠ざけたくなってくるんですよね(笑)」と嬉しそうに語る平井氏の姿が印象的であった
続いて紹介されたのは「TS Maya Camera」。Mayaシーン内のカメラの動き・設定をHoudiniに引き継ぐためのツールだ。MayaとHoudiniではカメラオブジェクトの持っているパラメータが異なっており、トランジスタ・スタジオではHoudini側がMayaにパラメータ名を合わせる方向で対応。フィルムゲートのHolizontal /Vertical判断等の処理の後、clipファイルを出力する仕組みだ。
Mayaのカメラオブジェクトに準拠したパラメータ名でカメラを読み込む「TS Maya Camera」
「TS Maya Particle」は、その名の通りMayaのパーティクルをHoudini側で読み書きできるようにしたもの。パーティクル・ディスク・キャッシュ(PDC)ファイルのドキュメントから仕様を確認し、Mayaパーティクルのインポート・エクスポートができるカスタムノードを作成した。
「HoudiniからMayaにパーティクルを出力するというケースはなかなかないのですが、とは言え、それが可能であれば意外と便利です。ただ、nParticleには対応していないので、必要になったらそれに併せて更新しないといけません(笑)」。
このほか、Deadlineへレンダリングジョブを投げる「TS Deadline」も紹介された。サブミット時に外部のPythonを呼び出し、「IFDファイル出力後にMantraを走らせる」、「レンダリング後にIFDを削除」というフローを自動化している(IFDは、Mantraでのレンダリング時に用いられるシーン記述フォーマット)。
(上)「TS Maya Particle」/(下)「TS Deadline」
最後に紹介されたのはVOP、Wrangleノードによる事例。VOPは、Houdini内に備わったプログラミング言語のVEXをノードツリーで表現・計算するというもの、Wrangleはそれをノード内にエクスプレッションとして直接記述できるというものだ。
「Wrangleノードへは様々な処理を書くことができますが、たいてい2~3行、長くても10行程度で済みます。今回は、意地になって"狙いの処理をひとつのWrangleノード内に記述する"という試みに挑戦してみました」。
VOPネットワークと、エクスプレッションを記述したWrangleノードの例。どちらも同じ内容を表現している。「ノードツリーではある程度複雑な処理になるとすぐ煩雑になってしまいますが、コードでならすっきり記述できるというケースは非常に多いです」(平井氏)
取り組んだのは樹木状の形状で、ランダムに無数の形状バリエーションを得られるほか、他オブジェクトを避けるように成長させるなどの機能も持たせている。Wrangleの主目的が「アトリビュートの編集」であるため、編集の対象となるプリミティブを最低でもひとつは用意する必要があったが、それ以外の内容は全てWrangleノード内で完結、実質1ノードのみで構成されている。
「オブジェクトを避ける処理は、SDF(Signed Distance Field)を用いて距離を計算しています。似たような処理はRay SOPでも行えますが、そちらの方がコスト高になってしまうでしょう。このほか、接触したオブジェクトの最も近いポイントの色を取得して、枝の接触部分の色を変更する仕組みも付けてみました」。
2ノード(実質は1ノード)で作成された樹木風の形状。1つのWrangleノード内に書き込まれたエクスプレッションのみで実現されている。
このように、ついついエフェクトに強いという印象が先行してしまうHoudiniの様々な側面が改めて確認できる講演となった。シーン内(およびツール内外)の様々なデータへ柔軟にアクセスできるために、結果的に、シミュレーションを始めとするエフェクトにも強いというのがHoudiniの真骨頂と言えるだろう。特に、「Houdiniにとってはモデリングもエフェクトも同じこと」という平井氏の言葉に背中を押されるユーザーも多いのではないか。
国内でも導入例が増え続けているHoudiniだが、その際には、今回紹介されたようなパイプラインツールとしての強さがポイントのひとつとなるだろう。長年のHoudiniノウハウを持つトランジスタ・スタジオがそうした側面の啓蒙に積極的なのは頼もしい限りだ。エフェクト以外の魅力も多いHoudiniに興味を持たれた方はぜひ触れてみていただきたい。
-
CGWORLD 2015 クリエイティブカンファレンス
参加費:無料 ※事前登録制
開催日:2015年11月22日(日)
場所:文京学院大学 本郷キャンパス(東京都文京区向丘1-19-1)
主催:ボーンデジタル、文京学院大学 コンテンツ多言語知財化センター 協力:文京学院大学、ASIAGRAPH CGアートギャラリー
cgworld.jp/special/cgwcc2015