On this page |
|
Warning
バージョン18.5の HoudiniServer では、接続されているすべてのライセンスサーバーがバージョン 18.0.287 以降である必要があります。
hserver
は、同じコンピュータ上でHoudini,Engine,Mantra,Karma,その他の製品の起動を走らせるサービスです。
これは、sesinetdサーバーのプロキシとして機能し、コンピュータ上で起動されている同一プロダクトの複数コピーがsesintedからそのタイプのライセンスを1本だけチェックアウトされるように保証します。
常にバックグラウンドで実行されるsesinetd
とは違い、Linux/OSXだと最初にHoudiniを起動した時に“必要に応じて”hserver
が実行され、Windowsだとhserver
がサービスとして実行されます。
このhserver
プロセスは、実行された後はバックグラウンドで実行を継続することができます(Houdiniを再起動する時にhserver
を停止して起動する必要がありません)。
異なるバージョンのHoudiniを起動させたいのであれば、どれかのアプリケーションを起動する前に、その起動させたい一番新しいバージョンのHoudiniを使用してhserver
を開始させることを推奨します。
Windowsでは、hserver
が完全にサービスになっているので、手動でhserver
を起動する必要はありません。
Houdiniコマンドライン環境からHoudiniを立ち上げている場合、hserver
はそのコマンドパス上にあります。
新しいコマンドラインオプションを使って手動でhserver
を再起動することができます。
または、hserver
インスタンスが既に実行されている時にhserver
を実行すると、既存のインスタンスと通信されます(以下のコマンドラインからhserverを制御する方法を参照してください)。
New
hserverは新しいコマンドラインと構成ファイルシステムを使用しています。
この新しいコマンドラインでは、(以前のバージョンと同じ)短い文字キーだけでなく、よりわかりやすい英語システム(例えば、–user-group=“Beta”)も使用できるようになりました。
新しい構成ファイルは適切なiniファイルになり、これによりすべて従来の構文が適用されるようになりました。
つまり、どのオプションも必ずname=value
で指定しなければならなくなりました。
一部の古いオプションファイルはこの構文に準拠できていない場合があるので、hserverはそのようなオプションを取得しなくなることに注意してください。
Windows: Houdini19以降のhserverは、Linux/OSXのhserverと同様に非サービスアプリケーションとして実行することができます。 この機能はオプトイン(任意選択)で、サービスがインストールされているかどうか、hserverをサービスとして実行するように設定されているかどうかで判断されます。
-
Houdiniからhserverを再起動させるのは、HTTP(S)でのみ対応しています。
-
.sesi_licenses.pref
ファイルはC:\Windows\<username>\AppData\Local
にあります。 -
ログファイルの場所は、Houdiniアプリケーションが使用するHOUDINI_TEMPフォルダと同じ場所になります。
用途に合わせたライセンスセットアップの方法の詳細は、インストールとライセンス設定のガイドを参照してください。
オプションファイル ¶
オプションファイルでhserver
オプションを指定することができます。
このファイルは、オペレーティングシステム別にファイル名やファイルの場所が異なります。
Mac
Houdiniパス内のどこにでもhserver.opt
オプションファイルを配置することができます。
このパスには、デフォルトでユーザープリファレンスディレクトリ($HOUDINI_USER_PREF_DIR)が含まれているので、そのディレクトリが使用可能です。
Windows
C:\Program Files\Side Effects Software\Houdini Server\
内にhserver.ini
オプションファイルを配置してください。
Linux
Houdiniパス内のどこにでもhserver.opt
オプションファイルを配置することができます。
このパスには、デフォルトでユーザープリファレンスディレクトリ($HOUDINI_USER_PREF_DIR)が含まれているので、そのディレクトリが使用可能です。
オプションファイルには以下の行を記述することができます。#
で始まる行がコメント扱いになって無視されます。
ログオプション ¶
logfile=path
ログの書き込み先となるファイルパス。
enableConsole=0|1
hserver
がコンソールにログを書き出すかどうかを指定します。
Windowsでは、このオプションに対応しておらず、すべてのログがログファイルに書き出されます。
disableColor=0|1
コンソールにログを書き出す際にhserver
がカラーを使用しないようにするかどうかを指定します。
minLogLevel=level
このオプションはコマンドラインの-u
オプションと同じです。
ログレベルの値のリストは-u
を参照してください。
minConsoleLogLevel=level
このオプションはコマンドラインの-U
オプションと同じです。
ログレベルの値のリストは-U
を参照してください。
logToSystem=0|1
システムログファイルにログを書き出します。 hseverログへの書き出しは、このオプションの影響を受けません。
サーバーオプション ¶
maxThreads=max
このサーバーが内部で使用するスレッドの最大数。
ここには、同時にhserver
と通信させたいプロセスの最大数よりも多い数を指定してください。
デフォルトは6
です。6
未満の値は無視されます。
readIPMask=ip_mask
このマスクに合致したIP4アドレスを持つクライアントのみがhseverから情報を要求することができます。 デフォルトでは、すべてのクライアントがhseverに接続できるように空っぽになっています。
writeIPMask=ip_mask
このマスクに合致したIP4アドレスを持つクライアントのみが、hseverの起動、hserverのシャットダウン、レンダリングの一時停止/再開/強制終了、ライセンスサーバーの変更をすることができます。 デフォルトでは、すべてのクライアントがhseverに接続できるように空っぽになっています。
debugMode=0|1
hserver
をデバッグモードにするかどうかを指定します。
これは、SideFX開発者がバグの原因を絞り込むのに役立ちます。
useExperimental=0|1
ライセンスを要求する時に、一度に1ライセンスだけ送信するのではなくて、試行してチェックアウトしたいプロダクトのリストを送信します。
これには、18.5以降のライセンスサーバーへの接続が必要です。
disableFastFDSet=0|1
遅いレガシーのサーバー実装を使用します。
このオプションは次のリリースで削除される予定です。
storageLocation=file location
hserverで使用される永続的な情報が格納されるカスタムファイルの場所。
ネットワークレンダー ¶
maxRenders=max
使用可能なレンダラープロセスの最大数。 デフォルトは、マシンのプロセッサ数です。マシンに搭載されている物理プロセッサよりも多いレンダラープロセッサの数を指定すると、パフォーマンスに影響が出ます。
maxUsage=pct
CPUの最大使用率(パーセント記号を含めないでください)。
ホストマシンに対するサーバープロセスの平均負荷がこの使用率を超えると、サーバーはレンダリングの受け入れを停止します。
100
より大きい値を指定すると、このチェックが無効になります。デフォルトは101
(無効)です。
このオプションの使用には注意してください。 これは 負荷を時間で割った平均 に基づいているので、この平均が閾値以内に収まる前にサーバーが複数のレンダリングの受け入れを拒否することがあります。
renderOnly=0|1
これを1
に設定すると、非グラフィカルライセンスのみが使用可能になります(これとgraphicsOnly
の両方を1
に設定すると、両方とも無視されます)。
これによって、“グラフィカル”アプリケーション(インターフェースを持ったアプリケーションのことで、例えばHoudini)がこのホストを使用しないように制限することができます。
graphicsOnly=0|1
これを1
に設定すると、グラフィカルライセンスのみが使用可能になります(これとrenderOnly
の両方を1
に設定すると、両方とも無視されます)。
これによって、コマンドラインアプリケーション(例えばhbatch
)がこのホストを使用しないように制限することができます。
relaxNonGraphics=0|1
これを1
に設定すると、たとえrenderOnly
が1
でも、非グラフィカルアプリケーションがグラフィカルライセンスを使用することができます。
ただし、非グラフィカルアプリケーション(hbatch
)はグラフィカルライセンスを使用することはできません。
hold=license secs
hserver
がアプリケーションのライセンスをチェックアウトする時に、使用後にそのライセンスを返却せずに“保持”するように指定することができます。
これにより、同じマシンでのライセンスの再取得が非常に高速になりますが、ライセンスが縛られます。
この2つの引数は、ライセンスタイプとそのタイプの各ライセンスを保持する秒数です。
この秒数に-1
を指定すると、サーバーはそのタイプのライセンスを無期限に保持します。デフォルトは次のようになっています:
hold Houdini-Master 3600 hold Render -1
(つまり、FXライセンスを1時間保持し、Renderライセンスを無期限に保持します。Renderライセンスは無料なので、今後ずっと使用するために無期限に保持するのが妥当です。)
mantra=version=X.X command="command"
特定のバージョンのMantraレンダラーでリモートレンダーを開始する時にレンダーコマンドを指定します。 これによって、同じホスト上で複数バージョンのレンダラーに対応することができます。
vmantra=version=X.X command="command"
上記のmantra
オプションと同じです。
APIオプション ¶
readTimeoutMs=milliseconds
このサーバーがsesinetd
ライセンスサーバーからの応答を待つ最大時間(ミリ秒)。
デフォルトは5分です。
この時間を過ぎるとAPIコールが行なわれなくなります。
この値を変更しないことを推奨します。
(hserver
が複数のライセンスサーバーを使用するように設定されている場合、これは、リスト内の1つのサーバーからの応答を諦めて次のサーバーに移動するまでの時間です。)
connectTimeoutMs=milliseconds
接続タイムアウトを指定します。
これは、hserver
が接続を諦めるまでエンドポイントへの接続を試みるミリ秒数です。
デフォルトは30秒です。
ClientID=value
APIキーを用意するのに必要となるクライアントID。 ClientSecretも用意する必要があります。
ClientSecret=value
APIキーを用意するのに必要となるクライアントシークレット。 ClientIDも用意する必要があります。
enableIPv6=value
IPv6対応を有効にします。
APIKey=client id client secret
APIキー情報のクライアントIDとクライアントシークレットを指定します。 詳細は、APIキーによるライセンス認証を参照してください。
APIKeyFile=file location
hserverで使用するAPIキー情報を指定したファイルの場所。 詳細は、hkeyを参照してください。
ライセンスのパーティション化 ¶
userGroup=group_name
ライセンスサーバーにライセンスを要求する時に使用するユーザグループ。
コマンドラインからhserverを制御する方法 ¶
情報 ¶
--help
このヘルプを表示します。
--ini-help
iniヘルプを表示します。
--version
hserverバージョン文字列をプリントします。
ログオプション ¶
-u/--min-logfile-level
ログファイルの最低エラーログレベルを指定します。
-
0: なし
-
1: メッセージ(デフォルト)
-
2: プロンプト
-
3: 警告
-
4: エラー
-
5: 致命
-U/--min-console-log-level
コンソールの最低エラーログレベルを指定します。
-
0: なし
-
1: メッセージ
-
2: プロンプト(デフォルト)
-
3: 警告
-
4: エラー
-
5: 致命
-B/--enable-console
コンソールのログを有効にします。
-b/--disable-console-colors
デバッグコンソールカラーを無効にします。
-Y/--log-to-system
オプションファイル内のlogToSystem
と同じです。
サーバーオプション ¶
-L/--logfile file
logfile
オプションを設定します。
詳細は、ログセクションを参照してください。
-D/--debug-mode
サーバーをデバッグモードにします。
-d/--run-in-foreground
hserver
をバックグラウンドで実行しないようにします。
このオプションは、Linux/OSXで利用可能で、WindowsではhserverがWindowsサービスとして実行されていない時にのみ利用可能です。
-t/--max-threads count
maxThreads
オプションを設定します。
デフォルトは6です。
-m/--read-mask ip_mask
readIPMask
オプションを設定します。
デフォルトは+.+.+.*
です。
-M/--write-mask ip_mask
writeIPMask
オプションを設定します。
デフォルトは+.+.+.*
です。
-E/--enable-experimental
これは、オプションファイル内のuseExperimental
と同じです。
-C/--force-http
接続URLに関係なくhttp通信を使用し、レガシーの通信プロトコルを代用しません。
ネットワークレンダーオプション ¶
-n/--render-only
renderOnly
オプションを有効にします(非グラフィカルレンダリングのみを許可します)。これと-G
の両方を設定すると、両方とも無視されます。
-G/--graphics-only
graphicsOnly
オプションを有効にします(グラフィカルレンダリングのみを許可します)。これと-n
の両方を設定すると、両方とも無視されます。
-g/--relax-non-graphical
relaxNonGraphics
オプションを有効にします。
-r/--max-renders max
maxRenders
オプションを設定します。
-a/--max-usage pct
maxUsage
オプションを設定します。
クライアントオプション ¶
-h/--host host
オプションで、照会/制御するリモートホストを指定することができます。
-l/--info
起動中のhserver
の情報を取得します。
-V/--mantra-commands
すべてのバージョン固有のMantraコマンドをリストします。
-q/--quit
起動中のhserver
を閉じます。
-Q/--blocking-quit
起動中のhserver
を閉じます。
クライアントに応答する前に、サーバーはすべてのライセンスと実行中のタスクを放棄します。
これは、Dockerなどの物理的にシャットダウンができないシステムのためだけに設計された事実上の阻止型のシャットダウンです。
-p/--reload-options
起動中のhserver
にオプションファイルをリロードさせます。
-P/--pause-pid pid
pid
で指定されたhserver
のタスクを一時停止します。
-R/--resume-pid pid
pid
で指定されたhserver
のタスクを再開します。
-S/--server servers
使用するライセンスサーバーをサーバー名で選択します。
-K/--kill-pid pid
Killするhserver
のタスクをpid
で指定します。
-H/--hold-license license time
プロセスで不要になった後でも保持したいライセンスとその時間を指定します。
APIオプション ¶
-T/--read-timeout-ms millis
readTimeout
オプションを設定します。
デフォルトは15秒です。
--connect-timeout-ms millis
サーバーへの接続を試みる最大ミリ秒数。
--clientid value
APIキーを用意するのに必要となるクライアントID。 ClientSecretも用意する必要があります。
--clientsecret value
APIキーを用意するのに必要となるクライアントシークレット。 ClientIDも用意する必要があります。
ライセンスのパーティション化 ¶
--user-group group name
ライセンスサーバーにライセンスを要求する時に使用するユーザグループ。
サーバーのリストを変更する ¶
クライアントマシンのライセンスセットアップを設定する時、サーバーリストがリモートのライセンスサーバーを指すように変更する必要があることが多いです。
ライセンスサーバーの変更は、 Hkey ▸ File ▸ Change License Server またはhserver -S <hostname>
から行なうことができます。
どちらの方法でも、普段スタジオ環境のセットアップに関わっていない人の介入が必要になります。
スタジオ環境のセットアップの観点においてHoudiniインストールの自動化の望ましい方法は、DNS SRVエントリーを使用することです。
DNS SRVエントリーを使用するメリットは、IT部署がスクリプトを更新したり、手動で各クライアントマシンを更新することなく、サーバーリストを更新することができるという点です。
さらに、DNS SRVを使用することで、スタジオ環境で冗長サーバーのセットアップを上手く統合することができます。
アプリケーションがサーバーリストを決める順番は以下のとおりです:
-
アプリケーションがhserver でない 場合、hserverからサーバーリストを照会します。
-
アプリケーションがhserverでWindowsサービスとして適切に起動している場合、レジストリキーがチェックされます。このレジストリキーは
hklm\software\Side Effects Software\Houdini
内にあるLicenseServer
という変数です。 -
アプリケーションがLinux/OSX上で起動している場合、または、Windowsサービスとして適切に 起動していない 場合、
SESI_LMHOST
という名前の環境変数がチェックされます。Windows
hserverはシステムアカウントで実行されるので、この環境変数はユーザーアカウントだけでなくシステムアカウントからもアクセスできる必要があります。
-
アプリケーションがLinux/OSX上で起動している場合、または、Windowsサービスとして適切に 起動していない 場合、
.sesi_licenses.pref
が使用されます。Windows
このファイルの場所は
%USERPROFILE%/AppData/Local/.sesi_licenses.pref
です。 hserverはシステムアカウントで実行されるので、hserverが適切なサービスとして起動されている場合には、このファイルの場所は異なります。 そのため、このファイルを手動で調整することは推奨しません。ライセンス管理ソフトウェアがこれを自動で調整してくれます。Linux
このファイルの場所は
$HOME/.sesi_licenses.pref
です。Mac
このファイルの場所は
$HOME/.sesi_licenses.pref
です。 -
DNS SRVエントリーがチェックされます。アプリケーションは
_sesi-lm
を検索します。 -
mDNSエントリーがチェックされます。sesinetdは、それができるようにこのエントリーをセットアップします。ユーザー側で何もアクションする必要はありません。
-
上記の選択肢がどれもサーバーリストの検索に失敗したら、
localhost
が使用されます。これは、新規マシン上に新しくHoudiniをインストールする場合が当てはまります。
ライセンスサーバーのチェーン化 ¶
この構成によって、ライセンスサーバー(sesinetd
)をチェーン化することができます。
これは、仕様(例えば、ライセンスプロダクトタイプ)に基づいてライセンスサーバーを分けることができます。
この構成の時、Houdiniはsesinetdサーバーリストの最初のsesinetdサーバーからライセンスのチェックアウトを試みて、ライセンスが空いていなければ次のサーバーからライセンスのチェックアウトを試みます。
この構成リストをセットアップするには、接続先となるライセンスサーバーを単一のsesinetd
を指定するのではなくて、セミコロンで区切ったライセンスサーバーのセットを指定します。
このリスト内の1番目のsesinetd
がコマンドの実行(つまり、チェックアウト)を試みて、何かしらの理由(接続できない、コマンドが失敗など)で失敗すると、次のsesinetd
を試みます。
“hserver -S”を使ってこのリストを指定する時は、この接続先のリストを引用符で閉じてください。例えば、hserver -S “sesinetd1;sesinetd2”です。
セミコロンの代わりにカンマが使用されていれば(以前の対応していない構成を使用した場合)、このアプリケーションはエラーをログに書き出し、内部的にカンマをセミコロンと想定してその構成を使用します。 以前のバージョンのHoudiniと完全に互換性を持てるように、このアプリケーションはそのキャッシュ化されたサーバー情報の場所を更新しません。
この構成を使用するには、最低でもバージョン18.0のHoudini License Server(hserver
)が必要になります。
現在のところ、sesinetd
とHoudiniのバージョンは、この構成ではそのバージョンに合わせる必要性はありません。
HTTP通信に対応 ¶
HoudiniServer 側でhttp通信を有効にするには、接続URLのプロトコルを指定する(例えばhserver -S http://licenseserver
)、または、コマンドラインに-C
を追加する、または、 HoudiniServer オプションファイルにenableHttp 1
を追加します。
Houdini18.5以降では、すべてのアプリケーションでhttp通信がデフォルトで有効になっています。
http通信に対応する前のHoudiniでは、従来sesiプロトコルと呼ばれる独自のフォーマットを使用していました。 このプロトコルは非常に雑な作りで、何か問題が起きた時にクライアントに知らせるのが恐ろしく困難でした。 それに対して、httpは非常に上手く作られたプロトコルで、サードパーティ製アプリケーションで広く対応しています。
≤ 17.5 |
18.0 |
18.5 |
19.0 |
|
hserver(サーバーとして) |
No |
Yes(最小サポート) |
Yes |
Yes(フルHTTPSサポート) |
hserver(クライアントとして) |
No |
Yes |
Yes |
Yes |
sesinetd |
No |
Yes (最小サポート) |
Yes |
Yes (フルHTTPSサポート) |
sesictrl/hkey |
No |
Yes |
Yes |
Yes |
ログファイル ¶
ログファイルは、サーバーが健康状態に関する情報、接続情報、他に役立つ情報を出力する場所です。
各ログのエントリーの書式はYYYY-MM-DD HH:MM::SS: SYSTEM - MESSAGE
です。
-
HTTP Client
は、curl
コマンドからのメッセージ、または、接続/クライアントシステム関連のメッセージです。
Note
curl
コマンドのverboseオプションが有効になっていれば、その出力がこのシステム下でログに書き出されるようになります。
これらのログエントリーの詳細は、curlのウェブページを参照してください。
-
Sqlite
は、Sqlite自体から送られてくるメッセージです。SqliteはCookieの保存や他の永続的なストレージの需要でよく使用されています。 -
Network Manager
は、ログファイル内で最もよく見かけるメッセージです。このメッセージは通常ではサーバー自体から送られてきます。たいていの場合、これは受信した接続に関する情報またはリクエストへの応答をログに書き出す際に使用します。 -
Stats Manager
は、統計マネージャから送られてくるメッセージです。これは通常では起動中のサーバーに関する統計情報関連のメッセージです(例えば、リクエストの最大処理時間)。 -
Error with api response
は、API応答のエラーの結果を示したメッセージです。 -
Access Token
は、APIキーから送られてくるメッセージです。これは通常では無効なAPIトークンに関するメッセージまたはAPIトークンの更新ができない旨のメッセージです。 -
Service
は、サービス自体から送られてくるメッセージです。 -
Application
は、アプリケーション関連のメッセージです。このエラーメッセージは非常に珍しいです。
Starting release server v18.5.296 at http://127.0.1.1.:1714
というログエントリーは、そのサーバーが開発サーバーかリリースサーバーのどちらなのか、サーバーのバージョン、サーバーが起動しているIPアドレスとポートを示しています。
これは、起動しているサーバーのバージョンを知る必要がある場合に役立ちます。
他にも、複数のサーバーのバージョンが含まれているログファイル内でどのバージョンが何を生成したのかを確認しやすいです。
Using fast fd set configuration...
というログエントリーは、ソケットで利用可能なデータを検出するためにサーバーが使用している仕組みを示した単なるエントリーです。
サーバーが高速なFD(File Descriptor)セット構成を使用している場合、サーバーはLinuxだとepoll
、OSXだとkqueue
を使用します(現在のところ、Windowsはこのような構成に対応していません)。
サーバーがデフォルトのFD(File Descriptor)セット構成を使用している場合、どのプラットフォームでもpoll()
が使用されます。
HTTP応答ログエントリー ¶
通常のHTTP応答ログエントリーの書式はMETHOD ROUTE HTTP/VERSION" CODE CODE_MESSAGE COMMAND RESPONSE_TIME
です。
エントリーの例: 2020-06-17 19:48:02: Network Manager - "POST /api HTTP/1.1" 200 Ok cmd_ping 0.0022450001s
-
METHOD: POST, GET, HEADなど
-
ROUTE: /api, /login, /
-
VERSION: 1.1, 1.0, 0.9
-
CODE: 200, 400, 404
-
CODE_MESSAGE: Ok, Bad Request, Not Found
-
COMMAND: cmd_ping
-
RESPONSE_TIME: 0.001s
Statistics Managerログエントリー ¶
Process Timeエントリーは、平均処理時間とサーバーが起動してから現在までのすべてのリクエストのうちの最大処理時間を示します。 これは、リクエストが処理を開始してからその処理が応答するまでの時間で測定されます。
エントリーの例: 2020-06-17 19:46:51: Stats Manager - Process Time: avg 0.010118s, max 0.020763s
Queue Wait Timeログエントリーは、すべてのリクエストがキュー内でワーカースレッドで処理されるのを待機した平均時間と最大時間を示します。 これらの時間は、サーバーが起動してから現在までの期間における値です。
エントリーの例: 2020-06-17 19:46:51: Stats Manager - Queue Wait Time: avg 3.6666667e-05s, max 6.5e-05s
Queue Sizeログエントリーは、現在のキューサイズとこれまでのキューの最大サイズを示します。 これらのサイズは、サーバーが起動してから現在までの期間における値です。
エントリーの例: 2020-06-17 19:46:51: Stats Manager - Queue Size: current 0, max 1
Connection Countログエントリーは、現在サーバーが繋げている接続数を示します。 例えば、サーバーが接続を再使用すると、この数はその再使用した接続数を示すようになります。
エントリーの例: 2020-06-17 19:46:51: Stats Manager - Connection Count: 0
APIキーによるライセンス認証 ¶
hserver向けのAPIキーを追加するには、APIKey
オプションを使って個々のAPIキーを追加するのか、または、APIKeyFile
を使ってAPIキーファイルを使用します。
APIKeyFile
オプションでは、HOUDINI_API_KEY_FILE
で使用されているのと同じファイルを指すことができます。
新しいAPIキーを生成するには、sidefx.comに進んでから、Register a new application
を選択してください。
APIキーは、電子メールアドレス/パスワードによる認証と同じレベルの注意と安全性を確保して扱ってください。
hkeyとsesictrlに対してAPIキーをセットアップする方法の詳細は、hkeyを参照してください。
Houdiniライセンスシステム ¶
New
Houdini19から新しいライセンスシステムが利用可能になりました。
houdini.envファイルにHOUDINI19_CHECKOUT_SYSTEM=1
を追加することで、これを有効にすることができます。
Warning
このライセンスシステムでは、hserverがHoudini19以降、且つ、sesinetdが18.5以降である必要があります。 また、このシステムでは、オプション、挙動、環境変数がすべて利用できるわけではありません。 それらはもはや不要になったか、または、もっと良いメソッド/ワークフローを介して利用できるようになっています。
ライセンスプロダクトは階層に基づいて順序が決定されます。
この階層は、金額的費用とそのプロダクトで利用可能な機能に基づいています(つまり、FX > Core > Engineの階層になります)。
このライセンスシステムは、リスト内のリストに基づいて動作します。
各サブリストはライセンスモード(Commercial, Education, Indie, Non Commercial)を意味します。
また、このリストの順序はサブリストの優先度をhserverに伝えます(最初のサブリストの優先度が一番高いです)。
これらのサブリストの順序は[Commercial, Education, Indie, Non Commercial]
になっています。
[ [Engine, Core, FX], [Engine EDU, EDU], [Engine Indie, Indie], [Apprentice] ]
ライセンスモード |
ライセンスリスト |
---|---|
Commercial |
Engine, Core, FX |
Education |
Engine EDU, EDU |
Indie |
Engine Indie, Indie |
Apprentice |
Apprentice |
この例では、ライセンスチェックアウト順の観点でみると、このリストのリストを[Engine, Core, FX, Engine EDU, EDU, Engine Indie, Indie, Apprentice]
に変換することができます。
HythonのCommercialモードリストをよく見ると、[Engine, Core, FX]
のリストになっています。
EngineがHythonに最も適したライセンスタイプであり、しかも一番安価なので、ほとんどのユーザはCoreやFXのライセンス取得を試みる前にこれらのライセンスを使い果たしたいので一番最初にリストされています。
FXが一番高価でまったくHython向けに意図されていないのですが、FXをHythonの実行に使用することができるので、たいていのユーザが最後の頼みの綱としてこれを使用したいので最後にリストされています。
メインリスト内の各サブリストはライセンスモードを示し、そのサブリスト内のアイテムはアプリケーションに基づいた階層による個々のライセンス順を示します。
このシステムの柔軟な設計が活かせる場面:
仮にスタジオで何人かのアーティストがショーAで作業し、何人かがショーBで作業し、何人かがショーAとショーBの両方で作業している複数のプロジェクタが立ち上がっているとします。
ショーAではどのアプリケーションにもまったくFXライセンスを使用できないようにしたいとしましょう。
ショーA向けに単純な起動スクリプトを作成して、その起動スクリプトによって起動されるアプリケーションのコマンドラインまたは環境に--skip-licenses="Houdini-Master"
を追加することでFXライセンスをスキップさせることができます。
システム管理者は、環境変数もhserverも他のアプリケーションも管理する必要がありません。
それどころか、各ショーで求められるライセンスの挙動を管理できるようにバージョンコントロールシステムシステムにチェックインされる起動スクリプトを作成することができます。
これによって、システム管理者はライセンスの挙動を更新してそれをバージョンコントロールシステムにプッシュすることができるので、次回アーティストが更新された時に新しいライセンスの挙動を反映することができます。
プロダクト交換 ¶
プロダクト交換とは、ライセンスを要求したアプリケーションのリストのリストに基づいて優先度の高いまたは低いライセンスとライセンス交換する処理のことです。 プロダクト交換の例:
-
Houdini Coreが開かれました。Coreライセンスがチェックアウトされます。
-
Houdini FXが開かれました。FXライセンスがチェックアウトされます。Coreライセンスは返却され、そのHoudini CoreアプリケーションはそのFXライセンスで実行中です。
-
Houdini FXが閉じられました。Coreライセンスがチェックアウトされ、そのFXライセンスが返却されます。そのHoudni Coreアプリケーションは今はそのCoreライセンスで実行中です。
コマンドラインオプション ¶
Note
以下に載せているすべてのコマンドラインオプションは、hserverではなくアプリケーションに適用します。
--list-license-checks
以下のどのオプションを使用する場合でも、アプリケーションが要求しようとするライセンスのリストを確認できるようにすることが重要です。
このオプションは、hserverにライセンスを要求する際に使用されるリストのリストをアプリケーションにプリントさせます。
そのプリントのエントリーの頭に-
文字が付いていれば、hserverへの要求からそのエントリーが現在除外されていることを意味します。
ライセンスのチェックアウトを有効にするには、--check-licenses
にそのライセンスの内部名を追加します。
ライセンスのチェックアウトを無効にするには、--skip-licenses
にそのライセンスの内部名を追加します。
--check-licenses
一部のアプリケーションでは、チェックアウトするライセンスを追加指定することができるものの、デフォルトではそのライセンスがチェックアウトされていない場合があります。
デフォルトのHoudini Coreの場合だと、Houdini Coreを起動してもHoudini FXライセンスをチェックアウトしませんが、--check-licenses="Houdini-Master"
付けてHoudini Coreを起動するとHoudini FXのチェックアウトが有効になります。
チェックアウトするライセンスをさらに追加するには、ライセンス名の間に','を入れてください。
Note
一部のアプリケーションは、このオプションに関係なく特定のライセンスをチェックアウトすることができません。 例えば、Houdini FXはHoudini Engineライセンスをチェックアウトすることができません。
Tip
Houdini CoreとHoudini FXを同時に起動させることが多い場合、Houdini Core環境変数に--check-licenses="Houdini-Master"
を追加することを推奨します。
詳細は以下を参照してください。
--skip-licenses
一部のセットアップでは、いくつか色々な理由で特定のライセンスをスキップさせたい場合があります。
スタジオでは、特定の役割や特定のプロジェクト用にFXライセンスを確保して、他のみんなにしばらくの間Coreライセンスを使用してもらいたい場合があります。
場合によっては、アーティストに決してHoudini Non Commercialライセンスを掴ませたくないというのもありでしょう。
このオプションを使用すれば、特定のライセンスをスキップさせることができます。
このオプションの構文は、ライセンス名の間に区切り文字として,
を入れた--skip-licenses="Houdini-Non-Commercial"
です。
--skip-license-modes
このオプションでは、ライセンスを要求する際にライセンスカテゴリ全体をスキップさせることができます。
このオプションは、ユーザに非商用ライセンスをチェックアウトさせたくない時に役立ちます。
利用可能なオプションは、commercial
、education
、indie
、apprentice
です。
--check-license-modes
このオプションは、ライセンスモードを上記の--skip-license-modes
オプションと逆にしたい場合にのみ役立ちます。
ここで利用可能なオプションは--skip-license-modes
と同じです。
環境変数 ¶
このシステムはアプリケーションを使用してライセンスの挙動を指示するので、そのアプリケーション関連のライセンスオプションを追加するための独自の環境変数が各アプリケーションに用意されています。
特定のタイプのすべてのアプリケーション(例えばHoudini Core)に対して一連のライセンス動作が必要な時、そのアプリケーションのライセンス環境変数を使用すると良いでしょう。
これらの環境変数の内容は、そのアプリケーションのコマンドラインオプションとまったく同じです。
例を挙げると、どのHoudini CoreもHoudini FXライセンスをチェックアウトするようにしたいのであれば、HOUDINI_CORE_LIC_OPT="--check-licenses=Houdini-Master"
の環境変数を用意します。
Tip
アプリケーションの環境変数が処理されてから、次にコマンドラインオプションが処理されます。 コマンドラインオプションが処理されると、その環境変数で使用されているオプションが上書きされます。
環境変数名 |
アプリケーション |
---|---|
HOUDINI_LIC_OPT |
Houdini |
HOUDINI_CORE_LIC_OPT |
Houdini Core |
HOUDINI_FX_LIC_OPT |
Houdini FX |
HOUDINI_INDIE_LIC_OPT |
Houdini Indie |
HOUDINI_NC_LIC_OPT |
Houdini Apprentice |
HOUDINI_EXPER_LIC_OPT |
Houdini Experimental |
HOUDINI_PDG_LIC_OPT |
PilotPDG |
HOUDINI_HYTHON_LIC_OPT |
Hython and Hbatch |
HOUDINI_MANTRA_LIC_OPT |
Mantra |
HOUDINI_KARMA_LIC_OPT |
Karma |
HOUDINI_MPLAY_LIC_OPT |
Mplay |
HOUDINI_PLUGIN_LIC_OPT |
サポートされているすべてのプラグイン(例えば、Unity、Unreal、Mayaなど)。 |
このシステム下でアプリケーションを起動すると、そのアプリケーション固有のライセンス環境変数がチェックされてから、コマンドラインオプションがチェックされます。
例えば、Houdini Coreを起動すると、ライセンスオプションはHOUDINI_CORE_LIC_OPT
環境変数がチェックされてから、コマンドラインオプションがチェックされます。
Houdini19ライセンスシステムへの移行ガイド ¶
Note
これら2つのライセンスシステムは根本的に異なっているので、このガイドはライセンス取得の動作をほぼ同様にするためのガイドにすぎず、 以前のシステムとまったく同じライセンス取得の動作を得る方法として考えないでください。
新機能とこのシステムの挙動の変更によって、このシステムに切り替える前に知っておくべき項目がいくつかあります。 最大の変更点は、以前に存在していたライセンス環境変数とライセンスオプションすべてがこのリリースから非推奨になり、この新しいシステムで用意されたオプションを推奨するようになったことです。 このシステムは、アプリケーション側でライセンス取得を制御することができるように根本的な変更が施されているので、実行中にライセンスシステムを変更することは不可能で、起動時にどちらのシステムを使用するのか選択することしかできません。
Warning
以前に存在していたすべてのライセンスオプション(つまり、環境変数)はこのリリースで非推奨になり、次のリリースで完全に削除される予定です。
以下のテーブルには、一部の環境変数値をHoudini19ライセンスシステムに変換するためのおおまかなガイドを載せています。 一部の値はもはやこの新しいシステムで適用されなくなったので省略されています。
HOUDINI_SCRIPT_LICENSE |
Houdini19環境オプション |
---|---|
hbatch -R |
|
PDG_LICENSE_MODE |
Houdini19環境オプション |
pdg_only |
これは、アプリケーションがライセンス(つまりPilotPDG)を使用する時に既存のPDGライセンスリストを使用するだけなので、何もアクションを実行する必要はありません。 |
engine_only |
|
houdini_core_only |
|
houdini_fx_only |
|
Houdiniコマンドライン |
Houdini19オプション |
-apprentice |
|
-indie |
|
-core |
|
古いシステムではhserverとその挙動を制御する環境変数の複雑なネットワークでライセンスを取得していましたが、Houdini19の新しいシステムでは、アプリケーション側で使用を許可したいライセンスの完全リストを決める仕様に変わりました。
そういった理由から、hserverオプションの--relax-non-graphical/-g
と--render-only/-n
は、このシステムでは使用されなくなりました。
これらのオプションは古いシステムを使用したアプリケーションに対してまだ設定することができますが、このシステムでは、アプリケーション側でHoudini19ライセンス取得の挙動を制御することからそれらのオプションは不要なので単に無視されます。
Houdini19のライセンス取得ではHTTP(S)のみが使用され、古いシステムの挙動や古いシステムとの通信プロトコルに下位互換を持たせる 予定はありません 。 hserverは同時に両方のシステムを使用して実行することができますが、古いシステムの方に必要な情報が用意されないためにhserverが何をすべきか決めることができないのでアップグレード/ダウングレードは無効になります。