🎇 DMX 언리얼 연동에 앞서
🎆 DMX 채널 개념
DMX에서는 최대 512개의 채널을 하나의 유니버스에서 사용할 수 있으며 언리얼에서도 같은 개념이 적용된다. 유니버스는 하나의 DMX 네트워크 그룹이고 채널은 그 안의 개별 데이터 슬롯이라고 볼 수 있다. 각 채널은 1바이트(8비트)의 값을 가진다. (0~255 범위의 값을 가짐)
개념 이해를 위한 몇 가지 예시 설명이다.
- RGB 제어의 경우 Red(1채널 0~255), Green(2채널 0~255), Blue(3채널 0~255) 총 3개의 채널을 사용한다.
- 무빙헤드 스포트라이트 같은 복잡한 조명의 경우, 하나의 기기가 많은 채널을 차지하기도 한다.
Ex) 16비트 팬(1~2채널), 16비트 틸트(3~4채널), 팬 스피드(5채널), 밝기(6채널), 스트로브 효과(7채널), 컬러 휠(8채널), 패턴 효과(9채널), 포커스 줌, 그 외 추가적 기능(10~16채널) - 팬, 틸트 같은 경우 부드러운 정밀도를 위해 2개의 채널을 묶어서 사용하기도 한다.
한 채널에 8비트지만 두 채널을 합쳐서 16비트로 활용 - 각 조명이 서로 다른 DMX 채널을 사용해야 제대로 작동한다. 하나의 채널을 중복해서 사용하게 되면 충돌이 발생한다.

🎆 DMX 통신 방법
DMX 신호는 이더넷 네트워크를 통해 조명과 언리얼 간의 실시간 통신을 할 수 있다. 언리얼에서 지원하는 전송 방식(프로토콜)에는 Art-Net과 sACN 두 가지가 있는데 두 방식은 약간의 차이가 있다.
Art-Net :
전송 방식 : UPP 기반(TCP/IP 네트워크에서 동작 가능)
속도 : 빠름 (트래픽 많으면 지연될 수 있음)
확장성 : 좋음
주요 사용처 : 일반적인 공연, 이벤트
sACN :
전송 방식 : TCP/IP 기반
속도 : 더 안정적 (Multicast 최적화)
확장성 : 더 우수함
주요 사용처 : 대형 공연장, 테마파크
🎇 조명 컨트롤러에서 물리 조명과 가상 조명 동시에 제어하기
🎆 물리 조명 세팅 (Aputure Nova P600c)
조명 컨트롤 박스에서 DMX 관련된 세팅을 한다. 조명 기기에 따라 이 내용은 다를 수도 있다. 아래는 테스트로 사용한 Apurture Nova P600c 기준의 내용이다.
DMX address : 조명 컨트롤러와 연결할 때 사용할 조명의 DMX 주소이다.
DMX profile : 조명 모드를 설정한다. 모드는 조명의 동작 방식이나 반응 패턴을 결정하는 설정이다. 조명 컨트롤러에서 조명을 등록할 때 address와 마찬가지로 profile(모드)를 동일하게 설정하여 가져오게 된다.
DMX Loss Behavior : DMX 신호를 잃었을 때 꺼지는 방식 또는 마지막 조명 값을 유지하도록 설정할 수 있다.

🎆 조명 컨트롤러 세팅 (QuickQ 20)
Patch(조명)에서 물리 조명을 추가하여 컨트롤러에 등록한다. 이때 실제 조명의 제조사와 제품명을 일치시키고 세팅해둔 조명의 Profile(모드)를 동일하게 지정한다.

DMX 통신에 관련한 내용도 적용한다. 사용할 네트워크 프로토콜과 컨트롤러의 IP Address를 확인하고 언리얼 시스템과 동일한 네트워크에 있도록 한다. 조명 컨트롤러의 이더넷 포트도 확인하고 연결해준다.

이제 조명 컨트롤러에서 물리 조명 세팅을 조정해본다. 이 테스트로 조명 장비를 처음 만져보는 거라 현란한 조명 조정은 할 수 없었고 R,G,B가 순차적으로 나오는 반복되는 이펙트를 줘봤다.

