docs(BT5-Dev 세션 종결): 인수인계서 + 대화로그 엔트리 2 (BT76~BT109 몬스터 시스템)

PD 명시 (2026-05-08): "남은 컨텍스트가 얼마 없으니 이 상태로 빠짐 없이 세션 공유"

본 세션 (2026-05-08) 핵심 결과:
1. 발판 시스템 영구 마무리 (BT63~BT75) — Drop-Through·R2·Down+Jump·jitter 차단
2. 몬스터 sprite 교체 (BT76~BT79) — M001 늑대 4 모션·flipX 정합
3. 몬스터 자동 patrol (BT80~BT109) — 23회+ 가설 누적 자인 후 PD 근본 진단 (Tilemap cell 측정) 채택
4. EnemyDeath 강화 (BT104/BT105) — 제자리 사망·death 애니메이션·1초 Destroy

EerieVillage commit 3dfc466 (BT109 footPos cell 정정).

본 commit:
- 공유/대화로그/EerieVillage/2026-05-08.md 엔트리 2 추가 (BT76~BT109)
- 공유/조직공지/2026-05-08_BT5-Dev_세션종결인수인계.md 신설 (12 섹션)

후속:
- BT5-Dev 좁은 영역 Enemy 잔여 (PD 재요청 시)
- 활성 PD 지시 3건 (BT7-Dev·BT7-Plan·BT12-Dev)
This commit is contained in:
깃 관리자 2026-05-08 15:49:00 +09:00
parent c8584466ae
commit 0f68ba949b
2 changed files with 339 additions and 0 deletions

View File

