
今回は数字を扱うオペレーターの CHOP の勉強をしていきます!CHOP では音声データや、センサーやデバイスからの数値を取得して扱うこともできます。音声データやセンサーなどは数回後に勉強することになっていますので、よく使われる CHOP をいくつか見ていきましょう。
サンプルファイル
chimanaco/takara-univ-media-programming-2021
03が本日のディレクトリです。
Switch TOP with CHOPs
Switch: /project1/Switch
CHOP の勉強に入る前に Switch TOP を用意します。SwitchTOP は入力された TOP に対して index に合致するものを出力します。TouchDesigner での index は0から始まり、0が1つ目の入力になります。

Blend between Inputs を ON にして float の値を入れるとインプットをクロスフェードすることができます。

Switch Multi: /project1/Switch_multi
SwitchTOP には何個でも入力として TOP をつなぐことができます。

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

Switch Auto1: /project1/Switch_auto1
今度は自動で index が変化するようにしてみます。 LFO CHOP と Math CHOP で SwitchTOP の index をアップデートしていきます。

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

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

CHOP Execute DAT を使って以下の Python のコードを書きます。
# Print for debugging
print(channel.index)
# Update a value on a parameter named "value0" for an operator named "constant1"
op('constant1').par.value0 = channel.index;

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

Noise
Noise: /project1/Noise
ランダムな波形を生成します。様々なタイプのノイズがあります。

Mouse input
MouseIn: /project1/MouseIn
マウスでの入力を取得することができます。

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

Logic
条件に従って真偽(0か1)を返します。


本日の課題:Clock CHOPを使って時計を作る
Clock CHOP を使用してアナログ時計を作成してください。.toe ファイルを Teams に提出してください。使用した画像や動画などあればそれもアップしてください
時計参考: /project1/Example
