콘텐츠로 이동

새 캐릭터 설정 (자동)

이 섹션에서는 NiloToon을 사용하여 새 캐릭터를 설정하는 일반적인 단계를 설명해요. 새 캐릭터는 보통 .fbx 또는 .vrm 파일에서 생성된 Prefab을 의미해요.


0. Material 추출

중요 단계

Project 창에서 캐릭터 fbx/vrm 파일을 선택하고, 캐릭터의 Material이 모두 추출되어 편집 가능한 상태인지 확인해 주세요.

.fbx / .vrm / .blend / .maya 파일의 Inspector에서 Extract Materials를 이미 클릭하여 Material이 모델 파일의 서브 에셋이 아닌, Project 창에서 실제로 편집 가능한 Material이 되어야 해요.

Material 추출

참고

VRM 0.x의 경우 Material 추출 옵션이 없으며, 자동으로 처리돼요.


1. 캐릭터 Prefab 설정

중요 단계

이 단계는 캐릭터 Prefab을 설정하는 핵심 단계예요. 아래 방법 중 하나를 선택하여 캐릭터 Prefab을 설정해 주세요.

시작하기 전에 Prefab 내부에 Missing Script가 없는지 확인해 주세요. Unity Prefab 저장 시 Missing Script가 있으면 안 돼요.

캐릭터를 설정하는 방법은 총 3가지이며, 1A > 1B > 1C 순서로 권장해요. 대부분의 경우 1A만 사용해요:

방법 설명 권장 여부
1A) 비파괴 자동 설정 NiloToon 0.16.22 이상에서 사용 가능 권장
1B) 파괴적 자동 설정 기존 Prefab/Material을 덮어씀 선택 사항
1C) 수동 설정 직접 스크립트 추가 비권장

1A. 비파괴 자동 설정

[NiloToon 0.16.22 이상에서 사용 가능]

다음과 같은 경우에 이 방법을 선택해 주세요:

  • NiloToon이 기존 Prefab과 Material을 덮어쓰거나 편집하지 않기를 원하는 경우
  • 새 NiloToon Material 설정 시 원본 Material을 참조로 유지하고 싶은 경우
  • VRM 0.x 캐릭터 Prefab을 NiloToon으로 변환하는 경우

Project 창에서 캐릭터 Prefab을 선택한 후 다음을 클릭해 주세요:

Window > NiloToonURP > [Prefab] Create Nilo Prefab Variant and Materials

메뉴에서 Nilo Prefab Variant 생성

또는 Project 창에서 Prefab을 우클릭한 후 다음을 클릭해 주세요:

NiloToonURP > [Prefab] Create Nilo Prefab Variant and Materials

우클릭 메뉴에서 생성

이 작업은 기존 캐릭터의 Prefab이나 Material을 편집하지 않으며, 새로운 Prefab Variant 하나와 Material 복제본만 생성해요. 설정 후 모든 항목이 버전 관리에서 "Added files"로 표시돼요. 즉, 원본 캐릭터 Prefab과 Material은 수정되지 않고 유지되며, 새로운 NiloToon Material 세트를 사용하는 새 캐릭터 Prefab Variant가 생성돼요.

이 설정을 사용하면 향후 원본 캐릭터 파일(예: .vrm / .fbx 파일)을 계속 업데이트하면서도 원본 Prefab/Material을 수정하지 않고 유지할 수 있어요.

참고

클릭 후 2개의 팝업 창이 나타나며, 항상 Yes & Proceed를 클릭하여 새 Material 복제본을 NiloToon으로 변환해 주세요.

팝업 창 1 팝업 창 2

1A를 완료했다면 1B와 1C를 건너뛰고 2 - Material을 NiloToon으로 변환 섹션으로 이동해 주세요.

1B. 파괴적 자동 설정

1A 또는 1C를 이미 수행한 경우 이 단계를 건너뛰어 주세요.

