Unity 2D의 새로운 기능

05 March 2018


unity

2월 26일에는 이례적으로 구글 캠퍼스에서 Unity 워크샵이 진행되었는데 아무래도 이제 접수를 시작한 Google Play 인디 게임 페스티벌에 맞춰 퀄리티 높은 결과물을 얻기 위해서인듯 하다. Unity사의 직원이 직접 발표를 하는 만큼 개발자에게는 놓쳐서는 안될 내용들만 가득이었고 내가 평소에 궁금했었던 Unity 개발에서의 최적화 부분에서도 당장 적용해 볼 수 있을 것 같은 방법을 착착 얻어낼 수 있었다. 발표내용은 총 4개의 세션으로 진행되었고 이번 포스팅은 첫번째 세션이었던 Unity 2D의 신기능에 대해서 정리를 하려고 한다.

9 Slicing Sprite

image

9 Slice Sprite 예시

  • Sprite 에셋을 재사용할 수 있게 하는 기능
  • 스프라이트의 크기를 재조정할때 내부에 있는 스프라이트는 Pattern으로 확대, 축소되지 않음 (옵션에 따라 변경 가능)
  • 벽이나 바닥같은 텍스쳐 생성시에 유용

Sprite Mask

image

Sprite Mask 예시

  • 상속 계층 구조로 Sprite를 Mask처럼 씌울수 있음
  • 카드 게임 처럼 외곽선 Sprite를 정해놓고 안에 케릭터 Sprite를 배치하는 것처럼 사용
  • 사각형 원형 등 다양한 모양으로 사용 가능

Sprite Atlas

image

Sprite Atlas

image

실제 게임 이미지

  • 기존의 Sprite Atlas에서 개선되었음
  • 여러 개의 Sprite를 하나의 명시적 Asset으로 통합하여 관리할 수 있다
  • Packing 할 수 있는 Object를 생성하고 조회할 수 있으며 Asset에 할당할 수 있다
  • Packing Object는 폴더 째로 가져와서 생성할 수도 있다
  • 명시적 Asset으로 지정하여 일괄 Texture를 적용할 수 있다
  • Filter mode를 사용해서 해상도 별 Sprite Atlas를 생성 가능하다
  • 사용가능한 Filter mode의 종류
    • Point (레트로 게임에서 적용)
    • Bilinear
    • Trilinear

TileMap Pallete

image

TileMap Pallete

image

TileMap 레이어

  • Sprite 에셋 추가시에 TileMap 옵션이 추가 되었습니다
  • 그림판에서 그림그리듯이 Sprite를 찍어낼수 있음
  • 9 Sliding Sprite로 9x9 Sprite로 구성해놓을 경우 경계면 부분을 자동으로 배치해줌
  • 영역 선택을 하여 한번에 찍어낼 수 있음
  • 레이어 기능을 제공하기 때문에 입체적인 맵을 구성할 수 있다

TileMap Collider

image

TileMap Collider

  • 타일 Sprite 하나하나마다 자동으로 Collider가 지정되어 별도 지정할 필요가 없음
  • Collider를 한 묶음으로 설정 가능
  • 활용 TIP
    • Collider는 픽셀 기준으로 설정 되기 때문에, 케릭터가 공중에 떠있는 것처럼 보일수 있다
    • 타일 Sprite의 3차원 뒷 면을 살짝 위로 올려서 맵 자체를 걷는것처럼 표현할 수 있다

TileMap Camera

image

CinemaMachine Asset 적용한 모습

  • 케릭터를 카메라가 따라가도록 설정 가능하다
  • TileMap Camera 한정으로 PlayMode에서 편집한 것을 바로 적용하는 편리한 옵션이 있다
  • 활용팁
    • CinemaMachine Asset을 에셋스토어에서 다운받아 적용하여 보다 카메라 탄성이 적용된 카메라 워킹을 사용할 수 있다
    • add Extension에 Bounding 옵션을 설정하여 케릭터가 바운딩 밖으로 나갔을때 이벤트를 캐치할 수 있다

그밖에 팁

  • 자세한 내용은 Youtube의 UnityKorea 채널을 참고하자
  • Unity 최신버전 사용을 권장! 요즘 Unity는 버전 올려도 안정적으로 동작하도록 신경을 많이 쓴다는듯
  • Unity 2018에는 Sprite Skeleton 기능이 추가 예정되어있다
image

Sprite Skeleton

추가로 나왔던 질문사항들

Q) Unity 코드를 Visual Studio로 사용하고 있는데 자동완성이 되지 않는다. 이유가 뭔가
A) Unity를 여러번 업데이트 할 경우 Visual Studio와의 링크가 꼬일 수 있다. 보통 재설치하면 해결된다

참고자료

Youtube Unity Korea 채널 #
9 슬라이싱 스프라이트 Documentation #
스프라이트 마스크 #
스프라이트 아틀라스 #