BurningTimesAi/공유/대화로그/EerieVillage/2026-05-07.md

25 KiB
Raw Blame History

EerieVillage 대화로그 — 2026-05-07


엔트리 1. BT5-Dev Hero1 캐릭터 교체 + 캐릭터 리소스 규칙 SOT 신설 (PD 결정 5건 A안 일괄 채택)

시각: 2026-05-07 12:34 ~ 주체: 총괄PM 영역: BT5-Dev 개발팀 단일 영역 유형: PD 직접 신규 지시 수령 + 매니페스트 등록 + pm-auditor 사전 감사 + SOT 신설 + 개발팀장 Opus Phase 1 설계 위임

배경

PD 직접 결정 (2026-05-07): 활성 PD 지시 4건 중 BT12-Dev·BT7-Plan·BT7-Dev 보류 + BT5-Dev 우선 진행 채택. 신규 지시 2건:

PD 원문 1: "기존에 지시한 layerTestGirl 은 폐기하고, EerieVillage\Assets\Character\Sprites\Hero1 경로에 있는 캐릭터 스프라이트를 사용하도록 교체해줘."

PD 원문 2: 캐릭터 리소스 규칙 7종 모션 직접 명세 (C1_<motion><frame> 형식, attack·combatidle·idle·hit·jump·resurrection·run + 상태 전환 룰: idle⇄combatidle 5초 타이머·hit 인터럽트 보호)

본 PM 실측 결과 정합성 이슈 5건 발견 → PD에게 보고 + 결정 요청.

PD 원문 3 (이슈 5건 결정): "일괄 진행해."

= 권고안 A 일괄 채택 해석.

PD 결정 (5건 일괄 채택)

이슈 결정 (A안) 근거
1. 파일명 공백 (combat idlecombatidle) A — 파일 rename Unity asset 공백 미허용 + 파싱 안정성
2. death 자산 2종 처리 A — 모션 8종 확장 death + resurrection 시퀀스 정합
3. jump 1프레임 A — 단일 프레임 정합 채택 자산 정합 + 간소함
4. 기존 Player*.png 9종 A — _archive/ 백업 + Hero1 단독 사용 롤백 안전망
5. Land·Spawn·Victory 모션 A — 미사용 (jump 자세 유지·idle/resurrection 진입·미구현) Hero1 7종으로 충분

본 PM 집행 결과 (본 응답 시점)

단계 처리 결과
1. pm-auditor 사전 감사 (C35-9) Task 호출 통과 (Critical 0·Major 0·Minor 1·Improvement 2)
2. C37-1 중복 감지 Grep 캐릭터·리소스·네이밍 규칙 SOT 검색 중복 0건
3. 매니페스트 등록 2026-05-07_123431 target_files 3건 차단 해제
4. PD 지시 SOT 갱신 개발팀_PD_지시_로그.md BT5-Dev 활성 지시 5단계 추가
5. 캐릭터 리소스 규칙 SOT 신설 프로젝트/EerieVillage/개발/spec/캐릭터_리소스_규칙_v1.md 영구 SOT
6. 본 대화로그 엔트리 작성 공유/대화로그/EerieVillage/2026-05-07.md 신설
7. 개발팀장 Opus Phase 1 설계 위임 C49 1단계 본 응답 후속 단계

결정·근거·영향 (C32)

결정 — PD 결정 5건 A안 일괄 채택 + C49 표준 프로세스 진행

근거:

  • 권고 A안은 모두 자산 정합·롤백 안전·관행 정합 우선 — PD "일괄 진행" = 본 PM 권고 신뢰 표명
  • C49 표준 프로세스 (팀장 Opus 설계 → 팀원 Sonnet 작업 → 팀장 Opus 검증) BT12-Dev에 이어 BT5-Dev 영역 시범 적용
  • C50 토큰 추정 ~120-205K 사전 보고 완료 (PD 묵시 승인)

영향:

  • 캐릭터 리소스 규칙 v1 = 영구 SOT (향후 캐릭터 추가 시 표준 — C2·C3... 자동 적용)
  • Player.controller 전면 재설계 + Health.cs 부활 시스템 추가 = 회귀 범위 ↑ (개발팀장 Phase 1 설계 단계에서 영향 분석 의무)
  • BT7-Plan VS 순수형 자동 발동(공격 버튼 제거)과 정합 영역 확인 필요 — PlayerAttackTicker.cs 영역 변경 없음 정합

산출물 (본 응답 시점)

  • 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md BT5-Dev 활성 지시 갱신 (5단계 Hero1 적용 추가)
  • 프로젝트/EerieVillage/개발/spec/캐릭터_리소스_규칙_v1.md (신설 — 영구 SOT)
  • 공유/대화로그/EerieVillage/2026-05-07.md 본 엔트리 (신설)
  • .claude/manifest/active/2026-05-07_123431.md (매니페스트)

다음 단계 (본 응답 후)

  • 개발팀장 Opus Phase 1 설계 위임 (Task 호출) — Hero1 meta 재작성 설계·Animator State Machine 재설계·Health.cs hit 인터럽트 보호·resurrection 시스템 추가·기각안 5건 이상

기각안 (C32 필수)

기각안 1 — PD 결정 5건 일부만 채택 (예: 이슈 1 A·이슈 2 B 등 혼합)

  • 사유: PD "일괄 진행" 명시 = 본 PM 권고 A 신뢰 표명. 일부만 채택은 PD 의도 반영 부정합

기각안 2 — 본 PM 직접 Phase 1·2 모두 처리 (개발팀장 위임 없이)

  • 사유: C48 3자문 통과 → C49 표준 프로세스 정합. Animator State Machine 재설계 + Health.cs 부활 시스템 = 개발팀 전문 영역. PM 직접 처리 시 C49 위반

기각안 3 — 캐릭터 리소스 규칙 SOT 작성 후순위 (개발팀장이 Phase 1 설계 시 작성)

  • 사유: SOT는 PD 명세 직접 반영 영역 = PM 영역. 개발팀장 위임 시 C36 PM 자율 판단 범위 상한 위배 위험

관련 규칙·자산

  • C5·C13·C32·C35·C36·C37·C39·C42·C44·C48·C49·C50·P19·P32·P33 정합
  • 매니페스트 SOT (나) 2026-05-06 채택 + 본 등록 = 정합
  • pm-auditor 의무 호출 = C35-9 정합
  • C49 표준 프로세스 = BT12-Dev 시범 후 BT5-Dev 2회차 적용

엔트리 2. BT5-Dev Hero1 Phase 2 클라이언트팀 적용 (W1~W12 일괄 집행)

시각: 2026-05-07 12:53 ~ 주체: 클라이언트팀 (Sonnet — C49 2단계 적용) 영역: BT5-Dev Unity 클라이언트 단독 영역 유형: Phase 1 설계(개발팀장 Opus) 위임 수행 + W1~W12 일괄 집행

집행 결과 (W1~W12)

W 내용 결과
W1 combat idle01~04 PNG+meta rename → combatidle 4건 rename + meta name 필드 갱신
W2 AnimationClip 8종 신설/재작성 5종 재작성 + 3종 신설 + meta 3건 신설
W3 Player.controller 전면 재작성 (8 State + 8 Param + Transition)
W4 HitInterruptGuard.cs 신설 StateMachineBehaviour + meta
W5 PlayerStateTimer.cs 신설 MonoBehaviour + meta
W6 Health.cs 확장 (Resurrect + 이벤트 3종 + Decrement hit/dead + Die dead)
W7 PlayerAttack.cs 1행 추가 (NotifyAttackFired)
W8 Player.prefab (m_Sprite Hero1 idle01 + m_Color white + PlayerStateTimer 부착 + maxHearts 직렬화)
W9 기존 sprite 9종 → _archive/ 이동 9 PNG + 9 meta
W10 EditMode 테스트 13→19건 (12번 개정 + 신규 6건)
W11 PlayerController 실측 — combatidle Bool/jump = PlayerStateTimer/grounded 조건으로 처리 확인 변경 없음 정합
W12 최종 정합 검증 (8 State 전수 OK + 8 Param 전수 OK + 폐기 4 State 부재 OK + prefab 정합 OK)

C6-1 백업

  • timestamp: 20260507_1253
  • 백업 9종: Player.controller·PlayerIdle.anim·PlayerRun.anim·PlayerAttack.anim·PlayerJump.anim·PlayerDeath.anim·Player.prefab·Health.cs·PlayerAttackTests.cs
  • _archive/ 이동 9종 = 백업 자체 (guid 보존)

변경 파일 (Unity 영역 — E:/EerieVillage)

