BurningTimesAi/공유/기획/GodDem/2026-08-20_스킬이식_설계_v1.md

5.6 KiB
Raw Permalink Blame History

GodDem ← EerieVillage 스킬 시스템 이식 설계 SOT v1

작성: Fable5(총괄PM) 2026-08-20 · PD 지시: EerieVillage(E:\EerieVillage)의 레벨업 스킬(3종 선택) + 연출 이펙트를 GodDem SurvivalBattle에 이식 위임: 개발팀장(Opus) → C49 · 단계 분할(S1 프레임워크+대표3종 → S2 확장)

0. 핵심 판정 (Explore 실측 근거)

EerieVillage 스킬 시스템은 Platformer 스타터킷에 강결합(.asmdef 없이 단일 어셈블리, Platformer.Mechanics.Health·EnemyController·Core.Simulation 직접 참조). 폴더 통째 복사 = 컴파일 불가."자산은 그대로, 로직은 GodDem 구조로 재구현" 방식.

구분 처리 근거
데이터 클래스 SkillDataAsset·ActiveSkillData·enum(ActiveCategory·ActiveTrigger·ProjectileTrajectory·RangeTier·AttributeTags·TypeTags) 그대로 이식 Platformer 무의존 순수 ScriptableObject. 단 base의 Platformer using이 있으면 제거
스킬 데이터 Assets/Resources/Skills/Active/*.asset (ActiveSkillData 14개) 그대로 이식 (Resources 경로 유지) FX GUID 참조 보존 필요
FX 프리팹 (ParticleSystem, FX_BloodSkill·FX_DarkSkill·FX_FireSkill·FX_Slash_Collection 등) 사용분 복사 (GUID 유지) 연출 재현. .asset이 참조하는 GUID가 깨지지 않게
이펙터 Scripts/Skills/Effectors/* GodDem 재구현 Platformer 강결합(FindObjectsByType<EnemyController>·Health.Decrement)
런타임 ActiveSkillRuntime·PlayerSkillInventory·SkillRuntimeFactory 경량 재구현 Simulation 이벤트버스 의존 제거 → 직접 호출
버림 SkillPlaceholders·SkillCardPlaceholder·IngameChoiceSkillUI(빈 stub)·Passive/Awakening stub(효과 없음) 미이식 실런타임 미사용

1. GodDem 어댑터 매핑 (이펙터 재구현 계약)

EerieVillage(Platformer) GodDem SurvivalBattle
FindObjectsByType<EnemyController>() + Layer "Enemy" SurvivalBattleManager.Instance.Enemies (List, !IsDead 필터)
Health.Decrement(int) / DecrementBypassInvuln SurvivalUnit.TakeDamage(float)
PlayerController.Facing(Vector2) 중앙 고정 → 가장 가까운 적 방향 계산(Player.transform.position 기준)
Health.IsAlive !SurvivalUnit.IsDead
Simulation.Schedule<SkillFireEvent>() 직접 호출 (이벤트버스 불필요)
EnemyDeath 체인 + ExperienceSystem 기존 SurvivalBattleManager.OnEnemyDied(골드·EXP 이미 처리)
2D 물리 Physics2D.OverlapBox/Raycast 그대로 (GodDem도 2D) — Layer·지면 raycast만 GodDem에 맞게
FX 스폰(Instantiate+ParticleSystem.Play+FxAutoDestroyUnscaled) 그대로 (풀 없이 Instantiate/Destroy)

2. 스킬 목록 (레벨업 풀 노출 10종 — 카테고리별 이펙터)

CardId 스킬 Category 이펙터(재구현)
A02 파이어볼 Projectile(Line) 투사체 직선 → 최근접 적 방향
A15 추적화염구 Projectile(Homing) 유도 투사체
A13 천둥발 Projectile(Arc/관통) 관통 투사체
A08 저주의화살 Projectile(TargetEnemy) 조준 투사체 + 디버프스택
A05 학익진 MeleeArea 플레이어 주변 범위
A12 정화의빛 MeleeArea(2차판정) 범위 + 2차 히트박스
A04 천둥 MeleeArea(낙뢰) 화면 내 랜덤 적 낙뢰
A_Laser 용염레이저 MeleeArea(레이저) 방향 긴 박스 지속피해
A06 독늪 PlacementPersistent 지면 배치 지속 장판
A11 정령불 Minion 회전 방패 소환
A10 분신 Minion 플레이어 복제 재발동

Phase S1 대표 3종: A02 파이어볼(투사체) · A05 학익진(범위) · A04 천둥(낙뢰) — 카테고리 3종 커버. Phase S2: 나머지 확장.

3. 레벨업 연결 (기존 시스템 확장)

  • 현재 SurvivalSkill.cs = 스탯 버프 3종 택1. Play_UI_ChoiceSkill UI는 Phase A 완성.
  • 확장: 스킬 종류를 패시브(스탯버프, 현행) + 액티브(발동형, 신규) 2계층으로. 레벨업 3종 택1 풀에 액티브 스킬 혼합.
  • 액티브 스킬 습득 → SurvivalActiveSkillRunner(신규 MonoBehaviour)가 쿨타임 관리 → 발동 시 이펙터 Trigger.
  • 재픽 시 레벨업(StackLevel++) → 데미지/쿨타임 강화.
  • 데미지 = BaseDamage × Player.Attack 연동 × StackFactor (GodDem 스케일 조정).

4. 단계·위임

Phase 범위 검증
S1 데이터클래스 이식 + FX 도입(대표3종 사용분) + 이펙터 3종(투사체/범위/낙뢰) + SurvivalActiveSkillRunner + 레벨업 연결 Play — 스킬 습득 후 실제 발동·FX·적 피해·처치
S2 나머지 이펙터 7종(유도/관통/조준/2차판정/레이저/독늪/분신) 확장 Play 각 스킬
S3 밸런스 튜닝(데미지/쿨타임 GodDem 스케일) balance-designer

5. 주의

  • Unity MCP 단일 인스턴스 = 개발팀장 전담.
  • FX 481 프리팹 전량 복사 금지 — .asset 참조 GUID 추적해 사용분만(무거움 방지). 개발팀장이 각 .asset의 FX GUID를 실측해 선별.
  • ActiveSkillData base가 Platformer using 참조 시 제거(순수 데이터화).
  • EerieVillage = 우리 조직 자산(BT12-Dev 구축). 저작권 문제 없음.
  • 밸런스 수치는 EerieVillage 값 이식 후 GodDem 스케일(Player.Attack 22·적 HP 60~) 대비 재조정 필요(S3).