見出し画像

TouchDesignerの基本操作 / Instancingする

TouchDesignerではSOPを使って3Dモデルを扱うことができますが、例えばパーティクルや沢山のオブジェクトを大量に扱う表現はGeomtery COMPのInstancingという機能を使います。この機能を使うと座標や回転、スケールや色情報など固有に変更可能な値を持ったオブジェクトを大量に複製することができます。

サンプルファイルはこちら

下準備

まずは通常のレンダリングの流れを作ります。今回はPhong MATSpehre SOPを使うことにしましたが、SOPとMATに特に制限はありません。Lookup TOPRamp TOPの組み合わせは単純に背景を黒くしたいがために使っています。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_35_21

このサイズのオブジェクトを複製すると画面いっぱいになってしまうので小さくします。間に挟んだTransform SOPのUniform Scaleを0.05にしましょう。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_43_26

次にGeometry COMPのInstanceタブにあるInstancingをONにします。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_45_19

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_45_28

これで準備は完了です。

Instancing1. SOPとTranslate

まずは分かりやすくグリッド状に並べてみましょう。

InstancingはInstance Counte Modeで設定できます。デフォルトはInstance OP(s) Lengthが設定されており、下の段に接続されたオペレータが持っている値の数だけコピーするようになっています。

Instancingで利用するオペレータは以前はCHOPのみでしたが現在はCHOPとTOPとSOPが利用できます。

まずはGrid SOPを作りましょう。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_54_42

Grid SOPは初期値では縦20個、横20個、合計400個のポイント(頂点)を持っています。この頂点の座標それぞれにさきほど作った球をInstancingさせます。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_55_13

一旦Null SOPを挟み、そのNull SOPをGeometry COMPInstanceタブTranslate OPにドラッグ&ドロップします。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_57_56

次にTranslate XTranslate YTranslate Zにグリッドの頂点座標であるP(0)P(1)P(2)を当てはめます。すると400個の急がグリッド状にレイアウトされます。P(0)、P(1)、P(2)は直接打ち込むこともできますが、右の▼ボタンを押すことで選んで入力することもできます。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 15_59_20

画像9

画像10

Instancing2. CHOPとScale

次はCHOPでInstancingにパラメータを設定してみましょう。今度はScaleに設定します。

まずはLFO CHOPから。Scaleは文字通りInstancingする物体の縮尺なので、今回は0から1で指定します。Offset0.5Amplitude0.5にするとサイン波が0から1の間を行き来するようになります。ついでにFrequency0.5と半分のスピードにしておきましょう。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 17_07_38

CHOPでInstancingの値を利用する場合、配列の順番でそのままInstancingに当てはめられます。つまりSOPで作った400個のInstancingに数をそろえるには400個の配列を作る必要があります。今回はTrail CHOPを使います。

Window Lengthの単位をI(Sample)に変更し、サンプル数を400に変更します。これで400個の配列になりました。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 17_12_27

これにNull CHOPを挟んでGeometry COMPInstanceタブのScale OPにドラッグ&ドロップします。Scale X、Scale Y、Scale Zには全てにchan1を指定しましょう。グリッド状に配置された球のサイズが変化するようになったかと思います。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 17_19_01

Instancing3. TOPとColor

最後にTOPで色をつけてみましょう。Noise TOPを使います。折角なので動くようにTranslate ZabsTime.secondsを打ち込んで時間で変化するようにしましょう。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 17_21_59

TOPの場合、ピクセルがそのままInstancingの1要素になります。なので400個ぶんのパラメータを作りたければ幅400ピクセル、高さ1ピクセルの横長画像や、幅高さ共に20ピクセルの正方形のTOPなど、レイアウトは自由です。

今回はGridの形状に合わせて20 x 20のレイアウトで行きます。Noise TOPCommonタブのResolutionの幅と高さにそれぞれ20を打ち込みます。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 17_27_31

できあがったら他と同様にNull TOPを挟み、Geometry COMPInstance 2タブにあるColor OPにNull TOPをドラッグ&ドロップします。RGB値にはそれぞれrgbを指定します。

TouchDesigner 2020.22080_ C__Users_02oz_OneDrive_デスクトップ_NewProject.1.toe_ 2020_04_25 17_30_05

色が変わるようになったはずです。

最後に

このようにInstancingを利用すると1つのオブジェクトを複製するだけでなく、配置やスケール、色など複製したものに個別にパラメータを変化させることができます。

また、その際に使うオペレータはCHOP、TOP、SOPどれでもかまいません。Instancingによって一気に手作業では作りづらい大量の物体を同時に制御しているような映像を作ることができます。

最後に補足を。CHOP、TOP、SOPどれでもInstancingは制御できますが、非常に大量のオブジェクトを制御したい場合、動的な部分はTOPのみで記述すると最もパフォーマンスが出ます

これは通常、3Dの描画は基本GPU上で行うのですが、SOPやCHOPと異なりTOPは基本GPUで処理されているため、GPUとCPUの間でデータのやりとりが発生しないためです。

難しいのでとりあえずはTOPは処理が速いとだけ覚えておけばOKです


この記事が気に入ったらサポートをしてみませんか?