파이썬으로 OP/COMP 제어

TouchDesigner는 노드 기반 프로그래밍 언어이지만 Python에서도 작성할 수 있습니다.
『어디에 쓸까? 에 대해서는 satoruhiga씨 하지만, Python의 기본적인 쓰는 방법은 다양한 사람 』에 대해 쓰고 싶습니다.

TouchDesigner에서 주로 다루는 세 가지 클래스



TouchDesigner를 Python으로 처리하는 경우 주로 네 가지 클래스를 처리합니다.
COMP 클래스 , OP 클래스 , Par Class , 커넥터 클래스 입니다.
COMP Class는 Base COMP등의 COMP를 취급할 때의 클래스, OP Class는 TOP나 SOP등을 취급하는 클래스, 그리고 OP나 COMP가 가지는 각종의 값, 예를 들면 tx, ty, tz나 button의 w(width), h (height) 등이 Par Class입니다.
Connector Class는 OP나 COMP가 가지는 커넥터의 부분(OP끼리를 연결하는 와이어를 연결하는 곳입니다)의 클래스입니다.

또, 세세하게 말하면 OP Class는 각 OP마다 OP Class를 계승해 만들어지고 있습니다만, 이번은 개별의 메소드에는 접하지 않고, 전체에 공통된 처리를 소개해 갑니다.
개별를 보려면 CHOP Class , TOP 클래스 , SOP 클래스 , MAT Class , DAT 클래스

파이썬에서 변수 이름을 확인하는 방법



마우스 커서를 알고 싶은 파라미터의 이름 위에 롤오버하면 이름이 표시됩니다.
"Width"의 Python의 변수 이름은 "w"와 같습니다.


잘 쓰는 사람 몇



자주 쓰는 처리를 들어 둡니다. 치트 시트 대신에 부디.

Constant의 값 변경



직접 값을 읽고 쓸 수 있습니다.
op('circle1').par.radiusx.val = 0.5

표현식의 경로 변경



경로를 문자열로 씁니다.
op('circle1').par.radiusx.expr = 'absTime.seconds'

모드 변경



Expression 모드로 전환하려면,
op('circle1').par.radiusx.mode = ParMode.EXPRESSION

Constant 모드로 전환하려면,
op('circle1').par.radiusx.mode = ParMode.CONSTANT

Connector Class의 예 1. OP끼리 연결



커넥터가 1개밖에 없는 것은,
op('circle1').onputConnectors[0].connect(op('level1'))

커넥터가 복수 있는 것은,
op('circle1').onputConnectors[0].connect(op('comp1').inputConnectors[0])

덧붙여서 connect 메소드는 인풋 커넥터로부터도 두드릴 수 있습니다.
op('level1').inputConnectors[0].connect(op('circle1').outputConnectors[0])

COMP끼리 연결



기본 OP의 커넥터와 함께 명칭이 inputCOMPConnector/outputCOMPConnector가 되어 있을 뿐입니다.
op('button1').outputCOMPConnectors[0].connect(op('container1').inputConnectors[0])

입력 수를 세는


len(op('circle1').inputConnectors)
len(op('button1').inputCOMPConnectors)

연결 해제


op('circle1').inputConnectors[0].disconnect()
op('button1').inputCOMPConnectors[0].disconnect()

OP나 COMP 위치를 이동


op('circle1').nodeY = op('circle1').nodex + 10
op('button1').nodeY = op('button1').nodeY + 10

좋은 웹페이지 즐겨찾기