Development/Unity Engine

[Retro유니티] ZombieSurvivor - 레벨 아트 사용

사이바 미도리 2024. 12. 8. 23:39

목표

웨이브형 좀비 탑 다운 슈터게임을 제작하는 것

기능

일정주기로 좀비가 생성됨.

시간이 지날수록 주기당 생성되는 좀비의 수 증가.

좀비는 플레이어의 위치를 주기적으로 파악하고 항상 최적경로로 플레이어를 추적함.

좀비의 이동속도, 공격력, 체력은 랜덤.

좀비의 스펙에 따라 색깔이 점점 붉어짐.

플레이어 체력은 플레이어를 따라다니는 원형바로 확인가능.

기관총 탄약은 유한하고 체력도 자동회복되지 않음.

탄약 및 체력은 아이템으로 회복가능.

아이템은 플레이어 근처의 랜덤위치에 주기적으로 생성되며, 일정 시간 뒤에 사라짐.

후처리 효과를 사용해 게임화면을 보정함.

패키지매니저, 시네머신, 포스트-프로세싱 스택을 사용할 것.

 

 

원본 repository의 14를 그대로 가져오면

 

 

Assets 폴더

- Gizmos: 시네머신용 기즈모 아이콘(시네머신 패키지 설치시 자동생성)

- Post-Process Profile: 후처리용 프로파일(프리셋)

Packages 폴더

- Package Manager를 사용해 Import한 패키지가 들어가는 폴더이다.

  - Cinemachine: 복잡한 카메라 연출을 쉽게 구현한다.

  - Package Manager UI: 제곧내

  - Post-Process: Post Processing Stack으로 후처리 효과를 구현한다.

 

 

Package Manager란?

- 유니티 2018 부터 정식추가된 기능.

- 여러 유니티 프로젝트가 공유하는 패키지를 한 곳에서 쉽게 관리할 수 있다.

 

  • 패키지는 아트에셋/플러그인/스크립트 등을 모아서 압축한 파일이다.
    • 과거: 에셋스토어 등에서 패키지를 다운로드하고, 프로젝트의 Asset 폴더에서 패키지를 압축해제하여 Asset을 추가했다
    • 패키지매니저 사용시: 에셋 스토어 거치지 않고 패키지를 다운로드하여 Assets 폴더에 직접 추가하지 않고 사용가능하다.
      • 패키지 매니저로 다운로드한 패키지는, 컴퓨터의 Global Cache 폴더에 추가된다.
      • 직접 추가하지 않고, Global Cache 의 패키지를 참조하여 사용한다.
      • 따라서 Package Manager를 사용하면 Unity Project의 크기가 가벼워진다.
      • 또한 협업자와 공유할 때 Package 파일을 공유할 필요가 없이 알아서 유니티가 인터넷으로 패키지를 다운로드하고 설치하기 때문에 편리하다.
    • 새로운 기능이기 때문에, 일부 Unity 공식패키지는 여전히 Asset Store를 사용해 다운로드해야 한다.

 

 

 

 

  • PackageManagerUI는 새 Unity Project 생성시 기본포함되는 패키지라서, 현 프로젝트와 직접 관련은 없다. 그 외에도,
    • Analytics Library
    • In App Purchasing
    • Unity Timeline
    • 등의 기본 내장 패키지가 패키지매니저에 의해 자동포함될 수 있다.
  • 여기서는 Cinemachine과 Post Processing에 대해 공부하는걸 목표로 한다.

새로운 씬 만들기

 

Assets에 Scene이라는 이름으로 폴더 생성, Main이라는 이름의 새 씬을 저장.

 

레벨아트 및 라이팅 설정

레벨아트 -> 아티스트가 미리 만들어 둔 것을 사용하자.

라이팅 -> lighting을 조정하여 전반적 아트분위기를 조정하자.

 

 

레벨아트

Prefabs 폴더에 있는 Level Art 프리팹을 씬에 추가.

레벨아트의 GameObject 하나하나가, 콜라이더까지 꼼꼼히 추가된 것을 알 수 있다.

결국 이전에 만들었던 Bullet 용 구체 또는 Bullet Spawner 용 원기둥과 동일하다.

 

성능을 위해 대부분의 Prefab은, Collider가 Primitive Collider을 사용해 제작되었다.(즉, 간단한 큐브형태 또는 sphere 의 콜라이더)

(메시 콜라이더는 처리량을 크게 증가시키기 때문이다. 그러나 메시 콜라이더는 3D 모델의 외형과 일치하는 Collider를 구현할 수 있다.)

Level Art 프리팹을 씬에 추가하면, 유니티가 라이트맵과 여러 추가 Lighting 정보를 Data Asset에 Bake하기 때문에 잠깐 느려진다.

Lighting은 연산비용이 비싸기 때문에, Unity는 lighting data asset 을 사용해서 연산량을 줄이는데, Scene에 변화가 감지될 때마다 매번 새로운 lighting asset을 생성한다.

 

Lightmap

- Lightmap은

 

일단 여기부터는 다음에 공부하도록 하자.

 

라이팅