재작성: Assets/Character/Animations/PlayerIdle.anim·PlayerRun.anim·PlayerAttack.anim·PlayerJump.anim·PlayerDeath.anim·Player.controller 갱신: Assets/Scripts/Mechanics/Health.cs·Assets/Scripts/Gameplay/PlayerAttack.cs·Assets/Prefabs/Player.prefab·Assets/Tests/Editor/PlayerAttackTests.cs meta 갱신 (W1): Assets/Character/Sprites/Hero1/C1_combatidle01~04.png.meta

신설 파일

  • Assets/Character/Animations/PlayerCombatIdle.anim + .meta
  • Assets/Character/Animations/PlayerHit.anim + .meta
  • Assets/Character/Animations/PlayerResurrection.anim + .meta
  • Assets/Scripts/Mechanics/HitInterruptGuard.cs + .meta
  • Assets/Scripts/Mechanics/PlayerStateTimer.cs + .meta
  • Assets/Character/Sprites/_archive/ 폴더 + .meta

Phase 1 설계 정합

  • 8 State: Player-Idle·Run·Attack·Jump·Death·CombatIdle·Hit·Resurrection
  • 8 Parameter: velocityX·velocityY·grounded·attack·dead·hit·combatidle·resurrect
  • 폐기 4 State 부재: Player-Hurt·Land·Spawn·Victory
  • BT7-Plan 보존: PlayerAttackTicker 변경 0 · Health 기존 API 전부 보존
  • BT12-Dev 미연관: ISkillRuntime 4종 주석 명시

매니페스트

  • plan_id: 2026-05-07_125257
  • target_files: 공유/대화로그/EerieVillage/2026-05-07.md

C48 3자문

  • Phase 3 검증 Task 호출 = 0회 (단계 분리 의무 준수)

회귀 위험

  • Player.controller 전면 재작성 → Phase 3 개발팀장 YAML 정합 재검증 필요
  • Health.cs Animator 의존 신규 추가 (GetComponent<Animator>()) — Enemy Health에도 동일 컴포넌트 구조이면 Enemy hit 발동 가능성 (Phase 3 영역)

토큰 사용량 추정

~180K (C50 사전 승인 범위 200K 이내)


엔트리 3. BT5-Dev Hero1 Phase 3 개발팀장 검증 (C49 3단계)

시각: 2026-05-07 13:13 ~ 주체: 개발팀장 (Opus — C49 3단계 검증) 영역: Phase 2 적용분(엔트리 2) §A~§J 정합 실측 검증 유형: Unity 자산 직접 grep + Phase 1 설계 정합 + 회귀 위험 2건 점검 (수정 영역 0)

§A~§J 검증 결과 등급

