터치 디자이너로 OSC 컨트롤러를 만들어 봤어요.배타 제어 스위치 편

평소 터치 디자이너와 리솔럼을 이용해 VJ를 만들고 TouchDesigner로 그곳에서 활용하는 OSC 컨트롤러를 제작한다.
그 과정을 기억하면서 완성된 컨트롤러를 공유할 수 있었으면 좋겠어요.(이번에는 배타적 제어 스위치만 있다.)
이걸 읽고 뭘 할 수 있죠?
이번에는 배타 제어 스위치를 만들 수 있다.
별거 아닌 내용인데...!간단하지만 미묘하게 만들기 어려운 부분이 있어서 썼어요.
배타 제어 스위치가 각도 버튼을 켜면 다른 단추가 꺼집니다.Resolume는 Layer의 Clip을 전환하는 데 사용됩니다.

샘플 toe
왜 터치 디자이너로 OSC 컨트롤러를 만듭니까
터치 디자인 하면 비주얼 제작의 용도가 떠오를 수 있지만 surface go 등 소형 win 태블릿PC에서 사용할 수 있는 잘 처리된 컨트롤러로 사용할 수 있을 것 같다.
터치로 만든 장점은 다음과 같다.
  • 무료 사용 가능
  • gui로 면을 만들 수 있어 제작 속도가 빠르다
  • ptyhon을 묘사할 수 있기 때문에 필요한 물건을 만들 수 있다
  • 따라서 touchOSCOpenStageControl는 만족스럽지 못하지만 재능과 학식이 있는 사람에게openFrameworks 같은 방법으로 격식에 맞지 않게 쓰도록 추천한다.
    특히 개인적으로는 여러 OSC 신호를 일괄 보존하고 일괄 호출할 수 있다는 점이 큰 동력이다.
    VJ에서 GLSL과 터치 디자이너를 사용하면 비주얼이 좋아도 매개 변수가 흘러 재현이 어렵다.
    따라서 매개 변수 그룹을 실시간으로 읽을 수 있는 컨트롤러를 원합니다.
    다이어그램

    OSC는 하나입니다.각 버튼에서 OSC out을 스크립트로 두드립니다.
    각 버튼에 OSC out을 만들면 목적지 IP 주소를 변경해야 할 때 피곤
    또 계층마다 주소를 설정한 기술이 있고, 계층마다 부모의 주소를 자주 참고한다.이에 따라 OP에는 자신의 주소만 추가됐다.
    마스터 버튼 정보
    기본 Buton COMP를 수정할 수 있습니다.
    이후 리플리케이터를 활용해 복제하고 이를 토대로 제작한다.

    a:배타 제어
    스위치가 연결되었을 때, 이곳의 다른 스위치는 모두 닫혔다.
    def onOffToOn(panelValue):
        clips = ops('../clip*')
        for op in clips:
            if op != me.parent():
                op.panel.state = 0
        return
    
    b: OSC 제작 주소
    TouchDesinger와 OSC 주소는 모두 차원 구조가 있기 때문에 가능한 한 공통화합니다.
    여기에 위 계층 제작/hoge에서 부모의 조종사 말미의 서수를 주소에 추가한다.
    리플리케이터가 복제할 때는 각자 주소를 따로 만든다.
    op('osc_current_address').text = op('../osc_current_address').text+str(me.parent().digits)
    
    필요한 OSC 주소는 도구에 따라 달라지지만, 이 부분을 조정하면 조작이 더욱 편리하다.
    c.channel 이름은 OSC 주소
    Rename CHOP을 사용하여 b에서 만든 주소를 채널 이름으로 설정합니다.
    이것도 자신의 입력란에만 기술할 수 있지만 나중에 볼 수 있는 가독성을 높이기 위해 주소를 꺼냈다.

    d.OSC out DAT 전송
    CHOP Execute DAT를 이용해 버튼을 누르면 부모님께 보내는 OSC out.
    def onOffToOn(channel, sampleIndex, val, prev):
        op('../send_osc_message').sendOSC(str(channel.name), [float(val)])
        return
    
    버튼의 표시명을 만지작거리다
    bgOP을 리플리케이터로 복제했을 때 이름이 독특해졌어요.

    상위 OP 이름 뒤의 숫자 부분을 표시합니다.parent().digits이렇게 되면'1','10'과 같은 버튼의 자릿수가 다르게 나타나 아쉬움을 줄 수 있다.
    따라서 다음과 같은 내용을 추가함으로써'01''10'등은 모두 두 자릿수로 표시한다.'{:0=2}".format(文字列)Replicator 정보
    Replicator 복제 마스터 버튼을 활용하십시오.OP 사람들은 비교적 사랑하는데, 호출하는 사람만 약간 만지작거린다.

    a: 복사된
    Master 버튼이 표시되지 않고 복사된 버튼만 표시하려면 Parameter > Panel > Display 를 Off로 설정합니다.
    이렇게 되면 복사한 물건 디스플레이도 오프가 되므로 콜백 내에서 디스플레이를 진행해 주세요.c.par.display = 1b:복제품에 대한 스크립트 실행
    복사된 OP에서 OSC 주소를 자동으로 생성하려면 스크립트를 실행하십시오.
    이거 안 뛰면 전부 같은 OSC 주소야.c.op('calc_osc_current_address').run()

    좋은 웹페이지 즐겨찾기