TouchDesignerオーディオリアクティブ表現

オーディオリアクティブ表現とは

音に反応してビジュアルをリアルタイムに生成する表現手法であり、古くからMacやWindowsのメディアプレイヤーにサウンドビジュアライザーとして搭載されていることが多い。オーディオリアクティブなコンテンツを制作するツールとしては、After Effects、VJ系ソフト、Cycling’74 Max、Unity、近年ではウェブサービス(一例:https://musicvid.org/)も存在する。

オーディオリアクティブ表現は、広い意味ではオーディオビジュアルアートの中にも含まれるが、オーディオリアクティブはリアルタイムに音データを解析してビジュアル化するものであり、編集によってオーディオビジュアルとしての相乗効果を生んでいるものとは仕組みが異なる。作品制作の上ではこれらの手法を組み合わせて制作しているものも多く、近年では照明やロボット技術との連動など、多様な表現手法が生まれている。

Back To Top

今回用いる手法

実際に音を解析してビジュアル化するには多くの知識を必要とする。TouchDesignerでは音を解析するオペレータが多数用意されていて、アルゴリズムの部分やビジュアル化の部分を元から作成できるのでオリジナルな表現を比較的容易に生み出すことができる。

今回は、下図のように画像を疑似3D化した上でHeight Mapの変化量として、音の大きさを入力する。

Back To Top

サウンド解析

TouchDesignerではサウンド解析するオペレターが複数用意されている。
今回はAnalyze CHOPを利用して、音の大きさ(音量)に反応する数値を取得する。

 

①サウンドデータの再生

Audio File In CHOPとAudio Device Out CHOPを追加してワイヤリングする。

通常はこれだけでサンプルミュージックが再生される。もし、音が出ない場合はAudio Device Out CHOPのパラメータ(下図)のDriverやDeviceを変更してみる。

今回は単純にするためにAudio File In CHOPのパラメータでモノラル音声(下図)に設定しておく。

 

②Analyze CHOPの追加

下図のようにAudio File In CHOPからAnalyze CHOPをワイヤリングする。
Analyze CHOPは、平均値や最大値等、様々な値を取得可能なオペレータ。

Analyze CHOPのパラメータのFunctionには多数の設定があるが、RMS Power(下図)に変更する。RMS(二乗平均平方根)による解析値が、人間が感じる音量に近いと言われている。他の設定も試して見ると違いがわかりやすい。

 

③音の一時的な停止

プログラム中は音を停止させておきたいことも多い。音の再生/停止はスペースキーを押すことでも可能だが、この方法ではプログラム全体が停止する。Audio Device Out CHOPのActiveをOFF(下図)にする方法であれば、音は出力されないだけで解析処理はプレビューできる。

 

④その他の解析手法(参考)

Analyze CHOPの前にAudio Filter CHOPを入れることで特定の周波数の音量を取り出せるが、どの周波数帯が適しているかは音楽によって異なるので今回は利用していない。また、音量だけではビジュアライズの表現としては限界がある。その場合はAudio Spectrum CHOPを利用して解析する手法(下映像)もある。

Back To Top

実験1 Circle TOPのradiusに割り当てる

下図のように、Circle TOP、Transform TOP、Out TOPを追加する。

Analyze TOPをアクティブにして、Transform TOPのパラメータのScaleにリンクする。

Back To Top

実験2 BoxのScaleに割り当てる

①SOPの使い方

下図のようにオペレータを配置して接続する。この手法は3DCGプログラミングをTouchDesigner風に表現しているもので、OpenGLプログラミング等を知っていれば理解できるが、詳しくない場合はこういうルールだと覚えておく。

特に注意が必要な部分として、Geometry COMPは単独で追加するのではなく、SOPの出力付近で右クリックしてからOP Create Dialogを表示させて追加する(下図)。Geometry COMPは一種のコンテナにあたる。内部階層をカスタマイズ可能な特殊なオペレータであり、単独で追加した場合はTorusがGeometry COMPの内部階層に自動的に追加されてしまう。今回は外部のメッシュとしてBox SOPをGeometryに登録したいので、下図の方法でGeometry COMPに追加する。

また、Render TOPとGeometry COMP、Camera COMP、Light COMPは自動的にリンクされる。

 

②アニメーション設定

今回は少し動きを持った表現として、BoxをXYZ方向へ回転するアニメーションを設定する。回転を操作するには、Transform SOPのRotateのrx、ry、rzにabsTime.frameを設定する。

absTimeは、TouchDesignerを起動してからのトータル時間を読み出せる。.secondsで秒、.frameでフレーム単位(1/60秒)となる。Rotateの値が0~360で1回転した後、数値が増加しても360毎に回転を繰り返すので、absTimeを使うことで回転し続けるアニメーションを設定できる。

 

③サウンド解析の追加

実験1と同様に、Audio File In CHOP設定、Audio Device CHOP、Analyze CHOP(RMS Power設定)を追加して、Analyze CHOPをTransform TOPのScaleへ割り当てる。

Back To Top

実験3 Height Mapを利用した3D表現

Height Map(高さマップ)とNormal Map(法線マップ)を利用すれば、疑似的な3D表現を作り出すことが可能。この仕組みを理解するためにはComputer Graphics技術の広範囲な知識が必要となる。ここでは、すでに組み上げたプロジェクトファイルを配布して、オーディオリアクティブに使える部分のみ解説していく。

 

①プロジェクトファイルのダウンロード

以下URLからダウンロードする。

下映像のように左上のスライダーを動かすことで、Height MapのDisplacement Scaleを変化させて凹凸を変化させることができる。Movie File In TOPの読み込み画像をいろいろ変更してみよう。

Height Mapは地形データの生成にも使われる手法。ここからダウンロードした画像を読み込めば、下図のように地形のような表現が可能。

 

②Height Mapを利用したオーディオリアクティブ表現

下図の点線部分を追加する。
Slider CHOPの流れで接続されているNull CHOP(null1)にAnalyze CHOPをワイヤリングする。
Movie File In TOPの画像をいろいろ入れ替えて試してみよう。

Back To Top