# BossRaid - Boss Battle Broadcast Content ## Concept 고전 포켓몬스터 스타일의 2D 연출을 3D로 구현한 보스 토벌 방송 콘텐츠. 모션캡쳐로 아바타가 공격하면 보스가 피격 리액션을 하고, 체력이 깎이며, 처치 시 승리 연출이 나온다. ## Core Flow ``` [IDLE] → 보스 등장 연출 → [BATTLE] 아바타 공격 → 피격 판정 → 데미지 표시 → HP 감소 → [PHASE] HP 일정 이하 → 페이즈 전환 (분노 모드 등) → [DEFEAT] HP 0 → 보스 사망 연출 → 승리 화면 → [RESULT] 결과 / 보상 연출 ``` ## Visual Style - "허접한 고전게임 3D" - 보스 모델: **3D 모델** 사용 (별도 전달받음), 단 연출은 고전 2D RPG처럼 단순하고 과장되게 - 모델 배치/활용은 판때기처럼 정면 위주로 심플하게 운용 - 피격 시 모델 전체가 **흰색 플래시** (포켓몬 피격 느낌) - 데미지 숫자가 **팝업**으로 튀어나옴 (크리티컬은 크게, 빨간색) - HP바: 화면 상단 고전 RPG 스타일 (도트 폰트, 보스 이름 표시) - 공격 시 화면 **흔들림** (Screen Shake) - 포켓몬처럼 공격 순간 **화면 번쩍** (흰색 플래시 오버레이) ## Features ### 1. Boss System - **BossData**: ScriptableObject (이름, 최대HP, 페이즈 수, 모델 프리팹) - **BossController**: HP 관리, 상태 머신 (Idle/Hit/Rage/Death) - **BossVisual**: 피격 플래시, 흔들림, 사망 연출 ### 2. Hit Detection (듀얼 모드) 두 가지 방식을 모두 지원하여 라이브 방송에서 안정성 확보: **Mode A: 물리 충돌 (Physics)** - 아바타 손/발에 트리거 콜라이더 부착 - 보스 히트박스와 충돌 시 데미지 발생 - 자연스럽지만 모캡 떨림/오차로 오발 가능 **Mode B: 수동 이벤트 호출 (Manual/Failsafe)** - `BossController.TakeDamage(amount)` 직접 호출 - Stream Deck 버튼, 키보드 단축키, 또는 EventController에서 트리거 - 물리 판정이 안 먹힐 때 즉시 대응 가능 (라이브 방송 안전장치) **방송 방어 로직 (Live Safety)** - **오발 방지**: 쿨타임 시스템 (최소 히트 간격 설정, 너무 빨리 때리면 무시) - **데미지 캡**: 1회당 최대 데미지 제한 (모캡 버그로 연타 시 보스 즉사 방지) - **일시정지**: Stream Deck/단축키로 전투 Pause → 방송 사고 시 즉시 멈춤 - **HP 잠금**: 특정 HP 이하로 안 내려가게 잠금 (연출 타이밍 조절용) - **되돌리기**: HP를 특정 %로 즉시 복구 (잘못 진행됐을 때) - **강제 페이즈**: 페이즈 강제 전환 (연출 순서 보장) - **강제 처치**: 즉시 사망 연출 트리거 (시간 부족할 때) - 히트 판정 시 **히트스톱** (0.05초 일시정지) → 타격감 ### 3. Damage & HP - **DamageCalculator**: 기본 데미지 + 랜덤 범위 - **크리티컬 시스템**: 일정 확률로 2배 데미지 (연출 강화) - **HP Bar UI**: DOTween으로 부드럽게 감소, 색상 변화 (초록→노랑→빨강) - **데미지 팝업**: WorldSpace Canvas에 숫자 튀어나옴 ### 4. Phase System - Phase 1: 일반 (100%~50%) - Phase 2: 분노 모드 (50%~20%) → 보스 색상 변화, BGM 변경, 화면 어두워짐 - Phase 3: 최후의 발악 (20%~0%) → 보스 떨림, 이펙트 강화 - 각 페이즈 전환 시 **컷인 연출** (화면 분할 + 보스 클로즈업) ### 5. Effects & Particles - **피격 파티클**: 별/스파크 튀는 이펙트 - **크리티컬 파티클**: 더 크고 화려한 이펙트 + 화면 흔들림 강화 - **사망 파티클**: 폭발 + 연기 + 별 흩뿌림 - **승리 파티클**: 꽃가루/폭죽 - **페이즈 전환**: 보스 주변 오라/불꽃 이펙트 ### 6. Sound Effects - `sfx_hit_normal`: 일반 피격 - `sfx_hit_critical`: 크리티컬 피격 (더 강한 타격음) - `sfx_hit_miss`: 빗나감 / 쿨타임 중 - `sfx_boss_rage`: 페이즈 전환 포효 - `sfx_boss_death`: 사망 (폭발음 + 비명?) - `sfx_victory`: 승리 팡파레 - `sfx_damage_popup`: 숫자 팝업 시 효과음 - `bgm_battle_normal`: 전투 BGM - `bgm_battle_rage`: 분노 페이즈 BGM (템포 빠르게) - `bgm_victory`: 승리 BGM ### 7. UI Elements - **Boss HP Bar**: 화면 상단, 고전 RPG 스타일 - **Boss Name Plate**: 도트 폰트로 이름 표시 - **Damage Numbers**: 3D 팝업 (중력 적용, 바운스) - **Phase Indicator**: "Phase 2!" 텍스트 연출 - **Victory Screen**: "YOU WIN!" + 결과 표시 - **Combo Counter** (선택): 연속 타격 횟수 표시 ### 8. Broadcasting Enhancements (방송 특화) - **시청자 연동 (미래)**: 채팅으로 보스 강화/약화, 아이템 지급 - **도네이션 연동 (미래)**: 도네이션 시 필살기 게이지 충전 - **보스 등장 연출**: 경고 사이렌 + "WARNING" 텍스트 + 보스 슬라이드 인 - **결과 화면**: 소요 시간, 총 데미지, 크리티컬 횟수, 최대 콤보 등 스탯 표시 - **Stream Deck 연동**: 보스 소환, HP 리셋, 페이즈 강제 전환 버튼 ## Script Structure ``` Assets/Scripts/Contents/BossRaid/ ├── README.md ├── Resources/ │ └── Audio/ # 효과음/BGM 리소스 (파일명 규칙으로 자동 매핑) ├── Data/ │ └── BossData.cs # ScriptableObject: 보스 스탯 ├── Core/ │ ├── BossRaidManager.cs # 전체 플로우 관리 (상태 머신) │ ├── BossController.cs # 보스 HP, 상태, 페이즈, 수동 TakeDamage API │ ├── HitDetector.cs # 모캡 손/발 → 보스 히트박스 충돌 (Mode A) │ └── BossRaidSafety.cs # 방송 방어 로직 (쿨타임, 캡, 일시정지, HP잠금, 되돌리기) ├── Visual/ │ ├── BossVisualEffect.cs # 피격 플래시, 흔들림, 사망 │ ├── DamagePopup.cs # 데미지 숫자 팝업 │ ├── ScreenEffect.cs # 화면 흔들림, 플래시, 히트스톱 │ └── PhaseTransition.cs # 페이즈 전환 컷인 연출 ├── UI/ │ ├── BossHPBar.cs # HP바 UI │ ├── ComboCounter.cs # 콤보 카운터 │ └── VictoryScreen.cs # 승리 결과 화면 ├── Audio/ │ └── BossRaidAudio.cs # 효과음/BGM 관리 └── Editor/ └── BossRaidEditor.cs # 인스펙터 커스텀 에디터 ``` ## Namespace `Streamingle.Contents.BossRaid` ## Dependencies - DOTween or Unity Animation (UI 트윈) - TextMeshPro (데미지 숫자, UI 텍스트) - Cinemachine (카메라 흔들림 impulse) - Existing: OptiTrack/모캡 시스템 (HitDetector 연동) ## Priority (구현 순서) 1. BossData + BossController (HP, 상태) 2. HitDetector (모캡 충돌 판정) 3. BossHPBar UI 4. BossVisualEffect (피격 플래시) 5. DamagePopup 6. ScreenEffect (화면 흔들림/플래시) 7. Audio 시스템 8. Phase 시스템 9. 승리 연출 10. 방송 특화 기능 (Stream Deck 등)