원본 Material 설정이 더 이상 필요하지 않고, NiloToon이 기존 캐릭터 Prefab/Material을 덮어쓰기를 원하는 경우 이 방법을 선택해 주세요.

Hierarchy 창에서 캐릭터 Prefab/GameObject의 루트 GameObject를 선택해요 (캐릭터의 모든 Renderer와 Bone을 포함하는 GameObject로, 보통 캐릭터 Animator 컴포넌트가 생성되는 위치예요).

루트 GameObject 선택

다음을 클릭해 주세요:

Window > NiloToonURP > Convert selected GameObjects to NiloToon

변환 메뉴

이 작업은 캐릭터 Prefab과 Material을 직접 편집해요. 설정 후 모든 항목이 버전 관리에서 "Modified files"로 표시돼요. NiloToon이 NiloToon Shader로 덮어쓰기 때문에 원본 캐릭터 Shader/Material 설정이 손실돼요.

참고

클릭 후 팝업 창이 나타나며, 항상 Yes를 클릭하여 Material을 NiloToon으로 변환해 주세요.

1C. 수동 설정

1A 또는 1B를 이미 수행한 경우 이 단계를 건너뛰어 주세요. 대부분의 경우 1A/1B를 사용하므로 이 단계를 건너뛰어도 돼요.

  1. 캐릭터의 루트 GameObject/Prefab을 선택한 후, NiloToonPerCharacterRenderController 스크립트를 수동으로 추가해요 (nilo per을 입력하여 스크립트를 찾을 수 있어요).

스크립트 추가 1 스크립트 추가 2

  1. Auto setup this character 버튼을 클릭해요.

Auto Setup 버튼

참고

클릭 후 팝업 창이 나타나며, 항상 Yes를 클릭하여 Material을 NiloToon으로 변환해 주세요.


2. Material을 NiloToon으로 변환

위의 1A / 1B / 1C 방법을 수행한 후 "Auto setup this character" 팝업 창이 나타나면 Yes를 클릭해 주세요.

Auto Setup 팝업

이 작업은 Material과 Shader를 NiloToon의 Shader로 자동 변환해요. 다음 Shader의 변환을 지원해요:

  • URP Lit / Unlit / Complex Lit / Simple Lit → NiloToon
  • VRM Material (VRM의 MToon) → NiloToon
  • lilToon → NiloToon

3. Alpha Clipping 활성화

(대부분의 경우 Alpha Clipping이 이미 정상적으로 동작하고 있다면 이 단계를 건너뛰어도 돼요)

BaseMap 텍스처에 Alpha Clipping용 알파 채널이 있지만 NiloToon이 Alpha Clipping을 활성화하지 않은 경우:

Alpha Clipping 문제

Select all Nilo materials of this character 버튼을 클릭해요.

Material 선택 버튼

이렇게 하면 캐릭터의 모든 Material이 선택되고, Surface Type(Cutout)이 포함된 유형으로 변환할 수 있어요 (예: Opaque/OutlineOpaque/Outline (Cutout)). 변환 후 NiloToon 캐릭터 Material은 BaseMap의 알파 채널을 Alpha Clipping에 사용해요.

Surface Type 변경

또는 Alpha Clipping 그룹을 직접 활성화할 수도 있어요.

Alpha Clipping 그룹 활성화


4. Per Character 스크립트 설정

NiloToonPerCharacterRenderController는 캐릭터의 Bone 구조를 사용하여 스크립트의 일부 필드를 자동으로 설정해요. 성공하면 아래 이미지와 같이 Status: All setup correct가 표시돼요.

설정 완료 상태

Head 및 Hip Bone 설정

드문 경우지만 모델에 Hip Bone이나 Head Bone이 없는 경우, NiloToonPerCharacterRenderController에 수동으로 할당해야 해요:

  • Head & Face > Head (Transform): Head Bone을 할당해요.

참고

