TouchDesigner最初の一歩④ 音でインタラクティブ
今回は 3DCGをCHOPを使って音に反応する映像を作ります
CHOPを使って音を入力,加工し、 それをもとに3DCGを動かします 。
具体的には、音のボリュームに反応して、サイズの変化する3Dの箱を作ります。
まず、Geometry COMP作成して下さい
その中にBox SOPを作成します。
ボBox SOPの後ろにTransform SOPを接続します。
そして最後にnull SOPを接続します。
下の画像のような状態に なります。
・Tips
Nullを接続する手法は とてもよく使います
これは重要ですので覚えておいて下さい
オペレーターとオペレーターの間に、違う オペレーターを挿入する場面が多々あります
そういった場合 に最後に nullを接続することで 最終的になアウトプットのフラグを固定します。
この手法は SOP だけでなく TOP,CHOPなどでも多用します
Transform SOPは入力されたSOP入力されたSOPに対して、位置、回転、スケールなどを変更する機能を持つSOPです。
scaleのパラメーターを操作してみてください。
値の変化によってBOXのサイズが変わります。
次に、Geometry COMPをレンダリングしてください。
前回行った手順の通りにやれば問題ありません。(URL)
Geometry COMPの中ではNull SOPのみ、レンダーフラグを立ててください。
これで、BOXをレンダリングする部分までできました。
Tips
Render TOPの右下に水色の●があります。これは、ディスプレイフラグです。
このフラグをオンにすることで、オペレーターの画像が背景に表示されます。
複数のオペレーターのフラグを立てることができるので、オペレーター同士の前後の画像の変化を見たい時や、最終的なアウトプットを常に表示したりなどの使い方ができます。
次は、音の入力を作成します。
音声ファイルの入力は、Audio File in CHOPを使います。
(音声ファイルをTD上にドラッグ&ドロップでも可能です。)
Audio File in CHOPはデフォルトでは、サンプルとして用意された音源が入っています。
デフォルトだと、ちょっと不思議なテクノミュージックになってますが、音的に使いにくいので音声ファイルを変更します。
同じサンプルファイルのフォルダに「SonarBlackie666.wav」という心音のブザー音のようなものが入ってます。
パラメーターのFileの+マークから音源を変更してください。
また、音を出力する(スピーカー、ヘッドフォンなど)場合はAudio Device Out CHOPを使用します。
次に、入力された音からボリュームの数値を取り出します。
Audio File in CHOPの後ろにAnalyze CHOPを接続してください。
そしてFunctionのパラメーターをMaximumにします。
Analyze CHOPは入力された、波形を文字通り分析するCHOPです。
Function部分を切り替えて、最大値を出力したり、最小値を出力したりといろいろ便利です。
よく使いますので、覚えておきましょう。
Analyze CHOPの後ろにTrail CHOPをつなぎます。
Trail CHOPは入力される数値の時間変化を記録するものです。
Trail CHOPの波形を見ると、ブザー音に合わせて、数値が高くなっていることがわかります。
(病院の心拍あらわしてるやつみたいな感じです。)
次に、先ほど作った音のボリュームの値をBOXの大きさにあてはめます。
つまり、CHOPの値をSOPへエクスポートします。
Geometry COMP内のTransfrom SOPのScaleのパラメーターへ、Analyze CHOPのchan1をエクスポートしてください。(scaleはX,Y,Zで3つに分かれてます、3つともに代入してください。)
Analyze CHOPとTransfrom SOPは違う階層にいると思います。
画面左上のPane layoutからレイアウトタイプを選択することで、エディット画面を複数に分解することができます。
これを使えば異なる階層でも、値のエクスポートをすることができます。
(下の画像の赤の部分です。)
エクスポートができたら、Render TOPを見てみてください。
音のボリュームに合わせて、箱が動いているのがわかります。
ですが、音が出ない部分では、scale 「0」となってしまうため、箱が消えてしまいます。
これを解消するため、math CHOPを使います。
Transfrom SOPのscaleの値が、 「1+音のボリューム」となれば、BOXのサイズは最低でも、1になります。
なので、箱は常に画面に現れることにまります。
では、やってみましょう。
Audio File in CHOPとAnalyze CHOPの間に、math CHOPを作成します。
オペレーターどうしの間にオペレーターを挿入するときは、線の上で右クリックし、「insert operator」でできます。
作成したmath CHOPのMult-addのタブの、pre-addを「1」にしてください。
これで、入力に対して、1を足した値が出力されます。
math CHOPは入力を足し合わせたり、かけたり、任意の値を足したりなど、よく使うオペレーターです。
ぜひ、覚えてください。
これで、箱が、小さくなりすぎることがなくなりました。
今回の音でインタラクティブについては、以上です。
簡単な内容ですが、この基本的使い方がとても大切です。
SOPを違うものに変えてみたり、自分で、いろいろ試してみましょう。