런타임 빌드에서 무비 렌더 큐 사용하기

배포된 빌드에서 무비 렌더 큐를 사용하여 최종 사용자 디바이스로 영화를 제작하는 방법

Windows
MacOS
Linux
목차

언리얼 엔진 4.26 버전부터 런타임 빌드에서 무비 렌더 큐(Movie Render Queue) 로 영화를 렌더링하고, 블루프린트(Blueprints) 로 사용자 컴퓨터에 파일을 출력할 수 있습니다. 특정 타깃 하드웨어에서 고품질 영상을 렌더링하는 데 유용합니다.

워크플로

무비 파이프라인 큐 엔진 서브시스템(Movie Pipeline Queue Engine Subsystem) 노드로 블루프린트에서 무비 렌더 큐를 이용할 수 있습니다.

MRQSubsystemNode.png

이 서브시스템에는 렌더링 작업(Jobs) 목록을 포함하는 큐(Queue) 가 있습니다. 작업마다 하나 이상의 을 포함하며, 샷 렌더링에 사용하는

[세팅](레퍼런스 세팅 링크)
이 포함된 고유 환경설정 도 있습니다. 영상을 렌더링하려면 작업 목록을 빌드하고, 큐에 할당하고, 그 다음 무비 렌더 큐 서브시스템의 실행자(Executor) 를 호출하여 큐를 처리해야 합니다.

단계

런타임으로 시퀀서 무비를 렌더링하려면, 애플리케이션이 반드시 다음과 같은 단계를 따라야 합니다.

  1. 무비 파이프라인 큐 엔진 서브시스템(Movie Pipeline Queue Engine Subsystem) 노드를 생성합니다. 출력 핀을 드래그한 다음, 큐 얻기(Get Queue) 노드를 생성하여 큐 레퍼런스를 얻습니다.

    EngineSubsystemRef.png

  2. 큐 얻기 노드의 반환값을 드래그한 다음, 새 작업 할당(Allocate New Job) 을 호출합니다. 그러면 큐에 작업이 추가됩니다.

    AllocateNewJob.png

  3. 새 작업 할당 노드의 반환값을 드래그해서 작업의 레퍼런스를 얻습니다. 시퀀스 설정(Set Sequence) 을 호출하여 플레이하고자 하는 레벨 시퀀스의 소프트 오브젝트 경로 에 연결한 다음, 맵 설정(Set Map) 을 호출해서 시퀀스가 있는 레벨의 소프트 오브젝트 경로에 연결하세요. 이 작업이 시작되면 무비 렌더 큐는 지정 맵을 로드하고 지정 시퀀스를 시작합니다.

    SetSequenceAndMap.png

  4. 새 작업 할당의 반환값을 다시 드래그하고, 환경설정 얻기(Get Configuration) 를 호출하여 작업 세팅의 레퍼런스를 얻습니다.

    GetConfig.png

  5. 환경설정 얻기의 반환값을 드래그하고, 세팅을 클래스별로 찾거나 추가하기(Find or Add Setting by Class) 를 호출하여 새 세팅을 추가합니다. 인 클래스(In Class) 입력의 드롭다운을 클릭하여 변경할 세팅을 선택합니다. 세팅을 클래스별로 찾거나 추가하기 노드의 반환값을 드래그하여 이러한 세팅의 프로퍼티를 편집할 수 있습니다.

    CreateSettings.png

    일부 무비 렌더 큐 세팅은 에디터 전용 기능을 기반으로 하기 때문에 런타임 빌드에서는 이용할 수 없습니다. 자세한 정보는 아래 제한사항 항목을 참조하세요.

  6. 할당할 작업마다 2에서 5단계를 필요한 만큼 반복하세요.

  7. 완료했으면 무비 파이프라인 큐 엔진 서브시스템의 레퍼런스를 얻은 다음, 실행자로 렌더 큐(Render Queue with Executor) 를 호출합니다. 실행자 내 유형(In Executor Type)MoviePipelineInProcessExecutor 로 설정합니다. 이 노드는 실행자가 무비 파이프라인 큐 서브시스템 내에서 빌드한 큐를 처리하도록 지시하고, 실행자 레퍼런스를 반환합니다.

    RenderQueueWithExecutor.png

    MoviePipelineInProcessExecutor는 애플리케이션 런타임 빌드용으로만 사용할 수 있는 실행자 클래스입니다. 다른 실행자 클래스는 에디터에서 플레이 중일 때처럼 다른 상황에서 사용합니다.

  8. 실행자가 큐 처리를 끝냈을 때 이벤트를 호출하려면 실행자로 렌더 큐의 반환값 핀을 드래그한 다음, 실행자에서 종료된 델리게이트에 이벤트 바인드(Bind Event to On Executor Finished Delegate) 를 호출합니다. 그러면 이 노드에 이벤트를 연결하여 큐 종료 시 실행할 수 있습니다.

    BindEventOnRenderFinish.png

작업 취소

실행자에서 현 작업 취소(Cancel Current Job) 를 호출하면 현재 실행자가 실행 중인 작업을 취소하고 다음 작업으로 넘어가게 할 수 있습니다. 모든 작업 취소(Cancel All Jobs) 를 호출하면 큐의 모든 작업을 취소합니다.

![](CancelingJobs.png)

실행자 커스터마이징하기

실행자에는 큐 처리 방식을 제어할 수 있는 세팅이 있습니다.

오브젝트 생성(Construct Object) 노드로 직접 실행자를 만들 수 있습니다. 프로세스 실행자 내 무비 파이프라인(Movie Pipeline In Process Executor)클래스(Class) 로 선택하고, 무비 파이프라인 큐 엔진 서브시스템 으로의 레퍼런스는 생성하는 새 실행자 인스턴스의 외부(Outer) 로 연결합니다.

![](ConstructExecutor.png)

이 노드의 반환값으로 새로 생성한 실행자의 세팅을 편집하거나 델리게이트에 이벤트를 바인드할 수 있습니다. 완료되면, 실행자로 렌더 큐 대신 실행자 인스턴스로 렌더 큐를 호출한 다음, 실행자를 실행자 내 핀에 연결합니다.

![](ChangeExecutorSettings.png)

현재 로드된 레벨을 리로드하지 않고 시퀀스를 실행하고자 하는 경우, 실행자의 현재 레벨 사용 변수를 True 로 설정합니다. 그러면 레벨을 처음부터 재시작하지 않고 플레이 중 변경사항을 유지할 수 있습니다.

UseCurrentLevel.png

디버그 위젯 변경

디버그 위젯(Debug Widget) 은 무비 렌더링 시 무비의 프리뷰 프레임을 표시하는 UI 위젯입니다. 실행자에서 디버그 위젯 클래스(Debug Widget Class) 를 설정하면 디버그 위젯을 변경할 수 있습니다.

![](SetDebugWidgetClass.png)

이 값을 없음으로 설정하면 디폴트 디버그 위젯을 사용하게 됩니다. 위젯 블루프린트 를 생성한 후 부모 클래스MovieRenderDebugWidget 으로 설정하면 개인 커스텀 디버그 위젯을 생성할 수 있습니다.

![](MovieRenderParentClass.png)

그 후, 이 커스텀 위젯을 실행자의 디버그 위젯 클래스로 선택합니다.

![](UsingCustomDebugWidget.png)

제한사항

일부 세팅은 에디터 전용 기능을 기반으로 하기 때문에 런타임 빌드에서는 이용할 수 없습니다. 다음이 이에 해당합니다.

+ FinalCut Pro XML 출력 형식
+ 오브젝트 ID 렌더 패스
Select Skin
Light
Dark
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