TouchDesigner
VJ

TouchDesignerでVJするときのTipsまとめ

この記事について

TouchDesigner Advent Calendar 15日目の記事です。
最近TouchDesignerでVJをしているさのかずやが、TouchDesignerでVJやる時に気をつけたほうがよいことなどを記します。

VJとは?

音楽イベントで、DJなどの音楽に合わせて映像を出す人です。
用意した(プリレンダリングの)映像ファイルを、タイミングに合わせてエフェクトかけたり、出しかえたりするVJが一般的です。
一方、プログラミングなどでリアルタイムに映像をつくる人たちも多くいて、そういう人をジェネ系VJと呼んだりします。

TouchDesignerでVJをするメリットとデメリット

以下、数回VJしてみた私感ですが…
メリットとしては下記のようなものが挙げられます。

  • ジェネも映像操作もTD内でできる
  • (openFrameworksなどに比べると)動画の読み込みと利用が圧倒的に簡単
  • ノイズ値の生成・調整が簡単
  • 複数の数値(行列)の把握・コントロールが簡単
  • OSCとかMidiとかSyphonとか、信号などのやりとりが簡単

一方、デメリットとしては下記のようなものが挙げられます。

  • エフェクトは自分でつくる必要がある(パラメータの調整などを通して)
  • 完全ランダム値の生成が面倒
  • Macくらいのスペックで長時間使うとだんだん重くなる(詳細不明)
  • 盛り盛りのファイルだと起動に結構時間かかる
  • ただ線繋いでるだけだとできることが限られる(いろいろ覚える必要がある)

この辺は多分使ってみてわかることだと思うので、具体的にイメージできないかもしれません。こういうことを知っておくと予想外のことが起きなくて済む、という程度です。

とりあえずのTips

どんな使い方をするにしろ、これやっといたほうがいいのでは?ということだけ書いておきます。

動画のエンコードを非圧縮(Hapなど)にする

これは別にTouchじゃなくてもそうなのですが。
動画にはエンコード形式というのがあります。H.264と呼ばれるのが結構一般的で、このエンコード形式だと同じ動画でも、いい画質を保ったままかなり容量を軽くできます。圧縮効率がいいというやつですね。
しかし圧縮されている動画は、読み込みに時間がかかります。普段はそんなに気になるほどではないと思うんですが、いくつも映像を読み込んだりループしたりすると、動画の読み込みタイミングでちょっとラグが出ます。

おそらくこちらのエンコードの項目を参考にして頂ければだいたい解決します。
[TouchDesigner] 動画のカクつきを抑える - Qiita

Adobe CCを契約しているならAdobe Media Encorderを使うとサクサクできます。
フリーはこういうのとかをご参考にどうぞ。
おすすめのフリーエンコードソフト11選【エンコーダー】

Audio Device Inを使わない

多分、こいつ結構重くなる原因な気がしてます。2つとか使ってしまうと結構ソフトごと落ちて悲しい思いをします。
代替策としては、Max/MSPなどで音を拾ってOSCに変換してTouchDesignerで受ける、というのが今のところよさそうです。

僕が使ってるやつはクソシンプルなので徐々に改善します。
sanokazuya0306/soundtoosc
それよりも永松先生のおしゃれなpatchをご参照ください。
nama-gatsuo/SolidSubstanceVJ: a VJ set using motifs like mass solid substances

コントローラーを一番上位でまとめて信号だけ送る

例えばMidiコンで操作するとき、繋ぐときと繋がないときとで操作方法分けるのめんどくさいので、コントロール用のUIはつくっておきつつ、Midiコン繋いだらそれはそれで動かせる、みたいなのを一番上位に入れておくのが良さそうです。
下位レイヤーの数値をいじりたいときは、こんがらがらないように気をつけつつ、In CHOPでどんどん送っていく感じが良さそう。

@kodai100 氏のこれ、まだ使ってないけどすごい捗りそうなので使ってみます。

音に合わせたコントロールを自在にできるようにしておく

VJやる上である種当たり前かもしれませんが。
VJソフトみたいにチャンネルレイヤーとかは(作らないと)ないので、簡易チャンネルレイヤーとして、一番最後のTOPの直前で全体暗くできる(NullとCrossとか)ものをつくって、フェーダーをアサインしておくのがよさそう。

総じて

VJソフトとクリエイティブコーディング言語の中間くらいな立ち位置で、使いようによってはすごく使いやすいと思います。これまでプリレンダとジェネ両方使おうとしたらVDMXとoFでSyphonで送るとかやらなきゃいけなかったところ、それをする必要がなくなったのはかなり便利だし、わざわざBuildしなくていいのもすごくいい。
ただ、VJソフトを想定しているとコントロール関係は自分で用意しなきゃいけないし、クリエイティブコーディング言語を想定していると不自由な点がたくさんあるので、その辺を自分でジャキジャキ開発して準備しておく必要がありますね。

VJがんばろう

なんとなく変化してるスクリーンセーバーにならないように、音との気持ちよさをうまく作れるように上手くコントロールしてあげたいですね。身体化できるくらいの仕込みと経験が重要ですね。がんばりましょう。