DMX란?
DMX는 "디지털 멀티플렉스"의 약자로, 라이브 이벤트 공간에서 간단한 것부터 복잡한 스테이지 라이팅 및 이펙트를 제어하기 위해 일반적으로 사용되는 디지털 통신 네트워크의 표준입니다. DMX512 이전에는 호환되지 않는 다양한 독점 프로토콜을 사용하던 조광기를 제어하기 위한 표준화된 방법으로 고안되었습니다. 곧 컨트롤러(예: 라이팅 콘솔)를 조광기와 포그 머신 및 지능형 라이트와 같은 특수 효과 장치에 연결하는 주요한 수단이 되었습니다.
또한 DMX는 극장 외에도 크리스마스 조명에서 전자 광고판에 이르는 다양한 규모의 인테리어 및 건축 조명으로까지 확장되었습니다. 극장과 공연장에서 널리 수용됨에 따라 이제 DMX로 거의 모든 것을 제어할 수 있습니다. DMX는 조명 장비, 레이저, 스모크 머신, 기계 장치 등 다양한 장치를 제어하기 위해 업계 전반에서 사용됩니다.
이제 버추얼 프로덕션의 맥락에서 DMX는 두 가지 방식으로 사용되며 탄력을 받고 있습니다. 첫째, 라이팅 데스크를 사용하여 언리얼에서 이벤트를 제어하고 트리거하는 데 사용됩니다. 둘째, 생성된 이미지와 픽셀을 사용하여 픽스처 RGB 값을 구동하는 픽셀 매핑 툴을 통해 DMX가 사용되는 조명 장비 및 디바이스 세트를 구동하는 데 사용됩니다. 마지막으로 강조해야 할 또 다른 중요한 사용 사례는 UE 내에서 DMX 기반 쇼, 프로젝트 및 버추얼 프로덕션 설정의 고퀄리티 프리비즈입니다.
프로토콜
Art-Net 과 sACN 업계 베리언트를 모두 지원하여 DMX 기능을 추가했습니다.
Art-Net과 sACN은 이더넷(IP)을 통해 DMX 데이터를 집계하고 전송할 수 있는 네트워크 프로토콜입니다. Art-Net을 사용하면 단일 네트워크 케이블로 32,768개의 유니버스 전송이 가능합니다. 오래된 프로토콜이지만 더 많은 장비와 장치에서 지원되며, 현재 더 많이 사용되는 sACN(컨트롤 네트워크용 스트리밍 아키텍처)은 단일 네트워크 케이블을 통해 63,999개의 DMX 데이터 유니버스를 실행할 수 있습니다.
DMX 데이터
DMX는 한 위치(소스)에서 다른 위치(목적지)로 전송되는 디지털 정보 패키지로 생각할 수 있습니다. 각 패키지는 특정 소스에서 특정 수신자가 수신하고 읽어야 하는 특정 정보로 생성됩니다. 각 패킷은 매우 의도적인 방식으로 구조화되어 있으며, 하드웨어 수준에서 어떻게 작동하는지에 대해 자세히 알고 싶다면 ESTA 표준 을 읽어보시기 바랍니다. 여기서는 포함된 데이터에 대해서만 설명합니다. 각 패키지에는 512바이트의 배열이 포함되며, 각 배열은 0~255 범위의 값을 갖습니다.
각 바이트를 일반적으로 채널(Channel) 이라고 합니다. 512개의 채널로 구성된 전송 패키지를 보통 유니버스(Universe) 라고 부릅니다.
언리얼 엔진을 사용한 DMX
언리얼 엔진을 사용하면 인터페이스 디바이스를 사용하여 이더넷을 통해 DMX를 사용하여 픽스처를 직접 제어할 수 있습니다. UE는 신호 소스 역할을 하여 Art-Net 또는 sACN 프로토콜을 사용하여 데이터를 DMX로 전송한 다음 설치를 구성하는 데이지 체인 픽스처로 전송할 수 있으며, 픽스처에서 다시 전송되는 DMX 메시지를 직접 수신하고 해석할 수도 있습니다.
또한 UE를 사용하여 라이팅 콘솔 작업을 할 수도 있는데, 연결된 DMX 픽스처에 대해 라이팅 콘솔에서 보낸 DMX 명령을 해석하여 전달하거나 UE에서 렌더링한 씬에 대한 DMX 데이터를 라이팅 콘솔로 전송할 수 있습니다.
여기서 언리얼 엔진은 DMX 데이터의 소스 역할을 하는 컴퓨터에서 실행됩니다. 이미지 소스를 보려면 여기를 클릭하세요.
이 엔진 버전에서는 USB 인터페이스 지원이 구현되지 않았습니다.
DMX 픽스처
DMX 픽스처(DMX Fixtures)는 수신된 데이터를 바탕으로 실제 명령을 수신하고 실행하는 장치입니다. 이를테면 조명을 켜고 끄거나 장치를 90도 회전하는 역할을 합니다. DMX 픽스처에는 단순히 켜고 끄는 표준적인 무대 조명에서 다방향 회전과 조명 필터를 갖춘 지능형 조명까지 다양한 종류가 있습니다.
각 픽스처에는 하드웨어 수준에서 사전 정의된 어트리뷰트 및 명령 세트가 있습니다. 이러한 어트리뷰트는 모드(Mode) 라는 그룹으로 구성됩니다. 대개 픽스처에는 픽스처가 반응할 이용 가능한 어트리뷰트를 사전 정의하는 여러 모드가 포함됩니다.
픽스처 제조사들은 사용자가 폭넓은 사용 사례에 맞게 활용할 수 있도록 다양한 모드 옵션을 만들어 두고, 사용자가 가장 중요한 것들을 선택할 수 있도록 최대한 많은 기능을 포함합니다. 그 결과 매우 단순하고 가벼운 채널 카운트 모드, 복잡하고 거대한 채널 모드, 그 중간 정도의 모드가 공존합니다. 전문적인 조명 기획에서는 기능과 제어 용이성을 균형 있게 갖추고 DMX 채널 카운트를 절약하기 위해 중간급 모드를 선택하는 경우가 많습니다.
각 모드에는 어트리뷰트 세트가 포함됩니다. 어트리뷰트는 수신한 DMX 데이터에 어떻게 반응할지 하드웨어에 알리는 역할을 합니다. 대부분의 경우 장치와 함께 제공되는 픽스처 매뉴얼에서 특정 픽스처의 모든 어트리뷰트를 찾을 수 있습니다.
자세한 정보는 DMX 픽스처 문서를 참고하세요.
신호 커뮤니케이션
이제 UE와 픽스처가 DMX를 사용하여 서로 통신하는 방식을 알아보겠습니다. UE는 하나 또는 여러 개의 유니버스를 구동할 수 있으며, 각 유니버스에는 여러 픽스처가 데이지 체인 방식의 긴 스트링으로 연결되어 있습니다. 유니버스는 주소가 지정된 픽스처 그룹에 대한 식별 형식이라고 생각하면 됩니다. 적절한 픽스처로 데이터를 전송하려면 올바른 유니버스에도 데이터를 전송해야 합니다
UE에 DMX 패킷을 배포하도록 명령하면 UE는 적절한 유니버스를 찾아서 연결된 각 픽스처가 수신하고 해석할 데이터 패킷을 스트링 아래로 보냅니다. 각 픽스처는 동일한 데이터 패킷을 수신하고 패킷에 해당 픽스처를 위한 데이터가 포함되어 있으면 내부 명령을 실행합니다. 픽스처가 데이터를 읽으면 데이터는 체인을 따라 연결된 다음 픽스처로 전달되어 프로세스를 반복합니다. 픽스처가 적절한 정보를 수신하려면 올바른 주소에서 올바른 데이터를 수신하고 있어야 합니다. 여기에서는 픽스처 주소 지정 또는 "패치"라는 개념을 소개하며, 다음 섹션에서 자세히 다룹니다.
다음은 신호 계층구조 및 데이터 사용에 관한 개요입니다.
| 이름 | 설명 |
|---|---|
| 유니버스 | 각 유니버스에는 최대 512바이트까지 데이지 체인으로 연결된 여러 개의 픽스처가 포함될 수 있습니다. |
| 픽스처 | 각 픽스처는 유니버스 내에서 하나 이상의 주소를 점유합니다. |
| 시작 어드레스 | 픽스처의 시작 주소는 픽스처가 수신된 DMX 데이터 패킷(바이트 배열의 단일 인덱스)을 해석하는 방법을 결정합니다. |
| 어트리뷰트 | 픽스처에는 현재 모드에 의해 정의된 속성 세트가 포함되어 있으며, 각 속성은 속성 번호(채널)와 시작 주소에 따라 결정되는 주소를 갖습니다(예: 아래 픽스처 패치 항목의 다이어그램 참조). |
픽스처 패치
픽스처 패치(Fixture Patch) 개념은 적절한 데이터를 수신하려면 픽스처를 커뮤니케이션 채널에 따라 가상으로 배치할 수 있어야 한다는 발상에서 나왔습니다. UE는 DMX로 데이터의 전체 패킷을 전송하여 다수의 픽스처가 읽게 되므로, 패킷에서 읽고 해석해야 하는 데이터와 무시해야 하는 데이터를 정확히 식별할 방법이 반드시 필요합니다.
이를 위해 유니버스 내의 각 픽스처에 특정한 시작 어드레스를 할당합니다. 시작 어드레스는 1에서 512 사이입니다. DMX 패킷의 최대치가 512이기 때문입니다. 픽스처가 특정 시작 어드레스에 할당되면, 할당된 시작 어드레스에서부터 현재 모드의 픽스처에 있는 어트리뷰트 수를 더한 어드레스까지를 점유합니다.
다음 예시를 참고하세요.
픽스처 2 현재 모드 = 8채널 모드(8 개의 어트리뷰트 포함)
-
빨강(어드레스 8)
-
녹색(어드레스 9)
-
파랑(어드레스 10)
-
스트로브(어드레스 11)
-
패닝(어드레스 12)
-
틸팅(어드레스 13)
-
조광기(어드레스 14)
-
매크로(어드레스 15)
시작 어드레스 = 8
어드레스 범위 = 8~15
위 예시에 따르면, 패닝하려는 픽스처는 어드레스 12에서 0~255 사이의 바이트 값을 리슨하고, 이 값의 정의된 회전 범위 내에서 픽스처가 얼마나 패닝할지를 최종적으로 제어합니다.
어트리뷰트 해상도
어트리뷰트는 0~255와 같은 단일 바이트 입력 범위로 작동하는 것이 일반적이지만, 때로는 움직임이나 조명을 더 정밀하게 제어하기 위해 더 높은 해상도가 필요합니다. 이 경우 어트리뷰트는 하나가 아닌 여러 바이트로 구성된 더 큰 입력 범위를 사용하게 됩니다. 여러 바이트를 조합하면 특정 어트리뷰트를 제어하는 데 더 높은 값을 사용할 수 있습니다. 다음은 사용 가능한 어트리뷰트 신호 타입입니다.
-
8비트 어트리뷰트 - 최소: 0, 최대: 255 - 1개 어드레스 점유
-
16비트 어트리뷰트 - 최소: 0, 최대: 65,536 - 2개 어드레스 점유
-
24비트 어트리뷰트 - 최소: 0, 최대: 16,777,215 - 3개 어드레스 점유
-
32비트 어트리뷰트 - 최소: 0, 최대: 4,294,967,296 - 4개 어드레스 점유
8비트를 초과하는 어트리뷰트는 유니버스에서 복수의 어드레스를 점유합니다. 해상도에 따라 연속되는 여러 어드레스를 점유할 수 있습니다. 위 목록에서 어트리뷰트가 점유하는 어드레스의 수를 확인할 수 있습니다.
네트워크를 통한 DMX 커뮤니케이션
지난 몇 년 사이에는 네트워크 커뮤니케이션 방식이 점점 더 대중화되고 중요해졌습니다. 공연의 규모가 커지고 픽스처 수도 늘어나면서 더 많은 픽스처를 빠르게, 효율적으로, 안정적으로 처리할 필요성이 커졌습니다.
그래서 DMX의 구조를 이용하면서도 채널 제한을 극복하기 위해 이더넷 프로토콜이 개발되었습니다. 이더넷 프로토콜은 이더넷 기술을 활용하여 여러 DMX 유니버스 데이터를 하나의 Cat5 케이블로 전송할 수 있게 합니다. UE DMX 플러그인은 가장 널리 활용되는 주요 이더넷 프로토콜 Art-Net과 sACN을 지원합니다.
Art-Net
Art-Net은 UDP를 통해 DMX512-A 조명 제어 프로토콜 및 원격 장치 관리(Remote Device Management, RDM) 프로토콜을 전송하는 무료 커뮤니케이션 프로토콜입니다. 지능형 조명 기구 등의 '노드'와 조명 제어 소프트웨어를 실행하는 조명 콘솔 또는 범용 컴퓨터 등의 '서버'를 연결하는 커뮤니케이션에 사용됩니다.
Art-Net 프로토콜에 관한 자세한 정보는 Art-Net 사이트를 참고하세요.
sACN
sACN은 네트워크를 통해 DMX 유니버스를 효율적으로 전송하기 위해 ESTA가 개발한 표준 프로토콜로, ArtNET과 비슷한 면이 많습니다. sACN의 장점 중 하나는 멀티캐스트 옵션 덕분에 환경설정이 매우 쉽다는 것입니다. sACN은 다수의 RGB LED를 제어하는 용도로 널리 사용되는 프로토콜이기도 합니다.
프로토콜 통합
언리얼 엔진 DMX 플러그인에는 sACN 및 Art-Net 프로토콜 변형을 통해 DMX 데이터를 수신하고 전송할 수 있는 크로스 플랫폼 지원이 포함되었습니다. Art-Net과 sACN은 모두 UDP 네트워크 프로토콜이므로 언리얼 엔진의 기존 네트워크 메시징 기능은 이제 언리얼 엔진 아키텍처 위에 구축된 각 프로토콜을 네이티브로 구현합니다.
이 플러그인에는 Art-Net 프로토콜의 최신 버전인 Art-Net 4가 통합되어 있습니다. Art-Net 4의 이론적 한계는 32,768개의 유니버스 또는 포트 주소(즉, 32킬로버스)로, Art-Net 3의 유니버스 한계인 256개와는 대조적입니다.
Art-Net 4 프로토콜의 전체 사양을 확인할 수 있는 공식 문서는 여기를 참조하세요.
sACN 프로토콜에 대한 공개된 문서는 이 링크를 참조하세요.