[TouchDesigner 教學] Instance 實例化,大量生成與控制物件

Instance 實例化是 TouchDesigner 中生成大量物件的一種方法。想要實現最基礎的效果,需要準備模型、材質球、貼圖和座標四種元素,再透過 Geometry 實例化,最後再透過相機來將結果渲染出來。

實例化是一種讓我們在 TouchDesigner 中製作好的一個物件,能夠無限複製到任何地方的方法。想要實例化物件,我們需要先準備好 4 種核心元素:

  1. 模型:最基本的物件外觀,可以是 2D 多邊形或 3D 模型。
  2. 材質:用來定義模型的外觀,讓貼圖能附著到模型上。
  3. 貼圖:定義物件的外觀,通常是一張圖片。
  4. 座標:定義物件要被複製到哪個位置,想要複製多少物件,就必須輸入多少個座標。

而實例化主要使用 Geometry COMP 來實作,因此最後會需要透過相機和 Render 來渲染結果,後續我們還可以用 TOP 對實例化的結果繼續進行製作。

實作目標

本文將教你把 TouchDesigner 內建的香蕉圖片大量實例化到隨機的位置,其中我們會接觸到最基礎的 SOP、MAT、亂數生成和相機渲染功能。下圖為本文要教學的實例化節點連接方法:

實作步驟

建立核心 4 元素

  1. 建立 SOP > Rectangle 矩形多邊形。

  1. 建立 MAT > Constant 基礎材質。
  2. 調整 Constant 的 Common > Blending (Transparency) 為 On,開啟透明功能。

  1. 建立 TOP > Movie File In 影像輸入。
  2. 連接 TOP > Fit 修正影像為方形。
  3. 連接 TOP > Null 分割功能,完成影像輸入模板。

  1. 建立 CHOP > Noise 雜訊生成器。
  2. 調整 Noise 的 Noise > Type 為 Random 隨機模式。
  3. 調整 Noise 的 Channel > Channel Names 為 tx ty,分別代表 XY 軸的隨機值。
  4. 連接 CHOP > Null 分割功能,完成隨機座標生成模板。

完成以上步驟,目前應已準備好下圖中的實例化核心 4 元素:

實作物件實例化

  1. Rectangle 連接 Geometry,將多邊形置入 3D 空間。

  1. 拖曳 Constant 到 Geometry 上,選擇 Param:Material。

  1. 調整 Geometry 的 Instance > Instancing 為 On,開啟實例化功能。
  2. 拖曳香蕉的 Null 到 Geometry 的 Instance 2 > Instance Textures,指定香蕉影像作為物件的貼圖。

  1. 拖曳隨機座標的 Null 到 Geometry 的 Instance > Translate OP。
  2. 點擊 Geometry 的 Instance > Translate X 和 Translate Y 右邊的箭頭按鈕,分別選擇 tx 與 ty,指定物件使用隨機座標進行定位。

點擊 Geometry 並按下 Shift + H 放大觀察,可以發現現在香蕉的太大了,需要縮小一些。

調整物件大小

  1. 長按 Rectangle 的 Rectangle > Size,用拖曳的方式將 XY 數值同步縮小至 0.2。

再檢查一下 Geometry,縮小 Rectangle 的 Size 後,香蕉的尺寸看起來正常多了,接下來要來進行渲染。

渲染實例化成果

  1. 建立 TOP > Render 來渲染 Geometry 的內容,但是因為還沒有建立相機,所以看不到任何東西。

  1. 建立 COMP > Camera,這時 Render 就能渲染出畫面了,只不過這坨香蕉離得有點遠。
  2. 調整 Camera 的 Xform > Translate 的 Z 值為 2 來拉近相機,香蕉看起來就很大了!

實作成果

最後選取 Render 並按下 Shift + H 放大觀察,大小合適的香蕉已經用實例化的方式複製到隨機位置了!大香蕉真的很奇妙!

相關文章

Ted Liou

雲科碩士在讀中,專注於 Unity C#、TouchDesigner 技術,常把技術筆記分享到部落格,偶爾還直接挪用文章來當教材的研究生。