こちらにもある通り、Houdini で作った HDA を Unity や Unreal Engine に持ち込むことでゲームエンジン内でプロシージャルなツール制御が可能になります。
では HDA に Viewer State が記述されていた場合、その制御はどうなるのでしょうか。
SessionSyncについて
結論から言いますと、ゲームエンジン内で Viewer State を使うことはできません。
あくまで Viewer State は Houdini のビューシーン内でのデバイスアクションに関わるので、ゲームエンジン内でクリックしてもポイントを生成したりすることはできません。
ただし、疑似的な操作として SessionSync というものがあります。
Houdini Viewport や Houdini インターフェースを介して Houdini Engine セッションの状態を視覚化することができる機能です。
これを使い、ゲームエンジンの HDA の変更と Houdini のビューシーンでの Viewer State のアクションを同期します。
使い方
今回はゲームエンジンとして Unity を使います。ただし UE のメニューにも SessionSync がありますので、そちらも確認してみてください。
Houdini の設定
ペインタブの + をクリックし、中にある Houdini Engine SessionSync をクリックします。
追加したタブの中から Start をクリックし、SessionSync を開始します。
Unity の設定
Unity のタブの中に HoudiniEngine があるので、その中の SessionSync をクリックします。
この HoudiniEngine は Unity に Houdini Engine がインストールされていれば表示されています。インストールの手順についてはこちらをご参照ください。
すると HEngine SessionSync がポップアップします。
Start Houdini と Connect to Houdini が選べますが、既に Houdini の設定が終わっているので Connect to Houdini を選択します。
Houdini のオブジェクトクラスを見て GlobalNodes が生成されていれば OK です。
HDA を Unity に追加し操作
Assets にある HDA をシーンにドラッグし、Unity に追加します。
今回は Add Point と wireframe で作った HDA を使います。
Houdini 側でシーンをクリックしてワイヤーを作ると、Unity にも同期され同じようにワイヤーが表示されます。
逆に Unity で各ポイントのパラメータを操作すると、変更が Houdini にも反映されます。
Unity 内で Viewer State を使うことはできませんが、Houdini ビューポートと Unity を同期することで Viewer State を疑似的に Unity に持ち込むことができました。