のぐそんブログ

暗いおじさんがシコシコ書くブログです。

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)になる。

まとめ

条件式は、他のプログラムと考え方は同じなので難しくはありませんが、独自の変数の書き方などは覚えていかなければなりません。 他の条件式用のオペレーターも調べていこうと思います。