§ 검증 영역 등급 핵심 결과
A Player.controller YAML 정합 Pass 8 State + 8 Param + AnyState→Hit + Player-Hit 부착 + Death→Resurrection→Idle Transition 모두 정합. 폐기 4 State 부재 확증. AnyState→Hit m_CanTransitionToSelf: 0 확증
B AnimationClip 8종 정합 Pass 8 anim 모두 m_PPtrCurves Hero1 sprite 첫 프레임 guid 정합 (idle01·run01·attack01·combatidle01·jump01·hit01·resurrection01·death01 일치). LoopTime 정합 (Idle/Run/CombatIdle = 1, 나머지 5종 = 0). 신규 anim 3종 guid 충돌 0
C Health.cs 확장 검증 Pass 기존 API 전수 보존 (maxHearts·QuartersPerHeart·IncreaseMaxHearts·Heal·Decrement(int)·i-frame 0.6s) + 신규 4종 (Resurrect·이벤트 3종) + Animator null-safe 처리 (if (animator != null)) + BT12-Dev 미연관 주석 명시
D 신규 컴포넌트 2종 Pass HitInterruptGuard.cs StateMachineBehaviour OnStateEnter ResetTrigger("hit") 정합. PlayerStateTimer.cs MonoBehaviour 5초 타이머 + RequireComponent(PlayerController·Animator) + NotifyAttackFired 외부 API 정합
E EditMode 테스트 19건 Pass 12번 개정(Hero1Idle01Guid 78c7da0e2fc366543ae4ad5e3ceb1b94) + 신규 6건(Player_Has_8_Motion_States·Player_Controller_Has_New_Parameters·Player_Hit_Interrupts_Protected·Player_CombatIdle_Timer_Component_Attached·Player_Death_To_Resurrection_Sequence·Health_Has_Resurrect_Method_And_Events) 모두 정합
F Player.prefab 정합 Pass m_Sprite guid 78c7da0e... = Hero1 idle01. m_Color = white. PlayerStateTimer 부착(guid e5f6789012345678abcdef0102030405) + combatIdleDuration: 5. maxHearts:1·maxHP:4 직렬화
G Hero1 폴더 + _archive Pass combat idle 4 PNG combatidle01~04 rename 확증 (공백 제거). 기존 Player*.png 9 + meta 9 = 18 파일 _archive/ 이동 확증. 폐기 4 anim guid (Hurt·Land·Spawn·Victory) Player.controller 참조 0건
H BT7-Plan/BT12-Dev 정합 Pass PlayerAttackTicker 변경 0 ([RequireComponent(PlayerController)] 보존). Health 기존 API 보존. PlayerAttack.cs:42-44 1행 NotifyAttackFired 추가만. ISkillRuntime 미연관 주석 명시
I C6-1 백업 9종 + _archive 9종 Pass timestamp 20260507_1253 통일 9건 (Player.controller·5 anim·Player.prefab·Health.cs·PlayerAttackTests.cs). _archive 9 PNG + 9 meta 정합
J 회귀 위험 2건 점검 결과 Major 1번 controller YAML 정합 = 완전 통과. 2번 Health Animator 의존: Enemy.controller에 hit·dead·resurrect Parameter 미존재 → Unity는 미존재 Parameter SetTrigger/SetBool 호출 시 logical no-op (silent ignore). 게임 동작 영향 0 (Enemy 사망 체인은 별 channel Schedule<EnemyDeath> AttackHitbox.cs:75). 단 Editor Console warning spam 가능성 (Unity 버전 의존)

Phase 4 진입 가능 여부

조건부 통과 (Major 1건 — 후속 권고, 차단 영역 0건)

  • Critical 0건 — Phase 4 진입 차단 영역 없음
  • Major 1건 — 회귀 위험 2번 영역. Enemy Animator parameter warning spam 가능성. 게임 동작 영향 0이므로 commit/push 진행 가능. PD Play 검증 시 Console warning 모니터링 권고

회귀 위험 2건 정밀 점검 결과

1번 Player.controller YAML 정합 = 완전 통과

  • 8 State 전수 존재 + 폐기 4 State 부재 + AnyState→Hit Transition 존재 + HitInterruptGuard MonoBehaviour 부착(guid 일치 정합) + AnyState→Hit m_CanTransitionToSelf: 0 + Death→Resurrection→Idle 시퀀스 정합 + 모든 신규 fileID/guid 충돌 0건

2번 Health.cs Animator 의존 — Enemy 영향

  • Enemy.prefab은 Animator + Enemy.controller 보유
  • Enemy.controller Parameter = velocityX·velocityY·hurt·death·grounded (5종) — Player와 분리
  • hit/dead/resurrect Parameter Enemy.controller에 미존재
  • Health.Decrement → animator.SetTrigger("hit") 호출 시 Unity Animator는 silent ignore (예외 0)
  • Enemy 사망 체인은 별 channel(AttackHitbox.cs:75 Schedule<EnemyDeath>)로 분리 — 영향 0
  • Major 잠재 리스크: Editor Console에 매 데미지 1회 Parameter 'hit' does not exist warning 가능 (Unity 버전 의존). 게임 동작 영향 0. PD Play 검증 시 Console 모니터링 권고

검증 산출물

  • 본 엔트리 (대화로그 추가)
  • 매니페스트: 2026-05-07_131323 (target_files: 본 대화로그)

검증 토큰 사용량

~25K (C50 추정 20-30K 범위)

Phase 4 후속 영역 (PM)

  1. commit (개발팀장 서명 + Phase 1·2·3 산출물 + 본 검증 결과)
  2. push (main)
  3. PD Play 검증 인계 (검증 기대 동작 10건은 Phase 1 §14-3 영역)
  4. (선택) Major 후속 — Enemy Health Animator parameter warning 차단 영역 별건 검토 (C2 근원적 해결 권고: Player 전용 Animator-aware Health 분리 또는 Enemy.controller hit/dead/resurrect Parameter 추가 또는 Health.cs Parameter 존재 가드)

