프로그래밍/언리얼엔진

[언리얼 엔진] Oculus Quest2 준비부터 빌드까지(4.26기준) - 3

LeePorter 2022. 2. 28. 22:09

이전 포스팅까지 마치셨다면 SDK와 NDK가 준비되었을 겁니다. 그리고 Android Studio 설치 과정을 통해 JDK도 설치가 되었으니 이제 언리얼 엔진 프로젝트 설정을 하도록 하겠습니다.

 

아직 이전 포스팅들을 보지 못하신 분들은 아래 링크를 통해 먼저 확인하시길 바랍니다.

[언리얼 엔진] Oculus Quest2 준비부터 빌드까지(4.26기준) - 1

[언리얼 엔진] Oculus Quest2 준비부터 빌드까지(4.26기준) - 2


이번 포스팅에서는 언리얼 엔진 4.26 프로젝트를 실행하여 Oculus Quest2 프로젝트 빌드를 위한 사전 프로젝트 세팅을 하는 방법을 설명하겠습니다.

 

우선 작업 중인, 혹은 새로 작업을 수행할 프로젝트를 4.26 버전으로 실행해줍니다. 그리고 상단 메뉴 중 [편집] - [프로젝트 세팅]으로 이동합니다.

 

※ Oculus Quest2를 처음 개발하시는 분들의 경우 프로젝트 생성 단계에서 우선 프로젝트에 대한 기본 설정을 해주셔야 합니다. (이미 설정을 하셨어도 프로젝트 세팅에서 변경 가능) 특히, 장비는 Oculus Quest2를 사용하지만 Link를 통해서 PC 컨텐츠 개발을 하는 용도이면 PC VR 개발하는 환경과 동일하게 구성하면 되지만 Android 버전으로 제작한다면 아래의 내용으로 진행하셔야 합니다.

 

자세한 개발관련 가이드 참조로 Oculus 공식 사이트 개발자 문서 링크를 아래 추가하겠습니다. 참고하시길 바랍니다. 그리고 제가 작성하는 글은 그 이외의 추가적인 개발 진행과정에 대한 내용이니 덧붙여서 작업하시면 됩니다.

 

 

Creating Your First Oculus Quest VR App in UE4: Unreal | Oculus Developers

 

developer.oculus.com

VR로 시작 선택 및 안드로이드 개발환경을 설정합니다. 그리고 혹시나 입력(Input)에서 '기본 터치 인터페이스(Default Touch Interface)'가 None 상태인지 확인하고 다른 것이 설정되어 있으면 None으로 변경.

이미지를 클릭하면 크게 보실 수 있습니다.

 

이제 본격적인 Android 세팅으로 넘어가겠습니다. 프로젝트 세팅 메뉴들 중 아래 쪽에 '플랫폼(Platforms)'의 Android 메뉴 선택합니다. 그러면 처음 화면은 아래와 같을 겁니다.

 

처음 프로젝트의 Android 메뉴 화면

 

빨간색 박스로 '프로젝트가 Android 플랫폼용으로 환경설정되지 않았습니다.'로 나타날텐데 우측에 '지금 환경설정' 버튼을 클릭하면 녹색으로 바뀌고 Android 빌드 플랫폼으로 변경됩니다. 그리고 혹시 아래 SDK 라이선스 수락에 버튼이 활성화 되면 눌러주시면 됩니다. (계속 비활성화되면 그냥 넘어가시면 됩니다.)

 

※ 환경설정이 되어 녹색으로 바뀌면 프로젝트 폴더에 'Build' 폴더가 생성된 것을 확인할 수 있습니다. 이 폴더를 지우게 되면 다시 환경설정을 해야합니다. (패키징 시 환경설정을 하지 않으면 오류 발생)

 

하단의 환경설정 값은 위의 사진처럼 해주시면 됩니다. 가장 기본설정이므로 개발 과정에서 혹은 본인의 개발 타겟 등에 따라서 변경될 수 있습니다. 위 설정은 아주 기본적이고 오큘러스 공식 홈페이지 등에서도 그리고 각종 커뮤니티 등에서 추천하는 기본 설정이니 해두시는 것이 좋습니다. 

 

위에서부터 하나씩 설명하자면 첫 번째 패키지명을 보면 'com.YourCompany.[PROJECT]'와 같이 써있습니다. 이것을 본인 프로젝트 이름에 맞게 적절하게 수정하시면 됩니다. 이때 [PROJECT]는 입력창 옆에 적힌 것처럼 프로젝트 이름으로 대체되는 식별자입니다. 그대로 두시면 자동으로 프로젝트 이름이 입력됩니다.

 

