동아리 이번 주 스터디 주제가 World Building 이었다.
의도는 '어느정도 맵 구현하고 그래와라' 였겠는데 의도를 제대로 곡해하고(멍청해서) 뭔가 자료조사를 잔뜩 했다. 어쨌든 적어두면 자료 백업으로 언젠간 보겠지 싶어서 끼적여둠.
더보기
모든 글은 유니티 공식 문서에서 참고하여 + 약간의 구글링을 통해 작성됨.
: World Building 이라는 주제로 소개되는 Tilemap&Cinemachine 에 대해 다룸.
(그마저도 Cinemachine은 내용 없음...)
Tilemap
: Tile Asset들을 저장하고 관리하여 2D 레벨을 만드는 시스템.
- 기본적으로 설치된 패키지가 아니기 때문에, Package Manager를 통해 다운로드하여 사용할 수 있음.
- Tilemap 생성 시, Grid 컴포넌트가 자동으로 부여된 게임 오브젝트가 생기며 이는 타일을 설치할 때의 일종의 가이드라인의 역할을 수행함.
- Tile을 생성하고, 지정하기 위해서는 Tile Palette를 사용함.
- Tile은 굳이 정사각형 모양일 필요 없으며, Isometric Tilemap, Hexagonal Tilemap을 사용할 수도 있음.
- 또한, 일단 Grid의 Size를 조절함으로써 타일의 비율을 바꿀 수 있기는 함.
Tile Palette
: 새로운 Tilemap을 생성하고, 생성한 Tilemap을 바탕으로 타일을 칠할 수 있게 해주는 툴.
- 위의 도구들이 Tilemap에 타일을 칠할 때 사용되는 도구들이며, 해당 도구들은 생성한 Tilemap Palette 자체를 수정하는 데에도 사용할 수 있음. (밑의 Edit을 눌러서 Palette를 수정하는 것이 가능)
- Palette를 생성하고, 거기에 Tile Asset들을 지정하여 넣음으로써 Tile을 커스텀하는 것이 가능.
이 때 Tile Asset은 타일로 사용할 Sprite들을 Palette로 드래그&드롭하면 자동적으로 생성된다. - Palette를 조작하는 데에는 이런저런 단축키가 있음. 써본 적 없어서 그냥 이미지로만 첨부함.
- Tile을 칠할 때 사용하는 것이 브러시. 기본 브러시는 한 번에 한 칸 밖에 칠하지 못하지만, Unity 측에서 깃허브를 통해 제공하는 추가 파일들을 사용하면 다양한 브러시들을 활용할 수 있음.
(https://github.com/Unity-Technologies/2d-extras)
Tilemap Component
: Tilemap을 생성하면 자동적으로 생성되는 컴포넌트.
- Animation Frame Rate : Unity에서 타일 애니메이션을 재생하는 프레임률. 만약 2로 설정할 경우, 유니티는 애니메이션을 2배 더 빠르게 재생.
- Color : 타일에 적용할 색상. 흰색은 타일 본연의 이미지가 그대로 나옴.
- Tile Anchor : Tilemap 위의 Tile에 적용되는 Offset 값.
- Orientation : Tile을 어느 축 기준으로 Tilemap에 정렬할지 선택.
Tilemap Collider 2D
: Tile에 대한 Collider를 생성함.
- 이 때, 각 Tile에 대한 Collider는 Sprite Editor에서 지정 및 수정하는 것이 가능함.
- Offset : Collider에 대한 오프셋을 지정함. (ㄹ이걸,,왜지금보ㅏ서,,,)
- Used By Composite : Composite Collider 2D의 영향을 받을 것인지 아닌지를 결정하는 속성.
※ Composite Collider 2D 를 사용하고자 할 경우 해당 속성이 켜져있어야 함.(저거 체크 안 해놓고 왜 적용이 안 되는 거냐며 한참을 지웠다 넣었다 지웠다 넣었다 했어서 강조함)
Composite Collider 2D
: Collider가 겹쳐있는 경우, 겹쳐져있는 Collider들을 병합하여 하나의 Collider로 만듦.
- Tilemap에서는 각 Tile들의 Collider를 합쳐주지 않을 경우, Player의 Collider가 Tile 사이 틈에 끼어서 움직이지 못하는 불상사가 일어날 수도 있기 때문에, Composite Collider를 사용하여 Tilemap들의 Collider를 병합함.
- 이를 이용하기 위해서는 꼭 RigidBody가 필요함. (Composite Collider 2D 설정 시 자동으로 RigidBody도 딸려옴.)
※ 다만 RigidBody를 적용하면 중력도 적용되어 플랫폼이 낙하할 수 있기 때문에 RigidBody를 Kinematic으로 바꿔놓아야 함.
Rule Tile
: Tile에 규칙을 설정하여, 하나하나 직접 칠해주지 않더라도 타일들을 규칙에 따라 자연스럽게 이어주는 기능.
- 기본적으로 제공되는 기능이 아니기 때문에 따로 받아야함.
(https://github.com/Unity-Technologies/2d-extras)
- 초록 화살표 : 해당 방향에 같은 룰 타일이 놓여져 있을 경우.
- 빨간 X : 해당 방향에 룰 타일이 놓여져 있지 않을 경우.
- 이 외에도 회전, 반전 등에 대한 여러 규칙을 설정해 줄 수 있음.
번외) Sprite Shape
: Sprite를 휘게 하거나, 모양을 채우는 등의 다양한 활용이 가능한 기능.
Unity 에서 Sprite Shape에 대해 언급한 장점은 다음과 같음.
- 코드가 필요 없음.
- 그렇지만 코드를 통해서 확장될 수도 있음.
- 시간이 적게 들어감.
개인적으로는 플랫폼을 좀더 유연하게+편하게 만들 수 있다는 점에서 언젠가 한 번 써보고 싶음. 비단 플랫폼 뿐 아니라, 덩쿨과 같은 장식물에 대해서도 적용할 수 있다는 점까지.
'공부 > Unity' 카테고리의 다른 글
Raycast & LayerMask (쪼까 추가 (0) | 2021.04.18 |
---|---|
Unity Animation (0) | 2021.03.22 |
Input 정리 (0) | 2021.03.12 |