엔트리 4. CS0101 사건 + D 옵션 근본 해결 (Unity 백업 28 파일 일괄 삭제 + feedback 2종 등록)

시각: 2026-05-07 13:25 ~ 주체: 총괄PM 영역: BT5-Dev 후속 정정 + 조직 학습 자산 영구 보존 유형: PD Editor 실행 시 CS0101 발견 → 본 PM A→D 옵션 분석 → PD "D 옵션 + 결정 요청 패턴 자체 폐기" 직접 지시

배경

Phase 3 검증 완료 + commit 13976e2 push 후 PD Unity Editor 실행:

PD 원문 1: "에디터를 실행하니 아래와 같은 에러가 발생중이야. 당장 수정해. Assets\Tests\Editor\PlayerAttackTests.cs.bak_20260507_1253.cs(15,14): error CS0101..."

본 PM 즉시 4 파일 처리 (.cs.bak_*.cs.txt) 후 잔존 14 파일 처리 옵션 A/B/C 나열 + PD 결정 요청.

PD 원문 2: "백업 파일은 왜 만드는거지?"

= 백업 자체의 정당성 의문. 본 PM 답변에서 C6-1 적용 영역 오해 자인 + D 옵션(전수 삭제 + 명세 정정) 권고.

PD 원문 3: "d 옵션으로 진행하고, 앞으로는 내게 이렇게 불필요한 결정을 요구하지 마. 먼저 생각하고 최적의 결과만 간결하게 보고하도록 해."

= D 옵션 채택 + 본 PM 보고 패턴 자체 헌법급 feedback (옵션 나열·결정 요청 폐기·즉시 진행).

PD 결정 (2건)

  1. D 옵션 진행 — 백업 전수 삭제 + Phase 1 §12 정정 + feedback 2종 등록
  2. 헌법급 PM feedback — 분석 명확 시 옵션 나열 금지·즉시 진행·간결 보고

본 PM 처리 결과

단계 처리
1. Unity bak_2026* 일괄 삭제 28 파일 (3 회차: 0423·0424·0507) 전수 (Count=0 검증)
2. feedback 메모리 2종 등록 feedback_pm_excessive_decision_request.md (헌법급) + feedback_unity_backup_compile_pollution.md (organizational)
3. MEMORY.md 인덱스 2 라인 추가 feedback 2종 매핑
4. Phase 1 §12 정정 백업 12종 → 0건 + git checkout 롤백 절차 + C6-1 적용 영역 명문화
5. PD 지시 SOT 갱신 BT5-Dev 6단계 (CS0101 정정 + D 옵션) 추가
6. commit + push (본 응답 후속)

결정·근거 (C32)

결정 1 — D 옵션 (백업 전수 삭제 + 명세 정정 + feedback 등록)

근거 (C2 근본 해결): 백업 파일 = git 영역과 100% 중복 (D:/EerieVillage GitAutoSync 추적). .cs.bak_*.cs = Unity 컴파일 대상 → CS0101 직접 원인. C6-1 본래 = git 미추적 영역만 (xlsm·CSV·DB). 롤백 = git checkout 1줄.

결정 2 — 헌법급 PM feedback (옵션 나열·결정 요청 폐기)

근거: 본 사건 PM 옵션 A/B/C 나열 → PD D 옵션 직접 명시 = PM 사고 회피 확증. PD 시간 낭비 + C36 자율 판단 영역 침해. C29·C36·C45·C47 정합. 단순 운영(파일·백업·정리·rename) = PM 즉시 처리. PD 가치 판단(게임 디자인·비즈니스)만 결정 요청.

산출물 (본 응답 시점)

  • memory/org/feedback_pm_excessive_decision_request.md (헌법급, 신설)
  • memory/org/feedback_unity_backup_compile_pollution.md (organizational, 신설)
  • memory/org/MEMORY.md 인덱스 2 라인 추가
  • 프로젝트/EerieVillage/개발/06_Hero1_적용_설계.md §12 전면 재작성
  • 공유/대화로그/EerieVillage/2026-05-07.md 본 엔트리 추가
  • 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md BT5-Dev 활성 지시 갱신
  • .claude/manifest/active/2026-05-07_133153.md + 2026-05-07_133240_mem.md (매니페스트 2건)
  • Unity 영역 변경: bak_2026* 28 파일 전수 삭제 (3 회차: 0423·0424·0507)

