docs(BT12-Dev): 스킬 이펙트 확정 SOT v1 (PD 지시 2026-05-14·변경 금지)

PD 직접 발화: "좋아 지금까지 작업 된 스킬 이펙트 작업은 완성이야.
임의로 투사체의 판정 범위나 크기 등이 바뀌지 않도록 지금 상태를
잘 기록해."

신규 SOT: 프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md

내용:
- 13 활성 스킬 핵심 필드 표 (확정 stamp EerieVillage 1a1de0c)
  A01 마법 화살·A02 파이어볼·A03 봉인 마법·A04 번개 충격·
  A05 좌우 베기·A06 독 늪·A08 저주의 화살·A11 정령불·
  A12 정화의 빛·A13 저주 구체·A14 얼음 창·A15 추적 레이저·
  A_Laser 용염 레이저
- 박스↔이펙트 분리 원칙 표준
  · 박스 = facing sign 만 · FxRotation 미적용 · Layer 0 non-trigger Wall
  · 이펙트 = facing + FxRotation
  · runtime spawn = HideFlags.DontSave
  · Player Awake 3중 cleanup · Projectile.Awake 자기 destroy
  · 2차 박스 옵션 (EnableSecondHitbox)
- 변경 이력 표 (§4)
- 환경 셋업·테스트 (1~5 키·기본 공격 OFF·Enemy HP 99999·박스 ON)

변경 금지 원칙:
- §3 13 스킬 핵심 필드는 PD 직접 명시 지시 없이 임의 변경 금지
- 변경 시 SOT §4 갱신 + commit + PD 보고 의무
- 본 PM·차기 세션 PM 모두 본 SOT 준수

부속:
- 공유/대화로그/EerieVillage/2026-05-14.md 신규 (확정 entry)
- 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md BT12-Dev-Vis 완성 확정 등재

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-14 22:37:50 +09:00
parent a7075758ec
commit 5da25831e3
3 changed files with 199 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,33 @@
# EerieVillage 2026-05-14 대화로그
> 세션 worktree: `cranky-wescoff-e855b0`
> 영역: BT12-Dev-Vis 이펙트 작업 완성 + SOT 확정 기록
> C32 정합
---
## 엔트리 — 스킬 이펙트 SOT 확정 v1 (2026-05-14 stamp `1a1de0c`)
**PD 직접 발화**: "좋아 지금까지 작업 된 스킬 이펙트 작업은 완성이야. 임의로 투사체의 판정 범위나 크기 등이 바뀌지 않도록 지금 상태를 잘 기록해."
### 산출물
- 신규 SOT: `프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md`
- 13 활성 스킬 핵심 필드 표 + 박스↔이펙트 분리 원칙 표준 + 변경 이력
- EerieVillage stamp `1a1de0c` (직전 commit 시점)
### 본 PM 의무
본 SOT §3 13 스킬 핵심 필드는 PD 직접 명시 지시 없이 임의 변경 금지. 변경 시 본 SOT §4 갱신 + commit + PD 보고 의무.
### 본 세션 EerieVillage 최근 commit 누적 (2026-05-14)
| commit | 내용 |
|---|---|
| `2ebf313`·`60e28e3`·`ea7d32f`·`f6c6eb5` | 5 스킬 통합·Scene 잔존 정정·FxRotation 분리·A05 Player 동조 (직전 세션 2026-05-13) |
| (2026-05-14 누적) | 박스 시각화 ON·잔존 spawn cleanup 강화·A06 PoisonSwamp trigger 통과·A02 Homing 전환·원복·Enemy HP 99999·기본 공격 제거·2차 판정 박스 옵션·A12 정화의 빛 상·하 |
| `1a1de0c` | 2차 판정 박스 옵션 + A12 정화의 빛 상·하 (SOT 확정 stamp) |
### 확정 적용 13 스킬
A01 마법 화살·A02 파이어볼·A03 봉인 마법·A04 번개 충격·A05 좌/우 베기·A06 독 늪·A08 저주의 화살·A11 정령불·A12 정화의 빛·A13 저주 구체·A14 얼음 창·A15 추적 레이저·A_Laser 용염 레이저.

View File

