第7回: オペレータータイプの変換
これまでの授業でCHOP
、TOP
、SOP
の基礎的な部分をやってきましたが、今日はそれぞれのオペレーターのデータの変換方法をやっていきたいと思います。
オペレータータイプの変換はTouchDesignerの独特な機能のひとつです。音や画像、3Dのジオメトリといったデータを相互に、簡単に変換できるのが非常に特徴的で強力な機能です。あるオペーレータータイムにある機能では実現が難しいようなことも、別のオペレータータイプに変換すると簡単に解決するといった事はよくあるので是非覚えてもらいたいです。
データの数値を確認する
/project1/CONVERT_TO_DIGITS
を参照
CHOP、TOP、SOPで扱う音や画像、3Dのジオメトリデーターは数字に置き換えて考えることができます。
DAT to CHOP
や DAT to SOP
を使うとCHOPやSOPの内容をDATのテーブルとして表示できます。(なぜかTOP to DATはないようですが、TOP to CHOP
を間にはさむことで同様なことができます)
ここで重要なのがCHOP、TOP、SOPの内容が全て数字のテーブルとして表現されている点です。
DAT to CHOP
や DAT to SOP
は使う頻度は高くないのですが、データの内容を確認する時に便利だったりします。
オペレータータイプの変換
/project1/CONVERT_OTHER_OPERATOR_TYPE
を参照
各オペレーターの内容が数値で構成されているということは、CHOPからTOP、TOPからSOPなど、違ったオペレータータイプ間の変換も可能です。
↓ の例ではTOPのカラーノイズの横一列の画像データからSOPのランダムに折れ曲ったラインを生成しています。
各オペレーターの使い方については後ほど解説します
TOPのピクセルフォーマット
/project1/PIXELFORMAT
を参照
TOPからCHOPに変換する時重要なパラメーターとして Pixel Format
があります。これはTOPの各ピクセルにどれぐらいの階調を持たせるかを決めるパラメーターで、デフォルトでは8bit fixed(RGBA)
になっています。
8bit fixed(RGBA)
はピクセルの各色につき256段階、計1677万色を表現できるフォーマットです。
大抵の画像や動画は8bitのピクセルで構成されているので通常問題はないのですが、TOP to CHOP
などで画像を数値データとして扱いたい時に、8bit fixedだと強制的に 0~1 の間のみの数値にされてしまい、0未満、1より大きな値は表現できない問題があります。
なめらかなカーブが欲しいのに0-1の範囲で数値がカットされているなと思ったら、Pixel Format
を 16bit float
、または 32bit float
に変更してみてください。
TOP to CHOP / CHOP to TOP
/project1/TOP_AND_CHOP
を参照
TOP to CHOP
は画像のピクセルデータをチャンネルデータに変換します。Crop
のページでどの範囲のピクセルをCHOPに変換するかを指定します。
たとえば Crop > Crop
が Row(U)
だと横一列のピクセルを変換するモードで、縦の列は V Start
で指定します。逆に Column(V)
であれば縦のピクセルを変換するといった具合です。
Rows and Colmuns
や Full Image
にするとすべてのピクセル情報を取り出せますが、画像のサイズによってはかなりのデータ量になるので処理負荷に注意してください。
CHOP to SOP / SOP to CHOP
/project1/CHOP_AND_SOP
を参照
CHOP to SOP
ではチャンネルデータの数値を使ってSOPのジオメトリを作ることができます。Channel Scope
に指定するCHOPのチャンネル名とAttribute Scope
の組み合わせで、ジオメトリの頂点の位置や色、法線方向などをコントロールできます。
SOP to CHOP
はとくに難しい所はありません。欲しいアトリビュートのトグルをOnにするとCHOPに変換されます。
このように、OP to OPのオペレーターを使うことで任意の形にデータを変換をできます。
次はこういった変換を使って何ができるかをいくつか見ていきましょう。
画像を音に変換する
/project1/TOP_TO_SOUND
を参照
Audio Oscillator CHOP
を使って、ピクセルから抜き出したチャンネルデータをオシレーターのウェーブテーブルにして発音させる例です。
画像に回転縮小やブラー、エッジといったエフェクトをかけていくと音のほうも連動して変化します。案外見た目と音が合って見えるのが不思議です。
音からジオメトリを作る
/project1/SOUND_TO_SOP
を参照
Audio Spectrum CHOP
で解析したFFTスペクトルをSOPに変換した後、Revolve SOP
を使って回転体のジオメトリを作った例です。
CHOPで3次元の計算をするのは難しいですが、SOPにデータをもっていった後だと簡単に立体に変換できます。
Copy SOPのタネをCHOPで作る
/project1/CHOP_SCATTERING
を参照
Noise CHOP
平面上にランダムなポイントを配置したジオメトリを簡単に作ることができます。それとCopy SOP
を組合せると平面に配置されたオブジェクト郡ができます。
また、CHOP to SOP
でCHOPからSOPに変換する際に、P
だけでなく pscale
のアトリビュートを作ると Copy SOP
で作られるジオメトリの大きさもコントロールできます。
CHOPレベルでSOPにエフェクトをかける
/project1/SOP_LAG_EFFECT
を参照
SOP to CHOP
でチャンネルデータにしたジオメトリに Lag CHOP
でフィルターをかけた後、 CHOP to SOP
で再度ジオメトリに戻す例です。
Lag CHOP
の Lag par Sample
のトグルを入れておくことで、サンプルのそれぞれに独立したフィルタがかかるのを利用してジオメトリの移動時にやわらかく伸びるようなエフェクトを付加しています。
まとめ
このように、TouchDesignerのオペレーター間のデータを相互に変換しながらの制作スタイルはとても強力です。
制作途中でつまづいたり、何かもうひとひねり欲しいといった時のネタの引き出しとして覚えておくとよいと思います。