以前書いた「プロジェクションマッピングに入門しました」では、「TouchDesigner」というアプリケーションを利用しています。TouchDesignerは非商用で利用できる無償の「FTE」と、商用で利用できる有償の「FTE Commercial」、さらにサポートがついた有償の「Pro」があるようです(現状のTouchDesignerではnVidiaのグラフィックチップを搭載したWindows PCのみサポートしているようです)。
TouchDesignerのFTE Commercial以上ではC++を使ってモジュールを作成し、TouchDesignerで利用できるようになっています(Pythonで書ける方法もあるようです)。
ここでは有償の「FTE Commercial」を利用してC++のモジュールを動作させる方法を載せます。
最後に載せている参考サイトをみるとVisual Studio 2005でやってね。と書いていますが、今回はVisual Studio 2012でやっています。
ざっくり手順としては「サンプルアプリケーションをビルド」して、「TouchDesignerにC++モジュールを配置」します。
サンプルアプリケーションをビルドする
サンプルのプロジェクトが「C:\Program Files\Derivative\TouchDesignerFTE.077\touch\CPlusPlus」または「C:\Program Files (x86)\Derivative\TouchDesignerFTE.077\touch\CPlusPlus」にあるので、デスクトップやドキュメントフォルダなどProgram Filesフォルダ以外にコピーします。
フォルダにはCHOPとTOPのサンプルがあります。今回はCHOPを取り上げますが、TOPも同様の操作になります。
コピーしたCHOPのフォルダを開くとソースファイルおよびVisual Studioのソリューション(sln)を開きます。
Visual Studioが開きます。画面真ん中上あたりのビルドの設定が「Debug」になっているので、「Release」に変更し、メニューの「ビルド|ソリューションのリビルド」を選択します。ビルドがエラーなく終わればOKです。
TouchDesignerにC++モジュールを配置する
TouchDesignerを起動し、CHOPのCPlusPlusモジュールを設置します。
「DLL Path」の「+」ボタンを押し、C++のCHOPフォルダの下のReleaseフォルダにあるDLLファイルを選択します。
選択したDLLがTouchDesignerに読み込まれ、データが表示されます。DLLを実行中は上書きができないので、プログラムを変更してビルドする際は「Unload DLL」を「1」にすると、ビルドできるようになります。再度TouchDesignerで利用するには「Unload DLL」を「0」にします。