今回は数字を扱うオペレーターの 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 に提出してください。使用した画像や動画などあればそれもアップしてください