Unity 검색

모바일 게임 아티스트를 위한 베스트 프랙티스 가이드

2020년 4월 7일 테크놀로지 | 5 분 소요
공유

Is this article helpful for you?

Thank you for your feedback!

유니티와 파트너십을 맺고 있는 Arm에서 최근 발표한 가이드에는 테크니컬 아티스트와 게임 개발자들이 다양한 모바일 하드웨어용 게임을 개발할 때 게임 아트를 최적화하고 성능을 개선할 수 있는 심도 깊은 내용이 수록되어 있습니다.

테크니컬 아티스트는 모바일 하드웨어의 한계와 성능 요구 사항을 충족하면서 에셋 품질을 유지하여 뛰어난 비주얼의 모바일 게임을 제작하는 데 어려움을 겪는 경우가 많습니다. 주로 PC나 콘솔 등의 다른 플랫폼에서 개발 작업을 했었다면 모바일 플랫폼용 에셋을 만드는 데 필요한 정보와 가이드 등의 유용한 리소스를 찾기가 힘들 수 있습니다.

이러한 어려움을 해결하기 위해 모바일 칩 디자인 업계를 선도하는 Arm의 유니티 파트너들이 테크니컬 아티스트를 대상으로 지오메트리, 텍스처, 머티리얼, 셰이더의 성능을 최적화하고 개선하는 방법을 정리한 종합 가이드를 마련했습니다. 이 블로그에서는 그중 네 가지 팁을 소개합니다. 자세한 내용은 가이드를 다운로드하여 확인하실 수 있습니다.

표시 크기

하나의 모바일 타이틀을 다양한 모바일 기기에서 실행할 수 있게 개발하는 일에는 어려움이 따르며, 메모리 리소스 할당량을 엄격하게 관리해야 합니다. 에셋을 제작할 때에는 화면상에 표시되는 크기나 화면에서 픽셀을 얼마나 차지할지를 염두에 두어야 합니다. 에셋의 크기가 클수록 텍스처 공간을 많이 할당해야 하므로, 배경에서 아주 적은 픽셀만을 차지하는 게임 에셋을 크게 만들 필요는 없습니다.

아래에서 예를 든 게임에서는 두 무리의 병력이 전투를 치르려 하고 있습니다. 병사의 텍스처는 작게 구현되어 있는데, 병사마다 화면에서 차지하는 픽셀 수가 얼마 되지 않기 때문입니다. 이로 인한 장점으로는 먼저 텍스처를 작게 유지하면 메모리 오버헤드가 줄어듭니다. 또한 크기를 적절하게 조절한 텍스처는 아틀라스에 추가할 수 있습니다. 아틀라스의 장점을 더 알아보려면 실시간 3D 아트 베스트 프랙티스의 텍스처링 섹션을 확인하세요.

이 개념은 병사의 메시에도 적용됩니다. 아래 그림에는 병사를 구성하는 삼각형이 표현되어 있습니다. 텍스처링과 마찬가지로, 오브젝트의 버텍스는 GPU에서 처리하므로 삼각형 수가 적을수록 오버헤드를 줄이는 데 도움이 됩니다. 이 방법을 이용하면 '마이크로 트라이앵글'이라는 문제도 방지할 수 있습니다. 메시의 삼각형 수가 많으면 버텍스 수도 많으며, GPU는 이 많은 버텍스를 모두 렌더링해야 합니다. 아주 작은 오브젝트나 씬에서 멀리 있는 오브젝트에 대해서도 마찬가지인데, 실제 픽셀로 구현되는 삼각형의 크기가 작더라도 GPU 성능을 크게 소모합니다.

압축 유형

아티스트는 제작한 텍스처를 흔히 PNG, JPG, TGA 파일로 익스포트합니다. 하지만 게임을 실행하면 이러한 파일은 메모리를 더 적게 차지하고 빠르게 처리되는 특별한 포맷으로 전환됩니다.

프로젝트에서 구현하려는 아트의 성격에 적합한 압축 유형을 선택해야 합니다. 압축 품질을 제어할 수 있는 ASTC를 사용할 것을 권장합니다. 대부분의 에셋은 처음에 5×5 또는 6×6으로 설정하는 편이 무난하며, 비교적 크기가 작은 에셋은 화면에서 차지하는 픽셀이 얼마 되지 않으므로 8×8 또는 10×10으로 설정하는 것도 좋습니다. 프로젝트에 가장 잘 어울리는 설정을 다양하게 테스트해 보세요.

