Skip to content

HSD06040/Unity-Rhythm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

리듬 게임 프로젝트

개요

  1. 게임 플레이

  2. 제작전 고려해야 했던 사항

  3. 게임 내 기능 및 설명

  4. 생겼던 큰 문제와 해결 방법

게임 플레이

  • 메뉴

2025-06-05 14-53-54

UI에도 애니메이션을 넣어 자연스럽게 보이도록 하였습니다.

  • 로비

image

3개의 음악을 선택할 수 있고 NoteSpeed도 조절가능하며 이전의 플레이 기록도 저장되어 나옵니다.

그리고 이름 Level과 Exp모두 저장되어 이어서 플레이가 가능하도록 하였습니다.

  • 인게임

2025-06-05 14-58-15 (3)

판정을 세세하게 하여 플레이하는 재미 주고 왼쪽에 게이지가 가득차면 한 노트에서 얻을 수 있는 콤보수가 증가하는 기능을 주어 플레이의 재미을 높였습니다.

  • 인게임 Menu

2025-06-05 14-58-15 (2)

또한 게임 도중에 메뉴를 열고 닫으면 Pause가 실행되며 해당 애니메이션이 실행되도록하고 이때에는 판정을 할 수 없도록 하였습니다.

그리고 메뉴또한 게임이 실행중일때에는 선택지가 바뀌도록 하였습니다.

제작전 고려해야 했던 사항

일단 리듬이라는 장르 자체를 처음 만들어 보아서 자료조사가 필요 했습니다.

노트의 스폰시간과 음악 시간의 동기화 방법을 고려해야 했고

더 높은 음질을 위해서도 고민해야 했습니다.

게임 내 기능 및 설명

  • FMOD (사운드)

더 높은 음질을 위해서 FMOD를 사용하였다. SFX와 BGM을 각 채널마다 지정해서 플레이 하도록 사용하였고 getPosition을 이용하여 음악의 진행사항을 가져오도록 헀습니다.

  • 노트 데이터

자료조사 결과 결국 노트들의 생성되는 것은 데이터들이 필요하다는 것을 알았습니다. 그래서 기본적으로 필요한 것들을 정리해서 데이터를 만들었습니다.

예) 어느라인에서 내려와야하는지? (int), 숏인지 롱인지? (int or Enum), 도착할 시간 (float)

  • 라인 판단

리듬게임을 보면 각 라인마다 노트가 내려오기 때문에 이것에 대한 분리가 필요하다고 생각하였습니다. 그래서 NoteLane을 만들어 해당 라인에 맞는 노트들을 저장하게하고 자료구조 Queue를 이용해서 먼저들어온 노트 순서대로 각라인마다 판단하도록 만들었습니다.

  • 롱노트 판단

롱노트는 시간마다 판단하게되면 하나더 콤보가 쌓이거나 하나 덜 쌓이는 경우가 발생해 시간에 따른 최대 콤보를 정해두고 최대콤보에 도달하면 바로 끝내고 도달하지못하고 시간이 끝나면 부족한 만큼 추가로 콤보를 주는 방식으로 제작하였습니다.

생겼던 가장 큰 문제와 해결방법

리듬게임에서 가장 중요하다고 할 수 있는 맵입니다.

데이터를 전부 직접 쓰는 것은 너무 시간이 오래 걸리기에 맵 에디터를 구상하여 구현하였습니다. 저는 세세하게 쪼개기위해서 초단위로 분리 하였지만 60/BPM 을 기준으로 분리하는 것이 리듬게임에는 더 바람직 합니다.

라인들을 생성해주고 마우스 좌클릭으로 생성, 우클릭으로 삭제가 가능하며 롱은 하나를 찍고 같은라인의 위에만 찍을 수 있도록 하였고 위에 찍었을때 데이터가 생성되도록 하였습니다. 저장은 라인들을 순회하며 데이터들을 가져오고 json형태로 저장하도록 하였습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages