TouchDesigner Python Class 教學:使用 numRows / numCols 快速掌握 DAT 表格資料行列數

透過 TouchDesigner 中的 numRows 與 numCols,快速獲取 DAT 表格的行列數,搭配 Blob Track、互動邏輯、感測資料處理超實用!內含範例與圖解,幫助你有效整合資料與互動邏輯。

Jun 23, 2025
我們開課囉!
本月開設新課程 TD103 | TouchDesigner 102 - CHOP 資料與控制訊號 以及 DCI-01 | 互動電子裝置入門工作坊 - ESP32, Arduino, 擴展版與感測器,歡迎報名參加~
 

⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑
在使用 TouchDesigner 的 DAT OPs(如 Table (DAT)Text (DAT))處理表格資料時,很常會根據表格的列數與欄數來判斷目前的資料狀態,進而控制互動邏輯。
這篇要介紹兩個超好用的屬性:
numRowsnumCols —— 可以直接取得 DAT Table 的行數與列數,是製作互動邏輯時最常使用的功能之一!

DAT Class 快速解析

您可以直接用 Python 語法來取得指定 DAT 的行列資訊:
op('你的 DAT 名稱').numRows op('你的 DAT 名稱').numCols

numRows

  • 取得表格的 列數(Rows)
  • 回傳整數值(int)
  • 屬性為唯讀,不可更改

numCols

  • 取得表格的 欄數(Columns)
  • 回傳整數值(int)
  • 屬性為唯讀,不可更改
notion image

實用範例:配合 Blob Track 使用

當你使用 Blob Track (TOP) 來偵測畫面中的多個物件時,它的輸出就是一個 Table (DAT),裡面每一行代表一個被偵測到的 Blob。
這時候只要這樣寫:
op('blobtrack_out').numRows
就可以快速知道畫面上目前有幾個 Blob 存在,再搭配邏輯條件去控制:
  • 互動觸發
  • 視覺切換
  • 音效觸發
  • …etc
notion image

進階補充:與 Info CHOP 配合使用

雖然使用 numRows / numCols 已經很直觀,
但有些情境下你可能希望以 CHOP 方式整合數據流,這時也可以使用 Info (CHOP) 搭配 DAT:
  1. 建立 Info (CHOP) 並連接你的 DAT
  1. 在參數中選擇 num_rowsnum_cols
  1. 即可將行列數變成 CHOP 值,便於與其他邏輯結合(例如 Trigger (CHOP)
notion image

小插曲:超容易打錯的 numRows

說來好笑,用了這麼多年,我還是常常會打錯這個語法:
  • 打成 numRow(少了 s)
  • 打成 numRows()(以為是 function)
  • 或是 op('xxx').par.numRows(誤以為是參數)
所以每次打錯,我都要回去查官方 wiki :D

總結

numRowsnumCols 是操作 Table (DAT) 時的好用工具,簡單、直觀又實用:
  • 快速獲取資料行列
  • 動態控制互動行為
  • 適用各種感測、資料輸入、狀態偵測場景
無論你是 TouchDesigner 初學者或老手,都值得記住這兩個好用屬性!
 
⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑⭑
Luxmin Institute 互動研究院 策劃了一系列關於互動體驗技術、科技藝術與多媒體整合為核心的主題課程、工作坊、社群、聚會,以及 TXRX 互動體驗大會
關注我們最新的活動動態與報名資訊:https://www.threads.com/@luxmin.institute