TouchDesigner × Arduinoでインタラクティブな炎をつくる(2/2)
次にArduinoで息の吹きかけをセンシングして、TouchDesignerの炎と連携させます。
Arduinoで息の吹きかけをセンシング
今回、センサーは気圧センサーLPS25Hを使用しています。
回路の組み立てとスケッチの作成は、以下を参考にしました。
http://skomo.o.oo7.jp/f47/hp47_51.htm
TouchDesignerとArduinoを連携する
Serial DATを使うと、ArduinoとTouchDesignerをシリアル通信させることができます。
▶︎serial1
Connectページ > Port:Arduinoで指定したシリアルポートを選択
Received Dataページ > Maximum Lines:1
インタラクティブに炎を揺らがせる
気圧センサーに息を吹きかけると、気圧の値が変化します。
これを使って、炎を揺らがせるようにノードを組んでいきたいと思います。
まず、息を吹きかけたかをConvert DAT, Select DAT, DAT to CHOP, Math CHOP, Logic CHOPを使って0,1で判定します。
▶︎convert1
Split Cells at: = (※半角スペースと=)
▶︎select1
Selectページ > Select Cols:by Index
Selectページ > Start Col Index:1
Selectページ > End Col Index:1
▶︎datto1
DAT toページ > First Row is:Ignored
DAT toページ > First Column is:Values
▶︎math1
Mult-Addページ > Multiply:100
▶︎logic1
Logicページ > Convert Input:Off When Outside Bounds
Logicページ > Combine CHOPs:Not Or
Logicページ > Bounds:適当な閾値(常気圧と息吹きかけ時の気圧の間くらい)
math1では、気圧センサーから得られる値の変化が小さすぎるので100倍しています。
logic1では、指定した閾値を超えた値を取得した時1を返し、閾値の範囲内では0を返します。
続いて、logic1のトリガーに応じてparticle1の動きを変化させます。
▶︎math2
Mult-Addページ > Multiply:5
Mult-Addページ > Post-Add:3
▶︎math3
Mult-Addページ > Multiply:2
null1, null2を上の写真のようにparticle1のWind,Turbulenceにエクスポートします。
最後に、炎に少し動きを加えます。
lfo1を追加し、以下のようにパラメータを設定してparticle1のTurb Periodにエクスポートします。
▶︎lfo1
LFOページ > Type:Gaussian
LFOページ > Amplitude:0.4
これで、息を吹きかけた時に炎が揺らぐようになりました。
まとめ
最終的なノード構成は以下のようになります。
0コメント