TouchDesignerでキーボード入力のラジオボタンを作る。

 Button COMPは、Button Typeを「Radio Up」にして、同じラベルを付けるとラジオボタンになります。
f:id:DosShrimp:20210501164152j:plain


 ただマウスでボタンを押すのはめんどくさいので、キーボード入力のラジオボタンを作ってみました。


※もっと良い実装を知ってる方、よろしければ教えてください🙇‍♂️

 
 まずは、必要なオペレーターを配置します。今回は1~4のキー入力を使ったラジオボタンを作るので、Keyboard In CHOPを4つ配置して、それぞれCount CHOPとMath CHOPを繋げます。
f:id:DosShrimp:20210501203953j:plain

 
 そしたら、keyboardin1のkeysを1に、keyboardin2のkeysを2という感じにkeyboardinの後ろに付いている連番とkeysを同じ数字にします。
Count CHOPはすべて以下のように設定します。
f:id:DosShrimp:20210501204719j:plain


Math CHOPは、KeyBoard in CHOPの時と同じ要領で、mathの後ろに付いている連番と、RangeパラメータのTo Rangeの最大値を同じ数字にします。
そして、CHOP Execute DATを配置して、以下のコードに書き換えます。

counts = []

def onOffToOn(channel, sampleIndex, val, prev):
	return

def whileOn(channel, sampleIndex, val, prev):
	return

def onOnToOff(channel, sampleIndex, val, prev):
	return

def whileOff(channel, sampleIndex, val, prev):
	return

def onValueChange(channel, sampleIndex, val, prev):

	if(len(counts) == 0):
		for i in range(1, 5):
			counts.append(op("count" + str(i)))
	
	if(val > 0):

		tmpCounts = counts[:]

		tmpCounts.pop(int(val) - 1)

		for j in range(0, len(tmpCounts)):
			tmpCounts[j].par.resetpulse.pulse()

	return


CHOP Execute DATのCHOPsを以下のように書くと、キーボードが押されるたびにスクリプトを呼び出すようになります。
f:id:DosShrimp:20210501211118j:plain


完成です、やったね。
f:id:DosShrimp:20210501170151g:plain
 

 これを応用すれば、MIDIからの入力とかもラジオボタンにできます。


 ボタンの数を増やしたり減らしたい場合は、欲しい分だけオペレーターを用意してforの範囲を変更すればできると思います。ちなみにボタンの数が3つの場合はなんとかコードを書かなくても実装できます()。


 以上。

 

 

PCDJ2021の3Dオンラインギャラリーを担当しました。

 どうも、ヲです。

 今年の2月20, 21日にProcessing Community Day Japan 2021*1が開催されました。その本イベントを盛り上げるために一週間、毎日お題に沿って作品を作り、Twitterに投稿するキャンペーンも開催され、投稿された作品は翌日に3Dオンラインギャラリー*2に掲載されました。

 その3Dオンラインギャラリーを担当させて頂いたので、感想などを書きます。

  

3Dオンラインギャラリー

3Dオンラインギャラリーのロビーの写真

3Dオンラインギャラリーのロビー

 3Dオンラインギャラリーは、大学で触れたことのあるUnityで作成しました。ロビー全体は、PCDJ 2021のサイトの背景に使われているモザイクタイルをテクスチャとして貼り付けています。壁には、7枚の絵が飾られており、それらの絵に入り込むとその日に投稿された作品が展示されている空間に移動します。

 

3Dオンラインギャラリーの空間ら

 

 空間は、デイリーコーディング週間で与えられたお題に沿って作成しました、と言いたいところですが、実際には部屋を先に作成して、後からテーマを合わせてもらいました。なので最終日は、「ブックカバー」というお題になってしまい、「今日のお題は難しい」といった声も見られました(戸惑わせてしまい、申し訳ありませんでした)。

 ※本人から掲載許可は頂いています。

 

 投稿された作品の展示の仕方もただの平面にテクスチャとして貼り付けただけだと面白みがないので、空間に合わせて様々な形にしてみました。他にも空間には色々、設置していて例えば、「絵画」の空間には、展示室っぽく見せるために、Mayaでモデリングしたライトの配置や、「砂漠」の空間の奥の方には砂丘があったりします。

 

感想

 デイリーコーディング週間の期間中の毎日更新が時期的に大学の課題の締め切りと被り、忙しくはありましたが、無事に作成できてよかったです。まだ3Dオンラインギャラリーは観覧することができるので、興味がある方は是非、観てみてください。また、同時期に行われたPCD Japan Gallery*3にも、たくさん作品が掲載されているので、観てみてください。

 そして、制作の機会をくださった運営の皆さまと、投稿してくださった皆さま、ご観覧頂いた皆さまには、感謝しています。ありがとうございました!!

 

*1:PCDJ 2021のサイト https://pcd-tokyo.github.io/

*2:3Dオンラインギャラリー(※PCでご観覧ください) https://pcd2021-3d-gallery.github.io/

*3:PCD Japan Gallery https://pcd-japan-gallery.vercel.app/