
今回はパーティクル表現の勉強をしていきます!時間があったらマテリアルにも触れます!
サンプルファイル
chimanaco/takara-univ-media-programming-2022
09が本日のディレクトリです。
Particles
(余裕があったらやります!来週になるかもしれません)
3DCG でパーティクルというと、粒子(パーティクル)を発生させて物理シミュレーションを用いてコントロールし、自然原初のシミュレーションやエフェクトなどを作るのに用いられます。TouchDesigner では基本的には Particle SOP を使って作ります。パラメーターがたくさんありますが、よく使うものを紹介していきます。
Particles Forces/project1/Particle_forces
まず Forces タブにあるものです。

| Name | Summary |
|---|---|
| External Force | gravity の強さ。 |
| Wind | 風の強さ。External Force と似ているが、比較的弱め。 |
| Turbulence | 乱流の強さ。 |
| Turb Period | 小さいと細かい範囲で動き、大きいと動く範囲が広くなる。 |
Particle の挙動を確認する時は、Geometry Viewer を開いて Display Option で Points をオンにすると見やすくなります。
次に Particles タブにあるものです。
| Name | Summary |
|---|---|
| Mass | 重さ。重いほどスピードが上がりにくくなると同時に下がりにくくなる |
| Drag | 抗力。空気抵抗を表す。0は真空状態となる。 |
| Birth | 1秒間に生成されるパーティクルの数。 |
| Life Expect | パーティクルの寿命。 |
| Life Variance | パーティクルの寿命の分散具合。 |
左に戻って State タブにあるものです。
| Name | Summary |
|---|---|
| Remove Unused Points | 寿命を終えたパーティクルが削除するかどうか。ここを ON にしておくと、明示的に不必要なポイントを削除することとなり、不必要な処理落ちを防げることができます。 |
Particles Collision/project1/Particle_collision
最後に Limits タブにあるものです。他のオブジェクトに衝突時のパーティクルの挙動を設定します。
| Name | Summary |
|---|---|
| Hit Behavior | Die on Contact 消える Bounce on Contact 跳ね返る Stick on Contact 貼り付く |
| Gain Tangent | Bounce on Contact の時の geometry の表面方向への反射の強さ |
| Gain Normal | Bounce on Contact の時の geometry の法線方向への反射の強さ |
| Split | 分割の設定 No Splitting 分割しない Split on Contact 衝突時に分割 Split on Death 消滅時に新しいパーティクルを発生させる |

Particles Force input/project1/Particle_force_input
Particle SOP の3番目の入力は外部からの力です。 Force field(力場)を Metaball SOP と Force SOP をつないで作り、3番目のインプットにつなぎます。
| Name | Summary |
|---|---|
| Radial Force | メタボールの外から中心、中心から外へと向かう力。(引力と斥力) |
| Directional Force | Bounce on Contact の時の geometry の表面方向への反射の強さ |
| Axial Force | 軸方向への力 |
| Axial Force | 軸を中心とした円状の回転 |
| Spiral Force | 軸と垂直な方向に対する引力、斥力 |
Particles geometry 表面への引力 /project1/Particle_surface_attractors
4番目の入力に入れた SOP の表面に対してランダムにパーティクルが向かっていきます。

Particles Sort/project1/Particle_sort

Sort SOP
を使ってパーティクルの発生順を変えることができます。Point Sortの値を変えてみてください。
Particles を Instancing に使う
Particles & Instancing: /project1/Particle_instancing
MAT
PhongMAT: /project1/Phong
基本的なマテリアルである PhongMAT を使ってみましょう。Phongは拡散(diffuse)、鏡面反射性(specular)、光沢(Shininess)の3つの特徴を使って表面の質を決める方法で、光沢のあるマテリアルを表現できます。
PhongMATをネットワークに配置して、Geometry の Render タブの Material にドラッグ&ドロップして指定します。

PhongMAT の代表的なパラメーターは以下の通りです。
| Name | Summary |
|---|---|
| Diffuse | diffuse reflection light。ベースとなる色 |
| Specular | 光沢のある物質のハイライトの色 |
| Shininess | 表面の光沢度 |
| Emit | 物体の発光の強さや色 |

PhongMAT Color Map: /project1/Phong_color
PhongMAT の Color Map に TOP を指定することで TOP のテクスチャをジオメトリに貼ることができます。

PhongMAT Noise & Height Map: /project1/Phong_Height
Normal Map を使って凹凸を表現することができます。グレースケールの TOP を Nomal MapTOP につなぐことによって Normal Map が作られるので、これを Normal Map(Bump) に指定します。さらに Enable Height Map を ON にして Height Map に Color Map と同じグレースケールの TOP を指定することにした上で、Displace Vertices を ON にして Height Map とその下にあるパラメーターを使って displacement を行うことができます。

Normal Map を使用して RenderTOP に warning が出る場合は、Attribute Create SOP を追加して Compute Tangents を ON にすることで解消できる可能性が高いです。


ConstantMAT: /project1/Constant
ライティングの影響を受けないマテリアルです。よって表面の光沢などはありません。

ConstantMAT Color: /project1/Constant_color
Color Map の指定もできます。

WireframeMAT: /project1/Wireframe
SOP で w キーを押したときのような、Wireframe のレンダリングができます。

PBRMAT: /project1/PBR_look
PBRMAT はリアリスティックな質感を比較的作りやすい MAT です。Physically Based Rendering という名が示すとおり、物理法則に基づいたライティングモデルを使用しています。代表的なパラメーターには以下のものがあります。
| Name | Summary |
|---|---|
| Base Color | ベースとなる色 |
| Metallic | 金属度合い |
| Roughness | 表面の粗さの度合い |
| Specular Level | 鏡面反射の度合い |

PBR Environment Light: /project1/PBR_environment_light
Environment Light COMP を使うと、HDRI (High Dynamic Range Image)と呼ばれる環境光の情報の入ったパノラマ画像を使ってライティングをすることができます。HDRI Haven
というサイトでダウンロードできますので好きなパノラマ画像を使ってみましょう。
Environment Light COMP の Environment Map に TOP を指定すれば OK です。そのままだと暗いので、Level TOP を使って Gamma 1 を2.2~2.4、Clamp Input to [0, 1] を Off にしてください。
PBR Maps: /project1/PBR_Maps
Base Color Map, Normal Map, Height Map などを指定することもできます。 Texture Haven などでダウンロードできるのでこちらも試してみてください。

PBR Substance: /project1/PBR_substance
Substance Designer | Substance 3D というプロシージャルにテクスチャを作れるツールがあるのですが、そのツールの形式で書き出されたファイルを TouchDesigner でも読み込むことができます。
Substance TOP は、.sbsar ファイルを読み込むだけでなく、テクスチャが持っているパラメーターを TouchDesigner 側で調整することもできます。

PBR TOP の Substance TOP パラメーターに指定します。

ユーザー登録が必要ですが、Substance Source Homepage から様々な .sbsar ファイルがダウンロードできます。
ここまで作ってきた Particle SOP を使って Instancing の動きをコントロールしてみましょう。
本日の課題: 今日勉強した MAT を使ってみる
PhongMAT、WireframeMAT, ConstantMAT, PBRMAT などを使用してレンダリングをしてください。前回の顔でも構いませんし、新たに SOP をご用意頂いても構いません。形状よりも質感を重視します。プロジェクトフォルダごと Teams に提出してください。