패키지 설치 및 설정¶
NiloToon의 .unitypackage를 기존 또는 새 프로젝트에 사용하려면 아래 단계를 따라 진행해 주세요.
0a. URP로 전환¶
중요 단계
NiloToonURP의 .unitypackage를 임포트하기 전에 Unity 프로젝트가 URP를 사용하고 있는지 반드시 확인해 주세요.
Built-in RP 프로젝트를 URP 프로젝트로 전환하는 방법은 Unity 공식 문서를 참고해 주세요. URP가 설정되어 있지 않으면 분홍색 에러 셰이더가 표시되며 NiloToon이 컴파일되지 않아요.
0b. 프로젝트 백업¶
(선택 사항) 업데이트 전에 프로젝트를 백업해 주세요. Unity Version Control, GitHub Desktop, Plastic SCM 등의 버전 관리 도구를 사용하여 커밋하거나, 프로젝트 폴더를 복사해 두면 돼요. 문제가 발생하더라도 안전하게 복구할 수 있어요.
1a. 기존 NiloToon 삭제¶
(선택 사항) 모든 업데이트 문제를 방지하려면:
- Unity Editor에서 빈 씬을 엽니다
- 프로젝트의 기존 NiloToonURP 폴더를 삭제하여 다음 단계에서 깨끗하게 재설치해요
팁
업데이트 과정에 익숙하다면 NiloToonURP 폴더 전체를 삭제할 필요가 없는 경우가 많아요. 대부분의 경우 Assets\NiloToonURP\Editor\ShaderGUI\LWGUI-main만 삭제하면 충분해요. 다만 NiloToon이 내부 폴더 구조를 변경한 경우에는 기존 NiloToonURP 폴더를 완전히 삭제해야 해요.

1b. .unitypackage 임포트¶
중요 단계
NiloToonURP_[버전].unitypackage를 임포트해 주세요.

1c. 자동 의존성 설치¶
(별도 작업 불필요) NiloToon이 Package Manager를 통해 Collections (1.2.4 이상)을 자동으로 설치해요. Package Manager를 직접 열 필요가 없어요.
1d. 자동 설치 창¶
중요 단계
NiloToonURP Auto install 창이 표시되면 Yes를 클릭하여 NiloToon이 프로젝트의 활성 Renderer에 필요한 모든 Renderer Feature를 자동으로 설치하도록 하는 것을 강력히 권장해요. (나중에 수동으로 설치하려면 No를 클릭해 주세요)

1e. Render Graph¶
(Unity 6.0 ~ Unity 6.3 전용)
NiloToon은 Render Graph와 Compatibility Mode 모두에서 정상적으로 동작해요. 사용 중인 일부 도구가 Render Graph를 지원하지 않는 경우 Compatibility Mode를 활성화할 수 있어요:
Project Settings > Graphics > Compatibility Mode = On

참고
Unity 6.3에서는 URP가 Compatibility Mode를 제거할 예정이므로, 향후 Unity 6.3 이상으로 업그레이드할 계획이 있다면 가능한 한 Compatibility Mode를 Off로 설정하는 것을 권장해요. Unity 6.4에서는 Compatibility Mode가 완전히 제거되어 Render Graph만 사용할 수 있어요.
1f. HLSL 설정 보존¶
팁
대부분의 경우 이 단계는 필요하지 않으므로 건너뛰어도 돼요. VertExmotion을 NiloToon과 함께 사용하는 경우에만 필요해요.
(선택 사항) VertExmotion이 NiloToon과 함께 동작해야 하는 경우, NiloToonCharacter_ExtendDefinesForExternalAsset.hlsl 파일을 열어 필요한 설정을 다시 활성화해 주세요.
1g. Unity 재시작¶
중요 단계
기본적인 NiloToon 파일 설치 및 업데이트가 완료되었어요. NiloToon 업데이트의 정확성을 보장하기 위해 에디터를 재시작하는 것을 권장해요.
2a. 자동 설치 재실행¶
(1d 단계에서 No를 클릭한 경우에만 해당)

Window > NiloToonURP > Auto Install RendererFeatures 버튼을 클릭하면 NiloToon이 모든 Renderer Feature를 다시 자동으로 추가해요.
2b. NiloRendererFeature 수동 추가¶
NiloToon의 자동 Renderer Feature 설치를 원하지 않는 경우 수동으로 추가할 수 있어요. 활성 URP 3D Renderer를 선택하고 (Project 창에서 t:UniversalRendererData로 검색), NiloToonAllInOneRendererFeature를 수동으로 추가해 주세요.

참고
필요한 경우 다른 활성 Renderer에도 NiloToonAllInOneRendererFeature를 추가해야 해요. 예를 들어, Project Settings > Quality의 각 품질 설정에 대한 Renderer가 있을 수 있어요.
3a. Parallel Import 비활성화¶
매우 중요한 단계
Project Settings > Editor > Asset Pipeline > Parallel Import = false로 설정해 주세요. 그렇지 않으면 .fbx에서 생성된 Prefab이 유효하지 않게 될 수 있어요. NiloToon은 단일 스레드(비병렬) FBX 임포트를 필요로 해요.

