소울라이크 전투 시스템

BACKEND · AI · SYSTEM CASE STUDY
회피·스태미나·콤보·hitbox timing·보스 AI를 상태 기반으로 구성한 4인 Unity 팀 프로젝트입니다.
주요 화면
모바일 조작 화면에서 플레이어의 회피·스태미나·연속 공격과 보스의 패턴 전투를 한 흐름으로 구성했습니다. 전투 장면에서는 체력 UI와 공격 이펙트가 실제 판정 시점과 함께 동작합니다.


트러블 슈팅
1. 공격 판정과 animation timing이 어긋나 유효 타격이 불분명
hitbox lifecycle을 animation event와 연결했습니다.
2. 피격·스태미나 처리가 여러 스크립트에서 중복
최근 커밋에서 combat hit와 stamina 흐름을 정리했습니다.
3. 대형 Unity Library가 저장소에 포함
외부 asset과 생성 파일 범위를 문서화하고 metadata를 정리했습니다.
기술 선택과 이유
| 기술 | 선택 이유 |
|---|---|
| Combat state | 공격·회피·피격 중 허용되는 입력을 명확히 제한하기 위해 |
| Stamina | 무한 회피·공격을 막고 위험/보상의 리듬을 만들기 위해 |
| Animation hitbox timing | 보이는 무기 궤적과 실제 damage 판정을 맞추기 위해 |
| Cinemachine · VFX | 보스 공격 범위와 피격 결과를 즉시 읽게 하기 위해 |
검증 결과
- 회피 후 반격·콤보·보스 범위 공격의 핵심 전투 loop를 구현했습니다.
- 2022 초기 구현에서 2026 전투 hit/stamina 리팩터링까지 개선 이력이 남아 있습니다.
시스템 흐름
- 입력을 attack/dodge 명령으로 변환합니다.
- combat state와 stamina가 실행 가능 여부를 결정합니다.
- animation event가 hitbox 활성 시간을 엽니다.
- Enemy AI가 거리와 상태에 따라 공격을 선택합니다.
- collision이 damage·stagger를 계산합니다.
- camera·sound·VFX가 결과를 피드백합니다.
API · 시스템 경계
| 영역 | API/계약 | 책임 |
|---|---|---|
Input | attack/dodge | 명령 |
State | stamina/combo | 전투 규칙 |
Hit | animation event + collider | 판정 |
Feedback | camera/VFX/sound | 결과 전달 |
다음 구현 계획
- state machine과 animation graph의 테스트 가능한 경계 분리
- damage frame·input latency 계측
- 보스 패턴별 playtest telemetry