Unreal Engine(이하 UE)으로 Android 기반 XR(VR/AR) 프로젝트를 시작하려는 시점에서 겪는 혼란은 지극히 정상입니다. Unity는 AR Foundation이나 XR Interaction Toolkit으로 상대적으로 경로가 명확한 반면, Unreal은 최근 1~2년 사이 OpenXR로 대전환을 하면서 문서가 파편화되어 있습니다.
결론부터 말씀드리면, **"Unreal은 Android XR을 공식 지원하지만, '순수 OpenXR'만으로는 부족하며 하드웨어 제조사(Meta, Pico 등)의 플러그인과 함께 사용해야 가장 안정적"**입니다.
질문하신 내용을 바탕으로 실무 관점의 현황과 설정을 정리해 드립니다.
현재 가장 안정적인 Unreal Engine 5.3~5.4 버전을 기준으로 한 표준 설정입니다. 버전이 맞지 않으면 패키징 오류가 발생할 확률이 매우 높습니다.
구분권장 설정 및 버전비고Engine VersionUE 5.4 (권장) 또는 5.35.4에서 XR 렌더링 성능(Vulkan)이 대폭 개선되었습니다.Android StudioFlamingo 또는 GiraffeUE 버전에 따라 다릅니다. (UE 5.4는 Flamingo/Giraffe 권장)NDKr26b (UE 5.4) / r25b (UE 5.3)프로젝트 설정에서 정확한 경로를 지정해야 합니다.JDKOpenJDK 17JAVA_HOME 환경변수 설정 필수입니다.Build SystemGradleAGP(Android Gradle Plugin) 8.x 대 버전을 사용하게 됩니다.Min SDK29 (Android 10) 이상XR 장비(Quest 3 등)는 보통 최신 OS를 사용하므로 29~32로 설정합니다.Target SDK32 또는 34구글 플레이 스토어 등록 시 최신 버전 요구 사항을 확인해야 합니다.
[필수 플러그인 활성화]
OpenXR: Enabled (필수, 엔진 코어 기능)
OpenXRHandTracking: Enabled (손 추적 필요 시)
Mobile Foveated Rendering: Enabled (성능 최적화 필수)
질문하신 **"공급업체 통합 없이 OpenXR만으로 작동하는가?"**에 대한 답은 **"작동은 하지만, 상용화 수준을 위해서는 공급업체 플러그인이 필수"**입니다.
순수 OpenXR (Native):
Unreal의 OpenXR 플러그인만 켜도 Meta Quest나 Pico 등에서 앱을 실행하고, 헤드 트래킹과 기본 컨트롤러 입력을 받을 수 있습니다.
문제점: 각 제조사 고유의 기능(예: Meta의 Passthrough, Scene Understanding, Pico의 특정 컨트롤러 모델링, 주사율 제어 등)은 표준 OpenXR API에 아직 포함되지 않았거나 확장(Extension) 형태로 존재합니다.
현실적인 워크플로 (Hybrid):
Base: OpenXR Plugin을 켭니다 (표준 API 처리).
Extension: 타겟 하드웨어 플러그인을 추가로 켭니다.
Meta Quest: Meta XR Plugin (OpenXR 기반으로 작성됨, 필수 기능 제공)
Pico: Pico OpenXR Plugin
Android (Handheld AR): Google ARCore 플러그인
이 방식이 Unity의 XR Plug-in Management 시스템과 유사하게 작동합니다.
이 부분이 문서에서 가장 헷갈리는 지점입니다. 'Android XR'이라는 용어가 두 가지를 혼용합니다.
핸드헬드 AR (스마트폰/태블릿):
기술: Google ARCore를 사용합니다.
설정: Google ARCore 플러그인을 켜고, 프로젝트 설정에서 Configure Google ARCore를 실행해야 합니다.
현황: Unity의 AR Foundation에 비해 Unreal의 AR 지원은 기능 업데이트가 느린 편입니다. 단순한 AR은 가능하지만, 복잡한 상호작용은 C++ 작업이 필요할 수 있습니다.
HMD VR/MR (Quest, Pico 등 Android 기반):
기술: OpenXR을 사용합니다.
설정: OpenXR + Vendor Plugin 조합을 사용합니다. ARCore는 사용하지 않습니다(Passthrough는 벤더 SDK로 처리).
현황: Unreal 5의 Nanite와 Lumen이 모바일(Android) XR에서 제한적으로 지원되기 시작하면서, 그래픽 퀄리티 면에서는 Unity보다 잠재력이 큽니다.
Unity 대비 Unreal로 Android XR을 개발할 때 겪게 될 현실적인 장벽입니다.
초기 설정의 난이도 (Android Setup):
Unreal은 SetupAndroid.bat 스크립트를 제공하지만, Java 버전이나 NDK 버전이 조금만 꼬여도 빌드가 실패합니다. Unity 허브처럼 자동으로 관리해주지 않습니다.
해결: 프로젝트 시작 전 "Android Turnkey" 설정을 통해 모든 SDK 경로가 초록색(Valid)인지 확인해야 합니다.
성능 및 빌드 크기:
빈 프로젝트도 APK 용량이 Unity보다 큽니다 (기본 100MB~).
모바일 GPU에서 Unreal의 렌더링 파이프라인은 무겁습니다. Forward Shading을 켜고, Instanced Stereo Rendering 또는 Mobile Multi-View를 반드시 설정해야 프레임 방어가 가능합니다.
공식 문서의 부족:
Unreal 공식 문서는 최신 내용을 즉각 반영하지 못하는 경우가 많습니다.
팁: Epic Games 문서보다는 Meta의 Unreal 개발자 문서나 Pico 개발자 문서를 메인으로 참고하는 것이 훨씬 정확합니다.
Google의 새로운 "Android XR":
출처:goole