3b. Depth Priming 비활성화¶
매우 중요한 단계
NiloToonAllInOneRendererFeature를 사용하는 모든 URP Renderer를 선택해 주세요. (Project 창에서 t:UniversalRendererData로 검색)
다음 설정을 적용해 주세요:
- Depth Priming Mode = Disabled (비활성화하지 않으면 NiloToon_Character 셰이더를 사용하는 Face Material에서 2D Shadow를 렌더링할 수 없어요)
- NativeRenderPass = Off (NiloToon Renderer Feature가 NativeRenderPass와 정상적으로 동작하지 않을 수 있어요)

4a. VolumePresetPicker 추가¶
(선택 사항) 씬에 NiloToonVolumePresetPicker를 추가해 주세요:
+ > Volume > NiloToon > NiloToonVolumePresetPicker

NiloToonVolumePresetPicker를 사용하면 NiloToon이 제공하는 Volume 프리셋 그룹에서 Volume을 선택할 수 있어요. 이후 단계의 설정이 완료되면 캐릭터를 설정할 때 다양한 Volume을 시도해 볼 수 있어요. Volume ID = 1 또는 2 (Nilo001 또는 Nilo002)가 좋은 시작점이에요.
- Volume ID를 드래그하거나 Next/Previous를 클릭하여 Volume 프리셋 간 전환
- Weight를 드래그하여 효과 강도 조절

팁
Volume을 사용하거나 편집하려면 항상 Volume Profile을 복제하여 자신만의 Volume Profile 에셋으로 사용해 주세요. 이렇게 하면 향후 NiloToon 업데이트 시 NiloToonURP 폴더 내의 Volume Profile 편집 내용이 덮어씌워지는 것을 방지할 수 있어요.
콘서트용 Volume
콘서트용 Volume을 찾고 있다면 다음 프리셋으로 시작해 보세요: Nilo032-Concert005v2_StyleDark_ACES_AnyMainLightIntensity(NiloToonVolumePreset) - NiloToonVolumePresetPicker에서 ID = 032
4b. NiloToon Tonemap¶
URP Tonemap 비활성화¶
매우 중요한 단계
Post-process Volume Profile의 URP Tonemapping을 항상 비활성화하는 것을 강력히 권장해요. (씬의 Volume, URP Asset의 기본 Volume 설정, Project Settings > Graphics 모두 확인해 주세요)

기술적으로 NiloToon과 충돌하지는 않지만, URP Tonemapping은 캐릭터의 NPR 색상 디자인을 손상시키는 경우가 많아요. 특히 ACES가 그래요. VTuber/아이돌 업계에서는 캐릭터가 환경보다 훨씬 높은 중요도를 가지므로, 캐릭터의 원래 NPR 색상 디자인을 보호하기 위해 Tone Mapping을 완전히 비활성화하는 것이 일반적이에요. 이렇게 하면 3D 캐릭터 모델의 색상이 Live2D 참조 색상이나 3D BaseMap 색상과 유사하게 보여요.
참고
프로젝트에서 Tone Mapping이 필요하다면 URP Tonemapping을 켜둘 수도 있지만, 이를 권장하지 않아요. 가능하면 NiloToon Tonemapping을 사용하여 캐릭터와 환경 모두에 더 나은 Tone Mapping 결과를 얻어 보세요.
NiloToon Tonemap 사용¶
조명 강도를 신중하게 조절한다면 (클램핑을 방지할 만큼 충분히 낮게 유지) Tone Mapping을 사용하지 않아도 완전히 괜찮아요. 프로젝트에서 Tone Mapping을 활성화하는 것이 도움이 되지 않는다면 이 섹션을 건너뛰어도 돼요.
사실적인 PBR 환경에서 Tone Mapping이 반드시 필요하고 (예: 매우 밝은 HDR Volumetric Light Beam, 조명이 있는 씬), URP Tonemapping이 캐릭터 색상을 더럽고 나쁘게 보이게 한다면, URP Tonemapping을 비활성화하고 대신 NiloToonTonemapping을 사용해 보세요.

NiloToonTonemapping은 URP Tonemapping과 유사하지만, 추가적인 옵션과 제어 기능을 제공하며 기본적으로 NiloToon 캐릭터 영역에는 적용되지 않아요.
예를 들어, URP의 Tonemapping(ACES)를 사용하면 환경은 좋아 보이지만 캐릭터 색상이 어둡고, 회색이며, 채도가 낮아지고 매력적이지 않게 돼요:

(위 이미지 = URP Tonemapping(ACES) 사용 시, 피부색이 이상적이지 않으며 회색으로 어두워짐)
NiloToonTonemapping(ACES)로 전환하면 Tone Mapping이 기본적으로 캐릭터 영역에는 적용되지 않지만, 다른 비캐릭터 영역에는 평소와 같이 적용돼요. 이로 인해 캐릭터의 색상 결과가 크게 개선돼요:

