본문 바로가기
Unreal Engine

Unreal Engine 미디어(Media)를 켜고 끄는 방법

by hfgraphic 2025. 10. 7.
반응형

 

이번 글에서는 **TV 및 미디어(Media)**를 켜고 끄는 방법을 배우겠습니다. 기존에 설정한 머티리얼 블루프린트와 **베리언트 매니저(Variant Manager)**를 사용하여 이 기능을 구현해 보겠습니다.


1. TV 액터 설정 및 초기 상태 지정

  1. TV 복제 및 피벗 설정: 기존 TV 모델을 복사하여 새로운 TV를 준비합니다. 모델링(Modeling) 탭의 피벗(Pivot) 도구를 사용하여 피벗을 **아래쪽(Bottom)**으로 설정하고 적용합니다.
  2. 초기 머티리얼 적용: TV가 꺼진 상태로 시작하도록, 기본 머티리얼을 적용합니다. (이 머티리얼은 TV가 꺼져 있을 때 보이는 정적인 화면 또는 플라스틱/금속 질감을 표현합니다.)

2. 미디어 제어를 위한 베리언트 생성

베리언트 매니저는 정말 강력한 도구이며, 이를 이용해 TV의 **머티리얼(Material)**을 제어하겠습니다.

  1. 새 베리언트 세트 생성: 새로운 레벨 베리언트 세트를 만들고 이름을 TV로 지정합니다.
  2. TV On 베리언트:
    • 첫 번째 베리언트를 TVOn으로 명명합니다.
    • 씬에 배치한 TV 스태틱 메시 액터를 베리언트 매니저로 드래그 앤 드롭합니다.
    • 변경할 속성으로 **스태틱 메시 컴포넌트(Static Mesh Component)**의 **머티리얼 1(Material 1)**을 추가합니다 (TV 화면 부분).
    • MI_Video와 같은 비디오 머티리얼을 이 베리언트의 값으로 지정합니다.
  3. TV Off 베리언트:
    • TVOn 베리언트를 **복제(Duplicate)**하고 이름을 TVOff로 변경합니다.
    • MI_PlasticStainlessSteel 또는 MI_Satin과 같이 TV가 꺼져 있을 때 보이는 정적인 머티리얼을 지정합니다.

3. 위젯 블루프린트에서 TV 제어 연결

이제 위젯 버튼을 클릭했을 때 TV가 켜지고 꺼지도록 메타 홀(Meta Hall) 메뉴에 기능을 연결합니다.

  1. 버튼 클릭 이벤트: 위젯의 TV 아이콘 버튼을 선택하고 On Clicked 이벤트를 생성합니다.
  2. 베리언트 전환 로직 복사: 이전 강의에서 사용했던 My Variant Reference Switch on Variant by Name 로직을 복사하여 붙여넣습니다.
  3. Variant Set Name 설정: Variant Set Name TV로 설정합니다.
  4. TVOn 연결: 켜기 버튼의 On Clicked 이벤트에 Variant Name TVOn으로 설정하여 연결합니다.
  5. TVOff 연결: 끄기 버튼의 On Clicked 이벤트에 Variant Name TVOff로 설정하여 연결합니다.

4. 미디어 플레이어 제어 및 디버깅

TV를 켜고 끌 때 소리가 함께 켜지고 꺼지도록 미디어 플레이어를 명시적으로 제어해야 합니다.

 

A. 미디어 플레이어 참조 변수 설정

  1. 변수 생성: 위젯 블루프린트의 **그래프(Graph)**에서 MyMediaRef라는 새로운 변수를 생성합니다.
  2. 변수 타입 설정: 변수 타입을 **미디어 플레이어 객체 참조(Media Player Object Reference)**로 설정하고 컴파일합니다.
  3. 미디어 플레이어 지정: 기본값으로 씬에 있는 **미디어 플레이어(Media Player)**를 연결합니다.

 

B. TV 켜기/끄기 로직 업데이트 (On Clicked)

이제 TVOn/TVOff 버튼 클릭 이벤트에 미디어 제어 기능을 추가합니다.

  1. TV On 버튼 로직:
    • MyMediaRef를 가져옵니다.
    • Open Source 노드를 연결하고, 이전에 설정한 비디오 소스 위치를 지정합니다. (TV를 켤 때 비디오를 재생 시작)
  2. TV Off 버튼 로직:
    • MyMediaRef를 가져옵니다.
    • Close 노드를 연결합니다. (TV를 끌 때 비디오를 정지 및 닫기)

 

C. 초기 자동 재생 및 사운드 디버깅

가장 중요한 디버깅 단계는 레벨 시작 시 TV가 자동 재생되거나 소리가 나는 문제를 해결하는 것입니다.

  1. 자동 재생 해제: TV가 레벨 블루프린트에서 강제로 재생되도록 설정되어 있었다면, 해당 강제 재생 로직을 제거해야 합니다. (이것이 TV가 시작부터 재생되던 문제의 원인이었습니다.)
  2. 초기 상태 확인:
    • 게임을 Play하면 소리가 나지 않고 TV가 꺼져 있는지 확인합니다. (Sound is completely gone.)
    • Tab 키로 메뉴를 열고 Meta Hall에서 Turn On을 클릭하면, 소리와 함께 비디오가 켜지는지 확인합니다.
    • Turn Off를 클릭하면 비디오가 정지되고 소리가 꺼지는지 확인합니다.

결론

이로써 미디어(Media) 제어 기능이 완벽하게 구현되었습니다.

  • TV가 꺼진 상태로 시작하며,
  • 버튼 클릭 시 머티리얼이 비디오로 전환되고 미디어 플레이어 Open Source를 실행하며,
  • 다시 클릭 시 비디오가 Close되며 정적인 머티리얼로 돌아갑니다.

이러한 단계들을 적용하면 모든 기능이 완벽하게 작동할 것입니다. 

 

반응형