資料開始流動
Data mapping 三式與 POP 初登場

音像藝術創作 W2 · 2026.09.14 · 週一 n5-6 節 · 南大 C308
0 / 13
QR
edu.pingshengwu.com/ava-w2

練習 1 回顧:三個講評面向

資訊視窗有沒有真的被讀

中鍵點開之後是停下來指出解析度與 cook 時間,還是滑過去。這是本題唯一無法用「按得快」代替的部分。

一鏡到底留下了什麼

不剪接的用意是把找路的過程留在影片裡。中途停頓不扣分;停頓落在哪一步,才是課堂要看的資訊。

視野管理

H 置中與滾輪縮放不是裝飾動作。畫面在整段影片裡有沒有維持在看得懂的比例,決定觀看者能不能跟上。

1 / 13

資料流:TD 的運算模型

Pull 機制

資料非由上游推送,而是由最終被檢視的 OP 向上游索取。未被索取的節點不 cook,不消耗運算資源;例外為設定 Cook Every Frame、被 export 或輸出裝置索取的節點。

中鍵檢視 cook time,是效能問題的第一個線索。

本頁三個家族各有一種主要資料型別

TOP 傳遞像素,CHOP 傳遞通道數值,POP 傳遞 GPU 上的點

資料流連線跨家族須經橋接 OP(CHOP to TOP、TOP to CHOP、CHOP to POP 等);參數層的 Export/Reference 不在此限。型別意識是 TD 的基本文法。

2 / 13

本週賞析:程序生成的視覺傳統

《Process 18》展場:牆上並置兩幅畫面,左為白底黑色筆觸、右為黑底白色筆觸,兩側牆面印有作品的文字規則

Casey Reas · Process 18(2010)

Processing 共同創造者。以文字書寫規則,再由系統依規則生成圖像。

觀察重點:instruction 與 form 之間的距離。

reas.com

Joshua Davis · Praystation

Flash 世代生成藝術的代表人物之一,以隨機性作為個人簽名。

觀察重點:同一套系統每次執行結果皆不同時,作者性位於何處。

joshuadavis.com

《Fidenza》輸出之一:由彩色方塊組成的彎曲帶狀結構,在米白底上交錯排列

Tyler Hobbs · Fidenza(2021)

long-form generative art 的代表作。作者先設計一套參數空間,再由系統生成 999 個各異的輸出。

觀察重點:作者設計的是參數空間的邊界,不是單一畫面。

tylerxhobbs.com

圖:Casey Reas《Process 18》展場照(bitforms gallery)· Tyler Hobbs《Fidenza》輸出之一(tylerxhobbs.com)。課堂教學引用,著作權屬原作者。
3 / 13

Data mapping:兩個世界之間的映射

音像藝術的核心動作可歸結為單一操作:將 A 世界的數值映射到 B 世界的參數。聲音音量 → 圓的半徑;身體位置 → 粒子方向;時間 → 顏色。

Export

單向,以 CHOP 通道持續覆寫目標參數。

Reference

以 expression 建立連結,可再運算,使用頻率最高。

Bind

參數對參數的雙向同步,用於 UI 控制元件。

三者共同起手式:來源 OP 開啟 viewer active → 拖曳輸出資料至目標參數欄 → 放開時選擇連結方式。

4 / 13

Export:單向連結

步驟

  1. 來源 CHOP 開啟 viewer active
  2. 拖曳通道至目標參數欄
  3. 選擇 Export CHOP

參數欄轉為綠色,表示 export 已生效。

特性與常見錯誤

  • 單向連結,複製後邏輯維持原樣,適合模組化復用
  • 注意:拖曳目標不可落在 name 欄,否則會更改參數名稱而非建立連結
  • 注意:手動拖動 slider 會使該參數退回常數模式,export 隨之失效
5 / 13

Reference:可再運算的連結

步驟

  1. 同樣以拖曳建立,選擇 CHOP Reference
  2. 參數欄出現 expression:
    op('lfo1')['chan1']
  3. 可直接在 expression 上追加運算:
    op('lfo1')['chan1'] * 0.5 + 0.5

特性與常見錯誤

  • 靈活度最高:來源值可再縮放、位移、與其他值組合
  • 注意:變更 OP 名稱會使 reference 失效,expression 無法解析目標
  • 注意:相對路徑(如 op\('lfo1'\))複製到其他容器後會在新作用域重新解析,可能指向別的物件或失效;跨容器須確認路徑

