vvvv RealSenseプラグイン開発 その2


これはvvvv Advent Calendar 2015 22日目の記事です。


前回に引き続きRealSenseプラグインの開発中に分ったことを殴り書きしてみます。
前回、RealSenseからのカメラ映像をvvvvで表示することに成功したので、今回はDepth画像を表示してみました。

PluginInfoアトリビュート=1ノード

Depth画像を表示するパッチは現状こんな感じになっています。

get_depth1

NodeもRealSense(Devices)、RGB、Depthという風にKinect系ノードの構成を真似していく方針です。
前回、.csprojファイルがノードとして認識されると書きましたが、”1つの.csproj=1ノード”というわけではなく
.csproj内のPluginInfoアトリビュートがそれぞれ1つのノードとして認識されるようです。
ひとまず現状のプロジェクトエクスプローラーはこの様になっています。
1クラス=1ファイル=1ノードです。
project_20151222
(作成中のHandノードも含まれています。)

dllの出力先

vvvvで参照したはずのdllが読み込まれない!
前回、libxccp2c.dll(ネイティブライブラリ)が読み込まれずに苦戦していました。

VisualStudioではネイティブライブラリは
プロジェクト右クリック->追加->既存の項目
から追加して、
追加されたdllのプロパティ->出力ディレクトリにコピー->新しい場合はコピーする
としておけばビルド結果として出力されるdllと同じフォルダにコピーされます。

VisualStudioで開発しているときはそのdllの出力先は、
プロジェクト右クリック->プロパティ->ビルド->出力パス
です。

しかし、vvvvでパッチを実行すると別のdllが作成され、その出力先は
${プラグインフォルダ}/bin/Dynamic
になる様です。
なのでネイティブライブラリはこのフォルダにもないと読み込みに失敗してしまいます。
ビルド後に自動でもっていく方法がわからなかったので手動でコピーしています。

また、dllの出力先を変更するとソリューションのクリーンをしても変更前のフォルダにあるdllは削除されないので注意です。
vvvvはパスに含めたフォルダ以下のdllを全て見てしまうので新しい出力先に指定したフォルダ内のdllが正しく読み込まれないかもしれません。
出力先を変更したらbin以下は一度すべて削除するのが無難かもしれません。(ビルドすればまた作成されます。)
まぁ、Windowsアプリ開発初心者あるあるですね。

だんだん勝手がわかってきました。
この調子で進んでいきます。次回はHandかな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*