기각안

  • A 외부 디렉토리 이동 — 백업 자체 불요 영역. 위치만 옮긴 = 노이즈 잔존
  • B 보존 — 잔존 누적 = git 중복 + Unity import 노이즈
  • C 단순 일괄 삭제 (명세 정정·feedback 없이) — 동일 사건 재발 차단 효과 0

관련 규칙·자산

  • C2 근본 해결 (proxy ≠ 근본)
  • C6 데이터 보호 적용 영역 명확화
  • C29·C36·C45·C47 (PM 자율 + 능동 추론 + 옵션 나열 폐기)
  • 매니페스트 SOT (나) 정합
  • 별건: feedback_backup_filename_format_violation (2026-04-19, 백업 포맷 영역 — 본 사건은 백업 영역 자체)

엔트리 5. Hero1 facing 반전 + Collider2D 시각 정합 (PM 즉시 처리)

시각: 2026-05-07 14:17 ~ 주체: 총괄PM (직접 처리 — feedback_pm_excessive_decision_request 첫 적용) 영역: BT5-Dev Unity 클라이언트 영역 유형: PD 지시 → 실측 → PM 즉시 정정 (옵션 나열·결정 요청 없이 진행)

배경

PD 원문: "실제 게임에서는 캐릭터 방향을 반전시켜야 해. 물리적인 충돌 판정 영역을 캐릭터 이미지에 맞춰서 조정해줘."

실측

