第1回: はじめはじめるにあたって

TouchDesignerのインストール

ユーザー登録

TouchDesignerを使うには、開発元のDerivativeにユーザー登録をする必要があります。

登録は http://derivative.ca/Login/RegisterForm.asp のページから

名前やメールアドレス、ユーザー名とパスワードを入力します。
ロボット除けの簡単な質問もあるので答えて Submit を押すとユーザー登録は完了です。
登録が正常に完了していれば入力したメールアドレスにDerivativeからメールが届いているはずです

メールが届いていれば https://www.derivative.ca/Login/LoginForm.asp からログインできます。 ↑ で指定したユーザー名とパスワードを入力してきちんとログインできているか試してみましょう

TouchDesignerのダウンロード

TouchDesignerは2019年4月現在、WindowsとmacOSで使うことができます。
比較的頻繁にアップデートされているので何か挙動がおかしい、バグかな?と思ったら最新のバージョンがリリースされていないか確認するのもいいでしょう。

Release Notes にはこれまでのバージョンアップの変更点がまとめられています。
追加された新機能や、修正されたバグの情報などがのっているので定期的にチェックしましょう。

各OS用のTouchDesignerをダウンロードして、インストールしてください。

Windowsの場合はダウンロードした .exe ファイルをダブルクリックするとインストーラーが立ち上がるので、それにしたがってインストールしてください。

macOSの場合は .dmg をダブルクリックしたウィンドウから出てくる TouchDesigner をアプリケーションフォルダーにコピーしてください。

Experimental版

TouchDesignerには通常のリリースとは別に Experimental と呼ばれるテスト版のリリースもあります。

Experimental版は多少不具合のある可能性がありますが、次期バージョンで搭載予定の最新の機能を試すことができます。

今の段階でExperimental版にしかない機能としては、

などがあります。

最新の機能が試せてエキサイティングではありますが、この講座では基本的に通常版を使っていこうと思っています。

起動 → ライセンスの発行

TouchDesignerを起動するとグレーアウトした画面の上に Key Manager ウィンドウが開いた状態になると思います。これは、TouchDesignerを動かすにあたって必要なライセンスキーがないぞという状態なので、さきほど登録したユーザー名でログインしてライセンスキーを取得します。

ユーザー名とパスワードを入力して Sign In ボタンを押してください。

そうすると画面が変わると思うので、Non-Commercial と書かれたリストの部分をクリックして、 Create Key ボタンを押してください。
これで現在使っているコンピューターにTouchDesignerの Non-Commercial ライセンスがインストールされた状態になります。ライセンスキーが正しくインストールされるとグレーアウトしていた背景が消えて、編集できる状態になると思います。

TouchDesignerのライセンスの種類

TouchDesignerには4つのライセンスの形態があります。
https://docs.derivative.ca/Licensing

Non-Commercial
無料で使用可能、ただし、映像の解像度が 1280x1280px までに制限される。
動画のストリームや保存など、いくつかの機能に制限がある。商用利用不可
Commercial
$600 / 年間保守 $300。解像度、動画のストリームや保存などの制限がない。
商用利用可
Education
$300 / 年間保守 $150。機能的にはCommercial版と同等。学生のうちはこれがいいかも?
商用利用不可
Pro
$2200 / 年間保守 $1600。プロ向けの特殊なデバイスを使える他、プロジェクトファイルにロックをかけて中身を見られないようにする等の機能がついたもの。たぶん普通の人は使わなくても大丈夫
商用利用可

この授業の内容は Non-Commercial 版で動くように進めていきますが、ある程度慣れてきて映像の解像度がもっと欲しいとなった場合には Education のライセンスを買うといいかもです

TouchDesignerの概要

TouchDesignerを起動すると、↑ のような画面が立ち上がると思います。
各UI要素の細かい解説は次回以降にやりますが、今回はまずTouchDesignerがどういう形で動いているのかの概要を解説します。

TouchDesignerの成り立ち

