第3回 CHOP 基礎

Monday, May 9, 2022

今回は数字を扱うオペレーターの CHOP の勉強をしていきます!CHOP では音のデータや、センサーやデバイスからの数値を取得して扱うこともできます。音のデータなどについては今後勉強することになっていますので、今回はよく使われる CHOP をいくつか見ていきましょう。

サンプルファイル

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

Project Folderの作り方

本題に入る前に Project Folder の作り方をご紹介します!作業の仕方にもよるのですが、自動でアセット用のフォルダを作成してくれて小規模なプロジェクトには便利な機能です。

File > Create Project Folder を選択します。Path は保存場所を指定します。 Project Folder の欄では任意のプロジェクト名をつけます。名前は何でもいいのですが、特になければ第3回なので Day3 にしましょう。Media Folders の全てにチェックボックスを入れて、Createをクリックすると、Project Folder が作成されます。オーディオファイルや画像などのアセットはこちらに格納するようにしてください。

課題を提出する際にはこの Project Folder ごとアップロードしてください。 このような構成にしておくと、他の人にプロジェクトファイルを渡した時に、ファイルへのパスが切れて意図通りに表示されなくなってしまうのを回避できる可能性が高くなります。

Switch TOP with CHOPs

Switch: /project1/Switch

CHOP の勉強に入る前に Switch TOP を用意します。SwitchTOP は入力された TOP に対して index に合致するものを出力します。TouchDesigner での index は0から始まり、0が1つ目の入力になります。 この0から数えるというのは TouchDesigner に限らずプログラミングでよく使うので、今後別の場面でも使うことがあると思います!

Network

Blend between InputsON にして float(32ビット長の浮動小数点数)の値を入れるとインプットをクロスフェードすることができます。

Network

Switch Multi: /project1/Switch_multi

SwitchTOP の入力部分を見てみると Multi-input であることがわかります。つまり何個でも入力として TOP をつなぐことができます。

Network

Switch Constant: /project1/Switch_constant

ここから CHOP を使って index を変化させていきます。まずは ConstantCHOP を使って固定の値を入れてみます。後で変更しやすいように NullCHOP を使うのを忘れないようにしましょう。

Network

Switch Auto1: /project1/Switch_auto1

今度は自動で index が変化するようにしてみます。 LFO CHOPMath CHOPSwitchTOP の index をアップデートしていきます。Math CHOP の To Range を 0 から 5 に設定します。

Network

Switch Auto2: /project1/Switch_auto2

LFO CHOP と Count CHOP で SwitchTOP の index を変化させる方法です。Count CHOP は入力した値からルールに沿ってカウントするのに使います。ここでは入力している TOP が5個なので、ループさせるために Limit を Loop Min/Max、Limit Maximum を 4 としています。

Network

Switch Keyboard: /project1/Switch_keyboard

Keyboard の押されたナンバーキーにより index を変化させる方法です。Keyboard の 入力を取得するには Keyboard In CHOP を使います。 ここでは 0-4 のキーを使いたいので、Keys に 0 1 2 3 4 と半角スペースで区切って入力しています。

Network

FanCHOP を配置して KeyboardCHOP とつなぎます。Operation を Fan In に設定します。こうすることで複数のチャンネルの中から ON になっているチャンネルの index を表示させることができます。

Network

これでキーボードで何も押していない時及び 0 のキーを押している時 index 0 の画像を、1-4のキーを押している時それぞれ index 1-4 の画像を表示することができます。

CHOP でのクロスフェードの一例

Cross: /project1/Cross

CHOP にも Switch CHOP があり、Switch TOP と同様の挙動をしますが、Blend between Inputs がなく単体でクロスフェードをすることができません。クロスフェードは Cross CHOP で実現することができます。

Network

Noise

Noise: /project1/Noise

Noise CHOP を使うと、様々なノイズのアルゴリズムから波形を生成することができます。

Network

Mouse input

MouseIn: /project1/MouseIn

Mouse In CHOP を使うとマウスでの入力を取得することができます。

Network

Clock

Clock CHOP を使うと現在時刻を取得することができます。

Network

Logic

Logic CHOP は条件に従って真偽(0か1)を返します。特定の時刻になった時に何かする、というのに使えます。

Network

Network

本日の課題:Clock CHOPを使って時計を作る

Clock CHOP を使用してアナログ時計を作成してください。.toe ファイルを Teams に提出してください。使用した画像や動画などあればそれもアップしてください

時計参考: /project1/Example

Network

以下秒針の作り方の参考になります。まず、ClockCHOPSelectCHOP をつなぎます。Channel Names のところに sec と入力して sec のみを取得します。

Network

MathCHOPSelectCHOP につなぎます。From Range を 0,60 とし、To Range を 360, 0 にします。こうすることで60秒で360度回転する値ができます。NullTop につないでおきます。

Network

RectangleTOPで Size を変更して秒針っぽくします。centery のところに me.par.sizey/2といれると sizey の値の半分上にずれた値が中心となり、秒針のように先端が中心となって回転させることができます。

Network

TransformTOPRectangleTOP とつないで、Rotate に null1 の値をドラッグ&ドロップして参照を作成します。

Network

時針や分針も同じやり方で追加できます。これに何か組み合わせて作ってみてください!

参考

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

第2回 TOP 基礎