Touch Designer 直播挑戰 Vol.4|做出如夢似幻的黑夜星軌
直播挑戰#4 課程筆記
課程概覽
- 主題: TouchDesigner 黑夜星軌(星軌光譜與音訊連動視覺)
- 目標: 拆解並實作一個能與音樂連動的星軌生成作品,並介紹 TouchDesigner 新功能 POPs。
- 預期成果: 掌握 TOP 轉 SOP(Point Cloud)、Instance 複製、Feedback Loop 殘影、Color Remap 等核心技巧。
課程大綱 / Agenda
- 直播目的與 TouchDesigner 生態推廣。
- 「夢境與孤寂的邊界」表演案例介紹。
- 新工具 POPs (Particle Operators) 探索與心得分享。
- 星軌作品拆解與實作(核心概念)。
- 製作星星(隨機座標與大小)。
- 星星上色(恆星光譜 Color Remap)。
- 星軌生成(Feedback Loop 與旋轉)。
- 景觀營造(山脈與水波反射)。
- 每日創作挑戰流程分享(待後續直播)。
💡 核心概念與理論
| 概念 | 說明 | 實作元件 |
|---|---|---|
| TOP 轉 SOP (Point Cloud) | 利用影像(TOP)的 RGB 數值作為 3D 空間中點(SOP)的 XYZ 座標,快速產生大量的隨機點。 | Noise TOP $\rightarrow$ Geometry COMP (Instance) |
| Instance 複製 | 將單一 SOP 物件(如 Sphere)複製到每個點的位置,實現高效的粒子系統。 | Geometry COMP (Instance Tab) |
| 恆星光譜 | 根據恆星生命週期,利用顏色漸變(Color Ramp)為星星賦予不同溫度和階段的顏色。 | Ramp TOP $\rightarrow$ Lookup TOP |
| Feedback Loop | 創建一個迴路,將當前畫面疊加到上一幀的畫面上,產生軌跡、殘影或延遲效果。這是星軌形成的關鍵。 | Feedback TOP $\rightarrow$ Transform TOP $\rightarrow$ Composite TOP |
| POPs (Particle Operators) | TouchDesigner 新功能,利用 GPU 大幅加速粒子運算,並允許將粒子的座標軌跡保留下來。 | POP Examples (論壇下載) |
🛠️ 示範案例:POPs 探索 (08:06)
- POPs 資源: TouchDesigner 論壇上的 POP Examples 包含最完整的示範檔案和
POP Guide。 - 如何學習: 打開
POP Guide,點選左側範例 (如 Copy, Extrude),然後點選左下角 Show Network,即可查看範例的網路結構、註解和步驟。 - POPs 優勢: 每個點(粒子)可以視為一個資料包,儲存位置、顏色、速度等屬性,能利用 GPU 加速,實現百萬級粒子的即時運算,速度比舊方法快 10 倍以上。
⚙️ 步驟教學(Step-by-Step)
步驟 1:製作星星的隨機座標與大小 (18:39)
- 設定星星數量:
- 新增
Constant CHOP,命名參數為star_size,設值為50。
- 新增
- 生成隨機座標:
- 新增
Noise TOP。 - 將
Constant CHOP的star_size參數拖曳至Noise TOP的 Resolutionx和y參數。 - 結果: 得到 $50 \times 50 = 2500$ 個像素點(即 2500 顆星星的座標)。
- 小技巧: 點擊
Noise TOP並按右鍵,選擇 View as Point 或按快捷鍵 $\text{V}$,可切換成 3D 點雲預覽。
- 新增
步驟 2:星星上色(恆星光譜)(27:18)
- 準備色彩對應圖:
- 複製一個新的
Noise TOP,確保它與座標的Noise TOP擁有不同的 Seed 值。 - 在
Noise TOP後接上一個Lookup TOP。
- 複製一個新的
- 定義顏色漸層(光譜):
- 新增
Ramp TOP作為漸層輸入。 - 調整
Ramp TOP的顏色,模擬恆星光譜:- 左側(黑/低值): 藍色(代表高溫、年輕的藍巨星)。
- 中間: 白色、黃色。
- 右側(白/高值): 紅色(代表低溫、衰老的紅巨星)。
- 將
Ramp TOP連接到Lookup TOP的第二個輸入端。
- 新增
- 整理輸出:
- 在
Lookup TOP後新增Null TOP,命名為NO_color。
- 在
步驟 3:Instance 複製與渲染 (24:44)
- 準備幾何體:
- 新增
Sphere SOP(球體)。 - 在
Sphere SOP後新增Transform SOP,調整 Uniform Scale 至0.001或更小,以確保星星夠小。 - 在
Transform SOP後新增Geometry COMP。
- 新增
- 設定 Instance:
- 在
Geometry COMP中,切換到 Instance 標籤。 - 勾選 On。
- 將步驟 1 的座標
Noise TOP拖曳至 Default Instance TOP 欄位。 - Translate (位置):
- $\text{Tx}$:
r(Red channel $\rightarrow$ X 軸) - $\text{Ty}$:
g(Green channel $\rightarrow$ Y 軸) - $\text{Tz}$:
b(Blue channel $\rightarrow$ Z 軸)
- $\text{Tx}$:
- Scale (大小):
- $\text{Sx}, \text{Sy}, \text{Sz}$ 皆設定為 $\text{b}$ (Blue channel $\rightarrow$ 統一大小)
- 在
- 上色:
- 切換到 Instance 2 標籤。
- 將步驟 2 的顏色
NO_color拖曳至 Default Instance TOP 欄位。 - Color (顏色):
- $\text{Cr}$:
r - $\text{Cg}$:
g - $\text{Cb}$:
b
- $\text{Cr}$:
- 渲染設置:
- 新增
Camera COMP。 - 新增
Constant Material,拖曳至Geometry COMP的 Material 參數欄位。 - 新增
Render TOP。設定 Resolution 為 $2000 \times 2000$ (圓圖,避免旋轉時被裁切)。 - 將
Geometry COMP和Camera COMP拖曳至Render TOP的對應參數。 - 調整 Camera:
- 將
Camera COMP的 Projection 設為 Orthographic (無透視)。 - 調整 View 參數,確保星星集中在畫面中心,且填滿。
- 將
- 新增
步驟 4:星軌生成(Feedback Loop)(32:05)
- 添加旋轉:
- 在
Geometry COMP後面加入Transform SOP,用來旋轉星星。 - 在 Rotate 的 $\text{Ry}$ 參數中輸入動態表達式,使其隨時間旋轉: $$\text{absTime.seconds} \times 3$$
- 在
- 建立 Feedback 迴路:
- 新增
Feedback TOP。 - 新增
Composite TOP。 - 將
Render TOP連接到Composite TOP的第一個輸入端(當前幀)。 - 將
Feedback TOP連接到Composite TOP的第二個輸入端(過去幀)。 - 將
Composite TOP的 Operation 設為 Maximum 或 Add(讓光線疊加)。
- 新增
- 引入殘影衰減:
- 在
Composite TOP後新增Level TOP。 - 在
Level TOP中,降低 Opacity(不透明度),例如設為 $0.98$,使上一幀的影像在疊加時輕微衰減,形成拖尾軌跡。
- 在
- 完成迴路:
- 將
Level TOP連接回Feedback TOP的輸入端。
- 將
- 啟動 Feedback:
- 在
Feedback TOP上右鍵點擊 Pulse $\rightarrow$ Reset(或按下快捷鍵 $0$),啟動迴路。
- 在
步驟 5:整合音樂連動 (15:38)
- 原理: 將音訊分析結果(例如頻率強度或振幅)映射到旋轉的 $\text{Ry}$ 參數,或 Feedback loop 中的
Level TOP的 Opacity / Brightness,實現視覺與聽覺的連動。
❓ 常見問題 & 解決方案
| 問題 | 解決方案 |
|---|---|
| 星星太密集/形狀太規律 | 調整 Noise TOP 參數:增加 Period(週期)會使同色星星聚集;減少則會更散落。同時調整 Seed 值。 |
| Feedback Loop 沒有作用 | 檢查 Feedback TOP 是否已經 Reset (Pulse) 啟動。檢查 Composite TOP 的 Operation 是否為 Maximum 或 Add。 |
| 旋轉時畫面被裁切 | 調整 Render TOP 的 Resolution,例如設為 $2000 \times 2000$ 確保有足夠的圓形空間,或在 Camera COMP 調整 View 參數。 |
| 星星亮度太高/爆掉 | 在音訊分析連動的參數上加入 Limit CHOP,設定一個上限(Ceiling),避免音量過大時視覺效果失控。 |
🚀 練習任務
- 嘗試將
Noise TOP的 $\text{Tz}$ (Z 軸) 座標範圍增大,觀察星星在 3D 空間中的分布變化。 - 將
Ramp TOP的顏色改為其他漸層,例如冷色調或單一顏色,模擬不同風格的星空。 - 嘗試將音訊分析的 CHOP 輸出,映射到
Feedback TOP後的Level TOP的 Brightness 參數,讓聲音越大,殘影越亮。
💡 總結
本課程成功拆解並實作了基於 TouchDesigner 的黑夜星軌效果。核心技術在於利用 TOP 的 RGB 數據作為 3D 座標、Instance 複製大量星星,以及利用 Feedback Loop 結合旋轉創造出動態的星軌光跡。同時,課程也前瞻性地介紹了新的高效能粒子系統 POPs,為未來的複雜視覺創作提供了新的工具。
邀你一起學習!直播筆記專屬折扣碼「Live600」
輸入折扣碼「Live600」,即可享有600元的課程折扣,學員可享有:
- TouchDesigner 共學群組,有問題即可直接詢問哲宇老師
- 可不定期收到 TouchDesigner 小模組直播的製作素材包
- 小模組直播的許願池,會優先從TD共學群組的需求來教學
點擊連結進行報名,我們TD線上課相見囉!
