본문 바로가기

유니티/리듬게임

유니티 리듬게임 에디터 만들기 - 설계 해보면서 감잡기

예전부터 계획에 있었던 유니티엔진 리듬게임의 연장선인 에디터를 만들어보기로 하였다.

 

진짜 끈질기긴 한 것 같다.

 '유니티로 리듬게임을 한 번 만들어보자!' 하고 19년 3월 첫 시작. 조금 조금씩 해서 6월달즈음에 플레이가 가능한 상태의 구현을 했고 10월에 학교내 학술제에 출품하기 위해 다양한 곡 추가 그리고 상응하는 UI 작업등을 마쳤다. 그리고 잊혀지는게 아쉬워 (스스로 큰 발전을 가져와준 프로젝트여서 애정이 크다.), 누군가에게 도움이 되지 않을까 하고 Github에 소스코드를 전부 업로드 했었다.

 그렇게 끝나는 줄 알았으나.. 올해 5월에 코드만으로 이해하기 어렵다는 요청이 들어와 그냥 프로젝트 전부 및 최대한 도움이 될 수 있게 문서를 작성하여 업로드 하였다. 코드가 좀 개판이긴 했다 ㅋㅋ 당시 부족한 실력으로 구현만이 목적이었기에 어쩔 수는 없었지만 말이다. 지금 글을 작성하는 시점에서는 확실히 나아졌..나(?) , 뭐 앞으로도 똑같겠지만 스스로도 내 수준에서 위가 보이기 때문에 나아졌지만 잘한다고는 말할 순 없다. 

 

 그래서 만들 계획은 있었지만 개인 사정상 도전은 하지 않았고 이제서야 조금 다뤄보게 되었다.  다시 더듬더듬 기억을 떠올리면서 약 두시간정도 투자해서 프로토타입급은 아니지만 그래도 뭔가 보여줄 정도로는 만들었다.

 

 

 

음악에 맞춰 임의대로 마우스를 클릭하면 그 시점을 저정한다.

 

 

 

그리고 저장한 것을 불러와 플레이하면 방금 전 클릭한 시점으로부터 노트가 아래를 향해 떨어진다.

 

 

 여기까지 보면 별거 아닌거 같지만 툴로써 코어는 완성된 셈이다. 흔히 다뤄볼 수 있는 리듬게임 에디터만큼 완성도 있게 나오려면 사실상 시간이 답이다. 기획자 또는 패턴 디자이너가 노트 패턴 제작을 위해 필요한 기능들을 추가해야 한다. 예를들어, 현재상태에서는 완벽한 타이밍에 노트를 배치하기 어려우므로 한마디에서부터 잘개 쪼개진 비트까지 손 쉽게 집어넣을 수 있도록 그리드 형태의 맵과 스냅을 지원하기, 느리게 재생, 빠르게 재생 등이 있겠다.

 

OSU! 에디터 예시

어... 아ㅏ... 언제 다 만들지..?

아무튼 이 것도 어느정도 완성되면 깃헙에 공개할지도 모르겠습니다.

 

혹시 구상하기 어려우신 분들을 위해 간단하게 틀 적어드리겠습니다.

 

1. 노트 데이터 만들기 (음악을 재생 - 마우스를 클릭 - 클릭했을 때 음악의 진행 시점을 저장)

2. 노트 데이터 저장 (다 기록했으면 잘 가공해서 외부 파일에 저장)

--- 여기까지가 에디터의 역할

 

3. 노트 데이터 불러오기 (불러와서 노트 파싱했던 것처럼 쓸 수 있도록 다시 가공)

4. 플레이! (잘 가공된 데이터들을 기반으로 노트들 생성!)

 

 

여기까지 되셨으면 에디터에 필요한 기능들을 추가하면 할수록 좋아지겠습니다.