언어:
페이지 정보
태그:
수준별:
엔진 버전:
언리얼 엔진

Android 개발 참고서

언리얼 엔진

운영 체제 선택

Windows

Mac OS

개요

UE4 Android 프로젝트 개발용 컴퓨터에 설치하고 구성해야 하는 여러가지 소프트웨어 컴포넌트와 시스템 세팅에 대한 일반적인 설명입니다.

Android SDK 사양

현재 UE4 에서 Android 게임 개발을 하는 데 필요한 사양은 다음과 같습니다:

컴포넌트

환경 변수

  • Android SDK

  • Java Development Kit

  • Ant Scripting Tool

  • Android NDK

  • ANDROID_HOME

  • JAVA_HOME

  • ANT_HOME

  • NDKROOT

컴포넌트 설치

컴포넌트를 구하는 방법은 여러가지 있습니다. 이미 이들 중 한가지를 설치한 경우, 추가 요소에 대한 부분을 참고해 주세요:

CodeWorks for Android 1R6u1

(NVIDIA 의) CodeWorks for Android 1R6u1 는 Android 개발용 원스톱 센터입니다. CodeWorks for Android 1R6u1 만 설치하면 필요한 모든 것이 설치됩니다.

CodeWorks for Android 1R6u1 인스톨러는 Windows용 언리얼 엔진 4 에 포함되어 있습니다. 위치는 다음과 같습니다:

[엔진 설치 위치]\Engine\Extras\Android\CodeWorksforAndroid-1R6u1-windows.exe

중요한 부분은:

  • Android SDK (기본, 플랫폼 툴, 빌드 툴)

  • Android 4.4.2 (API 19) - SDK 플랫폼

  • Android 5.0.1 (API 21) - SDK 플랫폼

  • Android 6.0.0 (API 23) - SDK 플랫폼

  • Android N (API 24) - SDK 플랫폼

  • Android SDK Support Library

  • Android Toolchain

    • Android NDK 12b

    • Java SDK

    • Apache Ant

    • USB 드라이버

    • 선택적 설치

      • Gradle

  • 개발자 툴 (선택적 설치)

  • Nsight Tegra, Visual Studio Edition

  • USB 드라이버

기본 설치 세트를 사용하면, 딱 최소한의 컴포넌트 세트만 설치됩니다. 사용자 구성 설치를 하는 경우, (프로파일러와 같은) 다른 항목을 추가할 수 있습니다. 참고로 설치 도중, 하위 인스톨러 하나 둘 정도에 응답이 없는 것으로 보일 수도 있으나, 결국은 정상 완료됩니다. 설치 소요 시간은 30 분에서 45 분 정도 걸립니다. 코드 작성 계획이 전혀 없는 경우, Customize (사용자 지정)을 선택한 다음, (NDK 와 Nsight 디버거는 생략하고) SDK, Ant, Java 만 설치하면 빠른 설치가 가능합니다. CodeWorks for Android 1R6u1 의 Nsight 부분은 디바이스에서 Android 게임 디버깅에 사용됩니다. C++ 코드 컴파일에 필수는 아닙니다.

TADPSetup.png

(NVIDIA 의) CodeWorks for Android 1R6u1 는 Android 개발용 원스톱 센터입니다. CodeWorks for Android 1R6u1 만 설치하면 필요한 모든 것이 설치됩니다.

CodeWorks for Android 1R6u1 인스톨러는 Mac용 언리얼 엔진 4 에 포함되어 있으며, 다음 위치에서 찾을 수 있습니다:

[엔진 설치 위치]/Engine/Extras/Android/AndroidWorks-1R6u1-osx.dmg

중요한 부분은:

  • Android SDK (기본, 플랫폼 툴, 빌드 툴)

  • Android 4.4.2 (API 19) - SDK 플랫폼

  • Android 5.0.1 (API 21) - SDK 플랫폼

  • Android 6.0.0 (API 23) - SDK 플랫폼

  • Android N (API 24) - SDK 플랫폼

  • Android SDK Support Library

  • Android Toolchain

    • Android NDK 12b

    • Java SDK

    • Apache Ant

    • USB 드라이버

    • 선택적 설치

      • Gradle

  • 개발자 툴 (선택적 설치)

  • Nsight Tegra, Visual Studio Edition

  • USB 드라이버

