하이퀄리티 미디어 익스포트 개요

하이퀄리티 미디어 익스포트에 대한 상세한 설명과 간단한 사용법 소개

Windows
MacOS
Linux

하이퀄리티 미디어 익스포트는 사용 및 피드백 제공이 가능할 정도로 준비가 되어 있지만 아직 내부 API가 개발 단계이기 때문에 시스템을 확장할 경우 문제가 발생할 수 있습니다. 또한 하이퀄리티 미디어 익스포트가 현 시점에서 모든 렌더 무비의 기능(컴포셔, GBuffer 채널, ProRes/Avid DNxHD, XML 익스포트 등)을 갖추고 있지는 않습니다. 정식 출시되기까지 지속적으로 하이퀄리티 미디어 익스포트의 기능을 업데이트 및 개선하고 UI를 안정화할 것입니다.

하이퀄리티 미디어 익스포트는 시퀀서 렌더 무비의 후속 기능이며 더 높은 퀄리티, 더 쉬운 프로덕션 파이프라인 통합, 사용자 확장성을 제공하기 위해 개발되었습니다. 하이퀄리티 미디어 익스포트는 다수의 렌더 샘플을 모아서 최종 출력 프레임을 제작할 수 있습니다. 또한 안티 에일리어싱 및 래디얼 모션 블러의 퀄리티를 높일 수 있고 레이 트레이싱의 노이즈를 줄일 수 있습니다.

또한 하이퀄리티 미디어 익스포트는 퀄리티 높은 렌더 제작을 위해 새로운 다수의 기능들도 제공합니다. GPU 메모리 한계나 장치의 타임아웃 제한을 해결할 수 있는 타일 렌더링 설정이 가능한 새로운 고해상도 세팅을 지원하고, 또한 반투명 이미지를 익스포트(적절한 프로젝트/씬 세팅이 갖춰진 경우)하거나, 선형 데이터를 포함한 16비트 HDR 이미지를 제작할 수도 있고, 재사용 및 공유가 가능하도록 애셋에 렌더 구성을 저장할 수도 있습니다. 마지막으로, 새로운 대기열을 이용하여 일괄 작업이 가능합니다. 이를 통해 Adobe After Effects의 렌더링 프로세스와 마찬가지로 다수의 시퀀스를 손쉽게 일괄 렌더링할 수 있습니다.

좀더 구체적으로 설명하면, 이 기능은 다양한 언리얼 사용자에게 다음과 같이 기존 렌더 무비 기능에는 없는 이점을 제공합니다.

  • 게임: 모션 블러와 템포럴 안티 에일리어싱을 통해 적은 아티팩트로 퀄리티 높은 게임 트레일러를 제작할 수 있습니다.

  • 자동차: 템포럴 슈퍼 샘플링은 자동차 바퀴에 사용할 수 있도록 회전방향에 대한 모션 블러를 지원하며 고해상도 타일링은 대형 이미지 출력을 지원합니다.

  • 버추얼 프로덕션: 고퀄리티의 안티 에일리어싱 및 모션 블러로 보다 높은 퀄리티의 콘텐츠 출력이 가능합니다.

  • 건축 시각화: 스페이셜 슈퍼 샘플링은 레이 트레이싱 노이즈가 거의 없이 안티 에일리어싱이 꼼꼼하게 적용된 이미지를 구현합니다.

8K 스틸 렌더링 이미지 예시. 클릭하면 확대됩니다.

향후에는 하이퀄리티 미디어 익스포트가 기존 시퀀서의 렌더 무비 기능을 대체할 것입니다.

