Apple Silicon 및 기타 macOS 개발을 기본 지원하는 언리얼 엔진 5.2

테크니컬 라이터 Michael Prinke 및 리드 플랫폼 프로그래머 Zack Neyland
언리얼 엔진 5.2부터 macOS용 언리얼 에디터가 유니버설 바이너리로 빌드 및 배포됩니다. 이에 따라 이전 세대의 Intel 기반 Mac과 최신 세대의 Apple Silicon 기반 Mac을 단일 패키지로 기본 지원합니다. 이번 기술 블로그에서는 이러한 변경사항에 대해 자세히 다루고, macOS 사용 시 여러분의 워크플로에 어떤 영향을 줄지, 향후 개발자 지원에 따른 요구 사항에는 무엇이 있는지 살펴봅니다. 또한 언리얼 엔진 마켓플레이스 에셋 이용 확대, 나나이트 실험단계 기능 지원 등 macOS용 신규 추가 기능도 간략히 살펴봅니다. 여기에 더해 macOS 플랫폼에서의 언리얼 엔진 제한 사항도 짚고 넘어가겠습니다.
A5 Cabriolet, Audi Business Innovation 제공. 이제 macOS에서 언리얼 엔진 마켓플레이스에 있는 '자동차 컨피규레이터'(Automotive Configurator) 프로젝트의 일부로 이용할 수 있습니다.

macOS용 유니버설 바이너리란?

2020년, 애플(Apple)은 향후의 애플 모바일 디바이스 및 Mac 데스크톱 머신에 적용할 상용 프로세서 라인인 Apple Silicon을 출시했습니다. Mac 디바이스에 있어서 이는 Intel x86-64 프로세서에서 ARM64 아키텍처로 전환한다는 의미였습니다. 이 전환 과정을 원활히 하고자 Apple Silicon Mac에서는 Rosetta 2 인스트럭션 트랜슬레이터를 사용하여 새로운 아키텍처에서 레거시 x86 애플리케이션을 실행하는데, 이 경우 호환성은 확보되지만 CPU 오버헤드가 다소 늘어납니다.

앞으로 출시할 애플리케이션의 경우, x86-64와 ARM64 슬라이스를 모두 포함하는 바이너리인 유니버설 바이너리로 프로젝트를 빌드하는 편이 좋습니다. 그러면 배포 가능 애플리케이션을 하나만 제작해도 Intel 기반의 이전 세대 Mac 또는 Apple Silicon Mac에서도 기본 실행이 가능합니다.
이제 macOS에서 언리얼 엔진 마켓플레이스에 있는 '자동차용 브리지 씬'(Automotive Bridge Scene)을 이용할 수 있습니다.

언리얼 엔진 5.2에서의 Apple Silicon 지원 현황

언리얼 엔진 5.0 버전 이상은 UE 프로젝트의 스탠드얼론 빌드를 패키징할 경우에만 한정적으로 Mac용 유니버설 바이너리를 지원했습니다. UE 5.1에서 베타 지원을 도입하면서 기본 arm64 바이너리로 UE 소스 빌드를 실행할 수 있도록 만들었지만, UE 에디터 빌드의 경우에는 여전히 Rosetta에 의존하고 있었습니다. UE 5.2에서는 에픽게임즈 런처로 언리얼 엔진을 다운로드하면 사용할 수 있는, 사전 빌드된 언리얼 엔진용 유니버설 바이너리를 공식 출시했습니다.
 

이번 출시로 인해 향후 macOS에서의 언리얼 엔진 작업에는 어떤 영향이 생길까요?

소스부터 언리얼 에디터를 빌드하는 사용자는 유니버설 바이너리를 빌드하려면 몇 가지 추가 과정을 거쳐야 합니다. 자세한 내용은 아래를 참조하세요. 언리얼 에디터를 실행하는 사용자의 경우 워크플로에 큰 변경사항이 없습니다. 하지만, 프로젝트나 플러그인을 출시할 때 몇 가지 새로운 요구 사항이 생겼습니다.

