언리얼 엔진용 Bink 비디오

Bink 비디오를 사용하여 무비를 재생하는 방법을 간단히 살펴봅니다.

Choose your operating system:

Windows

macOS

Linux

Bink 미디어(Bink Media) 플러그인은 언리얼 엔진 4.27 이상에 내장되어 있습니다. NDA 플랫폼을 포함한 모든 언리얼 플랫폼을 지원합니다.

설치

  1. 에디터에서 편집(Edit) > 플러그인(Plugins) 을 선택하고 Bink 를 검색하여 플러그인을 활성화합니다. 언리얼 엔진을 재시작해야 합니다.

Bink 미디어 플러그인

  1. Bink 비디오 파일을 언리얼 엔진 프로젝트 디렉터리의 Contents/Movies 디렉터리에 복사합니다.

    Engine/Binaries/ThirdParty/Bink 디렉터리에 있는 언리얼용 Bink 2 인코더 (Bink2ForUnreal.exe)를 사용하여 Bink 파일을 생성합니다. 실행 파일을 더블클릭하고 비디오 파일을 선택하여 변환한 다음 Bink it! > Bink 를 클릭합니다. 대부분의 사용 사례에서는 자동 세팅으로도 충분합니다.

    언리얼용 Bink 2 인코더

  2. 프로젝트의 .uproject 파일을 더블클릭하면 누락된 플러그인으로 인해 프로젝트를 리빌드할 것인지 묻는 경고 대화창이 표시됩니다. 리빌드를 실행하도록 확인하면 언리얼 엔진이 해당 프로젝트를 로드한 상태로 재시작됩니다.

  3. 이제 Content/Movies 디렉터리에서 Bink 파일을 재생할 수 있습니다.

언리얼 엔진용 Bink 무비 타입

언리얼 엔진의 무비 타입은 크게 전체화면 시작 동영상과 인게임 비 시작 동영상 두 가지로 나뉩니다. 각 타입은 아래 설명된 것과 같이 조금씩 다르게 사용됩니다.

전체화면 시작 동영상 구성

우선 다른 모든 무비 플레이어 플러그인을 비활성화해야 합니다. 그렇지 않으면 활성화된 MPEG-4 플레이어가 Bink 무비 파일을 재생하려고 시도하다가 아무 메시지 없이 실패합니다.

무비 플레이어 플러그인을 비활성화하려면 편집(Edit) > 플러그인(Plugins) 으로 이동합니다.

다른 무비 플레이어 비활성화

Bink 미디어 플러그인을 제외한 무비 플레이어 플러그인을 모두 비활성화합니다.

다음으로는 시작 시 재생할 무비를 환경설정해야 합니다.

편집(Edit) > 프로젝트 세팅(Project Settings) 으로 이동합니다.

시작 동영상에 사용할 프로젝트 세팅

시작 동영상(Startup Movies) 옆의 + 버튼을 클릭하고 목록을 펼쳐서 무비를 표시합니다. 시퀀스에서는 여러 개의 무비를 재생할 수 있습니다. 그런 다음 ... 버튼을 눌러 재생할 파일을 선택합니다.

