# EerieVillage 대화로그 — 2026-05-08 --- ## 엔트리 1. BT5-Dev 발판 시스템 영구 마무리 (BT63~BT75) **시각**: 2026-05-08 **주체**: 총괄PM **영역**: BT5-Dev Phase 3 파일럿 (개발) — 발판 시스템 + 플레이어 조작 **유형**: PD 시각 검증 반복 + 본 PM 누적 가설 부정확 자인 후 PD 명시 영역 회귀 + 영구 채택 ### 배경 BT5-Dev 발판 시스템 영역 (BT47~BT74)은 PD 시각 검증 반복 + 본 PM 가설 17회 누적 부정확 자인 후 R2 (AutoForeground 분리) 채택으로 PD 의도 정합 영역 도달. 본 엔트리는 BT75 영구 마무리 commit으로 시행착오 주석 정리 + dead code 제거 + PD 명시 채택 영역 결과 보고. ### 영구 채택 영역 #### 1. GameOptimizer.cs — Foreground 분리 + 자동 분류 | 단계 | 동작 | |------|------| | Init | Layer Matrix Player(13) ↔ Enemy(14) 충돌 OFF | | SetupJumpThroughPlatforms | Level Tilemap = Layer 0 (지면·벽 영구 충돌) / 그 외 비-trigger Collider2D = Layer 16 | | PD Foreground | TilemapCollider2D `Object.Destroy` → 가림막 시각만 (PD 직접 그린 영역) | | AutoForeground (Grid 자식·신규) | Tilemap + TilemapRenderer + TilemapCollider2D + Layer 16 자동 부착 + transform.localPosition 동기화 | | 자동 분류 | Level → AutoForeground SetTile + Sprite 강제 | | 제외 조건 | colliderType=None (tree·plant·fence·house) / 이름 prefix `TileGround` (지면·벽) | | 분류 조건 | `worldY ≥ playerY+1.5` 또는 작은 공중 발판 (가로≤8 + 위·아래 빈) | #### 2. PlayerController.cs — Drop-Through 패턴 + 입력 처리 | 영역 | 동작 | |------|------| | `JUMP_THROUGH_LAYER = 16` | AutoForeground·Foreground 통과 대상 Layer | | `dropThroughTimer (0.3초)` | Down + Jump 입력 시 Layer 16 mask 강제 OFF | | `jumpAscentTimer (0.4초)` | 점프 ascending·정점 영역 mask 강제 OFF (jitter 차단) | | `dropThroughJump` | Drop-Through 점프 시 `velocity.y = -0.5f` (즉시 낙하·IsGrounded=false 확보) | | `UpdateContactFilterForDropThrough` | ascending·정점·Timer 활성 시 mask OFF / footHit 3점 Raycast (좌·중·우) standingOnPlatform 안정 검출 | | 밀림 강제 Drop-Through | 점프·낙하 중 `velocity.y > -1.5` + 수평 입력 + 발판 가장자리 일시 검출 → `dropThroughTimer` 강제 활성 | | Down + Jump 발동 조건 | 발판(Layer 16) 위 footHit 검출 시만 (지면 위 = 일반 점프) | #### 3. KinematicObject.cs — 공중 hit X·Y 분리 | 영역 | 동작 | |------|------| | 공중 hit (`!IsGrounded`) | X 이동 hit (앞 벽) = `velocity.x = 0`만 (점프 속도 보존) / Y 이동 hit (천장) = `velocity.x` + `velocity.y = Mathf.Min(velocity.y, 0)` | ### 플레이어 조작 시스템 동작 카탈로그 | 입력 | 위치 | 결과 | |------|------|------| | Jump only | 어디서든 | 일반 점프 (위로) | | Jump + 수평 이동 | 발판 옆 | 정점 영역 mask 강제 OFF → 깔끔 통과 (jitter 차단) | | Jump + 전진 (앞 벽) | 지면 | velocity.x=0 + velocity.y 보존 → 위로만 점프 | | Down + Jump | 발판 위 | Drop-Through (발판 통과 + 점프 모션 + 자연 낙하) | | Down + Jump | 지면 위 | 일반 점프 (위로) | | 점프 ascending | 발판 영역 | mask OFF → 통과 | | 점프 descending | 발판 위 | footHit 3점 검출 → standingOnPlatform=true → 착지 | ### Tile asset 분류 카탈로그 (PD 명시 정합) | 분류 | Tile asset | 동작 | |------|-----------|------| | 공중 발판 (자동 분류·Drop-Through) | TileFloatingLeftEdge·RightEdge·TileMiddle | Layer 16 + Sprite Collider | | 배경·건물 (자동 분류·Drop-Through) | ShortBuilding·TallBuilding·MidgroundFiller·cloud·hillside·midground·mountains | Layer 16 + Sprite Collider | | 지면·벽 (Level 잔존·영구 충돌) | TileGround·TileGroundDark·TileGroundTop | Layer 0 + Tile asset Grid Collider | | 배경 (None Tile·자체 통과) | tree·plant·fence·house | Layer 0 + Tile asset None Collider | ### 시행착오 영역 (정리·git history 영구 보존) BT49~BT65 영역 누적 변경 17회 = 본 PM 가설 부정확 + PD 시각 검증 반복. R2 (BT66) 채택 후 영구 마무리 도달. 시행착오 commit 영역 git history 그대로 보존 — 본 BT75 = 시행착오 주석·dead code 정리만. 핵심 PD 명시 흐름: 1. "Foreground = Grid → Foreground 배경 의도" (PD 정정 — 본 PM 근본 오해 자인) 2. "발판은 위에 설 수 있어야 해" (PD 의도 명시) 3. "이전 버전처럼 발판 통과·점프 가능" (BT47 정합 회귀 명시) 4. "BT48로 복귀해봐" (commit hash 직접 명시) 5. "BT63 = 기본 상태" (PD 정합 인식) 6. "R2로 진행해줘" (AutoForeground 분리 채택) ### 잔여 영역 (PD 명시 — 추후 필요 시 재요청) - BT74 밀림 강제 Drop-Through 영역 일부 잔존 가능 (PD 시각: "바로 떨구는 것 적용 X 느낌"). PD 명시 = "넘어가고 플레이어 조작 시스템 완성". ### 산출물 - `Assets/Scripts/Mechanics/GameOptimizer.cs` (Write 전체 재작성·시행착오 주석 정리) - `Assets/Scripts/Mechanics/PlayerController.cs` (Edit 부분 정리·Drop-Through 패턴 영구) - `Assets/Scripts/Mechanics/KinematicObject.cs` (Edit 부분 정리·X·Y 분리 영구) - EerieVillage commit `2ebacf6` (BT75) — 발판 시스템 영구 마무리 ### 관련 규칙·자산 - **C2 근본 해결** — BT75 시행착오 영역 정리·핵심 영역 보존 - **C5·C23·C44** — 본 PM 17회 가설 부정확 누적 자인 + PD 명시 영역 직접 따름 - **C36** — PD 명시 승인 영역만 변경 - **C18** — 양 git push 정합 (EerieVillage `2ebacf6` + BurningTimes 본 commit) - `feedback_pm_solution_proactive_proposal` — 본 PM 표준 패턴 보유 한계 자인 후 PD 직접 명시 의무 - `feedback_pm_excessive_decision_request` — 옵션 명시 + PM 권고 + PD 결정 영역 - `feedback_pm_mcp_direct_implementation` — 본 PM Editor.log·Scene yaml·git diff direct read 능동 진단 ### 후속 영역 - BT5-Dev 발판 시스템 = **완료 영역**. 활성 PD 지시 로그 BT5-Dev 영역 갱신 의무. - 잔여 영역 (BT74 밀림 일부 잔존) = PD 명시 = 추후 필요 시 재요청 영역. - 차기 BT5-Dev 영역 = 다른 메카닉 또는 컨텐츠 영역 (PD 결정).