2018-11-27

houdini engine licensing

よく訊かれる Houdini Engine のライセンス周りについて説明する。

ここにあった Houdini Core の話はこちらに移動。


1. Houdini Engine 概要

Houdini Engine は大きく分けて二つの 2つの機能を提供する。

  1. GUI 無し Houdini としてのバッチ処理。主にシミュレーションやファイル出力など。
  2. 別ホストアプリケーションで、Houdini Engine プラグインを介した HDA の利用。これにより Houdini のプロシージャル機能を他のアプリケーションで利用できる。

Houdini Engine インストールに関して

  • Houdini (本体) と Houdini Engine のインストーラは同一。同じコンピュータで使う場合には二度のインストールは不要。
    • しかし Houdini Engine プラグインだけを使う場合でも Houdini のフルインストールが必須。
    • Houdini Engine for [Maya|Unity|Unreal|3DS Max] のプラグインを使いたい場合には、インストーラでそれぞれのコンポーネントをオンにする。
  • Engine プラグインを使うにはライセンスが必要。
    • 商用版の場合、有償の Houdini Engine ライセンス、または Unity および Unreal プラグインに対してのみ、無償の Houdini Engine for Unity/Unreal のライセンスが使える。無償ライセンスはここから入手可能。
    • Indie 版の場合、無償の Houdini Engine for Indie ライセンスが必要。ここから入手。Houdini Engine for Unity/Unreal は互換性がないが、Houdini Engine for Indie ライセンスで同じことができる。
    • Education (学生版含む) の場合、Houdini Engine Education ライセンスが購入時に同時に発行されている。なお、 Houdini Engine for Unity/Unreal または Indie 版の Houdini Engine ライセンスは扱うファイルフォーマットが異なるために使えないが、同梱の Houdini Engine Education で同じことができる。
    • Houdini Apprentice の場合、Houdini Engine は一切使えない。
  • 各製品へのライセンス文字列のまとめはこちら

2. Houdini Engine ライセンスの挙動

  1. Houdini Engine のプラグインは、HDA をロードし、最初にクックした時にライセンスをチェックアウトしに行く。プラグインがホストアプリケーションにロードされた時ではない。
  2. Houdini Engine のプラグインは、ネットワークライセンスの場合、まず Houdini Engine ライセンスを見に行く。無ければ次に Houdini Core のライセンスを見に行き、あれば Core ライセンスを消費して Houdini Engine を実行する。Core も無ければ Houdini FX のライセンスを見に行き、あればそれを使う。それも無ければ起動できない。
    • よって、Houdini Core|FX のライセンスで Houdini Engine を起動することも可能だが、非常に高くつくことになる。この挙動を制限するために HAPI_LICENSE_MODE という環境変数が使用可能。以下のように設定することで、チェックアウトするライセンスを制限できる。
      HAPI_LICENSE_MODEEngineCoreFX
      default または未定義123
      engine_only100
      houdini_escape_only010
      houdini_fx_only001
      つまり、未定義または default としてした場合には、Engine -> Core -> FX の順でライセンスを見に行くが、 _only のついた値を環境変数に定義すれば該当製品のライセンスのみをチェックアウトしようとし、それが見つかれらなければ起動しない。詳細はこちら
    • ワークステーションライセンスの場合、Houdini Core または FX のライセンスだけで Houdini Engine の機能を同一PC 上で実行可能。よって、Houdini Core または FX のライセンスがあれば、Maya 等のプラグインも同時に実行可能。
  3. HOUDINI_PLUGIN_LIC_OPT
    --check-licenses=Houdini-Engine-PlugIn-Free,Houdini-Engine --skip-licenses=Houdini-Escape,Houdini-Master
    とすれば、Houdini Engine プラグインは 無償のプラグインライセンスまたは Houdini Engine (有償) のみをチェックアウトし、これらのライセンスが存在しない場合には起動しない。
  4. ライセンスがチェックアウトされた後は、(In Process の場合)、ホストアプリケーションを終了するまでライセンスが保持される。
  5. また、H19 のライセンスシステムでは、さらに便利な追加機能が増えた。

3. Houdini Engine セッションに関して

ホストアプリケーションで Houdini Engine を実行することをセッションと呼ぶ。セッションには、ホストアプリケーションのプロセスで実行する In Process という方法と、ホストアプリケーションと Houdini Engine をそれぞれ独立したプロセスで実行する方法の二つが考えられ、後者の方法を Thin Client (シンクライアント)と呼んでいる。Thin Client には、ソケットを使う方法と パイプを使う方法の2通りがあり、実際に Maya プラグインの Preferences にはこの3つの選択肢が存在する。

  1. In Process: ホストアプリケーションのプロセスを親プロセスとし、その子プロセスとして Houdini Engine が実行されるもっとも初期の Houdini Engine の実装方法。ライブラリの衝突などの問題が潜在し、Houdini 17以降ではサポートしていない。H17 のMaya プラグインで設定が In Process となっている場合 Named Pipe が使われる。
  2. ソケット: ホストアプリケーションと Engine のプロセスを TCP 経由で接続する。Engine のプロセスととホストアプリケーションを別のコンピュータ上でも実行可能で、またライブラリの衝突などの問題から回避できる。
  3. パイプ (Named Pipe): 同一ホスト上で ホストアプリケーションと Houdini Engine を別プロセスで実行する、H17 からのデフォルト設定。
この設計の詳細は、このチュートリアルを見るとよくわかる。なお、ソケット接続の場合、サーバプロセスを再起動すれば、(次にアセットがクックされるまで、) ライセンスがリリースされる。

4. Houdini Engine の自社製エンジンへの組み込み

ゲーム開発において Houdini Engine を導入する上で、前提として:

  1. 自社製ゲームエディタなど自社製ツールに Houdini Engine を統合するには、Houdini Engine の API (HAPI) を使って自社製ツール向けにプラグインを書くことになる。
    • Houdini Engine の実行には Houdini のフルインストールが必須。プラグインだけあれば、ということではない。
    • Houdini Engine は、ランタイムソリューションではないので、自社製エディタに組み込むことはできるが、出荷ゲームに組み込むことはできない。
  2. プラグインを書く上で、参考になるものとして以下のものがある:

リンク


最終更新: 2024-12-23

0 件のコメント:

コメントを投稿