기본 설치 세트를 사용하면, 정말이지 최소한의 컴포넌트 세트만 설치됩니다. 설치를 수정한다면, (프로파일러 등의) 아이템을 추가할 수 있습니다. 참고로 설치 도중 추가로 뜨는 인스톨러가 하나 둘 멈춘 것처럼 보일 수가 있지만, 놔두면 알아서 완료될 것입니다. 인스톨 시간은 컴퓨터에 따라 30 분에서 45 분 정도 소요될 수 있습니다. 코드 작성 계획이 없는 경우, Customize 를 선택한 다음 SDK, Ant, Java 만 선택하여 (NDK 나 Nsight 디버거를 생략하여) 빠르게 설치할 수 있습니다. CodeWorks for Android 1R6u1 의 Nsight 부분은 디바이스에서 Android 게임을 디버깅할 때 쓰이는 것이므로, C++ 코드 컴파일에 필수는 아닙니다.

TADP_Mac_OS.png

환경 변수

제공된 인스톨러에서 CodeWorks for Android 1R6u1 를 설치한 것이 아니라면, 일부 환경 변수가 제대로 설정되었는지 확인해 줘야 합니다.

(시스템 제어판의 환경 변수 설정을 통해서든, CodeWorks for Android 1R6u1 설치를 통해서든) 설치가 완료되면, 에디터와 런처 어플리케이션을 재시작해 줘야 합니다. Windows 어플리케이션이 환경 변수를 저장하고, 시작시키는 어플리케이션에 이전 버전을 전달하는 방식때문입니다.

Android SDK 가 제대로 설치되지 않았다는 메시지가 계속해서 뜨면, 컴퓨터 리부팅을 추천합니다.

환경 변수를 설정하려면:

  • 컴퓨터 아이콘에 우클릭하거나 키보드의 Windows+Pause Break 키를 누릅니다.

  • 왼편의 고급 시스템 설정 을 선택합니다.

  • 환경 변수... 를 클릭합니다.

  • 각 변수에 대해 (아래 확인):

    • (아래에서) 환경 변수가 목록 중 최소 하나에 (System 또는 User) 이미 설정되어 있는지 찾아봅니다.

    • 찾지 못했으면, System 섹션 옆의 새로 만들기... 를 클릭합니다.

    • 이름과 값을 입력합니다.

    • 확인 을 클릭합니다.

  • 확인 을 클릭하여 환경 변수 창을 닫습니다.

저희가 의존하는 변수, 그리고 가리키는 대상은 다음과 같습니다:

ANDROID_HOME

  • Android SDK 를 설치한 디렉터리 또는 ADT 를 설치한 경우 sdk 디렉터리로 설정합니다.

  • platform-tools 라는 디렉터리를 포함해야 합니다.

JAVA_HOME

  • JDK 가 설치된 디렉터리로 설정합니다. jdk1.8.0_121 식의 이름일 것입니다.

  • javac.exe 가 들어있는 bin 디렉터리가 들어있어야 합니다.

ANT_HOME

  • Ant 압축을 푼 디렉터리로 설정합니다.

  • ant.bat 가 들어있는 bin 디렉터리가 들어있어야 합니다.

NDKROOT

  • NDK 압축을 푼 디렉터리로 설정합니다. android-ndk-r11c 식의 이름일 것입니다.

  • ndk-build.cmd 라는 파일이 들어있어야 합니다.

CodeWorks for Android 1R6u1 를 설치한 것이 아니라면, 일부 환경 변수가 제대로 설정되었는지 확인해 줘야 합니다.

(.bash_profile 파일을 편집해서든, CodeWorks for Android 1R6u1 를 설치해서든) 설치가 완료되었으면, 에디터와 런처 어플리케이션 둘 다 재시작해 줘야 합니다.

환경 변수 설정을 위해서는 홈 디렉터리의 .bash_profile 파일을 편집해야 합니다. 파일은 Finder 에 숨겨져 있으므로, Terminal 을 사용해서 열어야 편집할 수 있습니다. 유닉스 터미널 명령에 익숙치 않으신 분들을 위해 다음과 같이 방법을 안내해 드립니다.

  1. /Applications/Utilities 에서 Terminal app 을 실행시킵니다.

  2. touch .bash_profile 라고 입력하여 파일이 존재하지 않는다면 만들어 줍니다.

  3. open .bash_profile 라고 입력하여 텍스트 에디터에서 파일을 엽니다.

  4. 다음 줄을 복사하여 파일에 붙여넣고 (경로는 설치된 SDK 와 툴로 수정한 다음) 저장합니다:

    • export ANDROID_HOME="/Users/epicgames/Devel/NVPACK/android-sdk-macosx"

    • export NDKROOT="/Users/epicgames/Devel/NVPACK/android-ndk-r12b"

    • export ANT_HOME="/Users/epicgames/Devel/NVPACK/apache-ant-1.8.2"

