본문 바로가기

미피의 작업실/게임 제작기

컴맹이 게임 만드는 이야기#8.5(지금까지 한 것들 정리/Top down 2D RPG)

<현재까지 진전>

작업파일도 그렇고 생각도 그렇고 좀 복잡하고 중구난방이라 정리할 겸 써본다

 

우선 나는 유니티로 게임을 만들고 있다

미술은 클립스튜디오를 주로 쓰고 타일 그릴 때 Aseprite를 사용한다

그리고 지형 타일맵은 Tiled를 사용하고, 유니티에서 불러와 그 위에 직접 불러온 스프라이트로 데코한다

 

~ART~

 

- 현재 나온 배경

0123

마을 맵이랑 집 몇 개를 그려봤다

오픈월드를 만들어볼까 생각도 했지만 아직은 처음 만드는 단계이기 때문에 욕심부리지 않기로 했다

일단 여러 맵이랑 제대로 작동하는 게임만 만들면 목표달성이다!

 

 

- 대화창 디자인

01

아직 대화창 띄우는 이벤트는 구현할 줄 모른다

그래도 나중에 만들게 되면 어떨까 하고 디자인만 해본 것들

디자인은 있으니 나중에 스크립트만 짜면 된다!

 

 

~ 게임 프로그래밍

미술 쪽은 정말 자신있지만 프로그래밍은 전혀 모르기 때문에 익숙해지기까지 좀 시간이 걸릴 듯 하다

그래도 현재까지 구현한 기능들을 정리해본다

 

 

- 캐릭터 움직임 & 애니메이션

 

유튜브에서 여러 강좌를 보면서 따라했고, 이제는 비교적 쉽게 만들 수 있다

4방향으로 향하는 모습을 넣어주고, 멈췄을 때 마지막으로 누른 방향키 방향으로 바라볼 수 있게 되었다

밑에서 말하겠지만 대다수의 스크립트들은 케이디님 강좌를 참고했다

 

- 맵 이동 & 시작 위치

 

케이디님 강좌를 참고했고, 지정한 포인트에 가면 맵을 이동하는 스크립트와 맵 이동 후 시작하는 위치를 지정해주는 스크립트를 만들었다

마을과 건물 안, 다른 맵으로 이동이 가능하게 되었다

 

- 맵 이동 시 Fade In/Out

 

      참고한 강좌 ↓

 

맵 이동하는 스크립트에 섞어서 썼다

강좌에서 그렇게 쓴 거 같아서...

근데 맵 이동하는 걸 케이디님 강좌 보고 따라해서 스크립트 슬 때는 살짝 다르게 썼다

 

맵 이동하는 포인트를 밟으면 페이드인/아웃 되는 애니메이션이 실행되는 스크립트다

까만색 화면이 페이드인/아웃 되는 애니메이션인데, 추후에 다르게 바꿔봐도 좋지 않을까

그냥 애니메이션만 바꾸면 되니까...

예를 들어 까만 원이 화면을 채우면서 트랜지션하는 것처럼!

 

하나 더 추가하고 싶은 기능은 페이드인/아웃될 때 캐릭터가 움직이지 않게 하는 거

케이디님 강좌에 있는 것 같으니 더 해봐야겠다

 

- 따라다니는 카메라

 

Hundred Fired Games의 강좌를 참고했다

 

 

케이디님 강좌에도 있었지만 이 스크립트가 더 간단해 보이기도 하고, 영상에 나온 것처럼 캐릭터가 가운데 고정되어 있었으면 해서였다

카메라에 속도가 들어가서 핸드헬드처럼 따라다니는 느낌은 현재로서는 원하지 않는 것이었다(이 카메라 워크는 케이디님 강좌 참고)

 

- 카메라 영역 설정

 

카메라가 움직일 수 있는 범위를 정해주는 스크립트다. 이것도 케이디님 강좌 참고

 

캐릭터랑 카메라 움직이는 것까지는 쉬웠는데 갑자기 난이도 상승...

강좌 보고 따라 적는데 적으면서도 무슨 소린지 몰라 일시정지해놓고 계속 코드만 쳐다보고 있었다

중요한 건 박스 콜라이더로 만든 카메라 영역(전체 맵 영역)의 최소값이나 최대값으로 위치가 옮겨질 때, x와 y에 반너비 or 반높이 만큼 위치값을 더해주고, 빼주는 식이다. 

진짜로 카메라 자체가 박스 콜라이더를 인지하고 안 나가는 식이 아니라 안 나가는 것처럼 보이게 값을 더해주는 것 같다

그래서 카메라가 맵 끝까지 가면 더 이상 움직이지 않고 멈춰서게 된다. 그러면 캐릭터가 맵 끝으로 가서 맵 이동하는 것까지 볼 수 있게 된다

 

최소값, 최대값 더해주고 빼줄 때 쓴 게 Mathf.Clamp라는 건데 유니티 Documentation에서 찾아보니 "최대/최소값 사이의 float 값이 value 범위 외의 값이 되지 않도록 합니다" 라고 써있지만... 말로 써 놓으니 뭔 소리인지... 이런저런 코드 많이 보고 내가 직접 사용해봐야 알 수 있을 것 같다

 

- BGM 깔기

 

 

박스 콜라이더를 밟으면 해당 음악이 나오게끔 설정하는 스크립트다

그 전 강좌에 움직이면 발소리가 나오는 사운드 이펙트 스크립트도 있었으나... 움직이는 스크립트가 다르다보니 내 스크립트에는 잘 적용이 되지 않았다ㅠㅠ 공부하자 공부...

 

그리고 음악이 플레이 되는 것도 있지만 음악을 끄는 스크립트도 만들었다

아직은 잘 쓰일 것 같지 않지만 강좌를 차례대로 따라가다보니 만든 것...

 

 

 

- 더 넣고 싶은 기능

 

NPC 움직이는 기능 넣고 싶다!

케이디님 강좌를 쭉 따라해보고 있지만... 움직이는 시스템이 케이디님 강좌랑 다른 게 너무 크다

움직임을 넣는 스크립트를 만들 때마다 부딪히는 한계...

 

추가로 다른 강좌도 찾아보고 있는 상태

 

그리고 대화 시스템!

알만툴(RPG MAKER)에서는 쉽게 만들 수 있었지만 스크립트부터 시작하려니 어렵다^*ㅠ

디자인은 나와있다! 스크립트만 만들자~!

 

시간이 가는 기능도 넣고 싶다

스타듀밸리처럼 화면에 시계도 띄워놓고, 시간에 따라서 조명도 바뀌는 식으로

 

메뉴랑 인벤토리 이런 시스템도 넣어야겠지 RPG에는 필수니까!

 

스토리 진행을 위해 이벤트 시스템도 넣고 싶다

 

 

언젠간 여기 써 있는 모든 시스템들을 넣는 날이 오겠지