하이퀄리티 미디어 익스포트 사용하기

  1. 무비 렌더 파이프라인 플러그인이 활성화되어 있는지 확인합니다. 이 플러그인은 기본적으로 켜져 있습니다.

  2. > 시네마틱 으로 이동하여 무비 렌더 대기열 을 선택합니다. 대기열 창이 나타납니다.

    탐색하기

  3. +렌더 를 선택하여 대기열에 시퀀스를 추가합니다. 콘텐츠 브라우저에서 시퀀스를 대기열로 드래그 앤 드롭할 수도 있습니다.

    시퀀스 추가하기

  4. 세팅 열에서 렌더 옵션을 조정할 링크를 선택합니다. 완료하면 수락 을 눌러서 설정한 내용을 적용합니다. 세팅을 프리셋 으로 저장할 수도 있습니다.

    열 및 링크 세팅하기

  5. 설정을 마치면 렌더 를 선택합니다. 렌더(로컬) 를 사용하여 현재 세션에서 렌더하거나 렌더(원격) 를 선택하여 장치에서 새 렌더 프로세스를 생성할 수 있습니다.

로컬 렌더링과 원격 렌더링 비교

렌더링 옵션에는 로컬과 원격 두 가지가 있습니다. 렌더(로컬) 는 언리얼 엔진과 동일한 프로세스로 렌더링하며 에디터에서 플레이(PIE)와 유사합니다. 이 옵션은 변경 사항을 저장할 필요가 없기 때문에 작업하면서 렌더를 미리보기할 때 유용합니다.

렌더(원격) 는 대기열 내의 모든 시퀀스를 렌더링하는 외부 프로세스를 실행합니다. 원격 렌더는 리소스를 많이 소모하며 렌더링 도중 에디터의 코드를 실행하지 않으므로 외부 프로세스가 디스크 파일을 읽을 수 있도록 프로젝트를 반드시 저장해야 합니다.

렌더 옵션으로 사용 가능한 여러 가지 커스텀 옵션도 있습니다. 이러한 옵션의 기본 동작은 프로젝트 세팅에서 결정되며 자체 코드 실행에 맞춰 조정이 가능합니다. 예를 들면 렌더(원격)가 타사 렌더팜 관리 소프트웨어를 사용하도록 수정할 수 있습니다. 추가적으로 별도의 프로세스를 실행하는데 사용된 명령줄이 출력 로그에 기록되어 있어서 자동화 된 렌더팜을 구성하기 위한 시작점으로 삼을 수 있습니다.

UMoviePipelineExecutorBase (MoviePipelineExecutor.h)에서 상속하여 자체 렌더팜을 구현할 수 있습니다. MoviePipelinePIEExecutor.h 및 `MoviePipelineNewProcessExecutor.h`의 예제는 스튜디오의 필요한 사항에 맞춰 렌더링 시스템을 커스터마이징할 때 이러한 옵션에 대한 고유한 동작을 작성하기 위한 출발점으로 삼을 수 있습니다.

렌더 세팅 조정하기

하이퀄리티 미디어 익스포트에 내장된 조정 가능한 옵션은 렌더링, 세팅, 그리고 출력의 세 가지입니다. 이 카테고리들에 옵션을 추가하려면 +세팅 을 선택하고 원하는 옵션을 고릅니다. 각 세팅은 세팅을 삭제하지 않고도 켜거나 끌 수 있으며, 각 세팅에는 필요에 따라 조정 가능한 하위 옵션이 있는 경우도 있습니다. UMoviePipelineSetting (MoviePipelineSetting.h) 클래스를 구현하여 이 목록에 커스텀 세팅을 추가할 수도 있습니다.

세팅을 조정할 때 최소 한 가지 출력 포맷과 한 가지 렌더링 옵션을 활성화할 것을 권장합니다. 그렇게 하지 않아도 하이퀄리티 미디어 익스포트가 작동하기는 하지만 이미지나 파일을 생성하지 않고 시스템에서 실행됩니다. 이는 렌더링이 필요 없는 자체 세팅을 작성하는 경우 유용할 수 있습니다.

세팅 추가하기

향후 사용을 위해 현재 세팅을 저장하려면 프리셋 > 프리셋으로 저장 을 선택합니다. 그러면 프리셋에 이름을 지정하고 저장하여 나중에 사용할 수 있습니다.

새 프리셋 추가하기

출력 옵션

출력 옵션에서는 출력 파일 포맷을 선택할 수 있습니다. 렌더 무비와 달리 다수의 파일 포맷을 한번에 출력할 수 있으며, 이 파일들은 이제 렌더링 중인 데이터에 의존하지 않습니다.

또한 `UMoviePipelineOutputBase`를 구현하여 자체 포맷을 생성하는 것도 가능합니다. 이 경우 번인, UI 위젯, 최종 이미지 등 해당 프레임 내에서 렌더링된 모든 이미지를 포함하는 각 출력 프레임에 대한 콜백이 주어집니다.

출력

설명

.bmp 시퀀스(8비트)

시퀀스는 [0-1] 범위 내에 제한되므로 HDR 값은 저장되지 않습니다. 8비트 대상에는 sRGB 감마 보정이 적용됩니다.

.exr 시퀀스(16bit)

HDR 값은 저장되지만 톤 커브가 활성화된 경우에는 선형 값이 [0-1] 범위에 맞춰 다시 스케일 조정되며 가장 밝은 하이라이트만 1 이상으로 유지됩니다. 톤 커브를 비활성화하면 라이트의 강도나 다른 오브젝트의 밝기에 따라 [0-100]이나 혹은 그 이상의 범위에서 선형 값이 작성됩니다. 투명 이미지를 생성하려면 Output Alpha 를 선택하고 프로젝트 세팅에서 "포스트 프로세싱에서 알파 채널 지원 활성화"가 Linear color space only 로 설정되었는지 확인합니다. .exr에는 sRGB 감마 보정이 적용되지 않습니다.

.jpg 시퀀스(8bit)

8비트 대상에는 sRGB 감마 보정이 적용됩니다.

.png 시퀀스(8bit)

투명 이미지를 생성하려면 Output Alpha 를 선택하고 프로젝트 세팅에서 "포스트 프로세싱에서 알파 채널 지원 활성화"가 Linear color space only 로 설정되었는지 확인합니다. 8비트 대상에는 sRGB 감마 보정이 적용됩니다.

.wav 오디오

이제 리얼타임에서 두 번째 패스 렌더링 없이도 오디오 익스포트가 가능하지만 에디터가 반드시 -deterministicaudio 아규먼트로 실행되어야 합니다. 렌더(원격)를 사용하는 경우 이 실행인자를 생략해도 됩니다. (외부 프로세스에서 자동으로 적용됩니다.) 이는 에디터에서 오디오가 들리지 않게 하지만 모션 블러 및 엔진 웜업 프레임을 허용하기 위해 경과되는 시간 때문에 오디오 아티팩트가 샷 사이에 생성될 수도 있습니다.

투명 이미지를 생성하려면 투명을 적용할 씬에서 스카이박스, 애트머스페릭 포그 등 모든 불투명 요소를 삭제하거나 숨겨야 합니다.

ProRes, Avid DNxHD 같은 비디오 콘테이너는 현재 지원되지 않습니다.

렌더링 옵션

현재 렌더링에서는 디퍼드 렌더링과 UI Renderer (Non-Composited) 두 가지 옵션을 사용할 수 있습니다.

디퍼드 렌더링 은 편집 도중 뷰포트에 보이는 최종 이미지를 생성합니다. 현재는 이 렌더링 출력만 지원됩니다.

UI Renderer (Non-Composited) 는 UMB 위젯 렌더링을 보완하도록 설계된 옵션입니다. 하이퀄리티 미디어 익스포트는 오프 스크린 타깃/뷰로 렌더링하기 때문에 뷰포트에 추가된 UMG 위젯은 렌더링에 포함되지 않습니다. 이 옵션은 위젯을 포스트 프로덕션에서 컴포짓 가능한 별도의 .PNG 또는 .EXR 파일로 렌더링합니다.

