[Unity] 이미지와 UV좌표, Light와 그림자 설정을 통한 게임 환경 디자인

728x90

유니티에서 이미지 Image와 UV좌표

3D 오브젝트는 가로 x, 세로 y, 깊이 z라고 하지만 pixel을 가진 2D 텍스처 이미지는 가로 U, 세로 V해서 UV좌표라고 한다.

pixel로 된 이미지를 3D mesh에 덮어 씌우는 것을 UV Wrap이라고 한다. UV Wrapping 할 때 시작점을 어디로 둘 것인지를 정하는게 Offset 값이다.

이미지 텍스처의 Wrap Mode를 보면 다음과 같은 컴포넌트 요소를 확인할 수 있다. Repeat 값으로 두면 텍스처가 특정 방향으로 이동하면서 사라지면 새로 나타나는 부분에 계속 붙어, 이미지가 계속 반복되며 연결되는 것과 같은 효과를 줄 수 있다. 드래곤 플라이트와 같이 2d 콘텐츠를 제작할 때 배경이 무한 스크롤 되게 하는 기능을 구현할 때 사용하면 된다.

 

Lighting과 그림자 세팅을 통해 게임 환경 설정하기

MeshRenderer에서 Lighting  컴포넌트를 조정하면 그림자 효과를 변경해줄 수 있다. Cast Shadows는 그림자를 주는 방식, Receive Shadows는 그림자를 받는 방식으로 오브젝트에 Receive Shadows의 체크박스를 해제해주면 그림자가 생성되지 않는다.

Directional light를 비활성화하고 Window - Lighting - Enviroment Lighting에 들어가 Source 탭을 Color로 변경해 주면 다음과 같이 diffuse와 specular은 없고 Ambient Color만 남는 것을 확인할 수 있다.. Ambient Color를 1(흰색)로 하면 빛의 차폐가 아예 없기 때문에 밝은 배경이 표현되고 씬 상에 있는 오브젝트의 그림자는 전부 없어진다. 반대로 ambient를 0(검은색)으로 가까이 움직이면 빛의 차폐율을 올려 전체적인 배경이 어두워지는 것을 확인할 수 있다. 이렇게 ambient 값을 활용해 밤, 호러 게임 등 시야가 차단된 상황을 표현할 수 있다.

728x90