카테고리 없음

유니티 2D 게임 만들기 전 준비

akama 2024. 9. 12. 20:36

게임 만들기 준비단계

저는 이 글을 유니티를 모르지만 게임은 만들어 보고 싶은 분들을 위해서 쓰기로 했습니다. 유니티에 익숙하시거나 전문적인 개발자 분들은 이미 알고 계시는 내용들이니 참고해 주세요.

어렸을 때 게임을 하면서 저는 게임에 내가 생각하는 것을 적용해 보고 싶었던 적이 있었습니다. 그러나 그 때는 전문가 외에는 게임 개발은 엄두도 할 수 없었던 90년대 시절이었습니다. 아마도 저 말고도 나의 게임을 만들어 보고 싶다는 생각은 게임을 좋아하는 사람이면 한 번쯤 해 볼 수 있는 생각해 보셨을 겁니다. 이제는 간단한 게임은 '유니티 게임엔진(이하 유니티)'을 통해 만들어 볼 수 있는 시대가 되었습니다. 유니티는 게임 개발을 잘 모르는 사람들에게도 의지만 있다면 기초적인 부분은 쉽게 이해하고 실행할 수 있는 많은 정보와 애셋을 갖고 있습니다. 게임 개발 엔진으로 유니티를 선택했다면 아래 링크를 클릭해서 먼저 게임 엔진부터 설치해야겠습니다. 게임 만들기의 진행 절차는 지극히 개인 기준입니다. 다른 분들은 더 정밀하거나 또는 더 과감하고 전문적일 수 있습니다. 

 

유니티 엔진

 

Unity 실시간 개발 플랫폼 | 3D, 2D, VR 및 AR 엔진

엔터테인먼트, 영화, 자동차, 건축 등의 분야에서 활용할 수 있는 실시간 3D 게임, 앱, 경험을 만들고 성장시켜 보세요. 지금 바로 Unity를 시작해 보세요.

unity.com

 

게임 개발에서 첫 단추인 개발 엔진 선택 및 설치를 하셨다면 이제부터 시작입니다!

 

1. 게임 기획하기

만들려는 게임을 기획해야 하는데요. 기획은 분명 꼼꼼하고 탄탄해야 하지만 여기서는 간단한 게임을 한 번 만들어보자는 의도이기 때문에 간단한 것만 정하는 정도로 하겠습니다. 

- 장르

- 플랫폼 & 해상도

- 2D or 3D

- 아트 스타일 컨셉(중세, 귀여움, 어두움, 레트로 픽셀 등등)

- UI 스타일

 

일단 이 정도 선에서 정하고 나중에 진행하면서 추가합니다. 사실 캐릭터, 적, 환경, 게임 재화, 스테이지 목표와 보상, 광고 배치 등 모든 것을 기획해야 하지만 좀 전에 언급했듯이 간단한 게임의 일부를 구현해보는 것이 목표이기에 이 정도까지만 합니다.

 

목표 예시

- 장르: 생존형 슈팅

- 플랫폼 & 해상도: 안드로이드 모바일, 16:9(가로)

- 2D or 3D: 2D

- 아트 스타일 컨셉: 픽셀

- UI 스타일 & 배치: 픽셀 아트 스타일

 

2. 유니티 익히기

게임 오브젝트, 오브젝트 이동, 카메라, 콜라이더, 리지드바디, 화면 스크롤 조작, 인스펙터, 콘솔, 프로젝트창, 에 대한 용어 및 조작법을 먼저 익혀야 합니다. 익히는 방법은 여기서 다루지 않겠습니다. 이 부분에 대한 설명은 다른 블로그나 서적이 많이 있으니 참조하시면 큰 도움이 될 것 같습니다.

 

3. 스크립팅 간단한 문법 익히기

