6.2 KiB
6.2 KiB
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 명시 흐름:
- "Foreground = Grid → Foreground 배경 의도" (PD 정정 — 본 PM 근본 오해 자인)
- "발판은 위에 설 수 있어야 해" (PD 의도 명시)
- "이전 버전처럼 발판 통과·점프 가능" (BT47 정합 회귀 명시)
- "BT48로 복귀해봐" (commit hash 직접 명시)
- "BT63 = 기본 상태" (PD 정합 인식)
- "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 결정).