세팅 옵션

세팅(Settings) 옵션은 안티 에일리어싱, 번인, 카메라, Console Variables, 게임 오버라이드, 고해상도 등 다양한 렌더링 옵션을 포함합니다.

안티 에일리어싱

안티 에일리어싱은 최종 프레임을 생성할 때 사용되는 샘플 수를 제어합니다. 최종 프레임을 생성하는 샘플링은 스페이셜(Spatial)과 템포럴(Temporal) 두 가지가 있습니다. 템포럴 샘플링은 카메라 셔터가 열려 있는 시간동안 샘플을 받아들이고 시간 간격으로 분할한 다음에 엔진 모션 블러를 사용하여 샘플을 보간하고 더 작은 슬라이스 사이도 보간합니다. 각 템포럴 샘플에는 N만큼의 렌더링이 누적됩니다. 여기서 N은 스페이셜 샘플 카운트 변수에 의해 결정됩니다. 이렇게 하면 일반적으로 단일 디렉셔널 모션으로 표현되는 기간이 이제 여러 작은 디렉셔널 모션 블러로 표현되기 때문에 로테이셔널 모션 블러가 가능해집니다.

스페이셜 및 템포럴 샘플링 조합은 안티 에일리어싱에 사용되는 것과 동일한 패턴의 오프셋을 생성합니다. 따라서 샘플을 스페이셜 대신 템포럴 샘플링에 넣는 것이 일반적으로 보다 효율적입니다. 움직이지 않는 오브젝트는 동일한 안티 에일리어싱을 받고, 움직이는 오브젝트는 블러 처리되어 에일리어싱이 가려지기 때문입니다.

안티 에일리어싱 내에는 오버라이드 안티 에일리어싱(Override Anti-Aliasing), 렌더 웜업 카운트(Render Warmup Count), 엔진 웜업 카운트(Engine Warmup Count) 등 중요한 옵션이 몇 가지 있습니다.

오버라이드 안티 에일리어싱(Override Anti-Aliasing) 은 다른 안티 에일리어싱 방법을 선택할 수 있게 해줍니다. 없음(None), MSAA 포워드 렌더링(MSAA Forward rendering), FXAA, 템포럴 AA(Temporal AA, TAA) 가운데 선택할 수 있습니다.

MSAA와 FXAA를 사용하여 안티 에일리어싱 결과를 실험해 볼 수 있지만 현재는 이 옵션 사용을 권장하지 않습니다.

스페이셜과 템포럴 샘플링을 TAA와 함께 사용하여 안티 에일리어싱 결과를 실험해 볼 수 있지만 대부분의 경우 권장되지 않는 방법입니다. TAA가 활성화되어 있다면 안티 에일리어싱에 선택되는 고유 포지션의 수에 제한이 있습니다. 이 제한은 'r.TemporalAASamples'로 정의되며 기본값은 8입니다. TAA가 활성화되어 있고 샘플이 8개 이상이라면 오버라이드 안티 에일리어싱(Override Anti-Aliasing)을 활성화하고 값을 없음(None) 으로 설정하여 TAA를 비활성화하십시오.

렌더 웜업 카운트(Render Warmup Count) 는 렌더링을 시작하기 전에 템포럴 히스토리를 빌드할 때 사용되는 샘플 수를 제어합니다. 카메라 컷 또는 샷이 발생할 때 이전 카메라 각도의 "고스트"가 나타나지 않도록 TAA에 사용된 템포럴 히스토리가 제거됩니다. 첫 프레임에서 안티 에일리어싱을 허용하려면 이 히스토리를 반드시 다시 빌드해야 합니다. 모든 샘플은 그 사이에 엔진의 틱(Tick)이 작동하지 않고 동시에 촬영됩니다.