최소 SDK 버전과 타겟 SDK 버전을 적을 때 보통 Oculus Quest 장비에 대해서만 타겟으로 한다면 위와 같이 23, 25로 설정하시면 됩니다. 이는 오큘러스 공식 문서에서도 권장하는 타겟 SDK입니다. 최대 타겟 SDK 버전은 29(=Android 10)입니다.

 

그 아래에 '.apk 안에 게임 데이터패키징?'을 체크합니다. 이는 오큘러스 공식 문서에는 누락되어 있는데 Quest에 빌드하여 APK를 넣고 실행하면 로딩 아이콘만 나오고 화면이 계속 검은상태로 실행되는 문제가 있다는데 이것을 체크하면 해당 문제가 사라진다고 합니다.

 

'UE4Game 파일에 Use ExternalFilesDir 사용?'은 외부 데이터를 읽고 쓸때 꼭 체크해야 합니다. (그리고 manifest 작업을 해야하는데 추후 포스팅을 통해 알려드리겠습니다.) 특히 언리얼 엔진에서 사용하는 Save game 관련 함수를 사용할 경우 체크하셔야 합니다. 요즘 외장 데이터를 안쓰는 경우는 거의 없으니 일반적으로 체크하시는 것이 좋습니다.

 

아 그리고 제가 이미지에는 체크를 안 했는데 아래 '오리엔테이션''Sensor Landscape'로 되어 있을 겁니다. 이것을 꼭 'Landscape'로 변경하셔야 합니다. 안 그러면 APK 빌드 후 Quest 장비에 넣었을 때 실행이 되지 않거나 화면이 이상하게 나올 수 있습니다. (Oculus는 '무조건' 가로 화면이기 때문)

 

마지막으로 'KitKat 및 상위 디바이스에서 몰입형 전체화면 활성화'를 체크합니다.

 

이제 아래로 내려가면 '빌드' 카테고리가 있습니다. 여기서 'arm64'체크하고 'armv7'체크 해제합니다. Oculus Quest2 장비는 이제 32비트를 지원하지 않습니다. 64비트만 지원하므로 변경하셔야 합니다. 하나는 무조건 선택이 되어 있어야 하므로 arm64를 체크하고 armv7을 체크해제해야 합니다.

 

 

'고급 APK 패키징'의 +를 눌러 앨리먼트를 추가하고 그 안에 아래와 같은 명령어를 입력합니다.

android:allowBackup="false"

추후 apk 패키징할 때 AndroidManifest.xml의 <application> 태그 속성으로 추가됩니다.

 

그리고 'Oculus Mobile 디바이스용 패키지'도 마찬가지로 +를 클릭해서 두 개의 앨리먼트를 추가하고 Oculus Quest2와 Oculus Quest를 선택하면 됩니다.

 

 

왼쪽 카테고리들 중 'AndroidSDK' 메뉴를 선택하시면 위와 같이 이전에 설치한 SDK와 NDK, JDK 경로를 설정할 수 있습니다. 비워 놓으시면 미리 지정되어 있는 기본 설치된 경로를 자동으로 탐색하여 찾은 뒤 여러 개가 있을 경우에 가장 최신 버전을 선택합니다. 즉, 지금처럼 언리얼 엔진 4.26 버전을 하나만 설치한 상태에서는 이전 포스팅에서 설치한 SDK와 NDK, JDK가 그대로 적용됩니다.

 

※ 따로 확인은 안 해봤지만 SDK, NDK, JDK를 설치할 때 경로를 변경하였다면 경로 설정을 직접 설정해주셔야할 수도 있습니다. 만약 저렇게 비어있는 상태로 패키징했을 때 SDK, NDK, JDK 관련 오류 로그가 나온다면 한 번 경로를 설정해보시고 패키징을 다시 시도해보시길 바랍니다.

 

여러 언리얼 엔진 버전을 사용할 때 가장 문제가 되는 것은 NDK입니다. SDK나 JDK는 하위호환이 되어서 상위 버전 하나만 제대로 있으면 문제가 없습니다. 그러나 NDK는 언리얼 버전에 따라서 호환되는 버전이 다릅니다. 그래서 직접 NDK 버전을 지정해야 합니다.

 
 

언리얼에 Android SDK 및 NDK 설정

언리얼 엔진 4.25 이상에 Android 개발 환경을 설정하는 방법

docs.unrealengine.com

 

위 링크 페이지에서 맨 아래를 보시면 'Android NDK 호환성' 이라는 부분이 있습니다. 해당 부분을 참고하시면 됩니다.

 

여기까지가 4.26 엔진 버전에서의 Oculus Quest2 개발 환경 구축단계였습니다. 다음 포스팅에서는 실제 패키징 이후 AndroidManifest.xml 작업과 업로드에 대해서 설명하도록 하겠습니다.

 

감사합니다.