Bonus:多媒體互動展演技術規劃:HDMI 傳輸距離、佈線與電力計算實戰|IVD487 W18
一場互動展演在現場能不能順跑,關鍵不在軟體,而在基礎設施。這篇以體感作品「地面鬥技場」為範例,一層一層把技術規劃圖填滿:USB 線材與速度、顯示三大類、投影機規格、HDMI 傳輸距離解法、影像分配、音訊 PA、網路協定、電力計算、佈線與遠端監控。附多張對照表與章節時間戳,規劃前掃一遍就能跟廠商對得上話。
想用 TouchDesigner 串起一套完整的互動流程?這篇整理用 Logic (CHOP) 與 Timer (CHOP) 打造互動狀態機的做法:鍵盤切換影像加轉場、2D 碰撞判定、閒置自動回預設、Trigger (CHOP) 幸運轉輪防呆。附節點速查表、Switch vs Cross 對照與章節時間戳,上完課回來掃一遍就能接回流程。

Logic (CHOP)、Timer (CHOP)、Trigger (CHOP) 這些節點把「什麼時候切、切多久、切去哪」講清楚。這篇是重點整理,上完課回來掃一遍就能把四個效果接回來。CHOP Execute (DAT) 寫 Python,或純節點用 Logic (CHOP) + Fan (CHOP)Switch (TOP) 與 Cross (TOP) 差在哪、怎麼選Logic (CHOP) 偵測「數值變化」再接 Timer (CHOP) 做轉場Trigger (CHOP) + Speed (CHOP) 做幸運轉輪,加上展場防呆
互動效果 | 訊號來源 | 核心節點鏈 |
鍵盤切換影像+轉場 | Keyboard In (CHOP) | Logic → Fan → Switch;轉場走 Logic(value change) → Timer → Filter → Cross |
2D 碰撞判定 | Mouse In (CHOP) 控 Circle (TOP) | Circle × Multiply → Analyze(max) → TOP to CHOP → Select(alpha) → Logic → Level |
互動狀態機(閒置回預設) | Mouse In (CHOP) | Math(combine) → Logic(value change) → Timer → running → Filter → Switch |
幸運轉輪 | Button (COMP) | Trigger(ADSR) → Math(0→360) → Speed → 旋轉 |
Rename (CHOP) + CHOP Execute (DAT) 寫 PythonKeyboard In (CHOP) 的 channel 名稱從 k1、k2… 用 Rename (CHOP) 改成 1~5,再用 CHOP Execute (DAT) 在按鍵觸發時執行一行程式:op('switch1').par.index = channel.name
op('switch1'):指定那顆 Switch (CHOP) 節點。.par:進到它右側的參數欄(所有參數都在 par 底下)。.index:指到 Index 這個參數(點開參數就能看到它的內部名稱)。= channel.name:把剛被觸發的那個 channel 名稱(已 rename 成 1~5 的數字)指派進去。CHOP Execute (DAT) 的回呼;想進一步玩條件判斷,可延伸:TouchDesigner Python 條件運算/三元表達式。Logic (CHOP) radio button + Fan (CHOP),不寫程式Keyboard In (CHOP) 後面接 Logic (CHOP),在 Channel Pre-OP 選 Radio Button(把 5 個鍵變成單選,停在最後按的那個),再接 Fan (CHOP) 選 Fan In,把「多 channel 的開關」壓成「單一 channel 的數值」,最後接 Null (CHOP) 連到 Switch 的 Index。全程用節點就做完。Logic (CHOP) 的常用模式先整理成表:設定 | 位置 | 效果 |
Off When 0 or Less | Convert Input | ≤0 → 0,>0 → 1(預設) |
Off When 0 | Convert Input | 只要不等於 0 就變 1 |
Value Change | Convert Input | 只在數值「變動」的瞬間送出 1(轉場、狀態機偵測用) |
Invert | Channel Pre-OP | 0 與 1 對調 |
Toggle | Channel Pre-OP | 開關型,按一下切換一次 |
Radio Button | Channel Pre-OP | 多按鍵變單選,停在最後選的那個 |
💡Fan (CHOP)從 0 開始數: 切到第 1 個按鍵,右側顯示的數值是 0,之後依序 1、2、3、4。程式邏輯從 0 起算,接 Index 時心裡先有底,不然會覺得「怎麼差一號」。
ㅤ | Switch (TOP) | Cross (TOP) |
input 數量 | 無限個,可一直接 | 只有 2 個 |
切換方式 | 預設硬切;開 Blend Between Inputs 可微微漸變 | 只有 0–1 漸變 |
適用場景 | 通用,多畫面切換首選 | 明確只需要兩個畫面漸變時 |
建議 | 不確定就用它,可用範圍最廣 | 特定用途再選 |
CHOP 與 TOP 都有 Switch。一般優先選 Switch——硬切、漸變都能用數值控制;只有在你確定只需要兩個畫面對切、想要乾淨漸變時,才選 Cross。📺 影片段落:10:37Logic (CHOP),Convert Input 選 Value Change——只在你按鍵切換的那一瞬間送出訊號。Timer (CHOP)(例如設 3 秒)。Timer 跑動時的 running channel 剛好是 1/結束回 0。Select (CHOP) 把 running 取出來,接 Filter (CHOP)(或 Lag (CHOP))做漸進,再接 Null (CHOP) 連到 Cross (TOP),控制轉場圖漸入漸出。⚠️Timer (CHOP)前面兩個 input 別接錯: 滑鼠移上去會顯示,第一個是 Initialize Trigger(重設),第二個才是 Start Trigger(開始)。訊號一定要接到第二個;接到第一個等於一直在重設,Timer 永遠不會跑,轉場也永遠觸發不了。
⚠️ 影片先切、轉場才到?加一顆Delay (CHOP)。 在通往Switch的數值變化路徑上插Delay (CHOP),把它的 Length 綁成Timer的 Length ÷ 2(在 Timer 的 Length 上按右鍵 Copy Parameter,貼成 Path Reference 再除以 2)。這樣不管 Timer 調多長,切換點永遠落在轉場「蓋滿畫面」的中間,換得神不知鬼不覺。
Multiply (TOP) 只留兩張圖都有顏色的重疊處。完整節點鏈:Mouse In (CHOP) 控制 Circle (TOP) 的位置(跟以前畫圖一樣)。Circle (TOP) 與目標圖 Multiply (TOP)——只有兩者重疊時,畫面才會出現一點點內容。Analyze (TOP),把模式從 Average 改成 Max(直接抓最大值,重疊就跳出來)。TOP to CHOP (CHOP) 把畫面轉成數值。Select (CHOP) 只取 alpha channel(碰撞優先看 alpha,重疊時接近 1)。Level (TOP) 拉透明度,讓一張圖(示範用蝴蝶)在碰到時跳出來。⚠️ 碰撞判定記得再壓一顆Logic (CHOP)。 圖像邊角有抗鋸齒平滑,alpha 在邊緣會出現像0.8863這種半透明小數。加一個Logic (CHOP),只要「不是 0」就變 1,把訊號壓成乾淨的 0/1,開關才不會在邊角糊掉。
💡 合成前先用Fit (TOP)把幾張圖統一成同一比例(例如 1280×720),再進Composite (TOP)用Over疊起來,畫面才不會被拉伸。
Mouse In (CHOP) 取 tx、ty(橫軸、縱軸)。Math (CHOP) 的 Combine Channels 把兩軸相加——只要其一在動,總和就在變。Logic (CHOP) 選 Value Change:數值一變就送出 1,停了變 0,這就是「有沒有人在互動」的開關。Timer (CHOP) 的第二個 input。只要持續互動,Timer 就一直被 reset、不會歸零;一旦停手,倒數走完。Filter (CHOP) 漸進 → Null (CHOP) → Switch,時間到就切回預設影片。Feedback (TOP) 迴圈(小畫家式繪製效果),回到預設後畫布還殘留筆跡。可以做手動 reset——在 Mouse In (CHOP) 設一個 right button channel 綁到 Feedback (TOP) 的 pause/reset;或直接把 running 訊號綁到 Feedback (TOP) 的 pause,讓它每次「從 0 變成大於 0」時自動清一次畫布,每個人上手都是乾淨的畫面。Button (COMP),Button Type 選 Momentary——按下瞬間觸發一次就自動關掉(不要 Toggle,那會變按一下開、再按一下關)。Trigger (CHOP):它是 ADSR 波形產生器(和合成器的波形產生器同源),按 push 會送出一段 0→1→回落的波形。想看清波形,到 Common 把 Time Slice 關掉,才看得到整段變化。Math (CHOP):Trigger 只有 0~1,用 From Range 把 0→1 映射成 0→360,旋轉幅度才夠。Trigger 直接綁旋轉會轉過去又轉回來(因為它是觸發開關,數值會歸位)。要在 Math 與旋轉之間插 Speed (CHOP)——它是「持續累加器」,輸入是多少就每秒累加多少,於是按一下就持續往同方向轉,波形回 0 後累加停止、盤面自然停下。Math 的 To Range 上限從 360 拉到 1000,Speed 的累加就更猛。⚠️ 展場一定做防呆。 觀眾在展場一定會狂按按鈕試著弄出 bug。把防呆做進Trigger:觸發旋轉後,不論中途怎麼按,都照樣在 5 秒後停,不會被連按疊加成無限旋轉。能預判觀眾的怪操作並先擋好,體驗才穩;有餘力還能在怪操作下藏彩蛋。
op('switch1').par.index = channel.name 每個字什麼意思?op('switch1') 是指定那顆 Switch (CHOP) 節點;.par 進到它的參數欄;.index 指到 Index 這個參數;= channel.name 把剛被觸發的 channel 名稱(已 rename 成數字)指派進去。合起來就是「按幾號,Switch 的 index 就變幾」。Switch (TOP) 和 Cross (TOP) 差在哪、該選哪個?Switch input 無限、預設硬切、開 Blend Between Inputs 可漸變,通用性高;Cross 只有 2 個 input、只做 0–1 漸變。不確定就用 Switch,只有明確要兩畫面漸變才選 Cross。Logic (CHOP) 的 Off When 0 / Value Change 各是什麼?Fan (CHOP) 切到第 1 個,為什麼顯示 0?Switch 的 Index 時把這個位移記著就不會差一號。Timer (CHOP) 前面兩個 input 差在哪?Logic (CHOP)?Logic (CHOP),把「不是 0」都變 1,訊號才會是乾淨的 0/1,開關不會在邊角糊掉。Keyboard In → Logic(radio button) → Fan(fan in) → Null → Switch 做切換,再接 Logic(value change) → Timer → Filter → Cross 做轉場,並用 Delay Length ÷ 2 修正切換時機。全程不寫 Python。Circle × Multiply → Analyze(max) → TOP to CHOP → Select(alpha) → Logic → Level,讓圓碰到目標圖時跳出一張圖。記得用 Logic 把 alpha 壓成 0/1、合成前用 Fit 統一比例。Button(momentary) → Trigger → Math(0→360) → Speed → 旋轉,調 ADSR 讓它轉約 5 秒漸停,並確認「觸發後怎麼狂按都照樣停」。Mouse In(tx+ty) → Math(combine) → Logic(value change) → Timer,用 running 接 Filter → Switch,做出沒人互動就自動退回預設影片。時間 | 內容 |
本週四個互動效果預告 | |
方法一: Rename + CHOP Execute (DAT) 控 Switch,拆解 op('switch1').par.index | |
Logic channel pre-op:invert/toggle/radio button | |
Fan (CHOP) 多 channel 轉單一數值 | |
Switch (TOP) vs Cross (TOP) | |
Logic value change → Timer (CHOP) 觸發轉場 | |
Delay (CHOP) Length ÷ 2 修正切換時機 | |
2D 碰撞: Circle × Multiply (TOP) | |
Analyze (TOP) 改 Max → TOP to CHOP | |
Select 取 alpha → Logic 壓 0/1 | |
用 Level (TOP) 讓圖出現 + Fit 統一比例 | |
狀態機需求:預設/互動兩狀態 | |
Mouse In → Math(combine) → Logic 偵測互動 | |
Timer running → Filter → Switch 回預設 | |
Feedback (TOP) 手動/自動 reset | |
幸運轉輪需求+防呆機制、 Button 選 momentary | |
Trigger (CHOP) ADSR 波形(關 Time Slice 看) | |
Math From Range 0→360 + Speed (CHOP) 累加旋轉 | |
調 Trigger Peak Length 至約 5 秒 | |
小遊戲標靶:碰撞判定+狀態機的綜合應用 |