2023. 3. 27. 21:31ㆍUnity
이전에 UI의 드로우콜을 줄이는 최적화를 위해 SpriteAtlas를 사용했었다. 이번에는 Texture의 최적화를 위한 TexturePacker 에셋에 대해서 알아보고자 한다.
Sprite Atlas는 아틀라스를 만들어서 그 안에 내가 패킹하고자 하는 UI들을 넣어서 하나의 묶음으로 만드는 기능이다. 하나의 묶음으로 만듦으로써 드로우콜을 줄일 수 있었다. 이번에도 마찬가지로 텍스쳐를 하나의 묶음으로 만들면서 배치 수를 줄일 수 있다.
먼저, 에셋스토어에서 "TexturePacker"를 검색하여 프로젝트에 import 한다.(링크)
URP 테스트 프로젝트를 만든 후 import 하였다.
유니티 에디터는 잠깐 옆에 두고 TexturePacker 응용프로그램 다운로드 해야 한다.(링크)
로그인 없이도 다운로드 가능하다.
Free Version은 상당히 제한적인 기능만 쓸 수 있었다... 하지만 일단 써야 하니 어쩔 수 없다.(라이선스 비교)
가장 싼 라이선스는 1년에 61000원, 평생 이용은 15만원 정도 한다. (인디 게임 개발자라면 정가의 50% 할인을 해준다)
사용법은 크게 어렵지 않다. 좌측에 각각의 텍스쳐 스프라이트 혹은 폴더 전체를 드래그하면 하위 폴더에 있는 텍스쳐까지 다 적용할 수 있다. 끌어다 놓은 텍스쳐들은 가운데에 나타나게 되고, 텍스쳐들이 어떻게 패킹되는지 보면서 오른쪽 세팅값을 조정하면 된다.
이 기능에 대해서 잘 설명해 주는 영상이 있어서 같이 첨부한다.https://youtu.be/zCIbjYdtvcA
크고 많은 텍스쳐들을 한꺼번에 import 하여 많은 경고 메시지와 싸웠는데(주로 pro 라이선스를 쓰라는 얘기. free에서는 안 되는 기능들이 많다.) 어찌어찌하여 텍스쳐들을 패킹하는 데에는 성공했다. 세팅 값은 아래 스크린샷으로 첨부한다.
텍스쳐들이 다 커서 위의 유튜브 영상과 같이 스케일을 0.25로 줄였고 Packing 사이즈를 4096으로 가장 크게 하여 총 6장으로 생성되었다. 스케일은 우측 [Settings] 창에서 하단 [Advanced settings >>]로 넘어가면 조절할 수 있다.
6장마다 빈 공간들이 보이는데 최대한 빈 공간 없이 잘 패킹하면 성공적이라고 할 수 있다.
잘 만들어졌다면 [Publish sprite sheet]를 눌러서 프로젝트 안에 저장을 하면 된다. 프로젝트에 저장을 하면 처음에 에셋 스토어에서 받았던 스크립트가 자동으로 Texture Atlas를 찾고 적용하여 따로 수동으로 할 것은 없다고 한다.
끝으로, 게임 최적화에 도움이 되는 유니티에서 무료로 제공해 주는 E-Book을 소개하고 마무리하고자 한다.
https://resources.unity.com/games/performance-optimization-e-book-console-pc
최적화에 도움이 되는 전반적인 기능들을 소개했으니 앞으로도 계속 참고하면 좋을 것 같다.
'Unity' 카테고리의 다른 글
[Unity] URP 셰이더를 위해 알아야 할 것들 (0) | 2023.05.23 |
---|---|
[Unity]C# for, foreach, while, do-while문 정리 (0) | 2023.04.11 |
[Unity] Sprite Atlas 기능 사용하기 (0) | 2023.02.19 |
[Unity] 빌드에서만 스프라이트가 핑크색으로 보이는 경우 (0) | 2023.02.19 |
[Unity] 시네머신과 레코더 (Cinemachine & Recorder) (1) | 2023.01.02 |