다음과 같은 Bink 전용 옵션도 있습니다.

  1. Bink 버퍼 모드(Bink Buffer Mode): 이 모드는 무비의 일부를 디스크에서 스트리밍할지, 재생 전에 무비 전체를 사전에 로드할지, 무비 전체가 준비될 때까지 스트리밍을 시작하지 않을지 여부를 제어합니다.

  2. Bink 사운드 트랙(Bink Sound Track): 사운드 재생 방법을 결정합니다. 여기에는 몇 가지 옵션이 있습니다.

    1. 사운드 없음(SndNone): 이 Bink에서 아무 사운드도 재생하지 않습니다.

    2. 사운드 단순(Snd Simple): 디폴트입니다. 이 옵션은 Bink 파일의 파일명을 기반으로 어떻게 할지 파악합니다.

      • 파일명이 _51 로 끝나면 사운드 51(Snd 51) 옵션을 사용합니다.

      • 파일명이 _51L 로 끝나면 사운드 51 언어 오버라이드(Snd 51 Language Override) 옵션을 사용합니다.

      • 파일명이 _71 로 끝나면 사운드 71(Snd 71) 옵션을 사용합니다.

      • 파일명이 _71L 로 끝나면 사운드 71 언어 오버라이드(Snd 71 Language Override) 옵션을 사용합니다.

      그 외의 경우에는 사운드 트랙 시작(Sound Track Start) 값으로 지정된 Bink 트랙을 재생합니다. 기본적으로 트랙 0입니다.

    3. 사운드 언어 오버라이드(Snd Language Override): 이 옵션은 두 트랙을 재생합니다.

      • 트랙 0의 오디오는 보통 배경 음악/이펙트입니다.

      • 사운드 트랙 시작 값으로 지정된 트랙은 보통 언어 트랙입니다.

    4. 사운드 51(Snd 51): 이 옵션은 사운드 트랙 오프셋(Sound Track Offset) 값(디폴트값: 0)으로 지정된 트랙에서 시작되는 6개의 모노 트랙을 시스템으로 재생합니다. 따라서 4가지 언어에 대해 완전히 현지화된 5.1 트랙이 있는 경우 24개의 Bink 트랙을 믹싱한 후 사운드 트랙 오프셋 세팅을 사용하여 오디오 트랙에서 재생할 올바른 범위를 지정할 수 있습니다.

    5. 사운드 51 언어 오버라이드(Snd 51 Language Override): 이 옵션은 오프셋 0에서 시작되는 모노 배경/이펙트 트랙 여섯 개를 재생한 후 사운드 트랙 시작 값으로 지정된 모노 트랙 하나를 언어 트랙에서 센터 채널로 재생합니다. 따라서 언어가 4개 있는 경우 오디오 트랙 10개, 5.1 배경 음악/이펙트 트랙, 4가지 센터 언어 트랙을 갖게 됩니다.

    6. 사운드 71(Snd 71): 이 옵션은 사운드 트랙 오프셋 값(디폴트값: 0)으로 지정된 트랙에서 시작되는 8개의 모노 트랙을 시스템으로 재생합니다. 따라서 4가지 언어에 대해 완전히 현지화된 7.1 트랙이 있는 경우 28개의 Bink 트랙을 믹싱한 후 사운드 트랙 오프셋 세팅을 사용하여 오디오 트랙에서 재생할 올바른 범위를 지정할 수 있습니다.

    7. 사운드 71 언어 오버라이드(Snd 71 Language Override): 이 옵션은 오프셋 0에서 시작되는 모노 배경/이펙트 트랙 여덟 개를 재생한 후 사운드 트랙 시작 값으로 지정된 모노 트랙 하나를 언어 트랙에서 센터 채널로 재생합니다. 따라서 언어가 4개 있는 경우 오디오 트랙 12개, 7.1 배경 음악/이펙트 트랙, 4가지 센터 언어 트랙을 갖게 됩니다.

  3. Bink 사운드 트랙 시작(Bink Sound Track Start): 서로 다른 사운드 트랙 여러 개를 포함할 수 있는 Bink 무비입니다. 이 옵션으로는 재생할 사운드 트랙을 지정할 수 있습니다.

  4. Bink 대상 좌상단/우하단(Bink Destination Upper Left/Lower Right): 이 옵션은 무비를 렌더링하려는 직사각형을 지정합니다. 예를 들어 이 옵션을 사용하여 레터박스를 강제로 설정할 수도 있습니다.

인게임 (비 시작) 동영상 구성

게임 레벨 중에도 무비 렌더링이 가능합니다. 텍스처로 직접 렌더링하여 해당 텍스처를 게임에서 사용할 수도 있고 화면에 직접 렌더링할 수도 있습니다. Bink는 모든 그래픽 이후 (단, UI 이전에) 렌더링하므로 동영상에 자막을 드로하는 것도 가능합니다.

이렇게 하려면 콘텐츠 브라우저(Content Browser) 에서 우클릭하고 기타(Miscellaneous) 섹션에서 Bink 미디어 플레이어(Bink Media Player) 를 새로 추가합니다.

콘텐츠 브라우저에서 새 Bink 미디어 플레이어 생성

Bink 미디어 플레이어

Bink 전용 환경설정 옵션은 다음과 같습니다.

  1. Bink 버퍼 모드(Bink Buffer Mode): 이 모드는 무비의 일부를 디스크에서 스트리밍할지, 재생 전에 무비 전체를 사전에 로드할지, 무비 전체가 준비될 때까지 스트리밍을 중지하지 않을지 여부를 제어합니다.

  2. Bink 사운드 트랙(Bink Sound Track): 사운드 재생 방법을 결정합니다. 단순 스테레오부터 7.1 서라운드 사운드까지 다양한 옵션이 있습니다.

  3. Bink 사운드 트랙 시작(Bink Sound Track Start): 서로 다른 사운드 트랙 여러 개를 포함할 수 있는 Bink 무비입니다. 이 옵션으로는 재생할 사운드 트랙을 지정할 수 있습니다.

  4. Bink 드로 스타일(Bink Draw Style) 이 옵션으로는 언리얼 엔진 4에서 텍스처에 렌더링하는 디폴트 기능을 오버라이드하고 언리얼 엔진 4 렌더링을 우회하여 화면에 직접 렌더링할 수 있습니다.

  5. Bink 대상 좌상단/우하단(Bink Destination Upper Left / Lower Right): 이 옵션은 무비를 렌더링하려는 직사각형을 지정합니다. 예를 들어 이 옵션을 사용하여 레터박스를 강제로 설정할 수도 있습니다.

  6. Bink 레이어 뎁스(Bink Layer Depth): 이 옵션으로는 여러 무비를 동시에 렌더링하고 뎁스를 설정하여 드로되는 순서를 제어할 수 있습니다.