(위 이미지 = URP Tonemapping(ACES)에서 NiloToonTonemapping(ACES)으로 전환 후 캐릭터 색상이 훨씬 좋아짐)
참고
비캐릭터 영역에만 Tone Mapping을 적용하면 캐릭터 영역이 환경에 비해 과도하게 밝아질 수 있어요. 특히 Volumetric Light Beam, Volumetric Fog, HDR Particle 등의 Additive 효과가 캐릭터 위에 적용될 때 그래요. 해결 방법은 Nilo Neutral 설정 또는 Nilo Hybrid ACES 설정을 참고해 주세요.
Nilo Neutral 설정¶
환경과 캐릭터 모두에 완전히 동일한 Tone Mapping을 적용해야 하고, HDR 범위/조명 강도가 매우 높지 않은 경우 다음을 먼저 시도해 보세요:
- KhronosPBRNeutral 또는 NiloNPRNeutral 사용
- Intensity (Tonemap) > Chara를 1로 설정

(위 이미지는 KhronosPBRNeutral 또는 NiloNPRNeutral을 전체 화면에 적용하는 예시예요. Intensity(Tonemap) > Chara를 1로 설정하면 비캐릭터와 캐릭터 픽셀 모두에 동일한 Tonemapping이 적용돼요)
이 Tone Mapping 모드들은 Tone Mapping을 사용하지 않는 것과 비슷한 결과 색상을 제공하도록 설계되었지만, 매우 제한된 HDR 밝기 범위만 지원한다는 단점이 있어요.
Nilo Hybrid ACES 설정¶
사실적인 PBR 씬(예: 사실적인 3D 라이브 콘서트 또는 Archviz 씬), 극도로 밝은 HDR 조명, Light Beam, 연기 및 Volumetric 환경에서 ACES가 필요한 경우 NiloToon Hybrid ACES를 권장해요:
- NiloToon Hybrid ACES 사용
- Intensity (Tonemap) > Chara를 1로 설정

위 설정의 의미:
- 비캐릭터 픽셀에 ACES 적용 = PBR 또는 사실적인 환경 픽셀에 적합
- 캐릭터 픽셀에 NiloToon Hybrid ACES 적용 = LDR 범위의 색상에서 일반 ACES보다 훨씬 나은 캐릭터 색상을 제공하며, HDR 범위에서는 일반 ACES와 유사한 색상을 생성
Pre-Tonemap Brightness를 편집하여 Tonemapping 직전의 밝기 배수(일명 Exposure)를 조절할 수도 있어요. 일반적으로 비캐릭터와 캐릭터 픽셀의 밝기/색상을 서로 가깝게 만들어 사실적인 씬에 캐릭터가 더 자연스럽게 융합되도록 하는 데 사용돼요.
콘서트용 권장 Volume
다음 Volume 프리셋을 먼저 시도해 보세요: Nilo032-Concert005v2_StyleDark_ACES_AnyMainLightIntensity(NiloToonVolumePreset) - NiloToonVolumePresetPicker에서 ID = 032. 밝은 Volumetric Spot Light와 Emissive Surface가 있는 콘서트를 위한 범용 Volume이에요. 일반적으로 이를 시작점으로 복사한 후 각 콘서트에 맞게 편집해요.
제한 사항¶
NiloToonTonemapping을 None 이외의 모드로 사용할 때는 다음 사항을 준수해야 해요:
- URP의 Tonemapping을 사용하지 않아요
- URP의 Bloom 대신 NiloToon의 Bloom을 사용해요
NiloToonTonemapping이 활성화된 상태에서 URP의 Bloom을 사용하면 Bloom 결과가 크게 감소해요.
기술적 이유
렌더링 순서는 다음과 같아요:
- URP가 모든 3D 오브젝트의 HDR 색상을 평소와 같이 렌더링 (결과: HDR)
- NiloToon이 HDR 색상 위에 NiloToonBloom 적용 (결과: 여전히 HDR)
- NiloToon이 NiloToonTonemapping 적용 (결과: LDR)
- URP가 Bloom 적용 - LDR을 입력으로 사용하지만 실제로는 HDR 입력을 기대함 (URP Bloom이 크게 감소하는 이유)
- URP가 Tonemapping 적용 - LDR을 입력으로 사용하지만 실제로는 HDR 입력을 기대함 (NiloToon Tonemapping 사용 시 URP Tonemapping을 비활성화해야 하는 이유)
5. 프로젝트 설정 완료¶
프로젝트별 설정이 완료되었어요. 이제 새 캐릭터 설정 (자동)과 Volume Profile 설정에 집중해 주세요. 먼저 빠르고 최소한의 캐릭터 설정을 진행한 후, 캐릭터 Prefab을 대상 환경에 배치하여 전체적인 색상을 미리 확인하는 것을 권장해요.