2D 아트 에셋의 해상도 선택

CIRO CONTINISIO / UNITY TECHNOLOGIESContributor
Nov 19, 2018|14 분
2D 아트 에셋의 해상도 선택
이 웹페이지는 이해를 돕기 위해 기계 번역으로 제공됩니다. 기계 번역으로 제공되는 콘텐츠에 대한 정확도나 신뢰도는 보장되지 않습니다. 번역된 콘텐츠의 정확도에 관해 의문이 있는 경우 웹페이지의 공식 영어 원문을 참고해 주시기 바랍니다.

게임 이벤트나 온라인에서 사람들은 종종 이런 질문을 합니다: "Unity에서 PC와 모바일용 2D 게임을 만들고 있는데, 에셋의 해상도는 어느 정도여야 하나요?" 이 질문에 대한 모든 경우를 포괄하는 간단한 답은 없습니다. 이 블로그 게시물을 읽고 프로젝트에 가장 적합한 조치를 취하는 것이 무엇인지 알아보세요. 최근 몇 년 동안 유니티에서는 2D 게임을 제작하는 데 도움이 되는 다양한 기능을 개발해 왔습니다: 스프라이트 아틀라스, 2D 피직스, 직사각형, 육각형 또는 아이소메트릭 월드를 위한 타일맵 기능, 스플라인 기반 스프라이트 모양, 2D 애니메이션 등이 있습니다.

Unity는 오브젝트의 크기를 픽셀 단위로 표현하지 않기 때문에 2D 게임용 에셋을 제작하는 아티스트가 혼란스러워할 수 있습니다. "얼마나 커야 하나요?" 게임 개발에서 늘 그렇듯이 이 질문에 대한 답은 "상황에 따라 다르다"이지만, 결정을 더 쉽게 내릴 수 있는 몇 가지 개념을 살펴 보겠습니다.

참고: 이 블로그 게시물의 사진은 에셋 스토어의 아름다운 2D 에셋을 사용했으며, 이 블로그에서는 아티스트 미카엘 구스타프손의 아트를 사용했습니다.

MUnity로 2D 게임 제작하기

에디터에서 녹색 2D 월드 열기
픽셀 아트 에셋

픽셀 아티스트인 경우, 이 글의 대부분의 팁이 여러분의 상황에 완전히 적용되지 않을 수 있다는 점을 미리 알려드립니다. 픽셀 아트 그래픽의 경우 해상도가 매우 낮은 이미지가 있는데, 이를 원래 해상도의 2배, 4배, 8배 또는 그 이상으로 확대하고 싶을 수 있습니다. 즉, 원본 아트의 한 픽셀이 이제 화면에서 2x2, 4x4, 8x8의 실제 픽셀로 구성된 정사각형이 된다는 뜻입니다. 따라서 일반적으로 픽셀 아트에서는 화면 해상도에 크게 신경 쓸 필요 없이 아트와 전달하고자 하는 느낌 (구식, NES 시대, 16비트 시대, 고해상도 "현대" 픽셀 아트 등)에서 시작하여 몇 배로 확장합니다. 이제 유니티는 빌트인 RP를 사용하는 경우 독립형 패키지 형태의 픽셀 퍼펙트 솔루션과 유니버설 RP 및 2D 렌더러에 포함된 픽셀 퍼펙트 솔루션을 제공합니다. 카메라에 설치하는 간단한 구성 요소만 있으면 모든 화면에서 실제 작은 픽셀 그리드에 맞춰 아트를 선명하게 유지할 수 있습니다. 픽셀 퍼펙트에 대한 자세한 내용은 문서에서 확인할 수 있습니다.

업스케일링이 아닌 다운스케일링

해상도 선택에 대해 알아보기 전에, 에셋을 제작할 때 실제로 게임에 들어가는 아트에 필요하지 않더라도 해상도를 높이는 것이 좋다는 점을 기억하세요. 아트 크기는 언제든지 축소할 수 있지만 품질 저하 없이 확장할 수는 없습니다.

게임의 일부 아트를 인쇄해야 하거나 화면의 요소 크기를 늘리거나 나중에 4K 모니터용 게임의 'HD 버전'을 만들고자 하는 경우를 생각해 보세요.