@ -104,3 +104,114 @@ BT49~BT65 영역 누적 변경 17회 = 본 PM 가설 부정확 + PD 시각 검
- BT5-Dev 발판 시스템 = **완료 영역**. 활성 PD 지시 로그 BT5-Dev 영역 갱신 의무.
- 잔여 영역 (BT74 밀림 일부 잔존) = PD 명시 = 추후 필요 시 재요청 영역.
- 차기 BT5-Dev 영역 = 다른 메카닉 또는 컨텐츠 영역 (PD 결정).
---
## 엔트리 2. BT5-Dev 몬스터 시스템 (BT76~BT109)
**시각**: 2026-05-08 후반
**주체**: 총괄PM
**영역**: BT5-Dev Phase 3 파일럿 (개발) — 몬스터 리소스 교체·자동 patrol·낭떠러지 차단·밟기 처치
**유형**: PD 시각 검증 반복 + 본 PM 23회 가설 누적 부정확 자인 후 PD 근본 진단 채택 영역 도달
### 영역 카탈로그
#### Phase 1 — 몬스터 리소스 교체 (BT76~BT79)
- BT76: Enemy.prefab SpriteRenderer = M001_idle01 교체
- BT77: 4개 .anim (Idle·Run·Hurt·Death) sprite reference 영역 M001 순환 매핑 (Python 자동)
- BT78: M001 sprite fileID 영역 정확 매핑 (Multiple sprite mode internalID·BT76/BT77 정정)
- BT79: Enemy flipX 영역 PlayerController 정합 (좌측 sprite 기준 우측 이동 시 flipX=true)
#### Phase 2 — 자동 patrol·절벽 검출 (BT80~BT109)
- BT80: Enemy y+0.5 + 자동 patrol (생성 위치 ±100~150 random 왕복) + 절벽 검출 (PD 3건 일괄)
- BT81~BT85: 벽 정지·낭떠러지·flipX·이동속도·미세 밀림 영역 정정 (PD 시각 검증 반복)
- BT86: 속도 2배 느림 (maxSpeed 7→3.5) + 절벽 즉시 phase 전환
- BT87: 벽 충돌 즉시 전환·순찰 거리 절반 (50~75)
- BT88: phase+2 (시작 위치 복귀 폐기·즉시 반대 방향)
- BT89~BT93: 즉시 벽 검출·1~3초 대기·KinematicObject 정합 (transform+body 동시 push)
- BT94: phase cooldown 0.5초·시작 시 안전 거리 측정
- BT95: PatrolPath path 영역 12건 제거·velocity 즉시 반대 방향 (PD 명시)
- BT96: TriggerReverse 함수 (transform+body+velocity+move 통합 처리)
- BT97: Start 시점 안전 거리 측정 (AutoForeground Tile data 활성 후)
- BT98: R1 방어 영역 (발 자체 검사·시작 위치 텔레포트 복귀)
- BT99~BT101: EnemyWall Layer 18·투명벽 자동 생성 → 폐기 (PD Foreground TilemapCollider 부착·통로 막힘)
- BT102: 투명벽 폐기·y < startY-1.0 시작 위치 텔레포트
- BT103: 정확 측정 (Capsule 발 영역·0.1m 간격·0.5m margin)
- BT104: EnemyDeath 강화 (enabled=false·death 애니메이션·1초 Destroy) + 시작 위치 발판 검증·자동 재배치
- BT105: 제자리 사망 (body.simulated=false) + margin 0.5→2.0m
- BT106: y 영역 영구 고정 (떨어짐 영구 차단) — 폐기 (BT107 공중 부유 원인)
- BT107: Tilemap cell 기반 측정 (PD 근본 진단·Raycast 영역 부정확 폐기)
- BT108: 측정 결과 Debug.Log 진단
- BT109: footPos cell 영역 정정 (bounds.min.y - 0.5f·발판 cell 정확) + BT104 Raycast 재배치 폐기
### 영구 채택 영역 (BT109 정합)
#### EnemyController.cs
- 자동 patrol 4-phase (우측 random·시작 복귀·좌측 random·시작 복귀)
- patrolMinRange/patrolMaxRange = 50/75 (Inspector)
- Tilemap cell 기반 안전 거리 측정 (Start 시점 1회·AfterSceneLoad 후)
- TriggerReverse 영역 (절벽·벽 검출 시 transform+body+velocity 통합)
- phase cooldown 1.0초 (BT94 영역)
- waitTimer 1~3초 random (arrive 시점만)
- stuckTimer 50ms (벽 정지 fallback·BT90 영역)
- BT102 텔레포트 영역 (떨어짐 검출 후 시작 위치 복귀·보조 fallback)
#### EnemyDeath.cs (Gameplay)
- _collider.enabled = false
- control.enabled = false
- enemy.enabled = false (patrol 영역 정지)
- body.simulated = false (gravity X·제자리 사망)
- animator.SetTrigger("death")
- Object.Destroy(gameObject, 1f)
#### GameOptimizer.cs
- Init: Physics2D.IgnoreLayerCollision(13, 14, true) — Player ↔ Enemy
- SetupJumpThroughPlatforms:
- 모든 비-Level Collider2D Layer 16 강제
- PD Foreground TilemapCollider Object.Destroy (시각만)
- AutoForeground 신규 (Grid 자식·Tilemap·TilemapCollider·Layer 16·transform 동기화)
- Level → AutoForeground 자동 분류 (BT47/BT48 휴리스틱·BT49 None 차단·BT63 TileGround* 차단)
- 사후 복원 영역 (BT51 None 처리)
- CliffWalls GameObject Destroy (BT102 영역 폐기 정리)
#### TagManager.asset
- Layer 18 = "EnemyWall" (BT99 영역·BT102 폐기 후도 잔존)
### 잔여 영역 (PD 명시)
PD 보고 (BT109 후): "몬스터들 중 일부(이동 가능 영역이 좁은 경우)를 제외하면 내가 원하는대로 움직이고 있어"
= **좁은 영역 Enemy 영역 잔여 부정합**. PD 결정 영역 (재요청 시 본 PM 후속).
### 본 PM 23회+ 가설 누적 부정확 자인 영역
PD 시각 검증 반복 영역에서 본 PM 측정·검출·재배치 영역 다수 가설 시도. 핵심 PD 명시 채택 시 영구 마무리 도달:
- "PatrolPath 제거" → BT95
- "투명벽 삭제" → BT102
- "절벽 체크 로직 잘못 — 근본 원인" → BT107 Tilemap cell 기반 측정 재설계
### 산출물
- `Assets/Scripts/Mechanics/EnemyController.cs` (자동 patrol·Tilemap cell 측정·death·재배치)
- `Assets/Scripts/Mechanics/AnimationController.cs` (BT79 flipX 정합)
- `Assets/Scripts/Mechanics/GameOptimizer.cs` (Init·SetupJumpThroughPlatforms·CliffWalls 정리)
- `Assets/Scripts/Gameplay/EnemyDeath.cs` (BT104/BT105 강화)
- `Assets/Prefabs/Enemy.prefab` (M001 sprite·y+0.8·maxSpeed 3.5)
- `Assets/Scenes/Ingame.unity` (Enemy 인스턴스 16건 y+0.8·path 영역 12건 제거)
- `Assets/Character/Animations/EnemyIdle/Run/Hurt/Death.anim` (M001 sprite reference)
- `ProjectSettings/TagManager.asset` (Layer 18 EnemyWall)
### 관련 규칙·자산
- C2 근본 해결 (BT107 PD 근본 진단 채택)
- C5·C23·C44 정직성 (본 PM 23회 가설 누적 자인)
- C36 PD 명시 영역만 변경
- `feedback_pm_solution_proactive_proposal` (본 PM 표준 보유 한계 자인)
- `feedback_pm_excessive_decision_request` (옵션 명시·PM 권고)
- `feedback_pm_mcp_direct_implementation` (직접 read·yaml edit·Python 자동)
### 후속 영역
- BT5-Dev 몬스터 시스템 = 거의 완료 영역 (PD 명시 "일부 제외 정합")
- 좁은 영역 Enemy 잔여 = PD 추후 재요청 시 본 PM 후속
- 차기 영역 = PD 결정 영역 (다른 몬스터 종류·컨텐츠 등)