Bink 무비 파일(*.bk2 )은 (ProjectName)/Content/Movies 폴더에 있어야 하며, (ProjectName)은 프로젝트의 이름입니다. 이렇게 해야 모든 환경설정에 걸쳐 최종 빌드에 올바르게 복사됩니다.

콘텐츠 브라우저 에서 BinkMediaPlayer 를 우클릭하고 미디어 텍스처 생성(Create Media Texture) 을 클릭하여 플레이어에서 텍스처를 생성합니다. 그런 다음 콘텐츠 브라우저 에서 BinkMediaPlayer_Tex 텍스처를 우클릭하고 머티리얼 생성(Create Material) 을 선택하여 이 텍스처로 디폴트 머티리얼을 생성할 수 있습니다. 이 머티리얼과 텍스처는 언리얼 엔진의 다른 머티리얼이나 텍스처처럼 원하는 대로 사용할 수 있습니다.

언리얼 엔진용 Bink 기타 참고 사항

멀티스레드 디코딩

언리얼 엔진의 Bink 미디어 플러그인은 멀티스레드 디코딩을 네이티브로 지원합니다. 압축 해제 과정에서 런타임 CPU 수에 따라 최대 4개의 스레드를 사용합니다.

기본적으로 언리얼 엔진용 Bink 2 인코더는 비디오 슬라이스 4개를 사용하여 최적의 멀티스레드 퍼포먼스를 구현합니다.

탐색

Bink 플러그인 기능인 BinkPluginGoto 를 직접 호출하여 새로운 재생 위치를 설정할 수 있습니다. 일반적으로는 키프레임으로 건너뛰거나 중간에 있는 프레임을 모두 압축 해제해야 하지만 Bink 플러그인은 이 같은 작업을 백그라운드에서 대신 처리해 줍니다. ms_per_process 파라미터를 사용하면 새 프레임을 탐색하는 프레임별로 Bink에서 사용할 CPU 양을 제어합니다. 일반적으로 프레임당 30ms 정도를 사용하면 비교적 빠른 탐색이 가능합니다.

비디오 뎁스(드로하는 동안 정렬)

비 시작 동영상 옵션으로 여러 비디오 오버레이를 드로할 경우 뎁스(Depth) 옵션으로 드로 순서를 제어할 수 있습니다. 이를 통해 언리얼 엔진이 비디오를 처리하는 순서와 상관없이 비디오를 올바르게 스택할 수 있습니다.

렌더 타깃의 경우 뎁스 가 렌더 타깃으로 드로되는 비디오 순서를 제어하지만 렌더 타깃은 언리얼 엔진에 의해 씬에 정상적으로 드로됩니다.

자막

자막은 SubRip .srt 파일 포맷으로 지원됩니다.

사용할 srt 파일은 Bink 2 Video bk2 파일과 동일한 디렉터리에 포함하고, 파일 이름은 "<name of Bink2 video file>_<language>.srt " 포맷으로 명명하면 됩니다. 이 파일은 반드시 지정된 언어의 자막을 포함해야 합니다.

예를 들어 "Movies/example.bk2 " 파일이 있는 경우 영어 자막이 포함된 "Movies/example_en.srt " 파일도 함께 있어야 합니다.

스테레오 비디오

Bink는 3D 비디오에 사용할 수 있을 만큼 충분히 빠릅니다. Bink를 3D 비디오에 사용하려면 렌더 타깃 경로를 사용하여 스크린 정렬된 쿼드로 드로합니다. 그리고 각 눈에 맞춰 쿼드를 조정하여 쿼드의 위쪽 절반 또는 비디오의 아래쪽 절반으로 화면을 채웁니다.

Bink 플러그인 API

이외에도 Bink 플러그인 API에 대한 다양한 컨트롤이 제공됩니다. 탐색, 일시정지 등의 커스텀 제어가 필요한 경우 binkplugin.h 에서 호출할 수 있습니다.

태그