이러한 이유로 아트 작업을 할 때는 실제로 필요한 해상도의 두 배 이상의 작업 파일을 사용한 다음 Unity로 가져오기 전에 크기를 축소하거나 임포트 설정을 사용하여 엔진으로 임포트할 때 크기를 줄이는 것이 좋습니다.

편집기 드롭다운 메뉴를 보여주는 이미지입니다. 523이 강조 표시되고 2048이 확인 표시로 선택됩니다.
이미지 자산의 가져오기 설정에서 최대 해상도를 2의 거듭제곱으로 강제 설정할 수 있습니다.

또한 가져오기 설정을 통해 플랫폼별로 최대 크기 및 기타 압축 설정을 정의할 수 있으므로, 예를 들어 PC에서는 특정 해상도로 일부 에셋을 저장하고 디스크 공간이 중요한 모바일 디바이스에서는 절반만 저장할 수 있습니다.

팁: 유니티는 스프라이트 아틀라스를 통해 여러 스프라이트를 하나로 통합할 수 있는 방법을 제공합니다. 아틀라스는 텍스처 공간을 절약하는 방법일 뿐만 아니라 프로젝트의 모든 스프라이트에 대해 개별적으로 설정할 필요 없이 최대 크기를 하나의 통합된 방식으로 제어할 수 있는 기능도 제공합니다.

플랫폼의 해상도 정의하기

에셋 크기를 정의할 때는 게임을 퍼블리싱할 플랫폼이나 디바이스를 고려하는 것이 중요합니다. 사람들은 매우 다양한 기기와 화면을 사용하며, 다양한 해상도와 화면 비율로 게임을 보게 됩니다.

일반적으로 이 글을 작성하는 시점에 PC용으로 퍼블리싱하는 경우 대부분의 사용자는 대부분 '풀HD'(1920x1080픽셀, 흔히 1080p라고 함)와 1280x720(흔히 720p라고 함)의 두 가지 해상도를 사용하고 있는 것으로 보입니다. 또한 소수의 사람들은 4K 모니터(3840x2160) 또는 Retina 모니터를 Mac에서 사용합니다(최신 15인치 MacBook Pro의 최대 해상도는 3360×2100입니다). 커버해야 할 픽셀이 너무 많습니다!

휴대폰의 경우 그 범위가 매우 넓습니다. 일부 구형 디바이스는 세로로 720픽셀 미만으로 내려갈 수 있지만, 일부 최신 디바이스는 최대 4K까지 지원합니다.

팁: 유니티는 이러한 통계 중 일부를 Unity ID의 운영 대시보드에서 확인할 수 있도록 합니다. 애널리틱스가 활성화된 프로젝트를 선택하면 애널리틱스 > 마켓 인사이트로 이동하여 집계된 통계를 볼 수 있습니다. Steam에서도 이 페이지에서 비슷한 서비스를 제공합니다.

Retina(Apple 상표) 및 기타 최신 고DPI 화면의 경우 실제 하드웨어 해상도는 매우 높지만(예: 4K), 시뮬레이션된 낮은 해상도(일반적으로 절반, 예를 들어 4K 대신 풀-HD)로 실행하면 이미지와 텍스트가 매우 선명하게 보이도록 두 배의 픽셀을 사용하여 렌더링합니다 .

참고: DPI(인치당 도트 수) 또는 PPI(인치당 포인트 수 또는 인치당 픽셀 수)는 제조업체마다 다른 이름으로 사용되지만 결국 화면의 선형 인치에 얼마나 많은 픽셀이 압축되어 있는지를 의미하는 것은 동일합니다. 기존에는 화면이 72DPI였습니다. 오늘날의 고DPI 화면은 일반적으로 144DPI이지만, 비교적 작은 화면에 많은 픽셀을 넣기 때문에 최대 400DPI 이상을 자랑하는 휴대폰을 찾을 수 있습니다. 여기에 몇 가지 예가 있습니다.