@ -0,0 +1,165 @@
# 스킬 이펙트 확정 SOT v1
> **PD 지시 2026-05-14**: "지금까지 작업 된 스킬 이펙트 작업은 완성이야. 임의로 투사체의 판정 범위나 크기 등이 바뀌지 않도록 지금 상태를 잘 기록해."
>
> **확정 시점**: 2026-05-14
> **EerieVillage stamp**: `1a1de0c` (직전 commit `1a1de0c` 시점 .asset 13 종 + Effector 5 종 + ActiveSkillData 필드 일괄)
> **변경 금지 원칙**: 본 문서 §3 13 스킬 핵심 필드는 **PD 직접 명시 지시 없이 임의 변경 금지**. 변경 시 본 문서 §4 갱신 + commit + PD 보고 의무.
---
## 1. 적용 범위
본 SOT 가 보호하는 자산:
| 분류 | 경로 | 비고 |
|---|---|---|
| ActiveSkillData ScriptableObject 13 종 | `Assets/Resources/Skills/Active/*.asset` | 핵심 필드 §3 표 |
| Effector 5 종 | `Assets/Scripts/Skills/Effectors/{ProjectileSpawner,LaserSpawner,LightningStrikeSpawner,MeleeAreaSpawner,Projectile,PiercingProjectile,HomingProjectile}.cs` | 박스↔이펙트 분리 원칙 §2 |
| ActiveSkillData 필드 | `Assets/Scripts/Skills/Data/ActiveSkillData.cs` | 필드 추가는 허용·기존 필드 삭제 금지 |
| HitboxDebug 공용 helper | `Assets/Scripts/Skills/Effectors/HitboxDebug.cs` | `ShowDebugVisuals=true` 유지 |
---
## 2. 박스↔이펙트 분리 원칙 (표준)
| 영역 | 정책 |
|---|---|
| 박스(판정) | facing 좌/우 sign 만 반영 · FxRotation 미적용 · Layer 0 non-trigger 만 Wall |
| 이펙트(시각) | facing + FxRotation 그대로 |
| runtime spawn | 모두 `HideFlags.DontSave` (Scene 오염 방지) |
| Player Awake | `CleanupStalePooledSpawns` 3중 진입점 (AfterSceneLoad · Awake · 1·3·10 frame) |
| Projectile.Awake | `_data==null` 자기 destroy (1 frame 유예) |
| 2차 판정 박스 | `EnableSecondHitbox` 체크박스로 옵션 (MeleeAreaSpawner 적용·다른 spawner 후속) |
---
## 3. 13 스킬 핵심 필드 (확정 stamp `1a1de0c`)
> Category 0=Projectile, 1=MeleeArea, 2=Setting, 3=Summon
> Trajectory 0=Line, 1=Homing, 2=Arc (Piercing)
### A01 마법 화살 (Category 0 Projectile)
```
BaseCooldown=1.5 BaseDamage=4 HitboxSize=(1.5, 1) OffsetDistance=0.5
Trajectory=0 HitFxScale=0.5
```
### A02 파이어볼 (Category 0 Projectile)
```
BaseCooldown=1.5 BaseDamage=12 HitboxSize=(1.5, 1) OffsetDistance=(0.5, 0)
Trajectory=0 MaxRange=8 ProjectileSpeed=6
DotDuration=3 DotInterval=0.5
HitFxScale=0.5 FxRotation=0 OffsetXY=(0,0)
DamageFrameDelay=0 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A03 봉인 마법 (Category 0 Projectile)
```
BaseCooldown=1.5 BaseDamage=3 HitboxSize=(1.5, 1) OffsetDistance=0.5
Trajectory=0 HitFxScale=0.5
```
### A04 번개 충격 (Category 1 MeleeArea·LightningStrikeSpawner)
```
BaseCooldown=2.5 BaseDamage=15 HitboxSize=(1.2, 0.8) OffsetDistance=(0, -0.2)
Trajectory=0 MaxRange=10 ProjectileSpeed=6
HitFxScale=0.2 FxRotation=0 OffsetXY=(0,0)
DamageFrameDelay=46 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A05 좌/우 범위 베기 (Category 1 MeleeArea)
```
BaseCooldown=1.5 BaseDamage=10 HitboxSize=(4.8, 1.2) OffsetDistance=(0, -0.2)
Trajectory=0 MaxRange=10 ProjectileSpeed=6
HitFxScale=0.5 FxRotation=0 OffsetXY=(0.2, -1.2)
DamageFrameDelay=10 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A06 독 늪 소환 (Category 2 Setting)
```
BaseCooldown=10 BaseDamage=10 HitboxSize=(3, 1.5) OffsetDistance=(0, 0)
Trajectory=0 MaxRange=10 ProjectileSpeed=6
DotDuration=5 DotInterval=1
HitFxScale=1 FxRotation=0 OffsetXY=(0,0)
DamageFrameDelay=0 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A08 저주의 화살 (Category 0 Projectile)
```
BaseCooldown=0.8 BaseDamage=2 HitboxSize=(1.5, 0.6) OffsetDistance=(0, 0)
Trajectory=0 MaxRange=10 ProjectileSpeed=8
ProjectileAngleOffset=180 TargetEnemyOnFire=1
HitFxScale=0.4 FxRotation=0 OffsetXY=(0,0)
DamageFrameDelay=0 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A11 정령불 (Category 3 Summon)
```
BaseCooldown=15 BaseDamage=5 HitboxSize=(2.5, 2.5) OffsetDistance=(0, 0)
Trajectory=0 MaxRange=10 ProjectileSpeed=6
ProjectileAngleOffset=0 TargetEnemyOnFire=0
DotInterval=1
HitFxScale=0.2 FxRotation=0 OffsetXY=(0, -0.8)
DamageFrameDelay=0 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A12 정화의 빛 (Category 1 MeleeArea · 2차 박스 활성)
```
BaseCooldown=5 BaseDamage=15
1차: HitboxSize=(1.5, 5) OffsetDistance=(0, 3) # Player 위쪽 vertical 줄기
EnableSecondHitbox=1
2차: SecondHitboxSize=(1.5, 5) SecondOffsetDistance=(0, -3) # Player 아래쪽 vertical 줄기
Trajectory=0 MaxRange=10 ProjectileSpeed=6
HitFxScale=1 FxRotation=0 OffsetXY=(0,0)
DamageFrameDelay=0 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A13 저주 구체 (Category 0 Projectile · Arc=Piercing)
```
BaseCooldown=2.5 BaseDamage=8 HitboxSize=(8, 8) OffsetDistance=(0.5, 0)
Trajectory=2 MaxRange=6 ProjectileSpeed=2
DotInterval=0.2 (관통 매 0.2초 hit)
HitFxScale=0 FxRotation=0 OffsetXY=(0,0)
DamageFrameDelay=0 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A14 얼음 창 (Category 0 Projectile)
```
BaseCooldown=1.5 BaseDamage=5 HitboxSize=(1.5, 1) OffsetDistance=0.5
Trajectory=0 HitFxScale=0.5
```
### A15 추적 레이저 (Category 0 Projectile · Homing)
```
BaseCooldown=1.5 BaseDamage=3 HitboxSize=(1.5, 1) OffsetDistance=(0.5, 0)
Trajectory=1 MaxRange=6 ProjectileSpeed=5
DotDuration=2 DotInterval=0.5
HitFxScale=0.5 FxRotation=0 OffsetXY=(0,0)
DamageFrameDelay=0 EnableRepeatDamage=0 MaxHitCount=1 RepeatFrameInterval=30
```
### A_Laser 용염 레이저 (Dragonfire Laser·Category 1 MeleeArea·LaserSpawner)
```
BaseCooldown=3 BaseDamage=5 HitboxSize=(10, 1.2) OffsetDistance=(-0.4, -0.1)
Trajectory=0 MaxRange=10 ProjectileSpeed=6
HitFxScale=0.25 FxRotation=90 OffsetXY=(0,0)
DamageFrameDelay=10 EnableRepeatDamage=1 MaxHitCount=7 RepeatFrameInterval=10
```
---
## 4. 변경 이력
| 일시 | 변경 | EerieVillage commit |
|---|---|---|
| 2026-05-14 | 본 SOT 신설 (확정 stamp) | `1a1de0c` |
---
## 5. 환경 셋업·테스트
- 테스트 키: 1 (A02)·2 (A04)·3 (A05)·4 (A_Laser)·5 (A13) — `TestSkillFireOn1to5`
- 기본 공격 자동 발사: **OFF** (StartingCardIds 빈 배열·PD 지시 2026-05-14)
- 적 HP: **99999** (테스트용·`Enemy.prefab` RandomMaxHPRange (99999, 99999))
- 박스 시각화: ON (`HitboxDebug.ShowDebugVisuals=true`)