第4回 Live Visuals ツールを作る1 UIを使う

Tuesday, May 17, 2022

今回から3回に渡ってリアルタイムにビジュアルを変化させていくパフォーマンスをするためのベースを作っていきます!第1回はシンプルな UI (ユーザーインターフェイス)の使い方を勉強します。

サンプルファイル

chimanaco/takara-univ-media-programming-2022
04が本日のディレクトリです。

はじめに

前回お話したプロジェクトフォルダーを作成してから作業を始めてください。次回は今回作るものをベースに作業していただくのでプロジェクトフォルダごと Teams にアップしておいてください。 今回欠席されている方には次回開始時にはサンプルファイルを用意いたします。

Perform Mode

今までは Network Editor の中で色々やってきましたが、ここでディスプレイへのイメージの出力の仕方についてお話します。

ディスプレイにイメージを出力するには Window COMP を使います。デフォルトですでに perform と名前がついた Window COMP がルートにあります。perform を選択すると Window Operator のところに project1 が指定されています。これは project1 がディスプレイに出力されるという意味です。

ディスプレイが1つの場合は Monitor に 0 を指定します。複数ディスプレイの場合はここの数値を1以上にすることで別のディスプレイに出力することができます。

project1 を選択し、Look タブの Background TOP を見ると ./out1 という指定があります。これはこの Container の中の out1 と名前のついた TOP を背景として表示するということです。

project1 を選択し、Layout タブの WidthHeight を見ると 1280 と 720 になっています。これがディスプレイに Window として開かれるサイズになります。

Window の開き方には2種類あって、1つ目は Open as Separate Window の横にあるボタンをクリックすると出てくる floating window です。Network Editor を編集しながらできるのでなかなかいいのですが、Editor も同時に開いているため、GPU に負荷がかかりフレームレートが遅くなることもあります。

そこで使うもう1つが Open as Perform Window で、こちらをクリックすると Network Editor が非表示になり、出力結果の Window だけになります。処理負荷も抑えることができます。 F1 がこのモードへのショートカットキーで Esc で元の Editor mode に戻ることができます。

これまでの設定だと TouchDesigner では 1280x720 の Window で表示していて、プロジェクター等の表示したいスクリーンが 1920x1080 だったとします。これに対処するにはいくつか方法があります。

1つ目は project1WidthHeight をそれぞれ1920と1080に変更する。

もう1つは perform を選択して Opening sizeFill に設定する方法です。これは最終出力の解像度がわからないときなどにお手軽に使えるのですが、この方法はディスプレイが増えた時に使えないので1つ目の方法を採用します

デフォルトでは上部にボーダーが表示されるので、perform を選択して BordersOff にします。こうするとフルスクリーンのようになります。

画面全体に表示はできるのですが、講義で使用している Non-Commercial 版だと1920x1080の解像度が使えないので、最終出力結果は1280x720のものが引き伸ばされて表示されています。

TOP の切替を作る

一番右にある out1 を残して全て削除します。 以前使った SwitchTOP を使って3つの TOP が切り替えられるようにしてください。どんなものでも構いません。

Network

ここで SwitchTOP に入ってくる全ての input の解像度をあわせましょう。compositeTOP で合成する際の方法は以前行いましたが、 FitTOP を使う方法もあります。例えば元々正方形の TOP を1280x720 にする場合は、まず common タブの Resolution で 1280 と 720 を指定します。

Network

続いて Fit のところを Fit Horizontal にすると元の TOP の上下を切った形で表示されます。これは画像に応じて調整してみてください。

Network

ここで F1 を押して Perform Mode にしてみても、 このままだと変化を加えることができません。 例えば前回やったように 1, 2, 3 のキーにスイッチのインデックスをアサインして切り替えるというのももちろんできるんですが、より操作をわかりやすくするために UI を使っていきます。

Basic Widget を使う

自分で色々作っていくこともできるんですが、TouchDesigner が既に用意してくれているものがあるので、まずはこれらを使ってみましょう。

ラジオボタン

まずはラジオボタンを使ってみます。Palette > Derivative > UI > Basic Widgets とたどって、 buttonRadio を選択して Network Editor にドラッグ&ドロップします。

Network

ラジオボタンが配置されました。これをカスタムしていきます。

Network

3つの TOP を切り替えるので、Button Labels のところを 0 1 2 というようにします。A B C のようにすることもできます。

Network

Output に NullCHOP をつなぎます。ボタンに応じて出力される値が変化します。

Network

Button Labels は文字列にもできます。ここを変えても出力される値は 0 から始まる数字になります。

Network

Values タブの Name 0 を変更するとチャンネル名が変わります。

Network

出力結果には影響しませんが、Widget Label を変更するとボタン横のラベルが変更されます。

Network

SwitchTOP の Index から ラジオボタンの後の null を参照すると、ラジオボタンから Switch の Index を変更することができるようになりました。

Network

F1 を押して Perform Mode にすると UI が左下にこのように表示されて操作もできます。

Network

横向きスライダー

パラメーター変化用にスライダーを配置します。UI が並べやすいので横向きのものを使用します。Palette > Derivative > UI > Basic Widgets とたどって、sliderHorz を選択して Network Editor にドラッグ&ドロップします。

Network

ValuesName0 を変更するとチャンネル名が変更できます。

Network

ここではスライダーのあとに繋いだ NullCHOP を LevelTOP の High R から参照するようにしました。

Network

ここで Perform Mode にすると、ラジオボタンが見えなくなってしまいます。

Network

これは UI が重なって表示されているためです。UI を並べて表示させるには ContainerCOMP の Align 機能を使います。buttonRadio 上部にある input から containerCOMP の下部の口につなぎます。こうすると container の中に buttonRadio が入ります。

Network

さらに sliderHorz もつなぎます。childrenタブの Align を Top to Bottom にすると上下に並びます。並び順はアルファベット順です。

Network

各 UI が横幅450、縦26なので、containerCOMP のサイズを縦450横52にします。 Network

F1 を押すと UI が縦に並んで表示されるようになっているはずです!これで操作ができるようになりました。 Network

横向きスライダーの値の範囲を変える

スライダーはデフォルトだと 0 から 1 の範囲で遷移をします。これを例えば 0 から 100 の遷移としたい場合は MathCHOP などを使うと簡単に変更できます。

本日の課題: UI を使ってリアルタイムに変化するビジュアルを作る

ラジオボタン等で SwitchTOP を切替、スライダー等を1つ以上追加してビジュアルを変化させるようにしてください。.toe ファイルや画像などの入ったプロジェクトフォルダごと Teams に提出してください。

スライダー等の UI を1つ以上使っていれば、後はどんな値を使っても構いません。clock, mouse, LFO, mouse, etc…

TouchIn / TouchOut テスト(オプション)

  • IP アドレスの探し方
  • Firewall に注意

第5回 Live Visuals ツールを作る2 Animation COMP

第3回 CHOP 基礎