まず、TouchDesignerを使う上で一番重要な要素としてオペレーターがあります。起動時の画面に表示されている箱のようなものがそれです。

TouchDesignerには数百種類のオペレーターがあり、それらは画像を扱うもの、数字を扱うもの、文字を扱うもの、3Dデータを扱うものなど、それぞれ扱うデータによって6種類のカテゴリに分けられています。

個々のオペレーターは単純な機能しかもっていないもですが、オペレーター同士をコードで繋ぐことでさまざまな効果やロジックを生み出すことができます。

オペレーターの接続によるプログラミングとは別に、GLSLPython といったテキストベースのプログラミング言語を使うとさらに柔軟に、さまざまな表現を実現できます。また、TouchDesignerの基本的な部分は C++ で作られており、プラグイン機能を使えばC++を使って標準では入っていない機能を追加することもできます。参考

コンピューターの中で何が起っているのか?

少々余談になりますがコンピューターを使って何かを表現する場合、とくにリアルタイムで処理しなければいけない時には、コンピューターの中で起っている事にをどれほど想像できるか、というのは結構重要なスキルです。(寿司職人が魚のことを理解しているのと同じように)

ものすごいざっくりとな所から説明すると、コンピューターは何かを計算するためのもので、現代のPCにはCPUGPUの2種類のプロセッサ(計算をするためのデバイス)が入っています。

CPU
Central Processing Unit、コンピューターの中のほぼすべての計算をする装置。OSやTouchDesignerなどのアプリケーションなどはここで動く。最近では4-16個程度の計算ユニットが入っていることが多い
GPU
Graphics Processing Unit、モニターに表示する画像を計算するユニット。その昔、とくに3D的なものを表示(レンダリング)する時に、計算量が莫大になってしまう問題を解決するために発展したもの。1500-4000個程度の計算ユニットが入っており、CPUに比べて大量の処理を並列に計算できる。そのかわり個々の処理はCPUほど複雑なことはできない側面もある

参考: [5分で理解]GPUとは?CPUと違いや性能と活用

普通に考えると処理の速そうなGPUですべての計算をやってしまえばいいのではないか?と思うかもしれませんが、GPUはCPUに比べると複雑な手順が苦手という欠点があり、GPUをきちんと動かすにはそれなりのノウハウが必要になります。一方CPUのほうは汎用的に動くことを目標として開発されているので常に安定した速度で動き続けます。

TouchDesignerでは画像を扱う TOP や、3Dデータを扱う時に登場する MATSOP がGPU担当、その他 COMPCHOPDAT がCPU側で動く事が多いです。

とりあえず、CPUとGPUというのがあるらしい。GPUのほうが早いので、できるだけ使っていったほうがいい という所だけ理解してもらえればOKです。

パソコンの選び方

TouchDesignerはWindowsとmacOSで動作するというふうに説明しましたが、基本的にはWindows環境を推奨します。

理由としては、TouchDesignerがmacOS環境に対応してから2年程度と日が浅いため、ちょっとした所で不具合が出る可能性があるのと、単純にコストパフォーマンスの問題からです。CPUよりGPUの処理のほうが早いという話を前述しましたが、リアルタイムに映像を処理するにあたってはそれが顕著に表れます。

こちら のGPUの性能を比較できるサイトによると、MacBook Pro 15インチモデルのGPUの性能は15万円程度で買えるWindowsノートブックよりだいぶ劣ってしまう上に、価格差で言うと倍程度の開きがあります。

なので映像表現をガッツリやりたいということであればWindows環境をオススメします。

逆に、Windowsの欠点としてオーディオドライバーの品質が全体的にあまりよくない点が挙げられます。音を遅延なく安定して再生するためにはわりといいオーディオインターフェイス(RME Babyface等)を使わざるを得なく、設定もわかりにくい部分があるので音をメインに考えている人はmacOSを選ぶメリットがあると思います。

他に気をつけるポイントとしては:

ゲーミングノートPCの比較とおすすめ 2019

(ちなみに僕は Surface Book 2DAIV-NG7620S2 を使っています)