본문 바로가기

포트폴리오/졸업작품

[MetaEdu] 캐릭터 얼굴에 그림자가 지던 현상 해결!

개발을 하던 중, 플레이어 캐릭터의 얼굴이 캐릭터의 머리 오브젝트로 인해 보기 싫게 그림자가 지는 것을 발견했다.

그림자는 Directional Light의 실시간 조명을 사용했다.

플레이어의 얼굴에 비춰진 그림자만 해결해야 하므로

조명들이 아닌 캐릭터 오브젝트에서 그림자를 조정해야 한다고 생각했다.


Cast Shadows

Mesh Renderer나 Skinned Mesh Renderer 컴포넌트를 보면 Lighting ▶ Cast Shadows가 있다.

이 Cast Shadows는 캐릭터의 그림자를 다른 물체에 씌울 것인가를 결정해주는데, 총 4가지의 속성이 있다.

Off: 다른 물체에 자신의 그림자를 투영하지 않는다.

On: 다른 물체에 자신의 그림자를 투영한다.

Two Sided: 다른 물체에 자신의 그림자를 양면으로 투영한다.

Shadows Only: 자신의 오브젝트는 보이지 않도록 설정하고, 그림자만 다른 물체에 투영한다.


Receive Shadows

캐릭터 얼굴에 그림자가 지던 문제는 이 프로퍼티로 해결할 수 있었는데, 구글에서 자료들을 찾다 보니 대부분의 Receive Shadows 프로퍼티가 Mesh Renderer나 Skinned Mesh Renderer 컴포넌트에 붙어있었다.

하지만, 내가 쓰는 Unity 2021.3.9f1 버전 URP에서는 기본 Lit 머티리얼에 있었다.

Receive Shadows는 이 머티리얼을 가지고 있는 물체의 표면에 다른 물체의 그림자를 투영 시킬것인지를 결정해주는데, 이 프로퍼티를 해제하니 문제가 해결되었다.