目次
名称
Point, Vertex, Primitive
名称 | 概要 |
---|---|
Point | 座標情報を持った点 |
Vertex | Primitive形成のためにPointをどう繋ぐかという,PrimitiveとPointの紐付け |
Primitive | 画像・映像に落とし込める(レンダリング可能な)オブジェクト(もの) |
Point
Point(点)は座標情報を持った点を示します.図のように,点としては 0 – 9 番目の10点であることが分かります.
Vertex
Vertex(頂点)は点をどのように繋ぐかという順番も含まれた情報です.図のように,左下の六角形は 0 – 5 で形成されており,右上の六角形も 0 – 5 で形成されて,それぞれは独立したPrimitiveであることが分かります.
また,この場合 0番目 と 5番目 は繋がれて閉じた面になるよう設定されています.
Primitive
Primitiveはレンダリング可能なオブジェクトを示します.図のように,六角形が2つ作られていますので,左下と右上それぞれの中央に0, 1と割り振られています.
Primitiveは平面に限らず,直線,曲線,曲面,球,直方体,パーティクルシステムなど様々なPrimitiveがあります.
Primitiveの種類
名称 | 概要 |
---|---|
Primitive | 原点,経など最低限の構成 |
Polygon | 3点(三角形)がつなぎ合わさった構成 |
Mesh | 4点(四角形)がつなぎ合わさった構成 |
NURBS | Non-Uniform Rational B-Spline(非一様有理Bスプライン)という数学的モデルで作られる構成 |
Bezier | ベジェのモデルで作られる構成 |
Particle | Particle SOPなどで作られる,ポイントクラウドの構成 |
Metaball | Meta Ball SOPから作られる,引力を用いたモデルで作られる構成 |
Geometry viewer
目的の形にモデリングする時には,Primitiveの状態を確認しながら進めることが重要です.Geometry viewerはPoint, Vertex, Primitiveなどの状態を確認したり,形状を確認したりできます.
3Dモデルを生成する
どこまでモデリングするか
TouchDesignerでもモデリングはできます.しかし,考え方としては
- 複雑なモデル(スカルプティングが必要など)は他のモデリングソフトに任せる
- リアルタイムにモデルに変化を加える
- シンプルなモデルをルール(アルゴリズム)に従って大量複製する
とすると良いでしょう.
画像のようなBlenderで作られたドラゴンをTouchDesignerで敢えて作ろうとするよりも,TouchDesignerの良いところであるリアルタイム性や可変性を活かせるような付き合い方をしましょう.
(https://cgboost.com/create-a-dragon-in-blender/より参照)
また,TouchDesignerのオペレータの仕組みとかなり近い考え方でHoudiniというプロシージャルモデリング環境があります.実は,Houdiniを改造して2000年に作られたリアルタイムビジュアルプログラミング環境がTouchDesignerという,本家と分家のような関係です.近年プロシージャルなモデリング環境は盛り上がりを見せており,モデリングを深堀りしたい方はHoudiniを使用してみるのも良いでしょう.
(https://www.oneclub.org/awards/theoneshow/-award/32647/the-origin-of-lifeより参照)
3Dモデル生成一覧
TouchDesignerでゼロから生成できる3Dモデルはほぼ表の通りです.当然ですが,2D系のTOPより多くの情報を持っています.詳細を一つずつ動画で確認しましょう.
名称 | 概要 | 主なパラメータ |
---|---|---|
Circle | 楕円モデル | タイプ,方向,半径,中心座標,弧 |
Line | 線モデル | 始点/終点の座標,点数 |
Rectangle | 四角形モデル | 方向,サイズ,中心座標 |
Text | 文字モデル | タイプ,フォント,サイズ,文字内容 |
Grid | 格子モデル | タイプ,方向,サイズ,中心座標,列数,行数 |
Sphere | 球モデル | タイプ,方向,半径,中心座標,列数,行数など |
Box | 直方体モデル | サイズ,中心座標 |
Torus | トーラスモデル | タイプ,方向,半径,中心座標,列数,行数 |
Tube | 円筒モデル | タイプ,方向,半径,高さ,中心座標,列数,行数 |
Circle SOP
Line SOP
Rectangle SOP
Text SOP
Grid SOP
Sphere SOP
Box SOP
Torus SOP
Tube SOP
変化させる
Boolean SOP
Boolean SOPは2つのPolygonで作られたSOPの共通する空間を起点に結合したり,差し引いたりするSOPです.シンプルなモデル生成をした後に少し複雑な形をつくる際にはBoolean SOPのBoolean > Operation > A minus B
を多用します.
Clip SOP
Clip SOPは設定した平面でSOPをクリップします.時間的な変化をさせたい時に効果を発揮します.例の動画のようにテキストモーションなどで出てきたり消えたりする演出をする最に使用すると良いかもしれません.
Copy SOP
Copy SOPはインプット1のモデルをインプット2のモデルのポイントの位置に複製します.Copy SOPを2回使うと3次元的に複製することもできますが,数を増やしすぎると処理が重くなり,FPSが落ちる原因となるので注意が必要です.
Extrude SOP, Trace SOP
Extrude SOPは2次元のSOPデータを押し出して立体にします.Text SOPを押し出したり,Trace SOPでアルファ付き画像をSOP化した後に押し出したりして立体にして扱うと良いでしょう.
Noise SOP
Noise SOPはインプットしたSOPのPointの位置や色などにノイズ関数に基づくバラつきを与えます.時間的に変化させたり,簡単な地形などをモデリングするときに手っ取り早く作ることができます.
Primitive SOP
Primitive SOPはモデルの位置,サイズ,配置,色,アルファプリミティブ固有のアトリビュートを操作できます.
今回のモデリングの段階では,主に色情報を与えるために使用してみましょう.
Sweep SOP
インプット1のモデルの筆でを,インプット2のポイントに従って,描くようなイメージ(Sweep)です.リボンや管のようなものを作成したいときに効果を発揮します.
一つにする
Merge SOP
Merge TOP, Merge CHOPと同様にMerge SOPを使用できます.
プロシージャルモデリング
プロシージャルモデリングとは,簡単にいうとルールを用いてモデリングしていくことです.それによって後の変更が楽だったり,細かい仕組みを後から追わなくても,最初のPrimitiveだけ変えればレイアウトが反映されたりとブラックボックス化することが可能です.
作例
Transform SOPにて,以下の簡単なスクリプトによって,インプットするSOPはy軸がゼロの平面に乗るようになります.
-me.inputs[0].min.y
課題
授業内課題
画像のように椅子をモデリングしなさい.
要件
- 背もたれ,椅子の足の高さを変えてもレイアウトが崩れないようにすること
締切: 2021年4月30日16:10
提出先: 情デサーバー 04_授業内/
来週までの課題
これまで習った内容を使って,3Dモデルを自作しなさい.
要件
- 第3回の「変化させる」パートの7種類のSOPのうち,少なくとも3種類は使用すること
- 既存のキャラクターや実世界に存在するもの・自然現象,架空のものなど扱う対象は問わない
- 最終的にMerge SOP – Null SOP と繋げ,Null SOPはDisplay flagをオンにしてGeometry viewerに出しておくこと
- 自身で調べたり,知っていたりするテクニックは使っても構わない
締切: 2021年5月6日23:59
提出先: 情デサーバー 04_週課題/