유니티/2D

유니티 - 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보자

근본넘치는개발자 2024. 12. 2. 23:58

오늘은 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보고자 합니다.

 

프로젝트를 진행하면서 최적화를 위해

UI를 스프라이트 아틀라스로 만들어 보는 게 어떻겠냐는 의견을 듣고 

스프라이트 아틀라스가 뭔지, 어떻게 사용하는 건지 한번 정리해 봤습니다.

 

그 전에 아래의 글을 읽고 오시면 이해하는 데 도움이 될 겁니다.

 

2024.10.25 - [유니티/공통] - 유니티 - Batching에 대해 알아보자.(feat. Draw call, Set Pass Call, 아틀라스)

 

스프라이트 아틀라스(Sprite Atlas)

여러 개의 텍스처를 단일 텍스처로 결합하는 에셋

 

왜 사용하나 ?

Unity는 씬의 각 텍스처에 대해 드로우 콜을 발행하기에,

단일 텍스처로 묶어 관리, 호출함으로써 하나의 드로우 콜을 발행시켜 최적화할 수 있다.

 

단점? 

아틀라스로 묶은 이미지 중에서 하나만 사용하려고 할 때도 

전체를 가지고 와야 하는 문제가 생길 수도 있다.

 

- 상황에 맞게 적절하게 쓰자.

 

실제 적용 과정 

저는 구매한 에셋을 사용하여 설명(실습)하고 있습니다만

따라하실 분은 에셋스토어에 무료 UI를 활용해보시면 좋을 것 같습니다.

 

Unity 2022.2부터 에디터의 Sprite Atlas Mode

기본적으로 Sprite Atlas V2 - Enabled로 설정되어 있어서 

바로 진행해도 되지만 SpritePacker 설정을 간단하게 알아보고자 추가 해봤습니다.

 

Edit - project Settings - Editor에 들어가면 Sprite Packer의 모드를 설정할 수 있습니다.

 

 

 

 

Disable :

현재 프로젝트에서 스프라이트 아틀라스 패킹을 비활성화하려는 경우 선택

 

V1 (Enable for build):

빌드를 퍼블리싱할 때만 Unity가 스프라이트를 스프라이트 아틀라스에 패킹하도록 설정

 

V1 (Always Enabled) :

Unity가 선택한 텍스처를 스프라이트 아틀라스에 패킹하고,

스프라이트는 런타임 중에 패킹된 텍스처를 참조.

편집 모드 중에 스프라이트는 원래의 패킹되지 않은 텍스처를 참조  

 

V2 ( Enabled ) : 

변경 사항이 있을 때 Unity가 스프라이트를 스프라이트 아틀라스에 즉시 패킹.

패킹된 스프라이트 아틀라스는 프로젝트가 플레이 모드로 전환되거나

빌드를 퍼블리싱할 때 사용.

 

V2 ( Enabled For Builds) :

빌드를 퍼블리싱할 때만 Unity가 스프라이트를 스프라이트 아틀라스에 패킹.

에디터와 플레이 모드는 원래의 패킹 되지 않은 텍스처를 참조.

 

설명만 보면 같은 거 아닌가 싶으실 텐데 레거시 차이인 거 같습니다.

 

더 자세한 사항이 궁금하시다면

아래 참고자료에서 링크를 통해 들어가 보시면 좋을 것 같습니다.

 

Sprite Atlas를 만드는 방법

 

우클릭 - Create - 2D - Sprite Atals를 통해서 만들 수 있습니다.

 

 

스프라이트 아틀라스 맨 아래에 Objects for Packing이라고 

되어 있는 부분에서 이미지를 넣어주면 Packing이 됩니다. (우측 하단 그림)

 

Sprite를 모아둔 폴더를 통째로 넣는 것도 가능합니다. 

 

 

적용 안 했을 때 / 했을 때

 

Frame Debugger로 비교

 

좌 : 미적용 / 우 : 적용

마무리 

오늘은 간단하게 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보았습니다.

 

여러 그림을 모아놓은 걸 아틀라스라고 하는 건 기존에 들어서 알고 있었습니다.

그래서 처음 들었을 땐 같은 용어인 줄 알았는데,

유니티에 기능으로서 존재하는 걸 말하는지는 처음 알았네요.

 

비교적 간단한 방법으로 최적화를 진행할 수 있었던 거 같아서

앞으로는 자주 사용할 것 같습니다.

 

스프라이트 아틀라스가 실제 화면에서 한 번에 그려지는 걸 보여주기 위해

강의에선 프로파일러를 사용하시더군요.

 

프로파일러 사용법에 대해서도 조만간 정리해 보도록 하겠습니다.

 

참고한 자료 

 

https://docs.unity3d.com/kr/2021.3/Manual/class-SpriteAtlas.html

 

스프라이트 아틀라스 - Unity 매뉴얼

2D 프로젝트는 스프라이트와 다른 그래픽스를 사용하여 씬의 시각적 요소를 만듭니다. 따라서 단일 프로젝트에 다수의 텍스처 파일이 들어 있을 수 있습니다. 일반적으로 Unity는 씬의 각 텍스처

docs.unity3d.com

 

https://docs.unity3d.com/kr/2022.3/Manual/SpriteAtlasWorkflow.html

 

스프라이트 아틀라스 워크플로 - Unity 매뉴얼

아래 단계에 따라 스프라이트 아틀라스를 만드십시오.

docs.unity3d.com

 

 

https://docs.unity3d.com/kr/current/Manual/class-SpriteAtlas.html

 

Sprite Atlas 프로퍼티 레퍼런스 - Unity 매뉴얼

Unity에서 스프라이트 아틀라스를 생성하려면 Assets > Create > 2D > Sprite Atlas로 이동합니다.Unity는 파일 확장자가 ’.spriteatlas’인 스프라이트 아틀라스를 Assets 폴더에 생성합니다.

docs.unity3d.com

https://docs.unity3d.com/kr/2023.2/Manual/SpritePackerModes.html

 

스프라이트 패커 모드 - Unity 매뉴얼

스프라이트 아틀라스 기본 패킹 동작을 활성화하거나 비활성화하려면 에디터 설정(메뉴:Edit > Project Settings > Editor)을 열고 Sprite Packer > Mode로 이동합니다.스프라이트 패커의 Mode를 선택하여 Unity

docs.unity3d.com