디테일 수준(LOD) 및 밉맵

앞서 설명했듯이 버텍스가 적은 오브젝트일수록 GPU에서 빠르게 처리할 수 있습니다. 때로는 이런 접근 방식이 프로젝트에서 구현하려는 아트 품질과 상충하기도 하는데, 예를 들면 멀리 있는 오브젝트를 가까이에서 보더라도 품질이 그대로 유지하는 것이 목표일 수도 있습니다. 이런 경우에는 디테일 수준(LOD) 시스템을 활용하는 것이 좋습니다.

LOD 시스템은 오브젝트가 카메라에서 멀어질수록 폴리곤이 적은 버전의 모델을 사용합니다. 아티스트가 여러 모델을 만들어 두고, 다른 모델을 사용할 거리를 제어할 수 있습니다. 이를 통해 버텍스 수를 적게 유지하며 위에 언급한 마이크로 트라이앵글 문제도 해결할 수 있습니다. 또한 오브젝트가 멀리에 있을 때에는 성능 소모를 줄이고, 가까이에 있을 때에는 아트의 디테일을 빠짐없이 보여줄 수 있습니다.

앱의 시각적 품질을 유지하며 LOD를 더 효과적으로 사용하려면 LOD를 변경할 때마다 텍스처 해상도를 확대하거나 축소할 수 있어야 합니다. Unity에서는 밉맵을 사용해 이를 간편하게 구현할 수 있습니다.

밉맵은 텍스처를 작은 해상도로 저장한 복사본입니다. 오브젝트가 카메라에서 멀어지면 저해상도 버전의 텍스처를 사용해 앨리어싱 현상을 방지합니다. 밉맵의 작동 방식을 고려하면 카메라에서 오브젝트까지의 거리가 고정적이지 않은 경우에 사용하기 적합합니다. 밉맵과 LOD를 함께 사용하면 씬의 처리 속도를 개선할 수 있습니다.

투명도는 반드시 필요할 때만 사용

투명도를 렌더링하는 데에 많은 리소스가 소모되는 것은 어느 플랫폼에서나 마찬가지이지만, 모바일 플랫폼에서는 오버드로우라는 프로세스로 인해 그 부담이 더 큽니다. 오버드로우는 GPU가 한 픽셀을 여러 번 렌더링할 때 발생합니다. 투명한 오브젝트가 겹치는 픽셀은 모두 렌더링을 반복해야 하는데, 이는 게임 성능에 큰 영향을 미칩니다. 게임에서 투명도를 사용할 때에는 사용할 수 있는 여러 옵션을 알아 두는 편이 좋습니다.

 

알파 블렌드

모바일 GPU에는 알파 블렌드된 오브젝트의 렌더링을 돕는 최적화 기능이 탑재되어 있으므로, 알파 블렌드를 사용하는 것이 좋습니다. 알파 블렌드를 사용하면 컷아웃처럼 활성화/비활성화하는 대신 다양한 투명도 옵션을 활용할 수 있습니다.

알파 테스트

알파 테스트 투명도를 사용하면 오브젝트를 완전히 불투명하거나 투명하게 표현할 수 있지만, 그 사이의 투명도를 조정할 수는 없습니다. 이 옵션은 '컷아웃'이라고도 합니다. 모바일 환경에서 컷아웃을 사용하면 GPU의 여러 최적화 기능을 비활성화하므로, 컷아웃은 최대한 사용하지 않는 편이 좋습니다.

맺음말

실시간 3D 아트 베스트 프랙티스에서 유용한 정보를 많이 소개하고 있지만, 지면 관계상 모든 내용을 여기에 모두 수록할 수 없어 아쉬울 따름입니다. 초보 수준인 분들은 이 가이드에서 일상적인 작업에 유용하게 활용할 수 있는 다양한 팁을 찾아볼 수 있습니다. 이미 전문가이신 분들은 팀과 함께 공유하면 좋은 참고 자료가 될 것입니다. 게임 개발은 여러 사람의 노력으로 이뤄지는 멋진 일입니다. 함께 만든 게임이 플레이어의 사랑을 받는 모습을 보면, 모두가 보람을 느낄 수 있지 않을까요?

   

3D 아트 베스트 프랙티스 가이드 다운로드

2020년 4월 7일 테크놀로지 | 5 분 소요

Is this article helpful for you?

Thank you for your feedback!