TouchDesigner 如何接收 Unity 傳送的數值?

發表於

TouchDesigner

在上一篇文章中,我們介紹了如何使用 TouchDesigner 的 OSC Out CHOP 傳送數值給 Unity。在本篇文章中,我們將使用 OSC In CHOP 讓 TouchDesigner 接收 Unity 傳送過來的數值。

我們將使用 Unity 的 Slider UI 作為一個互動介面,輸出範圍為 0~1 的數值,並透過 OSC 讓 TouchDesigner 接收。

具體步驟如下:

  1. 在 Unity 中建立一個 Slider UI。
  2. 將 Slider UI 連接到 OSC Jack 的 Property Sender。
  3. 在 TouchDesigner 中建立一個 OSC In CHOP。
  4. 啟動 Unity 和 TouchDesigner。
  5. 在 Unity 中滑動 Slider UI,TouchDesigner 中會接收數值並顯示在界面上。
touchdesigner-get-value-from-unity-with-osc - touchdesigner get value from unity with osc 1

操作步驟

一、Unity 安裝 OSC Jack 套件

首先開啟 Unity 專案(2021.3 以上版本),點擊 Edit 開啟 Project Settings。

touchdesigner-send-value-to-unity-with-osc - touchdesigner send value to unity with osc 05

切換到 Package Manager 分頁,於 Scoped Registries 中註冊一個套件來源,屬性內容如下表,輸入完成後點擊 Save 儲存並關閉 Project Settings 視窗。

NameKeijiro
URLhttps://registry.npmjs.com
Scope(s)jp.keijiro
touchdesigner-send-value-to-unity-with-osc - touchdesigner send value to unity with osc 06

點擊 Window 開啟 Package Manager。

touchdesigner-send-value-to-unity-with-osc - touchdesigner send value to unity with osc 07

先切換套件來源為 My Registries,再從中找到 OSC Jack 並點擊 Install 安裝套件。

touchdesigner-send-value-to-unity-with-osc - touchdesigner send value to unity with osc 08

套件安裝完成後,在 Project 的 Assets 資料夾上點擊右鍵 > Create > ScriptableObjects > OSC Jack > Connection,建立 OscConnection 設定檔。

touchdesigner-send-value-to-unity-with-osc - touchdesigner send value to unity with osc 10

點擊 OscConnection,將 Port 改成 TouchDesigner 預設的 10000。

touchdesigner-send-value-to-unity-with-osc - touchdesigner send value to unity with osc 11

二、Unity 建立 UI

於場景中建立一個 Slider UI,調整成適中的大小。Slider 物件的預設設定的數值範圍已為浮點數 0~1,無須修改任何設定。

touchdesigner-get-value-from-unity-with-osc - touchdesigner get value from unity with osc 3

三、Unity OSC 發送數值

於場景中建立一個空物件 GameManager,先加入 OSC Jack 的 Property Sender 腳本,再將事先建立好的 OscConnection 設定檔拖曳至 Connection 欄位中,最後將我們新增的 Slider UI 拖曳至 Data Source 欄位,並分別設定 Component 為 Slider、Property 為 value,請參考下圖進行設定

touchdesigner-get-value-from-unity-with-osc - touchdesigner get value from unity with osc 4

四、TouchDesigner 建立 OSC In CHOP

開啟新的 TouchDesigner 專案,刪除所有預設的 OP,新增一個 OSC In 並保持預設設定不動,即可執行測試。

touchdesigner-get-value-from-unity-with-osc - touchdesigner get value from unity with osc 5

執行測試

執行 Unity 專案,用滑鼠拖曳畫面中的 Slider 後,對應的數值將直接反應在 TouchDesigner 中。

touchdesigner-get-value-from-unity-with-osc - touchdesigner get value from unity with osc 6

參考資料