종속 변수 이름 및 그 변수가 가리키는 대상은 다음과 같습니다:

  • ANDROID_HOME

    • Android SDK 를 설치한 디렉터리 또는 ADT 를 설치한 경우 SDK 디렉터리로 설정합니다.

    • platform-tools 라는 디렉터리를 포함해야 합니다.

  • ANT_HOME

    • Ant 압축을 푼 디렉터리로 설정합니다.

    • ANT 라는 파일이 들어있는 bin 디렉터리가 들어있어야 합니다.

  • NDKROOT

    • NDK 압축을 푼 디렉터리로 설정합니다. android-ndk-r12b 식의 이름일 것입니다.

    • ndk-build 라는 파일이 들어있어야 합니다.

Android 팁

**실행* 메뉴에 디바이스가 나열되지 않는 경우 해 볼 수 있는 작업은 다음과 같습니다:

  • 몇 초 기다린 다음 다시 살펴봅니다. 연결된 디바이스의 백그라운드 탐색 작업에 시간이 약간 걸릴 수 있기 때문입니다.

  • USB 디버깅 연결이 모두 작동중인지 점검합니다.

  • 명령줄을 엽니다 (Windows+R 키를 누른 다음 cmd.exe 를 실행시킵니다).

    • 이 명령을 입력합니다: adb devices

    • 디바이스가 나열되지 않으면, USB 드라이버가 제대로 설치되지 않은 것입니다. 드라이버 설치 방법은 Android 디바이스 모델에 따라 다릅니다. 디바이스 모델명에 "USB driver" 를 붙여 검색한 다음 드라이버를 설치하세요.

    • 추가적으로, 디바이스에 개발자 모드가 켜졌는지, USB 디버깅 기능이 켜졌는지 확인하십시오. 자세한 정보는 Android Developer Using Hardware Devices guide 문서를 (특히 2, 3 번 항목을) 참고하세요.

    • 이후, adb devices 명령이 정상 작동하는지 확인합니다. 이 부분이 되지 않으면, 엔진에서는 Android 디바이스 관련해서 어떠한 작업도 할 수 없습니다.

디바이스가 실행 메뉴에 나타나긴 하는데 디바이스에 디플로이할 때 멈추는 경우, 거의 디바이스가 PC 와의 통신 권한이 없기 때문입니다. 진행상황 막대의 Show Log (로그 표시) 줄을 클릭하면, 마지막 줄에서 adb uninstall 를 호출중임을 볼 수 있을 것입니다.

  • 위와 마찬가지로, cmd.exe 에서 adb devices 명령을 실행합니다.

  • 디바이스가 나오긴 하는데 권한이 없는 것으로 나오는 경우, 디바이스에게 PC 와의 통신을 허가해야 함을 나타냅니다.

  • 디바이스 케이블을 뽑은 다음 다시 연결해야 나타날 수도 있습니다.

  • Always allow (항상 허용) 체크박스가 체크되었는지도 확인할 것을 추천합니다.

실행 메뉴의 목록에 디바이스가 보이지 않는 경우, 해 볼 수 있는 작업은 다음과 같습니다:

  • 몇 초 기다린 다음 다시 살펴봅니다. 연결된 디바이스의 등록을 위한 백그라운드 탐색 작업에 시간이 약간 걸릴 수 있기 때문입니다.

  • USB 디버깅 연결이 모두 작동중인지 점검합니다.

  • Terminal 앱을 연 뒤 다음 작업을 해 줍니다.

    • 터미널에 adb devices 명령을 입력합니다.

    • 디바이스가 나열되지 않으면, USB 드라이버가 제대로 설치되지 않은 것입니다. 드라이버 설치 방법은 Android 디바이스 모델에 따라 다릅니다. 디바이스 모델명에 usb driver 를 붙여 검색한 다음 필요한 드라이버를 설치하세요.

    • 추가적으로, 디바이스에 개발자 모드가 켜졌는지, USB 디버깅 기능이 켜졌는지 확인하십시오. 자세한 정보는 Android Developer Using Hardware Devices guide 문서를 (특히 2, 3 번 항목을) 참고하세요.

    • 이후, adb devices 명령이 정상 작동하는지 확인합니다. 이 부분이 되지 않으면, 엔진에서는 Android 디바이스 관련해서 어떠한 작업도 할 수 없습니다.