먼저 macOS에서 언리얼 엔진 5.2를 실행하는 사용자는 다음 요구 사항을 충족해야 합니다.
  • 최소 macOS 버전: 12.5 Monterey 이상
  • 권장 macOS 버전: 최신 macOS Ventura
  • 최소 Xcode 버전: 14.1

이 변경사항은 App Store의 새로운 최소 요구 사항을 반영합니다.

두 번째로, 언리얼 엔진 5.2 버전 이상에서 언리얼 엔진 마켓플레이스에 코드 플러그인을 퍼블리싱하는 셀러라면 유니버설 바이너리를 포함시켜야 코드 플러그인이 macOS와 호환되는 것으로 간주됩니다. libaws-checksums.dylib와 같이 Amazon Web Services 라이브러리(lib.AWS) 등의 타사 라이브러리를 사용하는 코드 플러그인이 주로 영향을 받을 것입니다.
 

macOS에서의 언리얼 엔진 마켓플레이스 에셋 이용성 면에는 어떤 영향이 있을까요?

이번 변경사항과 마켓플레이스 에셋에 적용되는 추가 요구 사항으로 인해 언리얼 엔진 5.2를 실행하는 macOS 사용자는 이제 UE 마켓플레이스에서 더 많은 에셋에 액세스할 수 있습니다. 여기에는 파라곤 에셋 팩과 같은 에픽게임즈 무료 에셋도 포함됩니다.
이제 '파라곤'(Paragon)에 있는 이 뮤리엘(Muriel) 캐릭터 등 macOS에서 더 많은 언리얼 엔진 마켓플레이스 에셋을 이용할 수 있습니다.

언리얼 에디터에서 Apple Silicon 지원 기능을 이용하려면 어떻게 해야 하나요?

macOS에서 에픽게임즈 런처로 언리얼 엔진을 다운로드한 사용자는 유니버설 바이너리를 포함하는 배포 가능 애플리케이션을 자동으로 받게 됩니다. 런처에서 언리얼 에디터 인스턴스를 실행할 경우, 디바이스의 기본 아키텍처에 적합한 슬라이스를 사용합니다. 즉, Apple Silicon 디바이스에서는 언리얼 에디터가 자동으로 Apple Silicon 기본 지원을 사용합니다.

소스에서 에디터를 빌드하여 유니버설 바이너리를 제작할 경우에는 'x64+arm64' 아키텍처를 선택하여 명시적으로 빌드해야 합니다. 명령줄은 x64 아키텍처를 기본값으로, Xcode는 호스트 머신의 아키텍처를 기본값으로 빌드하기 때문입니다. 이 프로세스에 대한 자세한 내용은 문서 내의 이 글을 참조하세요.
 

에디터에서 Apple Silicon을 기본 지원할 때 생기는 이점은 무엇인가요?

Apple Silicon 기본 지원을 하는 언리얼 에디터를 실행하면 Rosetta 2 트랜슬레이션이 필요 없어지므로 CPU 오버헤드가 감소하고 퍼포먼스가 향상됩니다.

추가로 Apple Silicon Mac에서 에디터를 실행할 때의 사용자 경험을 일부 개선했습니다. 여기에는 창 포커스 처리 문제 수정, 최신 세대 Mac 화면 상단의 '노치' 지원이 포함됩니다.
macOS의 언리얼 에디터에서 언리얼 엔진 마켓플레이스에 있는 '인피니티 블레이드: 초원 지대'(Infinity Blade: Grass Lands) 씬을 실행 중인 모습입니다.

언리얼 엔진에서 macOS 지원 시 제한 사항은 무엇인가요?

