次に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
まだTouchDesignerの経験が浅いため、理解の間違っている点などありましたらご指摘いただけると幸いです。