最近どうしても自作したいSOPがあり、Windows環境でのHoudiniのプラグイン開発を少しずつ学び始めたので、忘れないようにメモしていこうと思います。
HDKリファレンスによるとHoudiniプラグインは、hcustomを使うことで簡単にビルドできるらしかったので、まずは初歩中の初歩として、最も簡単そうなこの方法から試してみました。
今回使用するコードは、サンプルにある「SOP_Star」です。
■環境の準備
まず、手元の環境ですが、以下のような状態です
- Houdini 18.0.532 Indie
- Visual Studio 2019 / 2017 / 2015 Community
■ビルド手順
・ソースコードをコピーする
以下のフォルダを、任意の場所にコピーします
今回は、以下のようにコピーしました
コピー元:$HFS\toolkit\samples\SOP\SOP_Star コピー先:D:\temp\SOP_Star
※$HFSは、Houdiniのインストールフォルダで、デフォルトでは以下のようなパス
C:\Program Files\Side Effects Software\Houdini 18.0.532
・Command Line Toolsを起動する
スタートメニューで「Command Line Tools」と検索し、起動します。
「Command Line Tools 18.0.532」というタイトルの、Houdini関連の環境変数が一通り自動的にセットされたコマンドプロンプトが立ち上がります。
※どんな環境変数がセットされているかは「set」と打ち込んでEnterを押すことで一覧表示、確認できます。
・ソースコードのあるフォルダをカレントにします
cd /d D:\temp\SOP_Star
・protoヘッダファイルを作成します
generate_proto.pyを利用し、SOPプラグインのコード内で、ノードのパラメータを定義している文字列(theDsFile)の記述をもとに、パラメータへのアクセスを簡単にしてくれるprotoヘッダファイルを自動生成しておきます。
hython %HH%/python2.7libs/generate_proto.py SOP_Star.C SOP_Star.proto.h
・hcustomでビルドを実行します
hcustom SOP_Star.C
・ビルドの成功を確認
成功していたら、以下のフォルダにビルドで生成されたファイルができているはずです
%USERPROFILE%\Documents\houdini18.0\dso SOP_Star.dll SOP_Star.exp SOP_Star.lib SOP_Star.pdb
・Houdiniでプラグインの動作を確認する
・Houdiniを起動
・Geometryを内でTABメニューから[star]と検索し[Star]ノードを作成
・無事ビューポート内に星型のジオメトリが現れればOKです。
注意点
・protoヘッダファイルに関して
古い文献を探すと、protoヘッダファイル不使用の解説が見つかったります。
また、18.0.532 では、protoヘッダファイルを作らずにいきなり
hcustom SOP_Star.C
を実行すると、protoヘッダファイルが見つからずにビルドが失敗するようでした。
現時点では、protoヘッダファイルを使うことでプラグインのパラメータアクセスが簡単になるので、必ず用意するものと考えて良さそうだと考えています。
※2020/08/30 追記
サンプルのソースコードを覗くと、もともとprotoヘッダファイルをincludeするように指定されていました。
protoヘッダファイルを作らないとビルドがコケるよね、というオチ。
恐らくprotoヘッダファイルを使うやり方は新しいやり方なのだと想像できるし、何より便利な方法なので、積極的に利用するのが良さそうという見方は変わらず。
protoヘッダファイルの作成と、ソースコードでincludeする、ということをお作法としておけば間違いないのではないかと思いました。