TouchDesigner와 파이썬 간의 OSC

4536 단어 TouchDesigner

배경



TouchDesigner는 내부에서 python 스크립트를 실행할 수 있지만, 다양한 사정에 따라 TouchDesigner 내부가 아닌 python (물론, 다른 머신 포함)과 상호 작용해야하는 날이 올 수 있습니다.

라는 케이스가 몇 번 있었으므로, 기록해 둡니다.

환경:
windows10, macos, TouchDesigner 2020.23680
파이썬 3.7

OSC



TouchDesigner의 OSC 정보
htps : // 코 m/코다이 100/이고 ms/5b614 훗 d5f3에 17b7f8f6
htp // 사토루 히가. 이 m/TDWS2018/다 y9/

파이썬 측



pythonosc를 사용합니다.

OSC-Python.py

'''
setup instruction 
for Install pythonosc
pip install python-osc

'''

from pythonosc import dispatcher
from pythonosc import osc_server
from pythonosc import udp_client

def messege_handler(unused_addr, *p):
    try:
        print(p)
        client.send_message("/message_echo", p)
    except ValueError: pass

dispatcher = dispatcher.Dispatcher()
dispatcher.map("/message", messege_handler)
server = osc_server.ThreadingOSCUDPServer(("127.0.0.1", 5005), dispatcher)
print("Serving on {}".format(server.server_address))

client = udp_client.SimpleUDPClient("127.0.0.1", 5006)

server.serve_forever()

여기서는 port5005에서 받은 데이터를 그대로 port5006으로 다시 보내도록 하고 있습니다.

TouchDesinger측


OSC OutDATOSC InDAT 를 사용합니다. 포트 번호가 다릅니다.



OSC를 보내는 테스트로서 textDAT에 아래를 기재하여 run합니다.

textDat

n = op('oscout1')
n.sendOSC('/message',['something', 9999])

Round Trip



같은 머신 내(Windows10의 Ryzen 3960X CPU)에서 TD→Python→TD의 경과 시간은 6ms였습니다. IP 지정을 하면 다른 머신과의 교환도 가능합니다.

code

좋은 웹페이지 즐겨찾기