이러한 화면에는 두 가지 옵션이 있습니다. 하나는 4K 해상도를 최대한 활용하는 경험을 제공하는 것을 목표로 하는 것입니다. 단점은 4K 호환 에셋을 제작하려면 추가 작업이 많이 필요하다는 점입니다. 이 경우 마케팅 자료에 반드시 강조하세요! ("아름다운 4K 경험"... 등). 4K와 호환되는 PS4 Pro 및 Xbox One X와 같은 콘솔 소유자는 게임에서 하드웨어를 최대한 활용할 수 있다는 점이 마음에 들 것입니다.

또는 풀HD를 지원하도록 게임을 '그냥' 설계할 수도 있습니다. 두 번째 경우, 더 높은 DPI 모니터를 사용하는 사용자는 화면 해상도 증가의 이점을 누리지 못하고 풀HD로만 게임을 볼 수 있습니다. 이상적이지는 않지만 빌드 크기를 제어하려는 경우에는 괜찮을 수 있습니다.

결론은 목표하는 최대 해상도(현재 시장 점유율을 기준으로, 위 참조)를 선택하고 이를 전체 프로젝트의 목표로 설정해야 한다는 것입니다. 그러면 팀원 모두가 이 사실을 알고 의사 결정을 내릴 수 있습니다.

Unity 씬에서의 측정

앞서 언급했듯이 Unity는 거리와 크기를 픽셀이 아닌 단위로 측정합니다. 일반적으로 Unity 유닛 1개를 1미터에 맞추는 것이 좋습니다 . 예를 들어, 이 시나리오에서 휴머노이드 모델의 평균 유닛 수는 1.7~1.8개입니다. 이는 필수는 아니지만, Unity의 피직스는 1미터에 1단위를 사용하도록 조정되어 있으므로 피직스가 있는 게임(3D 및 2D 모두)이 올바르게 작동하도록 보장합니다. 조명 파라미터가 현실에 가깝게 유지되어야 하는 3D 조명도 마찬가지입니다.

2D에서는 이 스케일이 덜 중요하지만, 프로젝트에서 피직스를 사용하는 경우 이를 존중하는 것이 좋습니다. 타일맵을 사용하는 경우 단순성을 위해 1타일 = 1단위의 배율을 유지하는 것이 좋을 수 있습니다.

이제 유닛에 대해 살펴봤으니 카메라로 넘어가 보겠습니다. Unity의 2D 카메라(직교형)에는 Size라는 파라미터가 있으며, 이 파라미터는 두 배로 늘 리면 카메라가 세로축에서 프레임을 구성하는 단위 수를 알려줍니다.

편집기 드롭다운 스크린샷. 직교는 크기 5로 선택됩니다.
직교 카메라 인스펙터의 크기 매개변수

크기가 5인 뷰포트는 세로로 10개의 Unity 유닛을 측정합니다. 가로축은 사용자 화면의 종횡비를 알 수 없으므로 그 결과일 뿐입니다. 화면 비율이 16:9인 일반 PC나 Android 휴대폰에서는 쉽게 계산할 수 있습니다:

10 (세로 크기) x 16 / 9 = 17.7 (가로 크기)

따라서 이러한 설정으로 대략 17.7 x 10 단위의 영역을 프레임으로 구성하고 있다는 것을 알 수 있습니다. (일반적으로 16:10인) Mac에서는 16대 10이 되므로 가로로 잘 보이지 않습니다. 16:9 비율의 휴대폰을 세로로 잡으면(따라서 9:16이 됨) 동일한 카메라가 5.6 x 10 단위의 영역만 표시합니다.

참고: 이 블로그 게시물에서는 화면 비율에 대처하는 방법을 다루지 않는 이유는 다양한 화면 비율에 맞는 게임을 만들려면 그래픽뿐만 아니라 일반적으로 화면 비율이 다른 기기에서 게임이 다르게 재생되지 않도록 게임플레이를 많이 조정해야 하기 때문입니다. 예를 들어 가로로 스크롤하는 게임에서는 플레이어가 다가오는 위험을 더 많이 볼 수 있으므로 가로 가로 비율이 가늘면 이점이 있습니다. 화면 비율이 크게 다른 게임에서 제대로 작동하는 게임을 만드는 것이 불가능할 때가 있는데, 이때 사람들은 게임플레이로 채울 수 없는 부정적인 공간을 채우기 위해 프레임이나 검은색 막대를 사용합니다.

