HQueueのHoudini17.0からの変更点について


以前のWhat’s Newの記事でもちらっと触れましたが、Houdini17.0より、HQueueが大きくアップグレードされました。

今回はその中でも特に大きな変更点となる、IFD作成のジョブに対する変更について、紹介していきます。

作業を始める前にHoudiniのバージョンについてですが、
2018年12月現在のHoudiniのProduction Build:Houdini17.0.352及び416において、
HQueue関連のHoudini、およびMantraおける一部不具合が報告されています。
Houdini17.0でHQueueを利用する場合は、Houdiniのバージョン及びHQueueのバージョンは17.0.424以降を利用してください。

まず、これまでのHoudiniでは生成された中間ファイルを使用したMantraにおける分散レンダリングは可能でしたが、中間ファイルとなるIFDファイルの複数マシンでの分散生成は不可能でした。
これまでのHQueueでの分散レンダリングの流れは、1台のマシンで、Houdiniを用いてIFDファイルを生成後、IFDファイルから複数のMantraを利用してレンダリングを行う、というものでした。

これがHoudini17.0からは複数のマシンを用いて、IFDファイルの生成を分散させることかできるようになりました。
それに伴い、IFDに関する部分の設定が少し従来のものと変更されております。

これがHoudini17.0におけるHQueueRenderノードのパラメータとなります。

既にHoudini16.5のHQueueを触られている方であれば、ほとんど16.5のものと同じであることが、すぐにわかると思います。
追加された項目は赤枠で示された部分になります。ここがHoudini17.0で追加された、IFDファイルの分散生成に関する設定項目となります。

MantraOption->Assign IFD Job ToをListed Clientsにして分散処理したいクライアントを選択、
あるいはClients from Listed Groupsにしてクライアントグループを選択し、
MantraOption->Distribute IFD Generationにチェックを入れることでIFDの分散生成が可能となります。
また、GanerateIFDsにチェックを入れ、IFDファイルの生成をジョブとして送信する必要があります。(デフォルトではチェックは入っています)

これで実際にジョブを投げると、HQueue上での表示は以下のようになります。

このジョブでは、IFDの分散生成を行った後に分散レンダリングを行っております。
まず一目見て、分散処理を行っていない際はGenerate IFDsだった部分が、Prepare IFDs and Render Jobsになっていることがわかります。これは”Prepare”(前処理)を行うジョブでして、分散する際の振り分けを行うようなものとなっております。
実際のIFD生成のジョブは各フレームのレンダリング子ジョブとして与えられています。

以上がHoudini17.0から追加された機能である、HQueueにおけるIFDの分散生成の概要説明になります。
また、このIFDファイルの分散処理には分散するクライアントの数だけのHoudiniライセンスが必要です。
IFDファイルの分散生成に利用できるライセンスは、Houdini-Engine、Houdini-FX、Houdini-Coreとなります。

これまではMantraライセンスを用いて、IFDファイルからのレンダリング処理は複数のマシンで分割することができましたが、
IFDファイルの生成の部分が分散できないので、ボトルネックになりがちだった部分が解決することになりました。
しかし、分散生成を行うクライアントの数だけHoudini-Engineのライセンスが必要になるという点だけご留意いただければと思います。

 

 

 

 


補足:報告された不具合について

1.バックスラッシュを認識しない不具合:

*Houdini17.0.376で修正
これはHoudini17.0に限らず、従来のHoudiniからも知られている不具合ですが、Houdiniはこれまで、ファイルパスに使われるバックスラッシュを認識できませんでした。
参考:パス内のフォワードスラッシュとバックスラッシュについて

バックスラッシュとは、日本語環境下ですと、円マークとして表示される \ 記号になります。
例えば以下のようにファイルパスをバックスラッシュで記述すると、従来のHoudiniでは一部の入力欄において、認識することが出来ない。という不具合がありました。 
バックスラッシュ表記-> C:\Program Files\Side Effects Software\Houdini 17.0.388

以前の対策としては、以下のようにフォワードスラッシュで記述する、ということを当ブログでもお伝えしておりました。
フォワードスラッシュ表記-> C:/Program Files/Side Effects Software/Houdini 17.0.388

しかし、Houdini17.0以降、HQueueでジョブを送信する際に、フォワードスラッシュをバックスラッシュに自動で置換するようなシステムが組み込まれたようで、
認識できないバックスラッシュを自動で生み出してしまうようになっておりました。
これによってGenerate IFDsにチェックを入れた状態ではIFDファイル生成後のレンダリングにおいて、IFDファイルを見つけられないという不具合が発生しておりました。

Houdini17.0.376において、バックスラッシュを認識できるような修正が適用されております。
なお、安全のため、弊社としては現在もフォワードスラッシュの使用を推奨しております。

 

2.ローカル上に設定したIFDファイルを見つけられない不具合:

*Houdini17.0.397で修正
Windows端末を利用しているときに限定して発生していた不具合です。
Generate IFDsのパス設定を任意のローカルフォルダに指定している場合に、MantraがIFDファイルを見つけられない、という不具合が発生しておりました。
こちらはHQueue起因ではなくMantraにずっと潜在していた問題が原因だったようです。

Houdini17.0.397において、Mantra、HQueue両面から修正が適用されております。

 

3.Assign IFD Job Toで設定したリストがIFD分散生成に反映されない不具合:

*Houdini17.0.424で修正
本来IFD分散生成はMantraOptionタブのAssign IFD Job Toで設定したクライアントから行われます。
しかし、これがレンダリングのクライアントを指定するはずのAdvancedタブのAssign Toより行われていました。
Assign IFD Job ToのリストのクライアントはIFD生成のための前処理だけに割り当てられておりました。
IFDの分散生成がレンダリングリストにあるクライアントしか設定ができなくなっており、IFD分散生成の強みが弱まってしまう不具合でした。

Houdini17.0.424において修正が適用されております。