通常の使用では、Husk自体はHoudiniライセンスの有無を確認するのみで、ライセンスのチェックアウト(消費)は行いません。この時、クライアントマシンにはKarmaライセンスが確認できれば、Houdini本体のライセンスがなくてもHuskは実行可能です。
Karmaデリゲート(Karma CPU、Karma XPU)を使用してHuskでレンダリングを行う場合、Karmaライセンスがチェックアウトされます。
HuskがPythonスクリプト(またはhython)を呼び出す場合、スクリプトが実行されている間、Engineライセンスがチェックアウトされます。
Engineライセンスが利用できない場合は、CoreまたはFXライセンスがチェックアウトされます。
Huskには、Pythonコールバックを呼び出すために指定できる方法がいくつかあります。
プレレンダリング、ポストレンダリングスクリプト(
--prerender-script、--preframe-scriptなど)プロシージャルの評価
プログレス(進捗)コールバックスクリプト(
UsdRenderers.json内で指定)など
スクリプトがHoudiniライブラリを呼び出す際に、Engineライセンスがチェックアウトされます。スクリプトがHoudiniライブラリを一切呼び出さない場合、Engineライセンスはチェックアウトされません。
たとえば:
print("Hello world")
は、Engineライセンスをチェックアウトしません。しかし、以下の場合はEngineライセンスがチェックアウトされます:
Python
import hou
lop = hou.node('/stage').createNode('sublayer')
1つ例外となるのは、プロシージャル用のPythonスクリプトを呼び出す場合です。
--allowed-procedurals 引数を使用することで、プロシージャルを呼び出す際のライセンス要件を緩和するようhuskに指示することができます。
basic - Houdini標準のプロシージャルはライセンスを必要としません。それ以外のプロシージャルは、Houdiniライブラリを呼び出す場合にライセンスが必要となります。カスタムプロシージャルであっても、Houdiniライブラリを呼び出さなければライセンスは不要です。
all - Houdini標準のプロシージャルであっても、Houdiniライブラリを使用しないスクリプトであっても、プロシージャルは常にEngineライセンスをチェックアウトします。
none -
noneを指定すると、huskはプロシージャル用のPythonコードを一切呼び出さなくなります。そのため、プロシージャルに起因するライセンスチェックは発生しなくなります。これによってEngineライセンスがチェックアウトされることになります(※注:原文の最後の文「This will check out an engine license.」は直前の文脈とやや矛盾していますが、原文の通りに翻訳しています)。
Houdini標準プロシージャル(代表例)の公式ドキュメント
Houdini Procedural: Ocean(海面) レンダリング時にディスプレイスメントや泡(フォーム)などの高解像度な海面ジオメトリを動的に生成します。 日本語ドキュメント
Houdini Procedural: Hair(髪・毛) ガイドカーブを元に、レンダリング時に大量の髪の毛やファーのカーブを生成・補間・変形させます。 日本語ドキュメント
Houdini Procedural: Crowd(群衆) カメラからの距離に応じたLOD(Level of Detail)の最適化や、背景キャラクターのインスタンス展開をレンダリング時に行い、メモリを節約します。 日本語ドキュメント
Houdini Procedural: RBD(剛体・破壊) 大量の破片(フラクチャ)ジオメトリやトランスフォーム情報をレンダリング時に効率的に処理し、USDのファイルサイズやメモリ消費を抑えます。 日本語ドキュメント
basic モードでライセンスが不要になる条件の例:
変更が加えられていない標準の
runprocedurals.pyやinvokegraph.pyを使用していることSideFXが提供し、デジタル署名されているプロシージャルであること(例: Hair、Ocean、RBD Destructionなど)
カスタムのSOPグラフであっても、カーブ(Curves)やポイント(Points)のみを生成・変更するものであれば免除(※メッシュを出力する場合は要ライセンス)
関連フォーラム・スレッド (英語):