Houdini 20.0 Unity

プラグインAPI

On this page

プラグインをプラグラム的に使用する

プラグインは、UIからだけでなく、プログラム的に使用することもできます。 これにより、Houdini Engineを中心としたカスタムツールやワークフローを作成することができますが、Unity内でのC#スクリプトの知識が必要となります。

利用可能なプログラム的インターフェースのレイヤーがいくつかあります。アクセスレベルが高いものから低いものの順で以下に載せます:

  • インターフェースレイヤー

  • アセットレイヤー

  • ユーティリティレイヤー

  • HAPIレイヤー

レイヤーについては以下で説明します。

Note

これらのレイヤーはおおまかに定義されており、必要に応じて一緒に使用することができます。

インターフェースレイヤー

Houdini19の時点では、パブリックAPIの一部となることを目的としたすべてのクラスと関数(PDG関連のクラスを除く)は、頭にIが付くインターフェースクラスを継承します。 以下に知っておくと便利なインターフェースの例をいくつか紹介します:

クラス

説明

IHEU_HoudiniAsset

これは、HDAの大半のロジックと機能を制御する、HEU_HoudiniAssetのインターフェースです。

IHEU_Parameters

これは、HDAパラメータを変更するためのインターフェースです。

IHEU_InputNode

これは、HDA入力を変更するためのインターフェースです。

アセットレイヤー

これは、利用可能な最も高いレベルのプログラミングインターフェースレイヤーであり、 プラグイン独自のユーザインターフェースがHoudini Engineの照会とやり取りに使用します。 単純なパラメータの照会や制御のためにHDAを使用する場合は、このレイヤーを使用することをお勧めします。

このレイヤーはいくつかのクラスを網羅しています:

クラス

説明

HEU_HoudiniAssetRoot

UnityのHoudini Engineアセットのためのルートコンポーネントです。 軽量で、ユーザインターフェースを提供するだけでなく、階層のルートとしても機能します。

HEU_HoudiniAsset

これは、アセットのすべてのメタデータ、アセットを構築、クック、照会、変更するための機能を含むメインのアセットコンポーネントです。

HEU_ParameterUtility

これには、アセットのパラメータを照会したり変更するための便利な関数が含まれています。

このレイヤーの使用例は、Plugins/HoudiniEngineUnity/Scripts/Examples/HEU_ExampleEvergreenQuery.csにあります。 もう1つの素晴らしい例として、HDAをインスタンス化し、別のHDAからデータをコピーするHEU_HoudiniAsset::DuplicateAsset関数もあります。

ユーティリティレイヤー

これは、中間レベルのプログラミングインターフェースレイヤーという位置付けであり、 Houdini Engineとやり取りするために、プラグインによって広く使用されています。 HDA、ノード、接続を使用したり、より複雑なネットワークを動的に構築する場合は、このレイヤーを使用することをお勧めします。

このレイヤーはいくつかのユーティリティクラスを網羅しています:

クラス

説明

HEU_HAPIUtility

ノードの作成、アセットのロード、クック、Houdiniとデータをやり取りするための様々な変換関数など、 Houdini Engine 固有の作業を行なうためのヘルパー関数が含まれています。

HEU_GeneralUtility

よくある タスクのための一般的なヘルパー関数が含まれています。

HEU_EditorUtility

Unity Editor固有 のタスクのための一般的なヘルパー関数が含まれています。

HEU_InputUtility

入力ノードの作成、データのアップロード、カスタム入力フックの管理のための入力メカニズムが含まれています。カスタム入力スクリプトを参照してください。

HEU_InputMeshUtility

メッシュデータをHoudiniにアップロードするためのヘルパー関数が含まれています。

HEU_GenerateGeoCache

Houdiniノードまたはアセットから ポリゴン 出力データを生成および変換するためのデータバッファや関数を含むジオメトリキャッシュクラスです。

HEU_VolumeCache

Houdiniボリューム から出力データを生成および変換するためのデータバッファや関数を含むジオメトリキャッシュクラスです。

HEU_MaterialFactory

Houdiniからの出力に基づいて、Unityマテリアルを生成および管理するためのヘルパー関数が含まれています。

HEU_SessionManager

Houdini Engine セッション を作成および管理するためのヘルパー関数が含まれています。

HEU_SessionHAPI

これはHoudini Engineセッションをラップし、 セッションとやり取りする のに便利なラッパーおよびヘルパー関数を提供します。プラグイン用のHoudini Engine APIコールのほぼすべてがここを経由します。

このレイヤーの使用例は、 _Plugins/HoudiniEngineUnity/Scripts/Examples/HEU_ScriptMeshInputUVLayoutExample.cs_ にあります。入力ノードの作成、メッシュデータのアップロード、UVLayoutノードへの接続方法や、出力メッシュをコピーとして生成したり、それを置換する方法が示されています。

HAPIレイヤー

これは、プラグインで最も低いレベルのプログラミングインターフェースレイヤーです。 これはインポートされたネイティブ関数とデータ構造を使用して、Houdini Engine API(HAPI)と実質上 直接的に やり取りします。 Unity内でHoudini Engineの使用を完全に制御する必要があり、プラグインの使用を控えたい場合は、このレイヤーを使用することをお勧めします。

このレイヤーはインポートクラスのみで構成されています:

クラス

説明

HAPI_HAPIData

C#.Netで再定義されたHoudini Engine APIデータ構造が含まれています。

HAPI_HAPIImport

C#.NetでのHoudini Engine API関数インポートが含まれています。

このレイヤーの使用については、Houdini Engine APIドキュメントを参考にしてください。

前述したより高いレベルのレイヤーなど、プラグインのコード自体も参考になります。

Unity

はじめよう

プロジェクトのセットアップ

Houdini Engineを使用する

リファレンス