🎮

TouchDesignerとUnity間でOSC通信

2022/08/24に公開

前提

以下のライブラリーを利用します。

Unityでデータを受け取る

TouchDesigner側の設定

CHOPを使う方法とDATを使う方法があります。
ここではCHOPを使うこととします。
OSC Out オペレーターを用います。

Unity側の設定

1. osc.csのインスタンス化

空のGameObjectを作成し、/assets/osc/osc.cs をそれへドラッグ&ドロップして関連づけます。

そうすると、Inspectorタブ内で、OSCの設定ができるようになります。

2. データ受け取り処理

Unity側でのデータ受け取り処理をC#で書きます。
書き方の一例です。

using UnityEngine;
using System.Collections;

public class ReceivePosition : MonoBehaviour {
    
   	public OSC osc;

	// Use this for initialization
	void Start () {
       osc.SetAddressHandler("/h", OnReceiveH);
    }
	
	// Update is called once per frame
	void Update () {
	
	}

    void OnReceiveH(OscMessage message) {
        float h = message.GetFloat(0);
        Debug.Log("getVariables h: " + h);
    }

}

書き終えたら、1. で作成した、空のGameObjectへドラッグ&ドロップして関連づけておきます。

そうすると、Inspectorタブ内で、OSCの設定欄が現れますので、1で作成したOSCを割り当てます。

3. 確かめる

TouchDesigner側のファイルが開いている状態で、Unity側のファイルをPlayして、データが正しく受け取れていることを確かめます。

Discussion