하이라키뷰에서 Directional Light를 선택하고 인스펙터뷰에서 Shadow Type을 Hard로 바꾼다. Soft는 사실적이지만 부하가 무겁다. RealTime Shadows Strength를 적당히 낮추고 Resolution을 Low로 해서 부담을 더 줄일수 있다.
3D 모델은 Mesh Render 또는 Skinned Mesh Renderer중 한 컴포넌트를 반드시 갖고 있다. 여기는 그림자와 관련된 Cast Shadows와 Receive Shadows 속성이 있다. 실시간 그림자의 영향을 받지 않아도 시각적 효과에 크게 상관없는 3D모델은 이 두가지 옵션을 적절히 설정해 그림자를 생성하지 않게 한다.
Cast Shadows : 빛을 받아서 자신의 그림자를 만들 것인지 결정하는 속성
Two Sided : Plane 또는 Quad처럼 단면만 렌더링하는 모델은 Cast Shadows 속성을 On하고 빛을 모델의 뒷쪽으로 비추면 그림자가 생성되지 않는다. 이때 Cast Shadow 속성을 Two Sided로 하면 그림자가 생성된다.
메시를 이용한 그림자
실시간 그림자보다는 효과가 약하지만 갸벼운 그림자 처리를 구현해보자. 단순한 평면 메시를 이용하는 방법으로 모바일 게임에서 흔히 볼 수 있는 방식이다.
먼저 Player에 적용된 실시간 그림자가 생성되지 않도록 설정한다.하이라키뷰의 Player를 펼쳐 slade_mesh, slade_meshod1, slade_meshod2의 세개의 메시로 구성돼 있다. 모두 선택한후 인스텍터뷰에서 Skinned Mesh Renderer 컴포넌트의 Cast Shadows 속성을 Off로 변경하고 Receive Shadows속성도 언체크한다.
들고있는 총도 같은 처리를 해줘 그림자를 Off한다.
하이라키뷰에서Player를 선택후 우클릭후 3D Object>Quad모델을 생성하면 자동으로 Player의 차일드가 된다.
Quad를 선택하고 인스펙터뷰에서 Transform을 다음과 같이 변경한다. Y position을 0.01로 한 이유는 Floor와 겹치는 부분이 깜빡이는 현상이 발생하기 때문이다.
유니티의 원시모델은 기본으로 Collider컴포넌트가 있는데 Quad에서는 필요없으므로 이를 제거한다.
Quad의 이름을 Shadow로 변경한다. Resorces/Texture폴더에서 BlobShadow.psd파일을 Images폴더로 복사한뒤 Shadow(Quad)에 끌어다 적용한다. Material 폴더안에 자동으로 동일한 이름의 머터리얼이 생성된다
Shadow(Quad)선택후 인스펙터에서 필요없는 Cast Shadows를 Off하고 Bos Shadow Shader>Mobile>Particles>Multiply를 선택하면 잘 적용된다. 부하는 적어지지만 바닥이 경사로나 굴곡이 있다면 제대로 표현되지 않는다.
'유니티게임강좌 > 주인공 캐릭터 제작' 카테고리의 다른 글
[Player제작] Follow Camera 로직 (0) | 2023.02.26 |
---|---|
[Player제작] Level of Detail 설정 (0) | 2023.02.26 |
[Player제작] 무기장착 (0) | 2023.02.26 |
[Player제작] 애니메이션 (1) | 2023.02.26 |
[Player제작] 캐릭터 회전 - Rotate (0) | 2023.02.25 |