이번 포스팅은 픽셀 아트의 장점을 극대화할 수 있는 유니티 엔진의 그래픽 설정 방법과 유니티 2D 프로젝트에서 사용하는 직교 투영 카메라에 대하여 포스팅 하겠습니다.
포스팅은 유니티 2D 게임 개발(게임 개발 프로그래밍)에 나온 예제로 진행합니다.
그래픽
유니티는 현재 사용 중인 기기의 그래픽 성능이 부족하여 오브젝트의 테두리를 완벽하게 매끄러운 선으로 그릴 수 없을 때
anti-aliasing(안티앨리어싱)이라는 알고리즘을 사용합니다.
anti-aliasing은 쉽게 이야기 하면 계단현상입니다.
위에 사진처럼 두가지 캐릭터의 테두리를 보시면 매끄럽지 않고 계단처럼 보입니다.
오브젝트의 테두리를 계단처럼 그린 후에 안티앨리어싱 알고리즘으로 오브젝트의 테두리를 확인한후에 계단부분을 채웁니다.
유니티는 사용중인 기기의 성능에 관계없이 안티앨리어싱을 적용합니다.
하지만 예제는 픽셀아트 방식의 게임이기 때문에 안티앨리어싱이 필요가 없습니다.
안티앨리어싱을 끄는 방법은 아래와 같습니다.
먼저 Edit > Project Setting에 들어갑니다.
Project Setings > Quality > Anti Aliasing > Disabled를 선택하면 안티앨리어싱을 끌 수 있습니다.
Anti Aliasing 위에 있는 Anisotropic Textures(이방성 텍스쳐)는 멀리 있는 오브젝트의 텍스처를 뚜렷이 보이게 만드는 기법입니다.
2D 게임에는 필요 없기 때문에 이것또한 Disabled 해주었습니다.
카메라
카메라에 대하여 알아보며, 해상도와 카메라 크기를 설정을 해보겠습니다.
유니티의 2D 프로젝트는 모두 직교(orthographic) 투영 카메라를 사용합니다.
직교 투영 카메라는 가까운 오브젝트와 멀리 있는 오브젝트를 같은 크기로 렌더링합니다.
모든 오브젝트를 같은 크기로 렌더링 하므로 모든 오브젝트가 카메라에서 같은 거리에 있는 것 처럼 보입니다.
직교 투영 카메라의 작동 방식에 대하여 알아보겠습니다.
직교 투영 카메라에는 화면 높이의 절반을 채울 수 있는 "월드 단위"의 개수를 나타내는 "크기"라는 속성이 있습니다.먼저 월드 단위는 유니티에서 설정한 PPU(Pixels Per Unit) 즉 단위 당 픽셀과 화면의 높이에 따라 정해집니다.PPU(단위 당 픽셀)은 하나의 월드 단위 안에 그려야 할 픽셀의 수를 나타냅니다.우리는 이미 PPU를 접한적이 있습니다. 애니메이션이 만들기에서 스프라이트를 자를때 Pixels Per Units(PPU)를 설정한 적이 있습니다.
※아래의 링크를 참고하시면 되겠습니다.
게임에 사용할 오브젝트를 만들때 모두 같은 PPU에 맞춰서 원활하게 작업하고 싶다면 PPU 설정이 중요합니다.
위에서 월드 단위에 대하여 간단하게 알아보았습니다.
다음은 크기입니다.
크기는 월드단위의 개수를 나타낸다고 하였습니다.
Main Camera 오브젝트의 Inspector창에서 Camera 컴포넌트를 확인하였습니다.
Projection > Orthographic , Size > 5 라고 되어있습니다.
Projection > Orthographic은 카메라가 직교카메라라는 의미입니다.
Size > 5는 카메라 크기 5라는 의미입니다.
카메라 크기(Size)를 3.75로 변경하겠습니다.
※이유는 밑에서 설명하도록 하겠습니다.
다음은 해상도를 설정하겠습니다.
1. Game뷰 > Free Aspect > + 버튼을 눌러줍니다.
2. Label : HD , Type : Fixed Resolution(고정 해상도) , Width & Height : 1280 & 720 으로 설정합니다.
Game뷰 화면이 이렇게 바뀌었습니다.
해상도는 표준HD 화면의 해상도인 1280 x 720을 선택한 것입니다.
다음은 중요한 카메라 크기를 설정한 이유와 공식에 대하여 알아보겠습니다.
카메라 크기를 구하는 공식은 다음과 같습니다.
(수직해상도 / PPU) * 0.5 = 카메라 크기
이해를 돕기 위하여 그림을 준비하였습니다.
1280 x 720 화면, PPU는 72로 예를 들겠습니다.
수직해상도 = 화면의 높이값 = 720 입니다.
PPU = 단위 당 픽셀 = 72 입니다.
수직해상도 / PPU = 월드단위 입니다.
720 / 72 = 10 이므로 월드단위는 10입니다.
월드 단위 * 0.5는 카메라 크기입니다.
10 * 0.5 = 5 입니다.
카메라의 크기는 5입니다.
저희가 사용하고 있는 예제는
1280 x 720 화면 PPU는 32입니다.
720 / 32 = 22.5입니다.
22.5 * 0.5 = 11.25입니다.
즉 카메라의 크기가 11.25입니다.
카메라 크기를 11.25로 설정을 해보겠습니다.
게임 화면이 너무 작아진 것을 볼 수 있습니다.
그래서 모든 아트를 확대하기 위하여 약간의 속임수를 사용하여서 PPU에 배율인수 3을 곱하여 계산한 값인
3.75를 사용하는 것입니다.
화면의 해상도는 1280x720 , 카메라 크기 3.75를 설정을 한 모습입니다.
마지막으로 Ctrl + S를 눌러 Scene을 저장합니다!
감사합니다! :)
'유니티2D' 카테고리의 다른 글
#11-2 유니티 시네머신(Cinemachine) 제한자 (2) | 2020.12.05 |
---|---|
#11-1 유니티 시네머신(Cinemachine)으로 플레이어 추적하기 (0) | 2020.12.04 |
#9-2 유니티 타일 팔레트(도구 소개, 배경 그리기, 정렬 레이어) (0) | 2020.12.03 |
#9-1 유니티 타일맵, 타일팔레트 (0) | 2020.12.01 |
#8-3 유니티 캐릭터(Player) 이동하기_애니메이션(블렌드트리) (0) | 2020.12.01 |