Skip to content

adf789/RuneMusic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RuneMusic

프로젝트 소개

RuneMusic은 리듬 게임과 RPG 전투 시스템을 결합한 Unity 기반 모바일 게임입니다. MIDI 음악 파일을 기반으로 생성되는 노트를 정확한 타이밍에 터치하여 몬스터와 전투를 진행하는 독특한 게임플레이를 제공합니다.

플레이어는 음악의 리듬에 맞춰 노트를 터치하여 공격하고, 방어 노트를 터치하여 몬스터의 공격을 막아냅니다. 판정의 정확도에 따라 데미지가 달라지며, 콤보를 쌓아 더 강력한 공격을 할 수 있습니다.

기술 스택

  • Unity Engine
  • MidiPlayerTK (MIDI 음악 재생)
  • PlayFab (클라우드 서비스)
  • Photon Unity Networking (멀티플레이어)

주요 기능

  • MIDI 기반 실시간 노트 생성 시스템
  • 5단계 판정 시스템 (PERFECT, GREAT, GOOD, BAD, MISS)
  • 리듬 게임 + RPG 전투 하이브리드 시스템
  • 룬 장착을 통한 캐릭터 커스터마이징
  • 스킬 시스템
  • 상점 및 인벤토리 시스템

핵심 로직

1. 음악 동기화 노트 판정 시스템

RuneNoteView.csRuneMusicView.cs에서 구현된 노트 판정 시스템은 다음과 같이 동작합니다:

노트 생성

  • MIDI 파일에서 NoteOn 이벤트를 읽어 실시간으로 노트 객체 생성
  • 화면의 7x7 그리드를 체스판 패턴으로 분할하여 노트 배치 영역 관리
  • 일정 시간 간격(0.6초 + 랜덤 변수)으로 첫 번째 노트 판정 후 다음 노트 생성

판정 메커니즘

judgeWidth: 노트의 초기 크기 (2.5)
sizeDownSpeed: (judgeWidth - miss기준) / noteStayTime

판정 기준 (judgeWidth 대비 비율):
- PERFECT: 48% 이하
- GREAT: 48% ~ 60%
- GOOD: 60% ~ 72%
- BAD: 72% ~ 80%
- MISS: 28% 이하 (미스 판정 시점)

노트의 판정 영역(judgeDrawT)이 시간에 따라 줄어들면서 현재 타이밍을 시각적으로 표시합니다. 플레이어가 노트를 터치하면 현재 판정 영역의 크기를 기준으로 판정이 결정됩니다.

2. 리듬 기반 전투 시스템

MainStage.cs에서 구현된 전투 시스템은 노트 판정을 전투 메커니즘과 연결합니다:

데미지 계산

기본 데미지 = (플레이어 공격력 + 콤보 보너스) × 랜덤(0.95~1.05) × 판정 계수
최종 데미지 = 기본 데미지 - 대상 방어력

판정 계수:
- PERFECT: 1.0
- GREAT: 0.8
- GOOD: 0.6
- BAD: 0.4
- MISS: 0.2

콤보 보너스 = 현재 콤보 × 0.2

공격/방어 플로우

  1. 일반 노트 터치: 플레이어가 몬스터에게 공격
  2. 방어 노트(Block) 터치: 몬스터의 공격을 방어
  3. 노트 미스: 콤보 초기화 및 몬스터가 플레이어에게 공격

이러한 시스템을 통해 리듬 게임의 타이밍 요소와 RPG의 전략적 전투가 자연스럽게 융합됩니다.

프로젝트 구조

Assets/RuneMusic/
├── Script/
│   ├── PlayScene/          # 전투 씬 관련 스크립트
│   ├── FirstMainHomeScene/  # 메인 홈 화면
│   ├── SetRuneScene/        # 룬 장착 화면
│   ├── StoreScene/          # 상점 화면
│   ├── Skill/               # 스킬 시스템
│   └── Global/              # 공통 스크립트
├── Prefabs/                 # 프리팹
├── Scenes/                  # 씬 파일
└── Sprite/                  # 스프라이트 리소스

라이선스

이 프로젝트는 개인 프로젝트입니다.

About

음원을 이용한 RPG 게임

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages