728x90

이글은 인프런 [따라하면서 배우는 고박사의 유니티 기초] 강의를 수강하고 정리한 글이다. 

 

[지금 무료] 따라하면서 배우는 고박사의 유니티 기초 | 고박사 - 인프런

고박사 | 유니티로 게임을 개발하고 싶은 초보자를 대상으로 하며, 유니티 설치부터 2D/3D 게임 개발에 필요한 기초 지식까지 자세하게 설명합니다. (강의에 사용되는 모든 리소스는 영상 상단의

www.inflearn.com


Draw Call & Batches

 

Draw Call

  • CPU가 GPU에게 어떤 그림을 그려 달라고 요청하는 것
  • Draw Call 값이 적을수록 게임이 가벼우며, 기기에 따라 특정 개수를 넘기면 프레임 저하 현상을 일으킬 수 있다
  • 모바일의 경우 100을 넘기지 않는 것을 권장한다

Batches

  • Draw Call을 포함하는 상위 개념으로 Unity 5.0부터 Draw Call 대신 Batches를 기준으로 "Stats"에 렌더링 정보를 표현한다
  • Batches는 Mesh, Material, Shader, Draw Call 등의 정보를 종합적으로 계산한다

 

Sprite Altlas

  • 여러 장의 Sprite 이미지를 한 장의 텍스처에 모아 두고 사용하는 것으로 Unity는 Sprite Packer(Legacy)와 Sprite Atlas를 제공한다
  • Sprite Atlas 를 사용해야 하는 이유?
    • 2D 게임에서 배경이나 캐릭터, 적 등을 표현하는데 사용되는 이미지 에셋은 매번 렌더링 할 때마다 각 이미지 에셋 별로 1의 Batches가 발생된다
    • 예를 들어 게임에 사용되는 캐릭터, 적, 아이템 등 모두 다른 이미를 사용하는 오브젝트가 100개 있고, 동시에 게임에 등장한다면 Batches 는 100이다
    • 하지만 동일한 이미지를 사용하는 오브젝트가 100개 일 경우에는 Batches가 1이다
    • Sprite Atlas를 사용해 서로 다른 이미지를 하나의 텍스처에 모아 두고 사용하면 서로 다른 Sprite의 오브젝트를 100개 만든다고 해도 Batches 가 1일 것이다.

 

처음 scence를 생성했을 때, 그림을 표현한 오브젝트가 없기 때문에 Batches의 값은 0인 것을 확인할 수 있다.

 

새로운 오브젝트가 화면상에 추가되면, Batches의 값이 1로 바뀐 것을 확인할 수 있다. 기존의 오브젝트를 복제하면 Batches의 값이 2가 된 것을 확인할 수 있다.

 

오브젝트들을 복제하여 확인하면, 게임 오브젝트의 개수는 늘어났지만, 사용된 이미지 파일이 2개이기 때문에 Batches는 여전히 2개로 설정되어 있는 것을 확인할 수 있다.

 

남은 이미지들을 모두 오브젝트를 추가해서 화면에 배치를 하, 총 14개를 추가하여  Batches의 값이 14임을 확인할 수 있다.

 

이 Batches 의 값을 Sprite Atlas를 이용하여 조절할 수 있다. 프로젝트 뷰에 + 버튼을 눌러 Sprite Atlas를 생성해준다.

최초 생성했을 때, 옵션을 바꿀 필요 없이 Object for Packing 리스트에 Atlas로 묶을 이미지들을 등록할 수 있다.

하나씩 등록하는 방법이 있고, 여러 개를 동시에 하고자 한다면, Inspector 뷰 우측 상단에 자물쇠 모양을 걸어둔 후 프로젝트 뷰에 있는 이미지들을 모두 선택하여 한번에 등록하는 방법이 있다.

 

 

모두 넣었다면 Pack Preview 버튼을 클릭하여 설정을 완료해줄 수 있고, 아래 하단의 이미지와 같이 하나의 Sprite Atlas에 이미지들이 묶여있는 것을 확인할 수 있다.

이후 게임을 실행해보면, Batches의 정보 값이 Atlas 기준으로 변경되는 것을 확인할 수 있다. Atlas는 코드에 의해 실행이 되기 때문에 게임을 실행하기 전에는 확인할 수 없다.

 

 

Texture Asset

Texture Asset은 Inspector View에 다양한 정보가 출력된다.

Texture Type : 텍스처를 어떤 용도로 사용할지에 따라 설정하는 것

  • Sprite (2D and UI) : 2D Sprite 오브젝트나 UI에 텍스처를 적용할 때 설정
  • default : 일반적인 3D 오브젝트의 material에 적용할 때 설정

Sprite Mode

  • Single : 단일 이미지 전체를 사용
  • Multi : 개발자가 원하는 형태로 이미지를 분할해서 사용 (원본도 사용 가능)
  • Polygon : 우리가 외부에서 가져온 이미지에 설정하지 않음

Pixels Per Unit : 몇 픽셀을 Unity Scale 1로 설정할 것인가를 뜻한다.

Pivot : 텍스쳐의 중심 축

 

 

Sprite Editor

  • Sprite Mode(Single, Multiple, Polygon)에 따라 옵션이 달라진다.
  • Sprite의 위치, 크기, 경계, 중심점 편집 가능
  • Sprite를 분할하거나 폴리곤 점 개수를 수정하는 등의 편집이 가능

 

Sprite 모드가 Multiple일 경우 이미지를 분할할 수 있으며, 분할 방법은 불규칙한 형태로 분할할 경우 빈 곳을 드래그해서 새로운 분할 영역을 생성할 수 있고, 일정한 규칙으로 분할할 경우, 슬라이스 메뉴를 활용할 수 있다.

 

분할 타입

  • - Automatic : 텍스쳐를 자동으로 분할
  • - Grid By Cell Size : 우리가 설정하는 셀의 크기만큼으로 분할
  • - Grid By Cell Count : 가로, 세로 개수를 설정할 경우 그 개수 만큼 자동분할

게임에서 사용되는 텍스쳐 제작시에 POT 규격으로 제작해야한다. 

Polygon Sprites

기본적인 도형 이미지는 유니티 내부에서 제작가능하다. 

도형 이미지 에셋 제작을 하기 위해서 Project View에서 플러스 버튼을 눌러 스프라이트를 추가한다. Sprite Mode가 Polygon인지 확인한다.

Sprite Editor 메뉴로 들어가보면 Change Shape 메뉴에 Sides 변수 값에 따라 도형의 모양이 바뀌게 된다.

 

Sprite Animation

역동감있게 동작에 맞춰 이미지를 변화한다. 이를 Sprite Animation이라고 부르며, 이는 Sprite Renderer 컴포넌트에 이미지를 주기적으로 교체하는 것을 의미한다. 

2D Sprite Animation

 

Animation Asset

  • 하나의 애니메이션 동작을 저장하는 파일 ("걷기”, "뛰기“, "공격" 등)
  • 파일 생성 방법 : Project View - “+” - Animation

 

Animation View

  • Animation Asset에 하나의 애니메이션으로 구성되는 텍스처를 등록하는 View

 

Animator Controller Asset

  • 하나의 오브젝트가 가질 수 있는 애니메이션을 묶어서 관리하는 파일
  • 파일 생성 방법 : Project View - “+” - Animator Controller

 

Animator View

  • Animator Controller Asset에 애니메이션을 등록하는 View

 

Animator Component

  • 게임 오브젝트의 애니메이션 재생, 교체 등을 제어하는 역할을 수행한다.

 

+ Recent posts