유니티는 C#을 통해서 스크립팅을 합니다. 각 오브젝트는 스크립트를 통해 제어를 하고 이벤트를 발생시키게 됩니다. 기본적으로 객체 제어와 객체 간 데이터를 주고 받는 정도만 스크립트를 짜도 어느 정도 간단한 게임 조작 및 이벤트는 가능한 상태가 됩니다. 해당 스크립트는 게임 오브젝트에 연결되어 있으며 만든 모든 스크립트는 MonoBehaviour 클래스를 상속합니다.

 

4. 스프라이트 개념과 연습용 소스

게임을 2D 스타일로 정했습니다. 스프라이트는 2D 그래픽 오브젝트입니다. 따라서 스프라이트는 모든 유형의 2D 게임에서 사용됩니다. 스프라이트 아트를 정하기 전에 한 가지 정해야 하는 것이 있습니다. 플레이어가 캐릭터를 바라보는 뷰를 정해야 합니다. 캐릭터의 측면을 보면서 캐릭터가 좌우 또는 상하 또는 상하좌우로 움직이는 방식인지 캐릭터를 위에서 내려다 보는 방식인지를 정해야 합니다. 저는 캐릭터의 측면을 보면서 캐릭터는 상하좌우 통해서 직선 대각선 자유자재로 움직이는 방식으로 정했습니다.

스프라이트의 아트 스타일은 유니티 에셋스토어를 통해 무료 스프라이트를 이용하면 게임 개발에 도움을 받을 수 있습니다. 연습용 소스는 에셋스토어에 들어가서 Sort by(필터)를 Price(low to high)로 하면 괜찮은 무료(free) 스프라이트를 이용할 수 있습니다. 단 주의할 점은 무료일지라도 에셋에 있는 문서(PDF)를 읽고 라이센스 부분을 꼭 확인해야 합니다. 무료 에셋은 연습용으로 사용하고 나의 게임은 유료 에셋을 구매하시거나 실력이 있다면 직접 그리는 것도 방법입니다.

 

유니티 에셋스토어

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

게임 오브젝트에서 보여주는 스프라이트는 오브젝트의 스프라이트 렌더러에서 합니다. 오브젝트를 클릭해 보면 우측 인스펙터에 렌더러를 볼 수 있습니다.

유니티 에셋스토어 무료 스프라이트 사용 예시

 

게임 오브젝트에서 sprite renderer 컴포넌트를 사용하여 스프라이트를 랜더링합니다. 

이 컴포넌트에는 color, flip, draw mode, mask interaction, sprite sort point, material, sorting layer, order in layer가 있습니다. 직접 값을 변경하여 속성을 변경할 수도 있지만 스크립트를 통해서 해당 컴포넌트에 접근하여 변경하도록 만들 수도 있습니다. 참고로 order in layer는 한 면만 바라보는 2D 특성에서 depth(뎁스)를 변경하는 하도록 합니다. 뎁스는 2D 게임에서 매우 중요합니다. 2D게임에서 한면을 바라보는 플레이어 입장에서 원근감을 주는 기능을 하기 때문입니다.

 

5. UI 슬라이싱과 아틀라스 알기

아틀라스는 게임 오브젝트에 2D를 랜더링할 때 사용하는 통합 텍스처입니다.

타일 아틀라스 예시

즉 아틀라스는 그림처럼 한 개의 텍스처에서 여러 조각의 텍스처로 나누어서 사용한다고 보시면 됩니다. 각각 개별적으로 스프라이트로 사용될 수 있으며, 랜더링할 때에도 각 단일 텍스처를 사용할 때보다 아틀라스를 사용할 때 GPU의 부담을 크게 덜어 줄 수 있습니다.

아틀라스는 캐릭터 애니메이션에 사용하는 스프라이트에서 공통으로 사용하며 UI에서도 아틀라스의 슬라이스를 통해서 UI의 플레이 버튼, 게임메뉴 창의 높이나 너비를 이미지의 선 굵기 변화 없이 조정할 수 있습니다. 버튼과 게임창의 스타일도 게임 캐릭터와 배경과 비슷하게 맞춰서 선택했다면 다음 시간에는 UI 구성, 화면(scene) 전환을 통한 씬간에 이동을 만들어 보겠습니다.