Prefab이 캐릭터가 아닌 경우 이 설정을 무시할 수 있어요.

Head Bone 할당

  • Bounding Sphere > Bound Pos (Transform): Hip Bone을 할당해요.

참고

Prefab이 캐릭터가 아닌 경우 Prefab 중심 부근의 아무 Transform이나 Hip Bone으로 할당할 수 있어요.

Hip Bone 할당

Head Direction 설정

캐릭터를 선택하고 Face ForwardFace Up을 편집하여 다음 조건을 만족시켜 주세요:

  • 3D 파란색 화살표가 캐릭터 얼굴의 정면 방향을 따라감
  • 3D 녹색 화살표가 위를 가리킴

(씬 창에서 Gizmo를 활성화해야 파란색 및 녹색 화살표를 볼 수 있어요)

Head Direction 설정

대부분의 경우 캐릭터 Prefab의 기본 Transform이 지면 위에 표준적으로 놓여 있다면 Auto setup이 자동으로 처리해요.

방향 설정 예시

(위 이미지는 예시이며, 모든 캐릭터 모델이 동일한 방향 설정을 사용하는 것은 아니에요)

추가 방향 예시

Bounding Sphere 설정

Bound Radius를 편집하여 빨간색 Gizmo 구체가 캐릭터를 빈틈없이 감싸도록 해 주세요.

  • Bounding Sphere가 작을수록 NiloToon Self Shadowmap 품질이 높아져요
  • Bounding Sphere가 너무 작아서 캐릭터 전체를 감싸지 못하면, Bounding Sphere 바깥 영역은 잘못된 NiloToon Self Shadow Map을 받게 돼요

대부분의 경우 일반 크기의 인간형 캐릭터에는 기본 반경 1.25M이면 충분해요.

Bounding Sphere 설정 1 Bounding Sphere 설정 2

Face Normal 보정

NiloToonPerCharacterRenderController는 기본적으로 얼굴의 라이팅 Normal을 평탄화해요 (Face Normal fix = 1이 기본값). 모델에 라이팅을 위한 특수 Normal이 있고 NiloToon의 평탄화된 Face Normal이 마음에 들지 않는 경우, Face Normal fix = 0으로 설정할 수 있어요.

Face Normal fix = 0일 때 NiloToon Shader는 얼굴 모델의 원본 Vertex Normal을 변경 없이 라이팅에 직접 사용해요.

Face Normal 설정

Face Normal을 디버그하려면 Window > NiloToonURP > DebugWindow를 사용해 주세요.

Debug Window

Enable Shading Debug를 켜고 NormalWS 또는 NormalVS를 확인해요.

Shading Debug 설정

Face Normal 비교 - fix=1 Face Normal 비교 - fix=0

(왼쪽: Face Normal fix = 1 | 오른쪽: Face Normal fix = 0)

Material별로 Face Normal fix를 제어하려면 Is Face? > Face Normal fix를 사용해 주세요.

Material별 Face Normal 설정

Texture Compression 설정

Base Map 텍스처의 CompressionHigh Quality로 설정해 주세요. 이 단계는 Shadow Color채도 부스트 기능이 올바르게 동작하기 위해 필요해요.

Texture Compression 설정


설정 완료

위의 모든 단계를 완료하면 기본적인 모델 설정이 완료된 거예요.

기본 설정 완료 결과

자동 설정된 Material이 완벽하지 않을 수 있어요. 결과를 개선하려면 캐릭터 Material 개선 문서를 참고해 주세요.


VRoid에서 내보낸 VRM

VRoid Studio에서 내보낸 .vrm 파일에도 NiloToon의 자동 설정이 정상적으로 동작해요. 아래 이미지는 예상되는 결과예요:

1단계) VRoid Studio에서 .vrm 파일 내보내기

VRoid Studio 내보내기

2단계) 위의 단계들을 사용하여 NiloToon 자동 설정 적용