update.Houdiniでは、HScript、Python、VEX、C++(HDK)の4つのプログラミング環境が使えますが、HDKはその中でも一番Houdiniのコアに近い所にある環境で、C++で記述して各種ノードのプラグインを作るものです。この記事ではHDKを使ってプラグインをビルドするまでの導入部分を紹介したいと思います。僕が一番最初にHDKについて興味を持ったのは↓の動画を見たのがきっかけでした。:)この動画では、Houdiniでメッシュの操作をするのがしんどいと思ったユーザーさんがMayaでモデリングをしてそのジオメトリのデータをHoudiniにリアルタイムで持っていけたぜ!的な所の紹介をされています。Houdiniで読み込みというのをやってみたのですが、なかなかパフォーマンスが出ず。やったらもっと早くなるんだろうか、、、というリサーチを初めたのがそもそもになります。その後はPython側でボトルネックになっていそうな所をCythonに書き直したりしたのですが、色々やった結果HDKを使うのが一番早いのでは?という結論に落ち着きました。4にジオメトリを転送してリアルタイムレンダリングさせている部分に活用されています。開発環境のセットアップさて、実際に動かす環境づくりの説明です。注意点として、Houdini15.5からsidefxで公開されているHoudiniのビルド環境が変わりまして、15.5以前だとVC2012だったのが、以降だとVS2015でビルドされるようになりました。それに伴ってHDKを使ったプラグインをビルドする環境も使用するHoudiniのバージョンにあわせる必要があります。2012を用意する必要があります。2015環境を使うのがオススメの構成です。こちらからインストーラーを起動してOKを押していれば特に問題なくインストールが完了します。(インストールが終わったら念のため再起動をしてください)HDKのサンプルを試してみるまずsidefxが提供しているサンプルのビルドを試してみます。あたりに入っているので、適当な所にコピーしてそれをいじるようにします。今回の場合、C:\temp\samplesにまるごとコピーすることにしました。C++コンパイラのツール郡にパスが通っているかを確認します。]などと表示されればOKです。Houdiniのツールにパスを通すHoudiniにはhcustomというHDKプラグインをクロスプラットフォームでビルドしてくれるツールが付属しています。これを使えるようにしてみましょう。プロンプトを開いた状態だとhcustomのあるディレクトリにはパスが通っていないので手動でこれを通します。15.5.XXX\bin"↑は環境変数のPATHにhcustomが入っているパスを末尾に追加するというコマンドです。%PATH%を実行して、↑のように末尾にさきほど指定した文字列が追加されていればOKです。パスが通っていればhcustomと実行した時に↓のようなメッセージが出力されるはずです。DSO(...略...)SOP_Star.Cをビルドするでは、さきほど適当な所にコピーしたsamplesの下のSOPフォルダに移動してSOP_Starをビルドしてみましょう。freeSOP_Star.Cが確認できました。続けてhcustomコマンドでプラグインを作っていきます。単純にhcustomに続けてビルドしたいCファイルを入れればOKです。SOP_Star.exp通常に終了すると自分のホームディレクトリの中、$HOME\houdini15.5\dsoの中にSOP_Star.dllができているはずです!さらにHoudiniを立ち上げて/objに入りタブを押したノードリストの中にstarが追加されていると思います。HDKのサンプルの中にはStarの他にも色々なものがあります。興味がある方は色々とビルドして試してみてください!こちらの環境ではビルド時にhcustomがクラッシュしました。Continueを選ぶと普通にビルドできて.dllもできていました。思われた人もいるかもしれません。HDKを使ってできる事、おそらくもっとあると思います。Pythonでもできるけど、ボトルネックになりがちあたりが挙げられると思います。Houdiniはそれ自体がプログラミング環境かというぐらいにパワフルで自由度に富んでいますが、あと一歩の所で自分の欲しかったものないじゃん、、という経験をした事があるのではないでしょうか。いう時は大抵ノードの組合せでとんち的にごまかすか、Pythonなどを使って力技で解決すると思うのですが、そういった時にこそHoudiniが保持しているデータにフルアクセスできるHDK/C++の出番なのではないかと思います。StudioのIDEを使ってHDKプラグインを開発する方法をのせておきます。Runの手間が減るあたりがあります。例として、さきほど紹介したものと同じSOP_Star.Cをビルドするプロジェクトを作ってみましょう。Studio英語版での紹介になります。x64に設定するプロジェクト以下にsrcフォルダを作り、ビルドしたいファイルをここにコピーしてくる。足りないというエラーが出ると思います。HDKのファイル郡にパスが通っていないためですプロパティシートの導入HDKのビルドを簡単にするためのプロパティシートを作ったのでそれを追加します。Managerを表示します。Sheetを選択して、さきほど保存したHDK.propsを指定します。x64のドロップダウンの下にHDKという項目が追加されているはずなので、そちらをダブルクリックしてプロパティページを開きます。Macrosの中のHOUDINI_VERSION_BUILDの数字を自分の環境のものと合わせてOKを押してください。!!!この状態でひとまずプラグインのビルドが状態になるとおもいますが、dllが書き出されるのがプロジェクトディレクトリの中のx64\Releaseの中になっているので手動で$HOME\houdini15.5\dsoにコピーしないといけず効率が悪いです。Propertyを表示します。これで、ビルドした.dllが$HOME\houdini15.5\dsoに配置されることになります。Directryに任意のファイル名とディレクトリを指定します。Argumentsにuntitled.hipncを指定すると現在のプロジェクトディレクトリにあるuntitled.hipncを実行するという事になります。StudioでF5を押したら立ち上がるといういつもの感じになります。おつかれさまでした!現状の問題点として、.dllをReleaseではなくてDebugでビルドして立ち上げた場合になんだかよくわからないけどエラーが出て起動しないというのがあります。ここはちょっと追えてないのですが、このままだとまともにブレークポイントも設定できないのでどうにかしたい所。