今回は、カスタムノードにカスタムパラメータを追加してみますVerbとProtoヘッダファイル最近のHDKでは、SOPノード作成にVerbという仕組みを使うことが多いようです。Verbというのは、かなりざっくりいうと、SOPの振る舞いを定義する際、ジオメトリへの処理と、それ以外のパラメータ操作などの処理を分離する仕組みです。[参考]プログラム的にVerb(動詞)を使ったジオメトリVerbを利用してSOPを作成する際、これまで何度か言及していた、「Protoヘッダファイル」をビルド手順の中で生成し利用することになります。Protoヘッダファイルの主な役割Protoヘッダファイルには、ジオメトリ処理以外の実装が自動的に記述されます。※これは現時点での理解なので間違っているかもしれませんが、この仕組みにより、開発者は面倒なパラメータとジオメトリ処理をつなぐ実装を省略し、主にジオメトリ操作に関する処理に注力すれば良くなります。主なProtoヘッダファイルの役割は以下のようなものになります。Script」を記述、または「*.ds形式のファイル」として用意して、PRM_TemplateBuilderに与える必要があります。Scriptに関するリファレンスマニュアルのようなものを見つけることは出来ませんでした。Scriptを生成する方法があったので紹介します。やり方は、概ね以下の手順になります。Scriptの形式で取得できます。その後、ソースコードの*theDsFileに、取得したコードをそのままコピペするなどして与えた後、いつも通りの手順でビルドするだけです。Scriptを頂いて、カスタムSOPにそのまま持たせてみたものです。以上、カスタムSOPにカスタムパラメータを追加する方法でした。なにか間違いや、不明な点などあれば、コメントいただけると嬉しいです。Yamabe.Michiyoshi2最近、どうしても自作したいSOPがあり、Windows環境でのHoudiniのプラグイン開発を少しずつ学び始めたので、忘れないようにメモしていこうと思います。今回は、SOP_Starのサンプルコードを参考にしながら、全く何の処理もパラメータも持たない、空っぽのSOPを作る最小構成のコードを書いてみました。事細かにコードの説明を書いてもとりとめが無くなりすぎて、読むに耐えない感じになり非常に微妙だったので、簡単な解説付きのテンプレートコードを転載するに留めます。いくつか補足が必要そうな箇所もあるので、後でメモを書くかも。カスタムSOPのパラメータテンプレートクラス名SOP_Template.hpp(.h)最小構成のヘッダファイルは以下のようなものになりそう。SOP_TEMPLATE#endifSOP_Template.cpp(.C)最小構成のソースコードは以下のようになりそう。ノードのメイン処理はここに記述する}CmakeLists.txtCMakeLists.txtは、自分の環境ではだいぶいじってしまっているため、サンプルを少し改変しただけの状態ではちゃんとテストできてないので、動作に若干自信なし。実践してみたい方がいれば、と思い、参考程度にコードを載せてみますが、間違ってたらすみません。(大まかには合ってるはずですが)CMakeLists.txtファイルは、サンプルを以下のような形で編集し、ソースコードと同じフォルダに置けば、以前の説明と同じ手順でビルドできると思われます。最近、どうしても自作したいSOPがあり、Windows環境でのHoudiniのプラグイン開発を少しずつ学び始めたので、忘れないようにメモしていこうと思います。IDEからビルドする場合は、代わりにCMakeを使用することをお勧めします。」との記載があります。「hcustomによるビルドでは単一のソースファイルしか扱えない」旨の記述もあり、hcustomは手軽ではあるけど不便だろうなぁと想像しています。いうわけで、今後使い続けることになりそうなCMakeでのビルドを知るため、前回のhcustomによるビルドに引き続き、CMakeを使うビルドを試してみようと思います。今回もサンプルの「SOP_Star」を使います。■CMakeとは?CMakeは、プログラムのビルド処理を自動化してくれる便利ツールです。今回CMakeで行う処理は、大きく分けて以下の2つです。されたそれらのファイルを使ってビルドを行う■環境の準備まず、手元の環境ですが、以下のようなツールがインストールされています。・ソースコードをコピーする以下のフォルダを、任意の場所にコピーします。今回は、以下のようにコピーしました。Tools」と検索し、起動します。18.0.532」というタイトルの、Houdini関連の環境変数が一通り自動的にセットされたコマンドプロンプトが立ち上がります。※どんな環境変数がセットされているかは「set」と打ち込んでEnterを押すことで一覧表示、確認できます。Studioのソリューションファイル以外にも、いろいろなファイルが大量に生成されます。これらの生成されたファイルがソースコードと混ざってしまうと、生成前の状態に戻すことが難しくなります。そのため、予めビルド生成物をまとめるbuildフォルダをつくり、もとのソースコードとCMakeの生成ファイルを切り分けて管理できるようにします。ソースコードと同じフォルダにbuildという名前のフォルダを作ります。D:\temp\HDK\build_cmake\SOP_Star\build次に、以下を実行し、ソリューションとプロジェクトを生成します。..カレントのbuildフォルダに、各種ファイルが生成されます。ここで生成されるソリューションとプロジェクトは、SOP_Starフォルダの直下にあるCMakeLists.txtファイルに記述された設定に基づいて作成されます。カスタムプラグインを作成するためのCMakeLists.txtを書く際は、このCMakeLists.txtを参考にすれば良さそうです。・プラグインをビルドする続いて、以下を実行します。--clean-firstこれで、カレントのフォルダにあるソリューションとプロジェクトファイルを使い、プラグインが以下のフォルダにビルドされます。・無事ビューポート内に星型のジオメトリが現れればOKです。ここまでで、hcustomとCMakeのそれぞれを使って、手軽にプラグインがビルドできることを確認してみました。同じ要領で、サンプルにある各種プラグインをビルドすることができそうです。