단위당 픽셀 입력

그래픽을 스프라이트로 임포트할 때 Unity는 단위당 픽셀 수(PPU)라는 파라미터를 표시합니다. 이제 유닛에 대해 모두 알았으니 이 부분은 매우 명확해졌습니다. 게임 오브젝트의 스케일이 1,1,1일 때 스프라이트의 픽셀이 Unity 씬의 유닛에 얼마나 들어가는지를 표현합니다.

예를 들어 218 x 175 픽셀의 바위 스프라이트가 있고 단위당 픽셀을 100으로 설정했다고 가정하면, 씬에서 해당 스프라이트를 드래그하면 기본적으로 게임 오브젝트는 2.18 x 1.75 단위가 되어 세로 축의 10 단위 중 약 1/5을 차지하게 됩니다.

녹색 2D 배경에 에디터의 굵은 글씨 이미지
이 세팅을 사용하면 뷰포트의 세로 방향에 5개 이상의 바위를 맞출 수 있습니다.

테스트 해상도로 풀HD 화면을 사용하겠습니다. 수직은 1080픽셀이고 바위는 화면의 5분의 1도 안 되는 크기로(위 이미지에서 희미한 바위가 5배 이상 들어가는 것을 볼 수 있습니다), 200픽셀 이상을 렌더링하기 위해 175픽셀의 소스 그래픽을 사용하고 있다는 뜻입니다. 즉, 약간 흐릿한 바위를 갖게 될 것입니다.

이 문제를 해결하기 위해 바위의 크기를 절반 정도로 축소하거나 카메라 프레임을 10.8로 크게 만들거나 (줌 아웃을 생성), 스프라이트의 PPU 값을 108로 변경 (화면에서 바위를 작게 만드는 것과 동일한 효과)하는 등 몇 가지 해결책이 있습니다. 세 가지 경우 모두 바위를 선명하게 만들려면 바위의 크기를 더 작게 만들어야 합니다.

카메라 크기와 PPU 값의 출처는 어디인가요? 쉬워요! 카메라 크기의 경우, 그래픽을 100 PPU로 가져온다면 10.8x100은 1080이므로 10.8 카메라가 필요합니다. 이렇게 하면 화면의 전체 높이를 커버할 수 있습니다. 반대로 카메라 크기가 5로 유지되는 경우 올바른 PPU를 계산하려면 풀HD 화면을 세로로 10개의 Unity 유닛으로 커버하려는 경우 1080/10 = 108이 됩니다. 카메라 크기를 변경하지 않을 경우 한 유닛에 채워야 하는 픽셀 수입니다.

규칙을 만들고, 규칙을 어기세요

게임 작업을 진행하면서 이러한 워크플로를 혼합하는 것은 위험합니다. 잘못된 장면에 사용된 일부 그래픽의 해상도가 너무 낮아서 알아차리지 못하는 상황이 발생할 수 있기 때문입니다. 프로젝트의 대부분의 에셋에 하나의 PPU를 사용하고 일반적인 카메라 크기를 기준으로 가이드라인을 설정하는 것이 좋습니다.

그런 다음 나중에 규칙을 위반할 수 있습니다. 카메라가 확대 및 축소되어 일시적으로 크기가 변경되는 컷씬이 있을 수 있습니다. 또는 배경 요소가 너무 커서 텍스처가 엄청나게 커져서 동일한 PPU를 유지할 수 없을 수도 있습니다. 이 경우 해당 요소의 PPU를 줄이고 더 작은 스프라이트를 가져와도 화면의 넓은 영역을 커버할 수 있습니다.

게임 미리보기

Unity에서 작업할 때 게임 뷰를 통해 표시되는 해상도는 얼마인지, 타겟 플랫폼에서 아트를 정확하게 미리 볼 수 있는지 궁금할 수 있습니다. 필요한 대부분의 옵션은 상단의 드롭다운 메뉴와 그 옆에 있는 슬라이더에 있습니다.

