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

これで、息を吹きかけた時に炎が揺らぐようになりました。


まとめ

最終的なノード構成は以下のようになります。

まだTouchDesignerの経験が浅いため、理解の間違っている点などありましたらご指摘いただけると幸いです。


TouchDesigner × Arduinoでインタラクティブな炎をつくる(1/2)

0コメント

  • 1000 / 1000