콘텐츠로 이동

모바일 및 VR 가이드

NiloToon의 모바일/VR 최적화, NiloToon(Lite) Shader, XR 설정 및 빌드 방법을 설명해요.


NiloToon(Lite) - 모바일/VR용

NiloToonURP(풀 버전)는 PC와 콘솔용 많은 기능을 포함하고 있어, 모바일/VR에서 해당 기능을 사용하지 않더라도 렌더링에 상당한 오버헤드가 있어요.

NiloToonURP(풀 버전)이 모바일/VR 게임 프로젝트에서 너무 느리고 모바일과 VR을 위해 특별히 개발된 다른 Shader를 사용할 의향이 있다면, NiloToon(Lite) Shader를 사용해 보세요.

라이선스 소유자에게 별도 제공돼요

성능 비교

NiloToonURP(풀 버전) 대비 3~5배 GPU 속도 향상을 볼 수 있어요.

Shader GPU 비용 예시
NiloToonURP(풀 버전) 10ms
NiloToon(Lite) 2~3ms

많은 캐릭터, 오브젝트, 고해상도 렌더링에서 훨씬 더 잘 확장돼요.

장점

  • 모바일 게임 업계에서의 과거 경험을 활용하여 만든 매우 빠른 Shader. 약한 GPU 폰과 Quest2에서 잘 동작하도록 설계됨
  • NiloToonURP(풀 버전)보다 사용이 간단함 (기능과 옵션이 훨씬 적음)
  • 캐릭터뿐만 아니라 모든 Renderer에 사용 가능

단점

  • WIP이며 개발 초기 단계. Shader 이름이나 Property 이름이 향후 업데이트에서 변경될 수 있음
  • 개발 계획에서 매우 낮은 우선순위. 업데이트가 매우 느릴 것으로 예상됨
  • 풀 버전 NiloToon보다 기능이 훨씬 적음
  • 문서 없음 - Material Inspector 내의 Help Box와 Tooltip만 제공
  • 1개의 Shader와 1개의 Renderer Feature만 포함. 자동 설치나 자동 설정과 같은 유용한 버튼 없음
  • NiloToon(풀 버전)의 스크립트, Renderer Feature 또는 Volume의 영향을 받지 않음 - 최고의 성능을 달성하기 위해 NiloToon(풀 버전) 시스템 외부에서 완전히 독립적으로 실행되는 Standalone Shader

LWGUI 중복 방지

프로젝트에 이미 NiloToonURP가 임포트되어 있는 경우, NiloToon(Lite) 임포트 시 NiloToonURP(Lite) 폴더 안의 LWGUI 폴더를 임포트하지 마세요. LWGUI는 하나만 필요해요.

최소 기본 설정

NiloToon(Lite)는 최소 기본 설정(대부분의 기능 기본값 = off)을 사용해요. 유일한 목표가 모바일/VR에서 가장 빠른 GPU 성능이기 때문이에요. Material에서 반드시 필요한 기능만 활성화해 주세요. Material에서 활성화하는 기능 그룹이 적을수록 GPU 성능이 향상돼요.

Material Inspector

NiloToon(Lite) Material Inspector

렌더링 예시

NiloToon(Lite) 렌더링 결과 - 모바일에서 여러 캐릭터

Classic Outline 설정

NiloToon(Lite)에서 Classic Outline을 생성하려면 수동으로 NiloToonLiteRendererFeature를 추가해야 해요. NiloToon(풀 버전)의 Renderer Feature가 아니에요.

NiloToonLiteRendererFeature 추가

최적 성능

Lite Shader만 사용하는 경우, 작업량을 줄이기 위해 NiloToonURP(풀 버전)의 Renderer Feature를 비활성화하는 것이 좋아요.


PCVR Play Mode에서 실행

NiloToon의 데모 프로젝트에서 PCVR을 Play Mode로 실행하려면:

  1. Assets/XR/XRGeneralSettingsPerBuildTarget을 Project에서 찾고, Standalone Settings를 클릭하여 Init Manager On Start를 활성화해 주세요

    XR 설정

  2. Project Settings의 XR Plug-in Management에서 OpenXR를 활성화해 주세요

    OpenXR 활성화

  3. VR 디바이스(예: Quest2의 AirLink/SteamVR/VirtualDesktop 등)가 준비되고 PC에 연결되었는지 확인해 주세요

  4. NiloToon의 Scene을 열고 Editor에서 Play를 클릭하면, VR 디바이스에서 헤드셋으로 카메라 움직임을 제어할 수 있어요
  5. Play Mode에서 마우스를 사용하여 Scene을 변경할 수 있어요 (VR 컨트롤러에서의 제어는 없음)

VR 끄기

VR을 끄려면 위의 모든 변경 사항을 되돌려 주세요:

  • Init Manager On Start 비활성화
  • 또는 XR Plug-in Management에서 OpenXR 비활성화

XR에서 비활성화되는 기능

XR에서 부적절할 수 있는 일부 기능이 비활성화돼요:

  • NiloToon Anime PostProcess
  • NiloToon Motion Blur
  • Perspective Removal

데모 프로젝트 빌드 (APK/iOS)

  1. 플랫폼을 Android/iOS로 전환해 주세요

    플랫폼 전환

  2. (선택) Build Settings에서 NiloToonEnviJPStreetScene을 포함하지 않아요. 이 단계로 빌드 시간과 런타임 Shader 메모리 사용량을 줄일 수 있어요.

    Scene 제외 설정

  3. Android/iOS 폰을 USB로 컴퓨터에 연결한 후 Build and Run (또는 Ctrl+B)을 클릭해 주세요. Android 디바이스에서 USB Debugging이 활성화되어 있는지 확인해 주세요.

  4. 결과:

    • Android: 빌드 완료 후 Android 폰에서 .apk가 실행돼요
    • iOS: XCode 창에서 빌드를 계속해 주세요

데모 프로젝트 빌드 (Web)

Web 빌드

  1. 플랫폼을 Web으로 전환해 주세요

  2. Project Window에서 다음 폴더를 삭제해 주세요:

    • Assets/MMD4Mecanim
    • Assets/SteamVR
    • Assets/SteamVR_Input
    • Assets/ThirdParty(GitHub)/uLipSync
  3. Build and Run (또는 Ctrl+B)을 클릭해 주세요

  4. 빌드 완료 후 Web 브라우저에서 데모가 실행되는 것을 확인해 주세요

로딩 문제

빌드 성공 후 브라우저에서 로딩(0%)에 멈추면, 웹 페이지를 닫고 Build Settings에서 NiloToonEnviJPStreetScene을 포함하지 않은 후 다시 빌드해 주세요.

참고

Dance! Scene (NiloToonDancingDemo)의 VideoPlayer는 Web 빌드에서 동작하지 않아요. 이는 예상된 동작이에요.


GLES2.0 미지원

NiloToon과 URP Shader는 SRP Batcher를 사용하므로, 권장 OpenGLES 버전은 OpenGLES 3.1 이상이에요.

OpenGLES 버전 지원 여부
OpenGLES 3.1 이상 권장
OpenGLES 3.0 지원 (예: 매우 오래된 Android 모바일 / WebGL 2.0)
OpenGLES 2.0 NiloToon 및 Unity2022 LTS에서 더 이상 지원하지 않음