
今回は 3D の形状などを扱う SOPs (Surface Operators) の勉強をしていきます!
サンプルファイル
chimanaco/takara-univ-media-programming-2021
04が本日のディレクトリです。
Project Folderの作り方
本題に入る前に先週最初に TA の N村さんに教えて頂いた技のおさらいです!
File > Create Project Folder を選択します。Path は保存場所を指定します。 Project Folder の欄では任意のプロジェクト名をつけます。第4回なので Day4 としています。Media Folders の全てにチェックボックスを入れて、Createをクリックすると、Project Folder が作成されます。オーディオファイルや画像などはこちらに格納するようにしてください。
課題を提出する際にはこの Project Folder ごとアップロードしてください。 このような構成にしておくと、他の人にプロジェクトファイルを渡した時に、ファイルへのパスが切れて意図通りに表示されなくなってしまうのを回避できる可能性が高くなります。
ここからが本題です。
SOP を構成するもの
SOP Structure: /project1/Structure
SOP を構成するものとして Point、Vertex、Primitive というデータ構造があります。ちょっとややこしいのですが、以下のように考えることができます。
| Name | Summary |
|---|---|
| Point | 3D 空間上の座標で表される点。 |
| Vertex (Vertices) | Point を使ってどのように Primitive を形作っているかの情報。 |
| Primitive | Point と Vertices を使ってレンダリングできるようにしたもの。 |

SOP Primitive types: /project1/Primitives_Types
SOP Primitives types2: /project1/Primitives_Types2
Primitive と呼ばれるものには以下のものがあります。
| Type | Summary |
|---|---|
| Polygon | 三角ポリゴンの集まりで構成されている形状。よく使う。 |
| Mesh | 四角ポリゴンの集まりで構成されている形状。よく使う。 |
| NURBS | Non-Uniform Rational B-Spline(非一様有理Bスプライン)の略で、曲線や曲面を生成する数学的モデル。計算負荷が高い。 |
| Bezier | ベジエ曲線を使って生成する数学的モデル。計算負荷が高い。 |
| Particle | などを使用した粒子のシミュレーションや、ポイントクラウドの描画。。 |
| Metaball | 2個以上になると互いに融合し合って複雑な形状になる球。Metaball SOP。 |

Particle は Particle SOP 、Convert SOP などで作成することができます。

SOP Primitives: /project1/Basic_Primitives
また Primitive というと、Circle、Box, Sphere、Tube などのシンプルな形状のもののことも指します。これらは CG ソフトウェアの方で用意されているものです。

よく使う操作
Viewer を Active にした状態で以下の操作ができます。
LMB + ドラッグで回転、RMB + ドラッグで横移動、MMB + ドラッグでズームができます。
Hキーでデフォルトの位置にリセットできます。
Wキーで wireframe を表示します。
Pキーで Display Option を表示します。
よく使う SOPs
Merge: /project1/Merge
Merge SOP は2つ以上の SOP をマージします。

Boolean: /project1/Boolean
Boolean SOP
は2つの SOP の加工をします。計算式によって結果が変わります。 例えば、Union は2つの SOP を合体させて、内側のポリゴンを削除し、Intersection は外側のポリゴンを削除します。パラメーターを変えたり入力している SOP をいろいろ変えて試してみてください!

Clip: /project1/Clip
Clip SOP は立体を平面で切り取ります。

Trace & Extrude: /project1/Trace_Extrude
Trace SOP
は TOP から SOP を生成します。Threshold などの値を変更して色々な画像で試してみてください。
また、ここでは Extrude SOP
を使って立体の押出をしています。Depth Scale でどのくらい押し出すか調整することができます。

Copy: /project1/Copy
1つ目の SOP の入力をコピーします。Number of Copies でコピーする回数を変更できます。

2つ目の input に指定した SOP の形状にコピーすることもできます。

Obj: /project1/Obj
ここでは obj を読み込んでいます。読み込めるファイル形式は File Types - Derivative
を参照して下さい。

ドラッグ&ドロップでネットワークに追加することもできます。
本日の課題: SOPs を使って顔をモデリングする
SOP を使用して顔を作成してください。顔のパーツの位置やサイズは CHOP からコントロールできるようにしてください。.toe ファイルや画像などの入ったプロジェクトフォルダごと Teams に提出してください。
顔参考: /project1/Example
TouchDesigner でモデリングをしてみましたが、複雑なモデリングをするなら別のモデリングを得意とするソフトウェアを使った方がいいと思います。Blender や Maya など授業でやられている方も多いと思いますので是非ご自身で作成したモデルを読みこんで使ってみてください!
参考
- SOP Workshop @TouchDesigner Study Weekend vol.010
- 映像音響処理概説 2019 第6回: SOP基礎
- 映像音響処理概説 2019 第8回 | satoruhiga.com: SOPのレンダリング
- SOP - Derivative
- Point List - Derivative
- Primitive - Derivative
- 第1回: イントロ,映像生成,インタラクティブ,3D,レンダリング | Scott Allen
- Norway Workshop | Introduction to SOPs - Surface Operators - YouTube
- introduction to Touchdesigner - Stream part 4 - More SOPs, Instancing and Geometry - YouTube
- SOPの基本的な使い方|Toyoshi Morioka|note