영역 결과
PlayerController.cs line 153~159 좌우 입력 시 spriteRenderer.flipX + facing 처리 코드 존재
AnimationController.cs line 65~68 동일 facing 처리 — Player.prefab 부착 0건 = dead code
Animations/*.anim 8종 m_FlipX curve 0건 (Animator 덮어쓰기 영역 외)
Hero1 idle01 시각 우측 향한 한복 검사 — 갓·검·발 시각 명확
Hero1 PPU 300 (sprite 430 × 430 → 월드 1.43 × 1.43)
기존 BoxCollider2D Size 0.32 × 0.54 · Offset (-0.09, -0.14) — 이전 32×64 PNG 시점 영역 잔존, Hero1 1.43 단위 대비 22%

정정 (즉시 처리)

1. PlayerController.cs spriteRenderer·animator 자식 fallback 추가

spriteRenderer = GetComponent<SpriteRenderer>();
if (spriteRenderer == null) spriteRenderer = GetComponentInChildren<SpriteRenderer>();
animator = GetComponent<Animator>();
if (animator == null) animator = GetComponentInChildren<Animator>();

근거: 향후 Visual 자식 GameObject 영역으로 SpriteRenderer 분리 시에도 안전. 현 prefab 영역에서 영향 0 (직접 부착 시 GetComponent가 우선).

2. Player.prefab BoxCollider2D 시각 정합 정정

필드 기존 정정 근거
m_Size (0.32, 0.54) (0.45, 1.2) Hero1 캐릭터 몸통 폭 30% × 높이 83% (PPU 300, 1.43 단위 sprite)
m_Offset (-0.09, -0.14) (0, -0.05) sprite 중심 = 캐릭터 중심 정합 (캐릭터 발 sprite 95% 위치 → 중심 약간 아래)
m_SpriteTilingProperty.oldSize/newSize (1.28, 1.26) (1.43, 1.43) Hero1 sprite 실제 크기 정합

facing 동작 진단

AnimationController.cs Player.prefab 부착 0건 + anim에 m_FlipX curve 0건 → PlayerController의 flipX 처리가 단독으로 동작해야 정합. fallback 추가로 자식 SpriteRenderer 영역 안전망 보강. PD Play 검증 시 좌우 이동 → sprite 반전 동작 확인.

산출물

  • E:/EerieVillage/Assets/Scripts/Mechanics/PlayerController.cs (Edit · 자식 fallback 2 라인)
  • E:/EerieVillage/Assets/Prefabs/Player.prefab (Edit · BoxCollider2D Size·Offset·TilingProperty)
  • 공유/대화로그/EerieVillage/2026-05-07.md 본 엔트리 추가
  • 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md BT5-Dev 7단계 추가
  • .claude/manifest/active/2026-05-07_141743_facing.md

feedback_pm_excessive_decision_request 첫 적용

본 작업 = 단순 운영 영역 (Unity 컴포넌트 수치 정정·코드 fallback 추가) + 분석 명확 → 옵션 A/B/C 나열·PD 결정 요청 없이 PM 즉시 처리. C29·C36·C45·C47 정합.

관련 규칙·자산

  • C2 근본 해결 (Hero1 영역에 정확히 맞춘 Collider — 이전 잔존 영역 정정)
  • C29·C36 (PM 자율 운영 영역)
  • C39-10 (실측 후 처리 — AnimationController dead code 확증·anim flipX curve 0건 확증)
  • feedback_pm_excessive_decision_request (2026-05-07 헌법급 — 첫 적용 사례)

엔트리 6. Hero1 facing 로직 반전 + Collider Offset 양수 정정 (PD 재보고 후 PM 자인·즉시 재정정)

시각: 2026-05-07 14:27 ~ 주체: 총괄PM 영역: BT5-Dev #8 후속 정정 유형: PD 재보고 (2건) → PM 시각 판단 실패 자인 + 즉시 재정정

PD 재보고 원문

"여전히 캐릭터가 반대방향으로 출력되고 있어. (리소스는 왼쪽을 보고 있지만 게임에서는 오른쪽이 기준이야.) 충돌 영역이 잘못된 것 같아. (캐릭터가 마치 공중에 떠있는 것처럼 스테이지 지면과 떨어져있고, 몬스터를 밟아서 공격할 수 없어)"

PM 자인 (C5·C44)

엔트리 5에서 본 PM이 Hero1 idle01 시각 확인 시 "우측 향함"으로 판단 → 실제 = 좌측 향함. C44 팩트 우선 위배. 시각적 판단 실패가 facing 로직·Collider Offset 결정에 직접 영향. 다음 작업부터 Hero1 sprite는 좌측 default로 확정.

정정 (즉시 처리)

1. flipX 로직 반전 (PlayerController.cs line 153~159)

입력 기존 정정
move.x > 0.01f (우측 이동) flipX = false flipX = true (sprite 반전 = 우측 향함)
move.x < -0.01f (좌측 이동) flipX = true flipX = false (sprite default = 좌측 향함)

facing = Vector2.right/left 영역은 그대로 유지 (PlayerAttackTicker가 Schedule 시점 참조 — 게임 좌표계 기준).

2. Player.prefab SpriteRenderer 디폴트 m_FlipX

  • 기존: m_FlipX: 0 (false) — 시작 시 좌측 default
  • 정정: m_FlipX: 1 (true) — 게임 시작 시 우측 향함 (PlayerController 디폴트 facing = Vector2.right 정합)

3. Player.prefab BoxCollider2D Offset 양수

필드 엔트리 5 정정 (엔트리 6) 근거
m_Size (0.45, 1.20) (0.45, 1.15) 캐릭터 vertical 영역 sprite 80% 재산정 (이전 83%)
m_Offset (0, -0.05) (0, +0.10) 캐릭터 발 위치 sprite 85% (pivot center 기준 -0.50 단위). Collider 하단 = +0.10 - 0.575 = -0.475 ≈ 발 정합 (이전 -0.65 = 발보다 더 아래로 부유 원인)

가설 검증 영역 (PD Play 재검증)

  • flipX: 우측 이동 시 sprite 좌우 반전 → 우측 향함 시각 확인
  • Collider: 캐릭터 발이 지면에 닿음 + 몬스터 위 충돌 가능 (밟기)

추가 보정 영역(있다면):

  • Collider Size 재산정 (PD가 캐릭터 영역 시각 측정 후 보정 가능)
  • pivot Bottom 변경 (37 sprite meta 일괄 — 별건 추후 정리 영역)

산출물

  • E:/EerieVillage/Assets/Scripts/Mechanics/PlayerController.cs (flipX 로직 반전 2 라인)
  • E:/EerieVillage/Assets/Prefabs/Player.prefab (m_FlipX 0→1, Collider Size·Offset)
  • 공유/대화로그/EerieVillage/2026-05-07.md 본 엔트리 추가
  • 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md BT5-Dev 9단계 추가
  • .claude/manifest/active/2026-05-07_142709_facing2.md

관련 규칙·자산

  • C5 정직성·C44 팩트 우선 (본 PM 시각 판단 실패 자인)
  • C2 근본 해결 (이전 정정의 잘못된 가정 수정)
  • feedback_pm_excessive_decision_request (재정정도 즉시 처리)