디바이스가 실행 메뉴 에 나타나긴 하는데 디바이스에 디플로이할 때 멈추는 경우, 거의 디바이스가 Mac과의 통신 권한이 없기 때문입니다. 진행상황 막대의 Show Log (로그 표시) 줄을 클릭하면, 마지막 줄에서 adb uninstall 를 호출중임을 볼 수 있을테니, 다음 작업을 해 줍니다:

  • 위와 마찬가지로, Terminal 앱을 열어 adb devices 명령을 실행합니다.

  • 디바이스가 나오긴 하는데 권한이 없는 것으로 나오는 경우, 디바이스에게 Mac과의 통신을 허가해야 함을 나타냅니다.

  • Mac이 이 디바이스와 항상 통신하도록 하려면 Always allow (항상 허용) 박스를 체크할 것을 추천합니다.

Android 텍스처 포맷

모든 Android 디바이스가 똑같지는 않습니다. 특히 렌더링 하드웨어는 4 종류나 됩니다. 각각 각기 다른 압축 텍스처 포맷을 지원합니다.

포맷

설명

ETC1

모든 Android 기반 디바이스에 지원되지만 알파 텍스처는 압축되지 않습니다 (그대로 저장됩니다). 압축률을 높이려면 RGB 와 알파 텍스처를 별도로 사용하는 것이 좋습니다.

ETC2

모든 OpenGL 3.x 클래스 디바이스에 지원되며, 알파 압축도 지원됩니다.

ATC

Qualcomm Adreno GPU 에 지원되며, 알파 압축도 지원됩니다.

DXT

NVIDIA Tegra GPU 에 지원되며, 알파 압축도 지원됩니다.

PVRTC

PowerVR GPU 에 지원되며, 알파 압축도 지원됩니다.

ASTC

최신 텍스처 압축 포맷으로, 블록 크기 지정과 같은 퀄리티 제어는 물론 알파 압축도 지원합니다. 현재 일부 디바이스에서만 지원되며, Vulkan Level 1 이 필요합니다.

Android용 게임을 디플로이하고 패키징할 때, 데이터는 Android 디바이스에서 사용가능한 포맷으로 변환됩니다 (이 프로세스를 "쿠킹"이라 부릅니다). 다양한 디바이스에 다양한 압축 포맷이 지원되므로 쿠킹할 포맷을 선택할 수 있습니다. Launch (실행) 또는 Package (패키지) 서브메뉴에서 Android 아래 가능한 포맷을 확인할 수 있습니다.

첫 번째(Android)는 모든 포맷을 쿠킹된 패키지에 담아 넣습니다. 시간도 오래 걸리고 패키지 크기도 커 지지만, 실행시간에 최적의 포맷을 선택하므로 최소의 메모리 사용량이 보장됩니다. (Andoird (ETC1) 과 마찬가지로) 모든 디바이스에서 작동할 것입니다.

언리얼 엔진 4.8 이상은 Tegra K1 디바이스에서 ES31AEP 렌더링 사용을 지원합니다. 참고로 현재 ES31 과 AEP 렌더링을 지원하는 디바이스 수가 제한되어 있어서 현재 퍼포먼스 및 호환성 테스트가 거의 진척되지 않은 상태입니다. 이 디바이스 중 하나를 사용하는 프로젝트 개발을 목표로 하시는 경우, 프로젝트가 그 디바이스에서 의도한 대로 실행되는지 확인하기 위한 퍼포먼스 및 호환성 테스트를 철저히 하실 것을 강력 추천하는 바입니다.

포맷 선택

대부분 디바이스에 최적의 포맷을 선택하는 것이 좋을 것입니다. 디바이스에 어떤 GPU 유형이 탑재되어 있는지 알고 있다면, 위의 표를 참고하여 포맷을 선택하면 됩니다. 하지만 알지 못하는 경우, Android 또는 Android (ETC1) 을 선택하면 됩니다. 게임을 실행할 때 화면을 네 손가락으로 한 번에 터치하면 대화창이 뜰 것입니다. 이 대화창은 보통 (stat fps 같은) 콘솔 명령을 입력하는 데 사용되지만, 디바이스에서 지원하는 포맷을 표시하는 데도 사용됩니다. 목록을 확인한 후 거기서 디플로이/패키지 작업에 보다 적합한 유형을 선택하면 됩니다. 디바이스에서 지원하지 않는 포맷을 선택하는 경우, 로드에 실패하게 됩니다.

태그