diff --git a/공유/대화로그/EerieVillage/2026-05-08.md b/공유/대화로그/EerieVillage/2026-05-08.md index 51e4280..ae726b2 100644 --- a/공유/대화로그/EerieVillage/2026-05-08.md +++ b/공유/대화로그/EerieVillage/2026-05-08.md @@ -215,3 +215,89 @@ PD 시각 검증 반복 영역에서 본 PM 측정·검출·재배치 영역 다 - BT5-Dev 몬스터 시스템 = 거의 완료 영역 (PD 명시 "일부 제외 정합") - 좁은 영역 Enemy 잔여 = PD 추후 재요청 시 본 PM 후속 - 차기 영역 = PD 결정 영역 (다른 몬스터 종류·컨텐츠 등) + +--- + +## 엔트리 3. BT5-Dev #110 — 일부 몬스터 이동 X 정정 + Foreground 통과 X 추가 진단 의뢰 + +**시각**: 2026-05-08 후반 +**주체**: 총괄PM +**영역**: BT5-Dev Phase 3 파일럿 (개발) — 게임성 개선 2건 PD 지시 +**유형**: PD 시각 검증 1차 후 본 PM Editor.log·Scene yaml direct read 진단 + #2 즉시 정정 + #1 추가 정보 의뢰 + +### PD 직접 지시 (2026-05-08) +1. 이전 세션에서 통과 가능하게 수정했던 Foreground를 지나갈 수 없는 원인 찾아 정정 +2. 일부 몬스터가 이동하지 않는 원인 찾아 정정 + +PD 결정: (ii) #2 즉시 정정 + #1 추가 진단 동시 진행. + +### #2 진단·정정 — Editor.log 직접 read 확정 + +Editor.log `[Enemy@N]` 16건 영역 직접 read: + +| Enemy startY | footPos.y | startTm | maxR/maxL | +|---|---|---|---| +| -3.32 | -5.36 | NULL → 다른 cell HasTile | 3.81 / 1.59 | +| -4.47 | -1.84 | NULL | **0 / 0** | +| -0.95 | -5.74 | NULL | **0 / 0** | +| -6.46 | -2.15 | NULL | **0 / 0** | +| -1.26 | -5.81 | NULL | **0 / 0** | +| 0.08 | -7.35 | NULL | **0 / 0** | +| -5.71 | -7.39 | NULL | **0 / 0** | +| -6.50 | -5.81 | NULL | **0 / 0** | +| -4.92 | -7.35 | NULL | **0 / 0** | +| 4.31 | 3.42 | NULL | **0 / 0** | + +**근본 원인**: `MeasureSafeWalkDistance` (BT109) 영역 `footPos.y = bounds.min.y - 0.5f` 단일 산식이 Enemy 인스턴스마다 collider bounds·sprite bounds·transform.y 영역 변동 대응 X → footPos cell 발판 cell 영역 미정합 → `startTm = NULL` → `maxR/maxL = 0` → patrol 거리 0 → arrive 즉시 → 무한 정지. + +**정정 (BT110)**: 다단 fallback 채택 +- sprite·collider·transform 3 영역 각 후보 +- 각 후보 × 다중 offset (-0.1·-0.3·-0.5·-0.7·-1.0) = 15 후보 +- 첫 HasTile cell 채택 +- Debug.Log 강화 (startY·colliderFoot·spriteFoot·chosenFootY) + +EerieVillage commit `19e00d3` (BT110) push 완료. + +### #1 진단 — 본 PM 한계 도달·PD 추가 정보 의뢰 + +**확증 사실**: +- Scene yaml `Foreground` GameObject 1건 단일 — components = Transform + Tilemap + TilemapRenderer (**Collider2D·TilemapCollider2D·CompositeCollider2D 모두 부재**) +- `[GameOptimizer] AutoForeground moved=88 (high=9 small=79 threshold=2.00) / Layer16 applied=1` — 정상 호출 +- ProjectSettings/Physics2DSettings.asset Layer matrix = `ffffff...ff` (모든 Layer 충돌 ON 기본) +- KinematicObject `body.Cast` + ContactFilter2D struct mutation 정합 +- PlayerController `UpdateContactFilterForDropThrough` 매 frame 갱신 + `JumpState.PrepareToJump` 시점 mask OFF 강제 정합 + +**가설 5건 누적 (직접 확증 X)**: +1. AutoForeground 발판 영역 자체 충돌 (정상이지만 PD 의도와 다름?) +2. Level 잔존 Tile (임계값 미달 + 작은 공중 발판 미해당) = Layer 0 충돌 ON +3. Drop-Through mask OFF/ON 동기 영역 frame 정합 X +4. PD가 Editor 직접 추가/이동한 Tile 영역 자동 분류 미정합 +5. AutoForeground 분류 Tile이 PD 통과 의도 영역과 다름 + +**`feedback_pm_root_diagnosis_priority` 발동**: 본 PM 가설 5건 누적 + 직접 확증 한계 = PD 추가 정보 능동 수령 의무. + +**PD 추가 정보 의뢰**: +- (a) 통과 X 발생 정확 위치 (Scene 좌표 또는 화면 영상) +- (b) 통과 X 시점 입력 (점프 위로 통과 X / 옆으로 이동 X / Drop-Through Down+Jump X) +- (c) Play 시점 Editor.log full export 또는 어떤 발판이 막는지 시각 묘사 + +### 산출물 + +- `Assets/Scripts/Mechanics/EnemyController.cs` (MeasureSafeWalkDistance 다단 fallback) +- `공유/개발팀_백업/EerieVillage/EnemyController.cs.bak_20260508_1700.cs` +- EerieVillage commit `19e00d3` (BT110) push 완료 +- 매니페스트 `2026-05-08_BT5Dev110` archived + +### 관련 규칙·자산 + +- C2 근본 해결 (footPos 단일 산식 폐기·다단 fallback) +- C5·C44 정직성 (Editor.log 직접 read 실측 + 본 PM 진단 한계 자인) +- `feedback_pm_root_diagnosis_priority` (가설 5건 누적 후 PD 추가 정보 능동 수령 — 본 세션 신설 헌법급 feedback 첫 적용) +- `feedback_pm_solution_proactive_proposal` (다단 fallback 표준 패턴 능동 검토) +- `feedback_pm_mcp_direct_implementation` (Editor.log·Scene yaml·ProjectSettings 직접 read) + +### 후속 영역 + +- **#2 검증 대기**: PD Editor Refresh + Play → `[Enemy@N]` log 영역 chosenFootY·startTm 영역 정합 검증 → 16건 maxR/maxL 정합 도달 확증 +- **#1 PD 추가 정보 수령**: (a/b/c) 1~2건 후 본 PM 진단 재개·정정 분량 결정 +- **잔여 BT12-Dev / BT7-Dev / BT7-Plan**: 본 영역 처리 후 PD 결정