macOS 지원은 아직 개발 중입니다. 현재 macOS 디바이스에서 언리얼 에디터나 독립형 프로젝트를 실행할 때 몇 가지 중요한 제한 사항이 있습니다.
  • 나나이트는 Apple M1 디바이스가 지원하지 않을 수도 있는 이미지 아토믹 및 순방향 진행 보증(forward-progress guarantees)에 의존합니다. M2 기반의 Mac은 실험단계 지원 기능을 이용할 수 있지만, 기본적으로 비활성화되어 있습니다. 해당 기능을 활성화할 경우 주의할 점은 아래를 참조하세요. 향후 Apple Silicon 디바이스에서 나나이트를 완전히 활성화할 계획이며, 지금은 일부 지원되지 않는 부분이 있습니다.
  • 나나이트를 사용하도록 설정된 퀵셀 에셋은 해당 에셋의 비나나이트 버전으로 예비 전환됩니다. 그 외에는 의도대로 작동합니다.
  • 그룸에 이미지 아토믹 지원이 필요한 관계로 헤어/퍼/그룸 스트랜드는 현재 macOS에서 지원되지 않습니다. 하지만 헤어 카드와 메시는 지원됩니다.
  • 하드웨어 가속 레이 트레이싱은 현재 macOS에서 지원되지 않습니다. 이러한 제한 사항 때문에 Apple Silicon에서 루멘은 소프트웨어 레이 트레이서만 사용할 수 있습니다. 소프트웨어 레이 트레이싱의 결과물은 리플렉션 디테일이 떨어지고 그 안에 다이내믹 메시가 표시되지 않는 등 퀄리티가 낮습니다.
  • 안티 에일리어싱 퍼포먼스: 기본 안티 에일리어싱 모드인 템포럴 슈퍼 해상도(Temporal Super Resolution, TSR)는 현재 Apple Silicon에서 소프트웨어와 하드웨어의 한계에 부딪혀 다른 플랫폼에 비해 런타임 비용이 효율적이지 않습니다. 현재 이 문제를 살펴보는 중이며, 향후 출시에서 런타임 퍼포먼스가 향상되길 기대합니다. 만약 다른 안티 에일리어싱 모드로 전환하고 싶다면 프로젝트 설정에서 '안티 에일리어싱'을 찾아 대안책을 선택하면 됩니다.
 

M2 디바이스에서 실험단계 나나이트 지원을 사용하려면 어떻게 해야 하나요?

많은 분이 macOS에서 완전한 나나이트 지원을 기대하고 있습니다. 그 첫 단계로, GitHub의 ue5-main5.2 브랜치에서 실험단계 지원 기능을 지금 이용해 볼 수 있습니다. 하지만 이 기능은 기본적으로 비활성화되어 있습니다. 활성화하려면 언리얼 엔진의 소스 코드에 다음 수정 사항을 적용해야 합니다.
  1. UEBuildMac.cs(Engine/Source/Programs/UnrealBuildTool/Platform/Mac/UEBuildMac.cs)에서 PLATFORM_MAC_ENABLE_EXPERIMENTAL_NANITE_SUPPORT=1을 설정합니다. 
  2. spirv_msl.hpp에서 UE_EXPERIMENTAL_MAC_NANITE_SUPPORT를 활성화합니다.
  3. UEBuildMac.cs의 설명에 따라 ShaderConductor를 리빌드합니다.
  4. Data Driven PlatformInfo.ini(Engine/Config/Mac/DataDrivenPlatformInfo.ini)에서 bSupportsNanite=true  bSupportsUInt64ImageAtomics=true를 설정합니다.

이 지원을 활성화할 때 몇 가지 주의할 점이 있습니다. 첫 번째, 이 지원은 M2 하드웨어에서만 작동합니다. 두 번째, 철저한 테스트를 거치지 않았으므로 퍼포먼스와 안정성이 보장되지 않습니다. 앞서 설명한 바와 같이 이 지원은 실험단계 기능이며, 향후 출시 및 차세대 Apple Silicon 하드웨어 지원을 개선하기 위한 디딤돌 용도이기도 합니다. 사용해 보시고 에픽 디벨로퍼 커뮤니티 포럼에 피드백을 게시해 주시면 감사하겠습니다.

    지금 macOS용 언리얼 엔진 5.2를 다운로드하세요!

    기존 언리얼 엔진 사용자는 macOS용 언리얼 엔진 5.2의 유니버설 바이너리를 에픽게임즈 런처에서 다운로드하실 수 있습니다. 처음 입문하는 분이라면 아래 링크를 클릭하여 시작하실 수 있습니다. 어느 쪽이든 모두 신기능과 업그레이드를 이용할 수 있습니다.