expression 錯誤時參數欄轉為紅色,依錯誤訊息定位,不以嘗試錯誤法排查。

6 / 13

Bind:雙向同步

步驟

  1. 拖曳來源值至目標參數
  2. 選擇 Bind
  3. 參數對參數的 bind 下,任一端變動時另一端同步更新

適用情境

UI 控制面板:slider 變動時參數隨之變動;程式端改寫參數時,slider 亦回頭更新。

期末作品的控制介面(三評分軸之一)以此為實作基礎。

選用原則:持續覆寫採 Export;需要再運算採 Reference;UI 雙向採 Bind

7 / 13

操作:以 LFO 驅動畫面

步驟

  1. LFO CHOP:頻率設 0.2 Hz
  2. Math CHOP:將範圍由 -1 至 1 映射到 0 至 1
  3. 連到 Level TOP 的 opacity,三式各操作一次
  4. 再連到 Transform TOP 的 rotate,範圍改映射至 0 至 360

觀察

同一顆 LFO 可分支餵給多個參數:單一訊號驅動整個畫面的同步變化

Math CHOP 的 From Range 與 To Range 決定來源範圍如何對應目標範圍,是 mapping 精度的控制點。

8 / 13

POP 初登場

兩個節點與一個操作

  1. Grid POP:產生一片點陣
  2. Noise POP:點的位置起伏成波
  3. 於 viewer 拖曳:3D 視角可自由旋轉

運算層面發生了什麼

每個點都是 GPU 上的一筆資料:位置 P 加上其他屬性。Noise POP 直接改寫大量點的位置,在示範機上仍可即時運算(幀率依 GPU、點數與下游渲染而定)

POP=Point Operators,TouchDesigner 2025 新增的家族。W3 起為本課程的主要工作對象。

9 / 13

Python error 的判讀與排查

錯誤的三個顯示位置

  • OP 轉紅:中鍵檢視錯誤訊息
  • 參數欄轉紅:expression 語法錯誤(引號、括號、OP 名稱)
  • Textport(alt+t;以 TouchDesigner 2025 build 為準):完整 traceback

排查順序

  1. 讀錯誤訊息的最後一行,而非第一行
  2. 檢查 OP 名稱拼字與路徑
  3. 檢查資料型別是否相容(以 CHOP 餵入 TOP 參數等)
  4. 仍無法定位時,將 expression 縮減至最小可執行版本
10 / 13

練習 2:社群案例採集

目標:在社群平台上採集三件 TouchDesigner 作品,並寫清楚每一件的吸引點落在哪裡。

要求細節
取樣Instagram · X · Vimeo · YouTube · derivative.ca 的 community post。三件不得出自同一位作者,也不得三件都是同一種畫面類型
受吸引的點每件一句話,指出具體的畫面或聲音特徵:某個運動的速率、某種材質的表現、聲音與影像對上的那個瞬間。「很酷」「很漂亮」不構成答案
技術猜測每件猜它用到哪些 OP 家族,寫成可以被推翻的句子。例:「點的位移由 CHOP 的音量驅動」。猜錯不影響評分,寫不出可驗證的句子才影響
標籤每件下三個 hashtag,技術或類型皆可:#instancing · #projectionmapping · #audioreactive
繳交填進 Miro 課程板的個人 frame,frame 命名為「班級_學號_姓名」;完成後截圖與 frame 連結一併上傳 eeclass
11 / 13

下週:POP 101 全面展開

W3 內容

點、屬性、primitive 三層結構 · 生成器巡禮 · POP 與 SOP 的思維差異 · Null 與視覺節點邏輯 · 練習 3:noise 點雲星雲。

課前準備

  • 繳交練習 2
  • 觀看 W3 三件賞析(Whitney Permutations、McLaren Synchromy、Mohr P- 編號程式作品)
  • 開啟 Help → OP Snippets,瀏覽 POP 分頁 10 分鐘
12 / 13

檔案紀律:每週提醒

檔名全小寫且不含空格(ava_ex1_學號.toe)· 素材以相對路徑引用 · 版本以尾碼 _v2 標示。

此規範的效益在 W15 彩排與 W16 演出當天的檔案交付上兌現。

13 / 13