TouchDesigner 接收 Unity 的數值

發表日期:
2023.07.27
/
分類:
在上一篇文章中,我們介紹了如何使用 TouchDesigner 的 OSC Out CHOP 傳送數值給 Unity。在本篇文章中,我們將使用 OSC In CHOP 讓 TouchDesigner 接收 Unity 傳送過來的數值。 我們將使用 Unity 的 Slider UI

在上一篇文章中,我們介紹了如何使用 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 中會接收數值並顯示在界面上。

實作步驟

Unity 安裝 OSC Jack 套件

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

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

NameKeijiro
URLhttps://registry.npmjs.com
Scope(s)jp.keijiro

點擊 Window 開啟 Package Manager。

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

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

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

Unity 建立 UI

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

Unity OSC 發送數值

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

TouchDesigner 建立 OSC In CHOP

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

執行測試

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

參考資料

comments powered by Disqus