の おと

考えたこと,学んだことを書きます

YCAM インターン日誌(2)〜TouchDesigner編〜

Touch Designer(以降TDとする)を使って,スポーツツールアプリを作った.

今日はTDの勉強会だった.

TDとは

TDはコードを書かずにアプリケーションを作るためのソフト.オペレータを線で結ぶこと,変数をいじることで完結してしまう〜

以前下調べしたので詳しくはこれ

 

shiningcureseven.hatenablog.com

 

 

今回作ったもの

今回作ったものはなかまんボールアプリ.加速度をiPod touchで計測し,値が一定値を超えたらカウントするもの.簡単に言えばiPod touchを振ればポイントが増えていく」アプリを作った〜

f:id:shiningcureseven:20170902162236p:plain

4チームがそれぞれiPod touchを振って,点数が加算されていく.

f:id:shiningcureseven:20170902162319p:plain

今は全部同じ数字だけど,それぞれがカウントされていく.画面はこんな感じ.

アプリ詳細

container1の中身

f:id:shiningcureseven:20170902162456p:plain

まず赤い枠だけの詳細はこのような感じ.左から右へつなげています.

  • oscという通信プロトコルiPod touchからもらったデータを左上のオペレータ,oscin1で拾って来た.
  • その右のselect1で加速度のデータだけを絞った.
  • math1でx,y,z軸のそれぞれの加速度を足し算した.
  • express1に

   1 if me.inputVal >2 else 0

   という関数を書きme.inputValが2より大きいとき1,0より大きいとき0を出力するようにした.

  • count1で1を出力した回数をカウントした.
  • それをtext1に送る.
  • text1では背景色を赤,文字色を白にして,サイズもいい感じに設定した.
  • null1で画面に表示させる.*1

 

text2はコメントを書くところ.この時はcomentsとしか書いてない.

project1の中身

f:id:shiningcureseven:20170902163404p:plain

これを青,白,黄色チームのぶんまでコピペで作った.オペレータをコピペできる.

横幅はme.parent().par.w/2と関数を書いた.階層構造になっているので親の長さの半分とした.

f:id:shiningcureseven:20170902163627p:plain

これが一番上の階層.projectのオペレータの中に上までに説明した階層がある.

windows1でproject1のものを画面表示させる.

buttonは押せばカウントした数字がリセットされるように作った.

button1の中身

f:id:shiningcureseven:20170902165148p:plain

buttonを押すたびにresetとstartが交互に表示される.resetが表示されている間はプログラムが動いている状態でカウントがされる.startが表示されている間はreset状態でカウンタのあたいは0になり,iPod touchを動かしてもカウントされなくなっている.この階層を詳しく学ぼうとすると闇落ちするということなのでこれだけ.

colorの4列目の文字列のみ入力した.

ボタンのtextは押したら変わるので関数をかく.

op('color')[int(op('i')['state']+1),'text']

これはbgオペレータのfontcolorの関数

op('color')[int(op('i')['state']+1),'font']

をコピってきてfontをtextに変えただけ.color表のfont列を適用しようってことだと思う.

opは条件って意味かな?iが1になればstate列を+1する.

 

普段unityを使っている方もこの勉強会に参加していたがTDで簡単に作れることを知って動揺している..すぐできてしまった.

 

 

 

まぁ使ったらわかるよという感じだけど今度の勉強会では講師となってこのアプリを人に教えながら作らねばならないのでガンバリオン

*1:outにしても良かったけどcontainerはこれ以上何もしないのでnullで良かった.