LoginSignup
2
1

More than 1 year has passed since last update.

Windows上のTouchDesignerでCPlusPlus OPを使用する手順

Last updated at Posted at 2021-07-04

CPlusPlus OP でできる事

自前のC++のソースコードをコンパイルして作成したプラグインを,TouchDesigner上で使用できるようになる.
事前にVisual Studioでコンパイルして作成したDLLファイルを,CPlusPlus OP (TOP/SOP/CHOP/DAT) からパスを指定することで読み込み.実行.
CUDA toolkitをインストールしておけば,同一ソースコードからCUDAを用いたGPUによる計算も可能.
サンプルコード上で仮想の関数が与えられているので,コード作成時にはそれをオーバーライドして使用することを想定.

CPlusPlus OP の実行手順

ここではC:\Program Files\Derivative\TouchDesigner\Samples\CPlusPlus\DATフォルダ中にあるCPlusPlusDATExampleを実行しながら説明する.

Visual Studio のインストール

以下のURLから最新のVisual Studio Communityをインストールする.
https://visualstudio.microsoft.com/ja/vs/community/
インストーラー中で,C++によるデスクトップ開発にチェックを入れておく.
image.png

C++ から DLL ファイルを作成する

TouchDesignerのインストールディレクトリにサンプルコードが保存されている(筆者環境ではC:\Program Files\Derivative\TouchDesigner\Samples\CPlusPlus).
いくつかのサンプルがフォルダに分かれて配置されているが,今回はDATフォルダを実行して説明する.
DATフォルダ以下にあるCPlusPlusDATExample.slnを起動してVisual Studioを立ち上げる.

右側にあるソリューションエクスプローラーで,ソースコードを確認できる.

  • CPlusPlus_Common.h: CPlusPlus OP共通で使用するクラスのヘッダファイル.編集しない.
  • CPlusPlusDATEample.cpp: 作成するクラスCPlusPlusDATExampleのソースファイル
  • CPlusPlusDATExample.h: 作成するクラスCPlusPlusDATExampleのヘッダファイル
  • DAt_CPlusPlusBase.h: TouchDesignerが提供しているベースとなるクラスDAT_CPlusPlusBaseのヘッダファイル.編集しない.

CPlusPlusDATEampleクラスのexecute()関数がTouchDesignerの各フレームで実行される.
image.png
ビルド >> ソリューションのビルド を実行すると,コンパイルが行われDebugフォルダの中にCPlusPlusDATExample.dllというDLLファイルが作成される.

CPlusPlus OP で DLLファイルを読み込み

TouchDesignerを起動して CPlasPlas DATを作成.
Plugin Pathに上で作成したDLLファイルのパスを指定する.
image.png
上手くいけば画像のようにCPlusPlus DAT内に文字列が表示される.

デバッグの設定

Visual Studioでのデバッグ時に,TouchDesignerを自動で起動してブレークポイントに対応させることができる.
Visual Studioで プロジェクト >> CPlusPlusDATExampleのプロパティ を開く.
コマンドにTouchDesigner.exeのパスを記載.(筆者環境ではC:\Program Files\Derivative\TouchDesigner\bin\TouchDesigner.exe
コマンド引数に実行するtoeファイルのパスを記載.(筆者環境では,C:\Program Files\Derivative\TouchDesigner\Samples\CPlusPlus\DATにCPlusPlus_debugger.toeを配置し,$(ProjectDir)\CPlusPlus_debugger.toeと指定した)
image.png
設定を適用してプロパティページを閉じる.
設定が上手くいっている場合には, デバッグ >> デバッグの開始 を実行するとTouchDesignerが自動で起動し,任意のブレークポイントで停止しデバッグが可能となる.

参考:
- Write a CPlusPlus Plugin, https://docs.derivative.ca/Write_a_CPlusPlus_Plugin
- TouchDesigner/CustomOperatorSamples, https://github.com/TouchDesigner/CustomOperatorSamples

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1