Houdini Engine for Maya : Boolean SOP


今回はSideFX社で働いていた Andrew Wong 氏にHoudini Engine for Maya の記事を書いて頂きました!簡単なブーリアンHDAの作り方、MayaでのHDAの使い方を説明します。

 

今回のサンプルファイルです。MayaシーンファイルとHDAが入っています。
boolean.zip

 

 

Houdini Engine について

Houdini Engineの目的はHoudiniの様々な機能を他のDCCツールに持って行くことです。これは Houdini Digital Assets (HDA) によって可能です。HDAはHoudini内で再利用できるツールを作るもので、Houdini Engineが出て来るよりも前からずっと使われています。基本的にHDAはノード群で作られたネットワークで、特定の処理を行います。なのでHDAはHoudiniの機能を他のDCCツールに持っていくベストな方法と言えます。この記事はHoudini Engine for Maya プラグインにフォーカスし、Houdini Engineの様々なテクニカルな部分について触れていきます。

Houdiniはアーティストが素早く変更やイテレーションをすることができる強力なプロシージャルアーキテクチャーを持っています。Houdini Engine 登場以前では、もし他のスタジオがこのプロシージャルアーキテクチャーを利用したい場合、アーティストはまずOBJ、FBX、Alembicなどのフォーマットを使うしかありませんでした。例えば、MayaアーティストはMayaジオメトリをベイクしてエキスポートします。そしてそれをHoudiniにインポートし、必要な処理を加え、最終的にHoudini ジオメトリを出力し、Mayaにインポートし直すという事になります。

この方法でアーティストはなんとかHoudiniの機能を使うことは出来ますが、プロシージャルなワークフローではないので非常に効率が悪いです。Houdini Engine を使うことでアーティストはより簡単に、インタラクティブにHoudiniの機能を使うことが出来ます。さらに重要なのはMayaアーティストがHoudiniのプロシージャルワークフローをMaya内部で完全に行えるということです!

Houdiniは強力なブーリアンツールを備えています。このチュートリアルではHoudiniのブーリアン機能を使う簡単なHDAの作り方を紹介し、Mayaでどのように使うのかを紹介します。このアセットは2つのジオメトリのブーリアン結果を出力します。Houdini Engine for Mayaは Object と SOP のアセットの2種類のHDAをサポートします。ブーリアンツールは簡単なジオメトリ処理なのでSOPアセットとして作ります。Objectアセットはツールが複数のオブジェクトを扱ったり、Wroldトランスフォームを出力する様なシチュエーションに使われます。

 

Houdini で HDA を作る

Houdiniの新規ファイルから始めます。SOPアセットを作るのでダミーのGeometry OBJノードを作り、その中でSOPアセットを作っていきます。

 

Geometry OBJの中へ入り、中にあるFile SOPを削除し、Subnet SOPを作ります。このSubnet SOPがSOPアセットになるわけです。

 

Subnet SOPの中へ入り、Boolean SOPを作ります。そして既にある2つのインプットを繋ぎます。このインプットはHoudini EngineによりMayaのジオメトリをインプットするのに使われます。ここで注意しなければならないのが青いディスプレイフラッグはアセットの出力を示し、Houdini Engineはこのフラッグを元にジオメトリをMayaへ戻します。なのでネットワークのアウトプットの部分にディスプレイフラッグを指定することは非常に重要です。

 

上の階層に戻り、Subnet SOPを右クリックし「Create Digital Asset…」を選びます。これでSubnet SOP内部のノードを使ったアセットが作られます。

 

名前とアセットの保存先を指定します。

 

「Accept」を押すと、アセットの様々なプロパティを見ることが出来るダイアログが表示されます。Basicタブの中で「Minimum Inputs」 と 「Maximum Inputs」が2になっていますが、これはSubnet SOP内で2つのインプットを使ったためです。

 

「Parameters」タブでBoolean SOPから「Operation」パラメーターをアセットレベルへ露出させます。露出されたパラメーターはHoudini Engineを通して利用可能なので、Mayaアーティストはアセットに関連の有る部分をコントロールすることができます。

 

「Input/Output」タブでインプットのラベルの名前を変更します。この名前はMaya上に表示されます。「Accept」を押すとアセットが保存され、Mayaに読み込むことが出来ます。

 

 

 

Maya での HDA の使い方

Mayaの新規シーンでプラグインマネージャーからHoudini Engine プラグインをロードします。そしてスフィアとトーラスを作ります。

 

「Houdini Engine」メニューからアセットを読み込みます。このアセットはインプットにジオメトリを入れるまでは何も出力しないので、ビューポートでアセット自体を確認することは出来ませんが、アウトライナーでアセットを確認することが出来ます。

 

アセットを選択すると、アトリビュートエディター内でアトリビュートが表示されます。アセット内で繋いだ2つのインプットはここの「Inputs」タブ内にあります。露出した「Operation」パラメーターもここに表示されます。

 

 

アセットにジオメトリを繋ぐには、アトリビュートエディタを使用します。最初にアウトライナーからスフィアを選択し、次にアセットを選択します。そして、「Set to Selection」を押して選択したジオメトリをアセットに繋げます。

 

トーラスも同様に二つ目のインプットに繋ぎます。

 

今、このアセットは2つのジオメトリの交差した部分を出力しています。インプットとアウトプットのジオメトリが見やすいようにアセットを移動します。

 

もしインプットジオメトリを移動したりプロパティを変更したりすると、アウトプットジオメトリも直ぐにアップデートされるのが分かります。

 

露出した「Operation」パラメーターもアトリビュートエディターで確認できます。ここを他の値に変えても直ちに変更が適用されます。

 

終わりに

このアセットは非常にシンプルですが、Houdini Engine for Mayaアーキテクチャの中心となる部分とアセット作成、利用のワークフローを見せることが出来たと思います。Houdini Engineを使用する上で重要なのが、Houdini Engineはアセットのインプットのジオメトリタイプ、パラメーター、そしてアウトプットのジオメトリタイプだけに関心があり、アセットの中身には関心はありません。なのでアセットは好きなだけ複雑にする事ができます。サポートされているインプットとアウトプットのジオメトリタイプとパラメータータイプの詳細な説明はHoudini Engineのヘルプに載っています。