第8回: オペレータータイプ間の変換
本日のtoeファイル ← ダウンロードしておいてください
今日は、今までやってきたことを踏襲しながら、もうしこし実践的にTouchDesignerで作品を作っていくプロセスについてやっていこうと思います
これまでは、単一のオペレータータイプを使って、言葉でいう所の 単語 的な要素を勉強してきたのですが、今日は複数のオペレータータイプを組み合わせて 熟語 (イディオム) のようなことをやっていこうと思います
TouchDesignerでは、**音や画像、ジオメトリといった要素を相互に、簡単に変換できるのが非常に特徴的で強力な機能の一つとなっています。**それらを使いこなせればかなり表現に幅ができます
オペレータータイプの変換
コンピューターでデータを扱う以上、全ての要素は数字に置き換えることができます。
TouchDesignerでは、TOP to CHOP、CHOP to SOP などのオペレーターで、あるオペレーターのデータを、別のオペレーターのデータとして無理矢理解釈して使う、という機能があります。

TOP <-> CHOP
/project1/top_from_to_chop を参照
TOP はピクセルデータを扱うので、各ピクセルに RGBAなどの色情報 が入ったもの、として処理されます。
例えば TOP to CHOP では、TOPの画像の任意の行や列をとりだしてきて、CHOPとして抜き出すことができます。

TOP to CHOP には全てのピクセルの情報を取り出すオプションもありますが、大抵の場合滅茶苦茶重くなるのでTOPの解像度に気をつける必要があります。
Fit TOP や Resolution TOP で調整してから使いましょう。
逆に CHOP to TOP でCHOPのチャンネルデータからTOPを作ることも可能です。

画像から音を鳴らしてみる

折角画像からCHOPの値がとれたので、それを Audio Oscillator CHOP を使って鳴らしてみましょう。エッジのはっきりした画像ではキンキンした音、Blur TOP などを使ってエッジをなめらかにするとこもった音になるはずです。
入力するTOPをいじいじして色々試してみてください。Edge TOP や、Transform TOP などが面白かったです。
先週説明した Noise TOP の Noise > Period や、 Harmonics のパラメタを変更すると、画像の複雑さが音の倍音と同じような意味をもっているのが実感できると思います。
TouchDesignerでは画像や映像ファイルをネットワークエディタにドラッグ&ドロップすると Movie File In TOP などに変換されます。また、Screen Grab TOP を使ってデスクトップの画像をキャプチャしてもいいかもしれません
CHOP <-> SOP
/project1/chop_operation1 を参照
では、次にCHOPのデータをSOPのジオメトリに変換する CHOP to SOP を紹介します
TOP to CHOP は、任意の列の各ピクセルの RGBA の値をCHOPのデータとして取り出す物でした。それと同じように、CHOP to SOP では、パラメーターの Channel Scope で指定したチャンネル名を、それぞれ Attribute Scope で指定したSOPのアトリビュートに変換していきます。
↓ の例では、tx, ty, tz の名前がつけられたチャンネルを、 P (点の位置) の x, y, z の値に割り当てています。
この Attribute Scope の指定の仕方はちょっとわかりにくいかもしれませんが、右側の三角ボタンをクリックするとよく使われるアトリビュートのショートカットが出てくるので、それを活用するといいと思います。

ノイズの画像からジオメトリを生成する
↓ は、ノイズの画像からなめらかな曲線のジオメトリを生成する例です。
TOP to CHOP の Crop > Crop のパラメーターが Row(U) 、 または Col(V) の場合、V Start か U Start のパラメータを変更すると、TOPの画像のうちどの列をCHOPのデータとして取り出すかを指定することができます。
この例では Noise CHOP の値をつかって取り出す位置をアニメーションさせています

/project1/chop_operation1/example1 には、このジオメトリを使ってもうちょっとエフェクティブな効果をつけた作例があります。
CHOPでジオメトリにエフェクトをかける1
/project1/chop_operation2 を参照
次に、SOPのアトリビュートをCHOPのデータに変換する SOP to CHOP です。
変換したいアトリビュート名を Attribute Scope に指定して、それをどういった名前のチャンネルにするかを Rename Scope で指定します。

先程の CHOP to SOP と組合せると、SOPだけではできないような色々な効果がかけられます。
実際、TouchDesignerのSOPはそれほど高機能ではないので、ジオメトリの変形もCHOPで行うことが多いです。SOPよりもCHOPのほうが自由度、速度ともに高い場合がままあります。

CHOPでジオメトリにエフェクトをかける2
/project1/chop_operation3 を参照
SOP to CHOP と CHOP to SOP の間のエフェクトとして Lag CHOP を使うと簡単なバネのシミュレーションのようなことができます。

通常の Lag CHOP の使い方だと、1サンプルの値に対してフィルターをかけることが多いのですが、Lag > Lag par Sample のパラメーターをONにするとマルチサンプルのデータに対してフィルターをかけることができます。
さらに、 Overshoot のパラメタを調整することでバネのゆりかえしのような効果をつけることができます。

/project1/chop_operation3/example1 に、パラメタを変えた二つの要素に色をつけたような作例があります。
CHOPでジオメトリにエフェクトをかける3
/project1/chop_operation4 を参照
次に、オーディオの波形をそのままジオメトリに適応してしまうという例です。
新しい要素としては、音の波形のサンプル数と、変形させるジオメトリのポイント数を合わせる必要があったので Info CHOP を使って、CHOPのサンプル数を取得して、それをもとにして Line SOP の Number of Points パラメタを変更しています。
また、オーディオの波形をY方向の変異とするために Replace CHOP を使って、SOP to CHOP で得られたCHOPデータの ty チャンネルを上書きしています。
同様なことは Marge CHOP でもできるのですが、色々設定がややこしくてハマりがちなので Replace CHOP で済むような所はなるべく Replace CHOP を使ったほうがいいと思います。

/project1/chop_operation4/example1 に、波形のジオメトリをベースにして色々とエフェクトを足したものがあります。
来週
来週はヒトコマまるまる使って演習にしようと思っています
こういう感じものが作りたい!というお題を考えてきてもらって、それをヒトコマの中で作れる所まで作ってみようというこころみです。
あまりに壮大すぎるとヒトコマで収まりきらないので、できればアイデアが2~3個あると安心です。