엔진 웜업 카운트(Engine Warmup Count) 는 렌더링을 시작하기 전에 엔진을 실행하는 프레임 수를 나타냅니다. 이 프레임은 GPU에 제출되지 않으므로 비교적 빠르게 실행됩니다. 일반적으로 이 웜업은 렌더링을 시작하기 전에 클로스 피직스, 파티클, 기타 다이내믹을 올바른 위치에 자리잡게 만들 시간이 필요할 때 유용합니다.

안티 에일리어싱 및 모션 블러의 예시입니다. 클릭하면 확대됩니다.

번인

이 옵션은 기본 번인과 커스텀 번인 가운데 어느 것을 사용할지 결정합니다. 자체 UMG 위젯을 구현하여 나중에 최종 이미지 위에 컴포짓될 번인으로 사용할 수 있습니다.

카메라

카메라(Camera) 옵션은 셔터를 변경하여 모션 블러에 영향을 미칩니다. 0은 모션 블러가 없음을, 360은 전체 프레임에서 모션 블러가 지속됨을 뜻합니다. 180도 셔터가 기본값입니다. Manual exposure은 고해상도 등 자동 노출을 꺼야 하는 여러 이펙트를 위해 사용됩니다.

콘솔 변수

이 옵션에서는 렌더링을 시작할 때 실행할 콘솔 변수(Console Variables)를 추가할 수 있습니다. 레이 트레이싱 샘플 수를 늘리거나 에디터의 실시간 프리뷰 용으로는 너무 비싼 퀄리티 세팅을 시도할 때 유용합니다. 하이퀄리티 미디어 익스포트가 사용하는 오프스크린 뷰포트가 아니라 플레이어 뷰포트의 컨텍스트에서 실행되기 때문에 모든 콘솔 명령(show flag 등)이 작동하는 것은 아닙니다.

게임 오버라이드

게임 오버라이드는 게임 모드와 시네마틱 퀄리티 세팅 등 게임과 관련된 여러 세팅을 오버라이드합니다. 게임의 노멀 모드에서 캡처할 필요가 없는 UI 엘리먼트 또는 로딩 화면이 표시될 때 유용합니다.

고해상도

고해상도 세팅은 타일 렌더링을 사용하여 일반적으로는 최대 텍스처 크기나 GPU 메모리 한계 때문에 불가능한 대형 이미지를 생성하게 해줍니다. 이 세팅에서는 타일 수(Tile Count), 오버랩 비율(Overlap Ratio), 텍스처 샤프니스 바이어스(Texture Sharpness Bias)를 조정할 수 있습니다.

타일 수(Tile Count) 는 렌더링 도중 이미지를 분할하는 타일 수입니다. 예를 들어 7680x4320 출력 해상도를 4개의 타일로 렌더링 하면 각 타일은 1920x1080으로 렌더링 됩니다.

타일 수의 작동을 시각적으로 보여 주는 예시입니다. 클릭하면 확대됩니다.

오버랩 비율(Overlap Ratio) 은 각 타일이 다른 타일과 얼마나 겹치는지를 제어합니다. 예를 들어 이 값이 0.1인 경우 블렌드되는 이미지가 10% 겹치게 됩니다. 일반적으로 이미지 모서리에 서로 다른 결과를 산출하는 뎁스 오브 필드에 특히 유용합니다.

텍스처 샤프니스 바이어스(Texture Sharpness Bias) 는 텍스처 밉매핑을 바이어스하여 일반적으로 그렇지 않은 경우에도 고해상도 텍스처를 선택합니다. 음수 값일수록 바이어스가 평소보다 더 디테일한 밉맵을 선택할 확률이 높아지지만 이 값이 너무 높을 경우 모자이크 같은 이미지가 생성될 수도 있습니다. 바이어스는 이미 최고 퀄리티 밉맵을 표시하고 있는 텍스처에는 효과가 없습니다.

