docs(BT12-Dev-Vis): A11 frame 제어 (엔트리 32)

EerieVillage ebd0808 push 정합.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-13 23:19:33 +09:00
parent b308ccebb8
commit 829a024b6d
2 changed files with 20 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@ -774,6 +774,25 @@ A02·A13·A04·A05·A_Laser·A08·A12·**A06·A11** (Phase B 신규 추가)
---
## 엔트리 32 — A11 정령불 frame 기반 playback 제어 (2026-05-13 EerieVillage `ebd0808`)
**PD 지시**: "정령불은 활성화 된 이후 1~88프레임 이후부터 지속시간 동안 89프레임부터 105프레임을 반복하다가 남은 프레임을 재생하며 소멸되도록 수정해줘."
**측정**: `FX_Rotating shield.anim``m_SampleRate 60`·`m_StopTime 2.8166666` → 총 **169 frame·2.8167s**. AnimatorController State = `Base Layer.FX_Rotating shield`.
**구현 (SpiritFireInstance)**:
| Phase | frame | time | 동작 |
|-------|-------|------|------|
| Intro | 1~88 | 0~1.4667s | linear sample |
| Loop | 89~105 (17 frame·0.2833s) | 1.4667~1.75s | `(elapsed - introEnd) % loopRange` 반복 |
| Outro | 106~169 (64 frame·1.0667s) | 1.75~2.8167s | duration 종료 전 자동 재생 |
- `outroStart = duration - outroLength` 영역 → duration 끝에 outro 완료 정합
- Animator `updateMode=UnscaledTime`·`speed=1`·매 frame `Animator.Play(STATE_HASH, 0, normalizedTime)` 호출
- `STATE_HASH = Animator.StringToHash("Base Layer.FX_Rotating shield")`
---
## 영역 자산
- `HitboxDebug.cs` 공용 helper (Spawn·AttachToTransform·GetWhiteSprite) — 추후 다른 카테고리 (C 설치·D 소환·E 오라) 영역 박스 시각화 재사용 가능.