※모든 내용은 AI로 제작하거나 요약하지 않은, 직접 작성한 글입니다.

이 글에서는 VRChat 아바타의 헤어 마테리얼을 활용해서, 앞머리 그림자를 만들어 보겠습니다.
살짝 어렵습니다만, 좋은 기능이므로 알아두시면 유니티 건강에 좋습니다.
쉐이더는 릴툰 기준입니다.

저번 강좌에 쓰고 남은 키펠입니다.

머리 마테리얼을 선택해서 Ctrl+D로 복제한 후, 새 슬롯을 만들어 추가합니다.
이제 앞머리는 2개의 마테리얼 설정을 이용합니다.

복제한 마테리얼의 쉐이더를 _lil > lilToonFakeShadow 로 변경합니다.
앞머리 그림자 표현은,
얼굴 < 그림자 < 앞머리 이 세 마테리얼의 그려지는 순서 (Render Queue) 도 중요하지만,
그려지는/가려지는 부분이 서로에게 정의되어 있어야 합니다.
스텐실이라는 설정을 조정해서 이 부분을 맞출 겁니다.

설정법 및 매개변수에 대한 설명은 릴툰 공식 문서에서도 서술되어 있습니다.
제 글에도 어느 정도 설명이 있지만, 기능 이해에는 문서를 참고해 주시면 더 좋습니다.
이제 각 마테리얼의 설정을 만져 봅시다.

얼굴 마테리얼 > 확장 설정 > Stencil 설정
Ref는 스텐실 ID입니다.
1~255 사이의 임의의 숫자로 지정합니다.
너무 단순한 숫자를 쓰면 다른 쉐이더 또는 마테리얼 설정과 겹쳐 의도치 않은 문제가 생길 수 있습니다.
비교적 랜덤한 값으로 사용해 주세요.
제가 사용하는 아바타는 원본 헤어에 fakeshadow가 적용되어 있던 아바타이고,
Ref를 33으로 사용하고 있었으니 이대로 사용해 보겠습니다.
Comp 방식은 스탠실 값에 상관없이 렌더링하는 Always로 둡니다.
Pass 타입을 Replace로 변경합니다. 이로써 렌더링된 피부가 33번 Ref에 정의됩니다.

기존 앞머리는 스텐실 기본값인 Ref 0, Comp Always로 지정되어 있습니다.
여기서 Pass 타입만 Replace로 변경합니다. 하단 윤곽선 또한 같은 설정으로 맞춰 주세요.
이렇게 하면 렌더링된 앞머리가 Ref 0으로 정의되어, 이후에 설정할 Fakeshadow에 영향을 받지 않습니다.

Fakeshadow는 얼굴과 동일한 Ref ID인 33으로 지정합니다.
Comp는 Equal로, 33번에 저장된 스텐실 정보와 일치할 때에만 그려지게 합니다.
Pass 타입은 Keep으로, 새로운 스텐실 정의 없이 그대로 따라서 그려지게 합니다.

이제 기본 설정에서 방향과 Offset을 조절하면 피부 위에 머리카락 모양의 그림자가 그려집니다.
Offset은 0.005,
방향은 X(좌우) Y(상하) 적절하게 조절해 주세요.

얼굴에 드리워지는 그림자는 보통 텍스쳐가 특별하게 필요하지 않습니다.
fakeshadow 메인 컬러 설정에서, 기존 텍스쳐를 제거하고,
피부 그림자에 맞는 적절한 색상을 오른쪽에서 지정해 줍시다.

위 사진처럼 Fakeshadow는 얼굴 이외에도,
스텐실이 정의되지 않고 그대로 그려지는(Keep) 설정의 마테리얼에 영향을 줍니다.
해당 오브젝트의 마테리얼들 또한 Stencil > Pass 유형을 Replace로 지정해서 이 문제를 해결할 수 있습니다.
만약 의도한 대로 그려지지 않을 경우, 그리는 순서를 지정하는 렌더큐를 확인해 주세요.
얼굴 < Fakeshadow < 앞머리 순서대로 지정되어 있어야 합니다.
이렇게까지 하면 좋습니다.

귀엽네요.

하지만 이대로 업로드하면, 인게임에서 어두울 때의 그림자 색이 따로 놀 수 있습니다.

fakeshadow 마테리얼 > 렌더링 설정 > Forward에서 색이 합성되는 방식을 정하는데요,
SrcBelnd와 DstBlend 설정을 위의 값을 이용해 주세요.
이제 다 됐습니다.

:)

이번 글의 강좌처럼 만든, 오브젝트에 의한 그림자를 모든 부위에서 원한다면
사진처럼 PCSS같은 에셋을 도입해서 쉽게 사용할 수도 있습니다.
이러한 방식은 실시간(Realtime) 라이트/라이팅 이라고도 부릅니다.
그림자를 만들기 위해 지속적으로 발생하는 많은 연산은 그대로 렌더링 부하로 이어집니다.
게임의 레이 트레이싱을 생각해보면 되겠습니다.
퀄리티가 높지만, 게임 내에서의 무분별한 사용은 지양되는 편입니다.
이렇게 아바타에 앞머리 그림자를 넣는 방법을 알아봤습니다.
글을 참고해서 예쁜 아바타를 만들어 보아요.
(스탠실은 저도 공부 중인 기능이라 강좌/설명 에 오류가 있을 수 있습니다.)
'VRChat > 아바타 꾸미기 (Unity)' 카테고리의 다른 글
| VRCHeadChop으로 시야에서 숨기기 / 시야에서 표시하기 (0) | 2025.11.29 |
|---|---|
| 알파 마스크로 반투명 앞머리 만들기 (0) | 2025.11.20 |
| 모듈러 아바타로 모델의 메쉬 지우기 (0) | 2025.11.10 |
| 왜 내 아바타의 얼굴이 안 바뀔까? 얼굴 표정 제대로 적용하기 (0) | 2025.11.03 |
| VRChat에서 아바타에 쓸 애니메이션을 녹화하는 방법 (0) | 2025.10.30 |