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 OutDAT
와 OSC 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
Reference
이 문제에 관하여(TouchDesigner와 파이썬 간의 OSC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shks/items/5feedbaeb5a743a484c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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 OutDAT
와 OSC 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
Reference
이 문제에 관하여(TouchDesigner와 파이썬 간의 OSC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shks/items/5feedbaeb5a743a484c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
'''
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()
OSC OutDAT
와 OSC 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
Reference
이 문제에 관하여(TouchDesigner와 파이썬 간의 OSC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shks/items/5feedbaeb5a743a484c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(TouchDesigner와 파이썬 간의 OSC), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shks/items/5feedbaeb5a743a484c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)