Outputs에서 전체 채널 데이터 상황을 볼 수 있다.
3번 채널이 Red, 4번 채널이 Green, 5번 채널이 Blue 값이다. 이펙트를 적용한 것과 같이 수치 상으로도 그렇게 표시된다.

🎆 언리얼 기본 세팅
DMX Engine, DMX Fixtures, DMX Protocol 세 개의 플로그인을 활성화하고 필요 시 재시작한다.

프로젝트 세팅에서 입출력 포트를 세팅한다.


🎆 언리얼 DMX Library 세팅.
콘텐츠 브라우저에서 DMX Library를 만들고 에디터 패널을 연다. 상단 탭에 보이는 Fixture type에서 조명 기기를 등록하고 Fixture Patch에서 만든 조명을 채널에 배치할 것이다.

Fixture type : GDFT 사용하여 조명 기기 등록
Fixture type에서 조명 기기를 등록하는 것은 앞서 조명 컨트롤러에서 조명을 추가하는 것과 같다. 다만 조명 컨트롤러에서 조명의 제조사, 제품명을 등록하면 자동으로 조명의 Profile(모드)가 등록되는 것과 달리 언리얼에서는 이 Profile에 대한 정보가 없다.
대신 간편한 방법으로 GDTF 파일로 언리얼에서 임포트하여 미리 정의된 채널 세트를 가지고 올 수 있다. GDTF는 Profile과 같이 미리 정의된 채널 세트로 조명 제조 업체 대부분의 경우 해당 장비에 대한 GDTF 파일을 아래 사이트에서 공유하고 있다. (GDTF 대신 MVR 파일 형식도 사용할 수 있다. 자세한 건 (링크) 참조)
GDTF나 MVR 파일이 없다면 해당 조명 기기 매뉴얼에 있는 DMX 채널 정보를 보고 언리얼에서 수동으로 등록할 수 있다.
Home | GDTF Share
gdtf-share.com

Fixture patch : 각 조명(Fixture)이 사용할 DMX 채널을 지정
Fixture patch를 설정하면 모든 블루프린트에서 DMX 값을 보내고 받도록 할 수 있다. 패치의 1.1은 유니버스1의 채널1부터 배치한다는 뜻이다.


🎆 언리얼 가상 조명 연결
DMX 채널 데이터와 Light 속성들이 연결된 가상 조명을 씬에 배치하고 DMX 컴포넌트에 만든 DMX Library를 할당한다.

언리얼 콘텐츠 브라우저(Plugin)에서 다양한 타입의 DMX 조명 블루프린트가 있기 때문에 가져다가 바로 사용할 수 있다. (콘텐츠 브라우저에서 보이지 않을 경우, 브라우저 오른쪽 상단 기어 모양 설정 클릭 > 플러그인 콘텐츠 표시와 엔진 콘텐츠 표시 체크)


🎆 결과
조명 컨트롤러에서 조정한 내용이 실제 조명과 가상 조명 모두에 실시간으로 적용되는 모습이다.

🎆 응용
응용으로, 조명 컨트롤러 없이 언리얼에서 조정한 내용을 DMX 신호로 조명을 컨트롤하는 것과 실제 조명 없이 조명 컨트롤러로 다수의 언리얼 가상 조명을 컨트롤 하는 것을 할 수 있다. 이미지 자료는 없지만 물리적인 조명 컨트롤러 없이 언리얼 플러그인 DMX control console을 사용하면 언리얼 내에서 가상의 컨트롤러를 만들어 조정할수도 있다.


🎆 Ref.
https://dev.epicgames.com/documentation/en-us/unreal-engine/dmx-overview
'언리얼 엔진 > Virtual Production' 카테고리의 다른 글
Vive Tracker(LiveLinkXR)로 언리얼에서 가상 카메라 제어하기 (0) | 2024.11.06 |
---|---|
HTC Vive pro HMD 언리얼 프로젝트 셋업 (0) | 2024.11.06 |