티스토리 뷰
대주제를 정하다 보니 스프라이트로 적게 됬으나, 이번 글에서는 다음 2가지에 대해서 작성할 예정이다.
- 타일맵(Tilemap)
- 룰타일
- 스프라이트 모드
- 싱글(Single)
- 멀티플(Multiple)
- 폴리곤(Polygon)
- 스프라이트 에디터
- 테두리(Border)
- 슬라이스(Slice)
- 스프라이트 아틀라스(Sprite Atlas)
이 두 기능은 각각 필드와 캐릭터를 구성할 때, 작업 간소화와 최적화에 유용한 기능으로, 관련 작업을 할 경우에는 거의 필수로 사용되는 기능이다. 마침 금주의 프로젝트를 진행하면서 익힌 요소도 있으니, 한번 총체적으로 정리 해 보자.
타일 맵
타일 맵은 2D 게임을 제작할 때, 배경을 작성하기 위해서 사용하는 기능으로,
간단하게 말해서 '타일 맵이라는 별개 요소에 스프라이트를 모아놓은 뒤, 원하는 위치에 간편하게 배치할 수 있는 기능.'
사실 타일맵은 그냥 스프라이트를 등록해놓은 뒤에 가져와서 쓰는 간단한 기능이라, 정리할 것이 거의 없다.
다만, '룰타일'이라는 요소는 조금 정리하고 넘어가자.
룰타일
간단하게 말하자면, 규칙을 통해서 자동으로 배치되는 타일이 선정되는 기능이다.
Unity 내부에 처음 부터 기능하는 것은 아니고, 2D Tilemap Extras라는 패키지를 import 해야한다.
[Package Manager에서 검색 가능하다. 룰타일 이외에도 여러 기능이 있으니, 시간 날 때 한 번 검색 해 보자.]
해당 패키지를 import 하면 Project를 오른쪽 마우스로 클릭해서 볼 수 있는 Create에 Tiles라는 새로운 항목이 추가되는데, 이 Tiles 안에 속해있다. 이렇게 Rule Tile을 생성한 뒤, Rule과 그에 따른 스프라이트를 배정하면 이 Rule Tile이 하나의 Tile으로 판정되며, 이를 배치하면 등록한 조건에 따라서 자동으로 Tile이 배치되는 구조다.
이 조건에는 주변에 같은 Rule Tile의 배치 상황도 들어가며, 확률도 들어간다. 또한, 배치할 때에는 애니메이션을 적용해서 배치하는 것도 가능하다.
스프라이트 모드
Sprite, 정확히는 이미지 파일의 Inspector를 보면 Sprite Mode를 확인할 수 있다.
Sprite Mode는 Single과 Multiple, Polygon의 3종류가 있다.
- Single: 하나의 단일 스프라이트로 구성된 파일.
- Multiple: 다수의 스프라이트의 총합판. 후술할 에디터에서 Slice 기능이 활성화된다.
- Polygon: 스프라이트가 다각형 형태. 스프라이트 에디터에서 꼭지점(각)의 개수를 설정할 수 있다.
스프라이트 에디터
스프라이트 파일에 특정 '설정'을 할 수 있는 기능. '에디터'이긴 하나, 기본적으로 스프라이트를 수정하는 기능은 없다.
주로 사용하는 기능은 다음과 같다.
- 슬라이스(Slice)
- 자동(Automatic): 빈 공간으로 나뉘어진 그림으로 별개 Sprite로 구성하는 방식.
- 칸 크기로 나누기(Grid by Cell Size): 가로와 세로의 크기를 받아서 그 크기에 맞게끔 Sprite를 분할한다.
칸이 부족하다면 그 만큼 비운다. - 칸 개수로 나누기(Grid by Cell Count): 가로와 세로의 셀 개수를 받아서 그 개수에 맞게끔 Sprite를 분할한다.
- Isometric Grid: 기본적으로 Grid by Cell Size와 동일하나, 꼭지점을 중점으로 한번 더 분할한다.
[Isometric(투사도) 시점을 구현하기 위한 분할법으로 보인다. 조금 더 조사해야 할 거 같다.]
- 테두리(Border)
- Sprite의 Size를 조절할 때, 두께가 변하지 않는 영역.
- Sprite나 Image의 Image Type이 Sliced일 때, 이 수치에 맞춰서 해당 영역의 두께가 동일하게 구성된다.
- 대화창을 형성하거나 UI를 형성할 때 많이 사용하는 기능. 이 기능이 있으면 길이가 길어져도 이미지가 무너지지 않는다.
스프라이트 아틀라스
※ 본 기능은 본인도 사용해본 적이 없어서 상세히 알지는 못한다. 따라서 개인적인 공부 내용을 작성한다.
기본적으로 유니티는 파일을 불러온 뒤에 할당된 요소가 없다면 바로 가비지 콜렉션으로 메모리를 풀어버리는데, 이 때문에 에니메이션이나 기타 스프라이트가 자주 바뀌는 요소에서는 프레임 별로 개별 파일로 구성될 경우 상당한 비효율이 발생한다.
이를 해결하기 위해서 스프라이트 들을 묶어서 하나의 파일으로 작성해 놓는 것을 '스프라이트 아틀라스(Sprite Atlas)'라고 부른다. [어찌 보면 상술한 스프라이트 에디터의 슬라이스와 반대의 역할을 한다고 볼 수 있다.]
사용법은 다음과 같다.
- Edit - Project Settings의 Editor 항목에서 Sprite Packer의 하위 항목 중 Sprite Atlas를 활성화 한다.
- Project 창에서 2D 항목에서 Sprite Atlas를 생성한다.
- Sprite Atlas의 Inspector에서 Objects for Packing에 Sprite를 등록한다.
- 이후 SpriteAtlas spriteAtlas; 선언을 기준으로 spriteAtlas.GetSprite(spriteName);으로 원하는 Sprite를 사용할 수 있다.
여기까지, Sprite 관련해서 [개인적인 판단으로] 자주 사용하는 요소를 정리 해 보았다.
이 기능들은 2D 게임을 만들 때에는 거의 반드시 사용되는 항목들이며, 경우에 따라 3D 게임에서도 쓰이기도 하는 기능들이기 때문에[특히 border는 대화창을 제작할 때 아주 많이 쓰인다.], 알아두고 가는 것이 좋으리라 생각한다.
'스파르타 내일배움캠프 > Today I Learned' 카테고리의 다른 글
Today I Learned - Day 20 [스크롤뷰] (0) | 2024.10.11 |
---|---|
Today I Learned - Day 19 [Animator Override Controller] (0) | 2024.10.10 |
Today I Learned - Day 17 [Quaternion] (0) | 2024.10.07 |
Today I Learned - Day 16 [파일 구성 설계법에 대하여] (4) | 2024.10.04 |
Today I Learned - Day 15 [JSON, CSV, XML] (1) | 2024.10.02 |