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: 전투 BGMbgm_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 (구현 순서)
- BossData + BossController (HP, 상태)
- HitDetector (모캡 충돌 판정)
- BossHPBar UI
- BossVisualEffect (피격 플래시)
- DamagePopup
- ScreenEffect (화면 흔들림/플래시)
- Audio 시스템
- Phase 시스템
- 승리 연출
- 방송 특화 기능 (Stream Deck 등)