현재 고해상도 기능은 템포럴 안티 에일리어싱 및 스크린 스페이스 이펙트에 의존하는 일부 렌더링 기능을 지원하지 않습니다. 여기에는 스크린 스페이스 리플렉션, 컨볼루션 블룸, 렌즈 플레어, 아주 빠르게 움직이는 오브젝트의 모션 블러 등이 포함됩니다.

레이 트레이싱(Ray Tracing)

언리얼 엔진은 템포럴 히스토리에 의존할 수 있는 노이즈 제거 기술을 사용하여 리얼타임 레이 트레이싱을 구현합니다. 고해상도 타일링을 사용할 때 또는 템포럴 안티 에일리어싱을 비활성화할 때는 다음 콘솔 변수를 조정하여 더 나은 결과를 얻을 수 있습니다.

  • r.AmbientOcclusion.Denoiser.TemporalAccumulation 0

  • r.GlobalIllumination.Denoiser.TemporalAccumulation 0

  • r.Reflections.Denoiser.TemporalAccumulation 0

  • r.Shadow.Denoiser.TemporalAccumulation 0

이 변수들을 0으로 설정하면 노이즈 제거기가 템포럴 히스토리 없이도 더 잘 작동합니다. 샘플 수가 충분할 경우(64 이상) 다음 노이즈 제거기를 완전히 비활성화하는 것이 좋습니다.

  • r.AmbientOcclusion.Denoiser 0

  • r.DiffuseIndirect.Denoiser 0

  • r.Ray tracing.SkyLight.Denoiser 0

  • r.Reflections.Denoiser 0

  • r.Shadow.Denoiser 0

노이즈 제거기 세팅을 조정하려면 콘솔 변수에 추가하여 렌더링 도중에만 적용되도록 만들 수 있습니다.

레이 트레이싱 노이즈 제거기 콘솔 변수 세팅

출력 세팅 조정하기

출력 세팅(Output Settings)은 시퀀서 렌더링에 관련된 세팅 대부분을 제어합니다. 파일 출력(File Output) 세팅에서 출력 디렉터리, 파일 이름 포맷, 시퀀스를 렌더링할 커스텀 프레임 레이트를 선택할 수 있습니다. ‘파일 네임 포맷(File Name Format)' 필드는 이제 가능한 포맷 옵션 및 값의 예시를 보여줍니다. 프레임 넘버 오프셋(Frame Number Offset) 을 조정하여 렌더링 도중 디스크에 작성할 때 프레임 번호에 지정된 번호를 추가할 수 있습니다. 이를 활용하면 대다수 소프트웨어에서 혼란을 초래하는 프레임에 대한 음수 레이블링과 관련된 문제를 최소화할 수 있습니다. 예를 들어 프레임 번호 오프셋을 100으로 설정하면 디스크에 -2, -1, 0, 1 대신 98, 99, 100, 101을 작성할 수 있습니다.

프레임(Frames) 세팅도 렌더 무비에서 업데이트되었습니다. 이제 매 N번째 프레임을 렌더링할 ‘출력 프레임 스텝(Output Frame Step)'을 지정할 수 있습니다. 스킵된 프레임에 대해서도 게임은 여전히 틱을 작동하여 매 프레임 렌더링과 매 N번째 프레임 렌더링 사이의 결과를 보다 일관되게 만들어줍니다. 서로 다른 템포럴 히스토리 때문에 이미지 퀄리티 차이가 약간은 눈에 띄겠지만 이 옵션은 필요한 경우 드래프트 타입 렌더링에 사용하는 것이 좋습니다.

기타(Misc)에서 톤 커브를 비활성화할 수 있습니다. 이는 포스트 프로세싱 파이프라인의 선형 데이터를 저장하는 .exr 파일을 출력할 수 있게 합니다. 이때 저장되는 선형 데이터는 일반적으로 화면에 표시되기 위해 리스케일 되는 것과는 달리 [0 ~ 1] 범위로 리스케일 되지 않습니다.

세팅 패널

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback