On this page |
プラグインをプラグラム的に使用する ¶
プラグインは、UIからだけでなく、プログラム的に使用することもできます。 これにより、Houdini Engineを中心としたカスタムツールやワークフローを作成することができますが、Unity内でのC#スクリプトの知識が必要となります。
利用可能なプログラム的インターフェースのレイヤーがいくつかあります。アクセスレベルが高いものから低いものの順で以下に載せます:
-
インターフェースレイヤー
-
アセットレイヤー
-
ユーティリティレイヤー
-
HAPIレイヤー
レイヤーについては以下で説明します。
Note
これらのレイヤーはおおまかに定義されており、必要に応じて一緒に使用することができます。
インターフェースレイヤー ¶
Houdini19の時点では、パブリックAPIの一部となることを目的としたすべてのクラスと関数(PDG関連のクラスを除く)は、頭にIが付くインターフェースクラスを継承します。 以下に知っておくと便利なインターフェースの例をいくつか紹介します:
クラス |
説明 |
---|---|
|
これは、HDAの大半のロジックと機能を制御する、 |
|
これは、HDAパラメータを変更するためのインターフェースです。 |
|
これは、HDA入力を変更するためのインターフェースです。 |
アセットレイヤー ¶
これは、利用可能な最も高いレベルのプログラミングインターフェースレイヤーであり、 プラグイン独自のユーザインターフェースがHoudini Engineの照会とやり取りに使用します。 単純なパラメータの照会や制御のためにHDAを使用する場合は、このレイヤーを使用することをお勧めします。
このレイヤーはいくつかのクラスを網羅しています:
クラス |
説明 |
---|---|
|
UnityのHoudini Engineアセットのためのルートコンポーネントです。 軽量で、ユーザインターフェースを提供するだけでなく、階層のルートとしても機能します。 |
|
これは、アセットのすべてのメタデータ、アセットを構築、クック、照会、変更するための機能を含むメインのアセットコンポーネントです。 |
|
これには、アセットのパラメータを照会したり変更するための便利な関数が含まれています。 |
このレイヤーの使用例は、Plugins/HoudiniEngineUnity/Scripts/Examples/HEU_ExampleEvergreenQuery.csにあります。 もう1つの素晴らしい例として、HDAをインスタンス化し、別のHDAからデータをコピーするHEU_HoudiniAsset::DuplicateAsset関数もあります。
ユーティリティレイヤー ¶
これは、中間レベルのプログラミングインターフェースレイヤーという位置付けであり、 Houdini Engineとやり取りするために、プラグインによって広く使用されています。 HDA、ノード、接続を使用したり、より複雑なネットワークを動的に構築する場合は、このレイヤーを使用することをお勧めします。
このレイヤーはいくつかのユーティリティクラスを網羅しています:
クラス |
説明 |
---|---|
|
ノードの作成、アセットのロード、クック、Houdiniとデータをやり取りするための様々な変換関数など、 Houdini Engine 固有の作業を行なうためのヘルパー関数が含まれています。 |
|
よくある タスクのための一般的なヘルパー関数が含まれています。 |
|
Unity Editor固有 のタスクのための一般的なヘルパー関数が含まれています。 |
|
入力ノードの作成、データのアップロード、カスタム入力フックの管理のための入力メカニズムが含まれています。カスタム入力スクリプトを参照してください。 |
|
メッシュデータをHoudiniにアップロードするためのヘルパー関数が含まれています。 |
|
Houdiniノードまたはアセットから ポリゴン 出力データを生成および変換するためのデータバッファや関数を含むジオメトリキャッシュクラスです。 |
|
Houdiniボリューム から出力データを生成および変換するためのデータバッファや関数を含むジオメトリキャッシュクラスです。 |
|
Houdiniからの出力に基づいて、Unityマテリアルを生成および管理するためのヘルパー関数が含まれています。 |
|
Houdini Engine セッション を作成および管理するためのヘルパー関数が含まれています。 |
|
これはHoudini Engineセッションをラップし、 セッションとやり取りする のに便利なラッパーおよびヘルパー関数を提供します。プラグイン用のHoudini Engine APIコールのほぼすべてがここを経由します。 |
このレイヤーの使用例は、 _Plugins/HoudiniEngineUnity/Scripts/Examples/HEU_ScriptMeshInputUVLayoutExample.cs_ にあります。入力ノードの作成、メッシュデータのアップロード、UVLayoutノードへの接続方法や、出力メッシュをコピーとして生成したり、それを置換する方法が示されています。
HAPIレイヤー ¶
これは、プラグインで最も低いレベルのプログラミングインターフェースレイヤーです。 これはインポートされたネイティブ関数とデータ構造を使用して、Houdini Engine API(HAPI)と実質上 直接的に やり取りします。 Unity内でHoudini Engineの使用を完全に制御する必要があり、プラグインの使用を控えたい場合は、このレイヤーを使用することをお勧めします。
このレイヤーはインポートクラスのみで構成されています:
クラス |
説明 |
---|---|
|
C#.Netで再定義されたHoudini Engine APIデータ構造が含まれています。 |
|
C#.NetでのHoudini Engine API関数インポートが含まれています。 |
このレイヤーの使用については、Houdini Engine APIドキュメントを参考にしてください。
前述したより高いレベルのレイヤーなど、プラグインのコード自体も参考になります。