드롭다운이 있는 편집기 화면. 저해상도 종횡비는 자유 종횡비와 마찬가지로 확인됩니다.
저해상도 종횡비가 켜져 있으면 기본적으로 배율이 2로 설정되어 있습니다. 이는 높은 DPI 화면에서 낮은 DPI를 시뮬레이션하려면 픽셀을 복제해야 하기 때문입니다.

종횡비는 가로와 세로 사이의 특정 비율을 강제할 뿐이지만, 화면에 따라 달라지는 게임 뷰 뷰포트의 현재 해상도를 활용합니다. 따라서 화면의 UI와 오브젝트를 설정하는 데는 유용하지만 아트 테스트에는 적합하지 않습니다. 화면 비율을 설정하는 동안 고해상도 화면 비율 확인란이 활성화되며, 고DPI 화면을 사용하는 경우 저해상도 화면 비율 확인란이 활성화됩니다. 체크하면 표준 DPI 화면 해상도를 시뮬레이션합니다. 반면 고정 해상도는 Unity가 정확한 크기의 창을 렌더링하도록 강제합니다. 이때 게임 뷰를 확장하거나 최대화하여 전체 미리보기를 시각화해야 할 수 있습니다. 여기서 스케일 슬라이더를 사용하면 게임 뷰 창에 고해상도를 맞출 수 있지만, 1배율 이하로 조정하면 실제로 해당 해상도가 표시되는 것이 아니라 리샘플링된 해상도가 표시됩니다. 드롭다운에 고정 해상도와 화면 비율을 직접 추가할 수 있다는 점도 잊지 마세요:

'슈퍼와이드' 종횡비 라벨 추가 GIF

팁: 편집자만 보고 판단해서는 안 된다는 점을 잊지 마세요. 가끔씩 게임의 빌드 (또는 아트만!) 를 만들어 대상 기기나 화면에서 살펴보세요.

몇 가지 최종 참고 사항

보시다시피, 작품의 해상도, 카메라 크기, 원하는 화면이 모두 연결되어 있으며 모든 경우에 맞는 픽셀 크기나 PPU는 하나도 없습니다. 타겟 플랫폼을 연구하고 해결 방법을 결정한 후 가이드라인을 만들어 팀 전체에 알립니다. 그런 다음 고해상도 아트를 제작하면 나중에 유용하게 사용할 수 있습니다! 마지막으로 필요한 해상도에 맞게 크기를 조정하고 Unity에서 임포트합니다. 마지막으로 한 가지 제안이 있습니다. 이전에는 '약간 흐릿하다'는 표현을 마치 세상의 종말이고 반드시 고쳐야 할 문제인 것처럼 사용했지만, 이것은 어려운 규칙이 아닙니다. 게임에서 일부 오브젝트의 해상도가 낮은 경우가 있을 수 있습니다. 특히 화면에 미세한 디테일이 많은 경우, 안개, 비 또는 포스트 프로세싱이 적용된 투명 화면이 겹쳐져 있을 수 있습니다. 정상 속도로 게임을 플레이하세요. 실제로 샘플링이 다시 이루어지고 있다는 사실을 눈치채셨나요? 솔직히 차이를 구분할 수 없다면 고해상도 스프라이트를 렌더링하는 데 필요한 추가 작업, 디스크 공간 및 프로세싱이 그만한 가치가 없는 것일 수 있습니다. 기억하세요: 좋은 게임은 큰 타협을 만들어냅니다!

추가 리소스

블로그에 2D 팁과 방법 목록이 있으니 놓치지 마세요. 2D를 위한 유니티의 기능에 대한 개요를 확인하려면 여기에서 시작하세요.

블로그에서 Unity 2D 데모, 드래곤 크래셔를 살펴보세요.

#Unity2D챌린지(종료)

멋진 2D 아트를 작업 중이신가요? 유니티의 새로운 2D 툴이 궁금하신가요? 새로운 2D 애니메이션 툴인 타일맵, 스프라이트쉐이프, 픽셀 퍼펙트 패키지 또는 SVG 임포터로 멋진 작품을 제작하고 Unity 2D 챌린지에 참여하세요! 저는 심사위원 중 한 명으로 여러분의 기발한 아이디어를 빨리 보고 싶습니다.