View File

@ -0,0 +1,228 @@
# BT5-Dev 세션 종결 인수인계서 (2026-05-08)
> **C40-2-1 표준 12 섹션** + **C40-2-2 다음 세션 첫 프롬프트 템플릿**
> **세션 영역**: BT5-Dev 발판 시스템 (BT63~BT75) + 몬스터 시스템 (BT76~BT109)
> **종결 사유**: PD 컨텍스트 한도 — 빠짐 없는 세션 공유 의무
---
## §1. 집행 요약
본 세션 (2026-05-08) 핵심 결과:
1. **발판 시스템 영구 마무리 (BT63~BT75)**: Drop-Through 패턴 + R2 (AutoForeground 분리) + Down+Jump + 가장자리 jitter 차단 + 시행착오 정리
2. **몬스터 sprite 교체 (BT76~BT79)**: M001 늑대 4 모션 (Idle·Run·Hurt·Death) + flipX 정합
3. **몬스터 자동 patrol (BT80~BT109)**: 23회+ 가설 누적 부정확 자인 후 PD 근본 진단 (Tilemap cell 기반 측정) 채택 영역 도달
4. **EnemyDeath 강화 (BT104/BT105)**: 제자리 사망 (body.simulated=false) + death 애니메이션 + 1초 Destroy
세션 종결 시점 EerieVillage `3dfc466` (BT109).
---
## §2. 완료 아카이브
본 세션 완료 영역 (PD 명시 정합):
- 발판 시스템 영구 채택
- 몬스터 sprite 교체 영구 채택
- 자동 patrol·낭떠러지 차단·밟기 처치 영역 (PD "일부 제외 정합")
---
## §3. 활성 PD 지시
| BT | 상태 | 영역 |
|----|------|------|
| **BT5-Dev** | **진행중** | 발판·몬스터 영역 PD 정합. 좁은 영역 Enemy 잔여 |
| BT12-Dev | 보류 | 본 세션 영역 X |
| BT7-Plan | 진행중 | 본 세션 영역 X |
| BT7-Dev | 진행중 | 본 세션 영역 X |
---
## §4. 원격 반영 상태
| 영역 | 최신 commit |
|------|-----|
| **BurningTimes** origin/main | 본 세션 종결 commit (대화로그·인수인계서 push 후) |
| **EerieVillage** origin/main | `3dfc466` (BT109 footPos cell 영역 정정) |
---
## §5. Inbox 잔류
PM 미처리 통신 0건.
---
## §6. 후속 안건 (다음 세션 영역)
### 6-A. BT5-Dev 좁은 영역 Enemy 잔여 (PD 재요청 시)
PD 보고 (BT109 후): "몬스터들 중 일부(이동 가능 영역이 좁은 경우)를 제외하면 내가 원하는대로 움직이고 있어"
= 좁은 영역 (시작 위치 ↔ 절벽 거리 매우 작음) Enemy 영역 패턴 부정합. 추후 PD 재요청 시 본 PM 후속.
### 6-B. 활성 PD 지시 3건 진행
- BT12-Dev (보류·차단 블로커 4종)
- BT7-Plan (카드 시스템 9개 문서 순차 개정)
- BT7-Dev (VS 순수형 자동 발동 Phase 1)
---
## §7. commit 인덱스 (본 세션)
### EerieVillage (BT76~BT109·34 commits)
```
3dfc466 BT109 footPos cell 정정·BT104 재배치 폐기
5dbde11 BT108 Debug.Log 진단
1137583 BT107 Tilemap cell 기반 측정 (PD 근본 진단)
589f6ad BT106 y 영역 영구 고정 (폐기)
70d5bc4 BT105 제자리 사망·margin 2.0m
517e9c5 BT104 EnemyDeath 강화·재배치
64d30a1 BT103 정확 측정
725c710 BT102 투명벽 폐기·y 텔레포트
0aead1e BT101 PD FG TilemapCollider 제거·인접 검사 PD FG X
ad7cb55 BT100 투명벽 size·PD FG 자체 검사 X
63cecf0 BT99 EnemyWall Layer 18·투명벽 자동 생성
b3cbbdb BT98 R1 방어 영역
e701829 BT97 Start 시점 측정 (AfterSceneLoad 후)
53e6a59 BT96 transform+body 동시 push
32012aa BT95 PatrolPath path 12건 제거·velocity 즉시
e453d1d BT94 phase cooldown 0.5초·시작 시 측정
585eca1 BT93 transform push 폐기·velocity.x 0
7b48475 BT92 stuckTimer 0.3·cliff 1.0·safe push
c7943b1 BT91 절벽·벽 즉시·waitTimer arrive만
ec05dc0 BT90 수평 Raycast 폐기·stuckTimer 50ms
a5b8753 BT89 즉시 벽 검출·1~3초 대기
eeb7ded BT88 phase+2 시작 위치 복귀 폐기
050b00e BT87 즉시 전환·순찰 거리 절반
8baa3a6 BT86 속도 2배·미세 밀림·절벽 즉시
007b4dd BT85 Enemy y+0.3·수평 Raycast 폐기
aad1b4e BT84 수평 Raycast 시작 외부
4603fdf BT83 수평 벽 검출 추가
4d83bbc BT82 PD FG TilemapCollider 부착 (BT101에서 폐기)
cbde93a BT81 벽 정지·낭떠러지
3591bd2 BT80 y+0.5·자동 patrol·절벽 검출
8df09a7 BT79 Enemy flipX 정합
aa0b188 BT78 M001 sprite fileID 정정
a11a52a BT77 .anim sprite reference 매핑
020a220 BT76 Enemy.prefab Sprite M001
2ebacf6 BT75 발판 시스템 영구 마무리
```
### BurningTimes (본 세션 commit — 후속)
- 대화로그 엔트리 2 (BT76~BT109)
- 본 인수인계서
---
## §8. 주요 파일 경로
### Unity 외부 영역 (E:/EerieVillage)
| 파일 | 본 세션 변경 |
|------|------|
| `Assets/Scripts/Mechanics/EnemyController.cs` | 자동 patrol 4-phase·Tilemap cell 측정·TriggerReverse·waitTimer·BT102 텔레포트 |
| `Assets/Scripts/Mechanics/AnimationController.cs` | BT79 flipX 정합 |
| `Assets/Scripts/Mechanics/GameOptimizer.cs` | PD FG 시각만·AutoForeground 신규·자동 분류·CliffWalls 정리 |
| `Assets/Scripts/Gameplay/EnemyDeath.cs` | enabled=false·body.simulated=false·death 애니메이션·1초 Destroy |
| `Assets/Prefabs/Enemy.prefab` | M001 sprite·y 1.832·maxSpeed 3.5 |
| `Assets/Scenes/Ingame.unity` | Enemy 인스턴스 16건 y+0.8·path 12건 제거 |
| `Assets/Character/Animations/Enemy*.anim` | M001 sprite reference (4종 모션) |
| `ProjectSettings/TagManager.asset` | Layer 18 EnemyWall |
### BurningTimes 영역
| 파일 | 본 세션 |
|------|------|
| `공유/대화로그/EerieVillage/2026-05-08.md` | 엔트리 1 (BT63~BT75) + 엔트리 2 (BT76~BT109) |
| `공유/조직공지/2026-05-08_BT5-Dev_세션종결인수인계.md` | 본 인수인계서 |
---
## §9. 세션 노하우 (다음 세션 영역 의무)
### 9-A. PD 근본 진단 우선
본 세션 23회+ 가설 누적 부정확 자인 영역. PD가 "절벽 체크 로직 잘못 = 근본 원인" 명시 시점 = BT107 Tilemap cell 기반 측정 재설계 채택 영역 도달. PD 명시 = 본 PM 가설보다 **항상 우선**.
### 9-B. Tilemap cell 기반 측정 (Raycast 영역 부정확)
Raycast 영역 = sprite·collider 영역에 따라 부정확 가능. **Tilemap.WorldToCell + HasTile 영역 = data 직접 사용** = 정확.
### 9-C. KinematicObject body.position vs transform.position
`transform.position` 직접 set 영역 ≠ `body.position` 영역. **transform + body 동시 set 의무** (KinematicObject 영역 정합).
### 9-D. velocity.x 직접 set은 1 frame만 영향
KinematicObject.FixedUpdate 영역 = `velocity.x = targetVelocity.x` 덮어씀. 즉시 효과 의무 시 = `control.move.x` 영역과 동시 set.
### 9-E. body.simulated = false (제자리 사망)
Rigidbody2D simulated=false 영역 = 물리 미참여·gravity X·충돌 X. 죽은 Enemy 영역 떨어짐 차단 정합.
### 9-F. footPos cell 영역 (발 vs 발판)
Capsule 발 영역 = bounds.min.y. 발 영역 자체 cell ≠ 발판 cell. **footPos.y = bounds.min.y - 0.5f** = 발판 cell 영역 정확.
### 9-G. AutoForeground vs PD Foreground 영역 분리
R2 영역 = 자동 분류 결과 = 별도 GameObject (AutoForeground·Grid 자식). PD가 직접 그린 시각만 Foreground 영역 보존. 시각 의도 ↔ 충돌 영역 분리.
### 9-H. Awake vs Start vs AfterSceneLoad
`RuntimeInitializeOnLoadMethod(AfterSceneLoad)` = Awake 후·Start 전. AutoForeground Tile data 활성 후 측정 의무 = **Start 시점**.
---
## §10. 다음 세션 첫 점검 항목
1. **EerieVillage origin/main 정합 검증**`3dfc466` (BT109)
2. **PD 시각 검증 결과 영역** — 좁은 영역 Enemy 잔여 패턴
3. **Editor.log `[Enemy@N]` direct read** — Start 시점 측정 결과 (BT108 Debug.Log)
4. **활성 PD 지시 4건 진행 상태**
---
## §11. 다음 세션 첫 프롬프트 템플릿 (PD 복사용)
```
[권고 1 — BT5-Dev 좁은 영역 Enemy 잔여]
"BT5-Dev 좁은 영역 Enemy 잔여 영역 진행. 본 PM이 Editor.log [Enemy@N] direct read해서 측정 결과 진단 + 정정."
[권고 2 — 활성 PD 지시 진행]
"#BT7-Plan 카드 시스템 9개 문서 순차 개정 착수." 또는
"#BT7-Dev VS 순수형 자동 발동 Phase 1 진행." 또는
"#BT12-Dev 스킬 시스템 설계 영역 차단 블로커 해소."
[현황 요약]
- BT5-Dev 발판·몬스터 영역 PD 정합 (좁은 영역 Enemy 잔여)
- EerieVillage 영역 commit `3dfc466` (BT109 footPos cell 정정)
- 본 PM 23회+ 가설 누적 자인 후 BT107 PD 근본 진단 채택 영역 도달
```
---
## §12. 종결 선언
본 세션 종결 시점:
- BT5-Dev 발판 시스템 영구 마무리 (BT63~BT75)
- BT5-Dev 몬스터 시스템 거의 완료 (BT76~BT109·좁은 영역 잔여)
- 본 PM 23회+ 가설 누적 자인 영역
- PD 근본 진단 (Tilemap cell 기반 측정) 채택 영역 도달
다음 세션 진입 권고:
1. 모든 Claude 인스턴스 종료
2. 바탕화면 `BurningTimes Claude` 바로가기 + 새 대화
3. main 워크트리 (`E:\BurningTimes\`) 진입 확증
4. §11 첫 프롬프트 템플릿 또는 PD 자유 결정
본 세션 종결.
---
**작성**: 총괄PM (2026-05-08)
**관련 규칙**: C40-2-1 인수인계서 12 섹션·C40-2-2 첫 프롬프트 템플릿
**근거**: PD 직접 지시 (2026-05-08) "남은 컨텍스트가 얼마 없으니 이 상태로 빠짐 없이 세션 공유"