第9回 音に反応するビジュアルを作る3 パーティクル とマテリアルの基礎

Monday, June 20, 2022

今回はパーティクル表現の勉強をしていきます!時間があったらマテリアルにも触れます!

サンプルファイル

chimanaco/takara-univ-media-programming-2022
09が本日のディレクトリです。

Particles

(余裕があったらやります!来週になるかもしれません)

3DCG でパーティクルというと、粒子(パーティクル)を発生させて物理シミュレーションを用いてコントロールし、自然原初のシミュレーションやエフェクトなどを作るのに用いられます。TouchDesigner では基本的には Particle SOP を使って作ります。パラメーターがたくさんありますが、よく使うものを紹介していきます。

Particles Forces/project1/Particle_forces

まず Forces タブにあるものです。

Network

NameSummary
External Forcegravity の強さ。
Wind風の強さ。External Force と似ているが、比較的弱め。
Turbulence乱流の強さ。
Turb Period小さいと細かい範囲で動き、大きいと動く範囲が広くなる。

Particle の挙動を確認する時は、Geometry Viewer を開いて Display OptionPoints をオンにすると見やすくなります。

次に Particles タブにあるものです。

NameSummary
Mass重さ。重いほどスピードが上がりにくくなると同時に下がりにくくなる
Drag抗力。空気抵抗を表す。0は真空状態となる。
Birth1秒間に生成されるパーティクルの数。
Life Expectパーティクルの寿命。
Life Varianceパーティクルの寿命の分散具合。

左に戻って State タブにあるものです。

NameSummary
Remove Unused Points寿命を終えたパーティクルが削除するかどうか。ここを ON にしておくと、明示的に不必要なポイントを削除することとなり、不必要な処理落ちを防げることができます。

Particles Collision/project1/Particle_collision

最後に Limits タブにあるものです。他のオブジェクトに衝突時のパーティクルの挙動を設定します。

NameSummary
Hit BehaviorDie on Contact 消える Bounce on Contact 跳ね返る Stick on Contact 貼り付く
Gain TangentBounce on Contact の時の geometry の表面方向への反射の強さ
Gain NormalBounce on Contact の時の geometry の法線方向への反射の強さ
Split分割の設定 No Splitting 分割しない Split on Contact 衝突時に分割 Split on Death 消滅時に新しいパーティクルを発生させる

Network

Particles Force input/project1/Particle_force_input

Particle SOP の3番目の入力は外部からの力です。 Force field(力場)を Metaball SOPForce SOP をつないで作り、3番目のインプットにつなぎます。

NameSummary
Radial Forceメタボールの外から中心、中心から外へと向かう力。(引力と斥力)
Directional ForceBounce on Contact の時の geometry の表面方向への反射の強さ
Axial Force軸方向への力
Axial Force軸を中心とした円状の回転
Spiral Force軸と垂直な方向に対する引力、斥力

Particles geometry 表面への引力 /project1/Particle_surface_attractors

4番目の入力に入れた SOP の表面に対してランダムにパーティクルが向かっていきます。

Network

Particles Sort/project1/Particle_sort

Network

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 にドラッグ&ドロップして指定します。

Network

PhongMAT の代表的なパラメーターは以下の通りです。

NameSummary
Diffusediffuse reflection light。ベースとなる色
Specular光沢のある物質のハイライトの色
Shininess表面の光沢度
Emit物体の発光の強さや色

Network

PhongMAT Color Map: /project1/Phong_color

PhongMATColor Map に TOP を指定することで TOP のテクスチャをジオメトリに貼ることができます。

Network

PhongMAT Noise & Height Map: /project1/Phong_Height

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

Network

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

Network

Network

ConstantMAT: /project1/Constant

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

Network

ConstantMAT Color: /project1/Constant_color

Color Map の指定もできます。

Network

WireframeMAT: /project1/Wireframe

SOPw キーを押したときのような、Wireframe のレンダリングができます。

Network

PBRMAT: /project1/PBR_look

PBRMAT はリアリスティックな質感を比較的作りやすい MAT です。Physically Based Rendering という名が示すとおり、物理法則に基づいたライティングモデルを使用しています。代表的なパラメーターには以下のものがあります。

NameSummary
Base Colorベースとなる色
Metallic金属度合い
Roughness表面の粗さの度合い
Specular Level鏡面反射の度合い

Network

PBR Environment Light: /project1/PBR_environment_light

Environment Light COMP を使うと、HDRI (High Dynamic Range Image)と呼ばれる環境光の情報の入ったパノラマ画像を使ってライティングをすることができます。HDRI Haven というサイトでダウンロードできますので好きなパノラマ画像を使ってみましょう。

Environment Light COMPEnvironment 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 などでダウンロードできるのでこちらも試してみてください。

Network

PBR Substance: /project1/PBR_substance

Substance Designer | Substance 3D というプロシージャルにテクスチャを作れるツールがあるのですが、そのツールの形式で書き出されたファイルを TouchDesigner でも読み込むことができます。

Substance TOP は、.sbsar ファイルを読み込むだけでなく、テクスチャが持っているパラメーターを TouchDesigner 側で調整することもできます。

Network

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

Network

ユーザー登録が必要ですが、Substance Source Homepage から様々な .sbsar ファイルがダウンロードできます。

ここまで作ってきた Particle SOP を使って Instancing の動きをコントロールしてみましょう。

本日の課題: 今日勉強した MAT を使ってみる

PhongMAT、WireframeMAT, ConstantMAT, PBRMAT などを使用してレンダリングをしてください。前回の顔でも構いませんし、新たに SOP をご用意頂いても構いません。形状よりも質感を重視します。プロジェクトフォルダごと Teams に提出してください。

参考

第10回 プロジェクションマッピング実習

第8回 音に反応するビジュアルを作る2 Instancing & Particle SOP 基礎