TouchDesignerで条件式を扱う為オペレーターを調べる
TouchDesignerで条件式を扱う為オペレーターを調べてみようと思います。
Expression CHOP
条件分岐用のオペレーターです。 なにも設定しない場合は、入力値をそのまま表示します。
me.inputVal
といは変数はTouchDesigner独自の変数になります。
このexpr0
に条件式を入れることができます。
条件式を書く
式の書き方は以下になります。 式の条件に合っているの場合は、値は1が設定され、合っていない場合は0が設定されます。
//例)入力値が10位上の場合 me.inputVal >= 10
条件式を書く2
上記の例だと0、1以外の値を設定できません。 0、1以外の値を設定するには条件を増やす必要があります。
//例)入力値が10以上の場合は5を設定。それ以外は0を設定 5 if me.inputVal >= 10 else 0
Logic CHOP
論理演算するオペレーターです。 論理演算とは2つ以上の値を比較して正しいか正しくないかを判定することです。
今回は以下の2つの条件を比較します。
//条件A me.inputVal == 6 //条件B me.inputVal == 10
オペレーターのつなぎ方は以下になります。
Mathオペレーターは、constantオペレータで入力した値を、変換するために使用します。
constantで入力された値は、少数を含めた値で入力されるた為、今回の条件式に当てはまりづらいです。 OPタグのIntegerプロパパティをRound(四捨五入)
にして、整数のみが入力されるようにします。
またconstantオペレータは手入力しない限り、0~1の範囲で値が設定される為、constantオペレータのRangeタグから、To Range
の値を調整します。
論理演算の条件を設定する
最後にLogic CHOPで論理演算の条件を設定します。
Combine CHOPs
の設定で下記の条件を設定することができます。
設定値 | 説明 |
---|---|
And | 条件Aと条件Bが両方1(ture)の場合1(ture) |
Or | 条件Aと条件Bのどちらか一方が1(ture)の場合1(ture) |
Exclusive Or | 条件Aと条件Bのどちらか一方だけが1(ture)の場合1(ture) |
Not And | 条件Aと条件Bのどちらも1(ture)場合0(false) |
Not Or | 条件Aと条件Bのどちらか1(ture)場合0(false) |
Equivalence | 条件Aと条件Bの値が同じ場合 1(ture) |
論理演算の条件にANDを設定してみると、express1(条件A)と、express2(条件B)が1(true)の場合Logic CHOPの値は1(true)になる。
まとめ
条件式は、他のプログラムと考え方は同じなので難しくはありませんが、独自の変数の書き方などは覚えていかなければなりません。 他の条件式用のオペレーターも調べていこうと思います。