- 애니메이션 이벤트 기반 방어/유지/해제 흐름과 HUD 피드백, 방어 디버그 로그를 추가했다.
- 드로그 기본기1 테스트 패턴을 정리하고 공격 판정을 OnEffect 기반으로 옮기며 드로그 범위 효과의 타겟 레이어를 정상화했다.
- 플레이어 퀵슬롯 테스트 세팅과 적-플레이어 겹침 방지 로직을 조정해 충돌 시 적이 수평 이동을 멈추고 최소 분리만 수행하게 했다.
- HitReactionController에 경직, 다운 회복 가능 구간, Hit 속도 배율 파라미터 처리를 추가
- DownBegin/Recover 상태 종료를 StateMachineBehaviour로 받아 구르기 허용 구간과 다운 해제를 분리
- 드로그 발구르기를 경직 이펙트로 전환하고 넉백/경직 이펙트에서 Hit 애니메이션 속도 배율을 설정 가능하게 정리
- PlayMode 테스트를 추가해 경직/넉백이 Hit 애니메이션 속도 배율을 실제로 반영하는지 자동 검증
- RebuildDrogCombatAssets를 갱신해 기본기/강타/발구르기 콤보를 타격 단위 스킬 시퀀스로 생성하도록 변경
- 외부 후보 모션을 드로그 로컬 애니메이션 클립으로 복제하고 콤보 관련 스킬을 루트모션 사용 기준으로 재생하도록 정리
- 레거시 단일 콤보 스킬/클립/이펙트를 제거하고 드로그 리뷰 씬 삭제를 함께 반영
- 백업 환경에서 사용하던 Unity 자산 네이밍 컨벤션 검사 훅을 .githooks/pre-commit으로 저장소에 편입
- Anim 클립과 Data_Skill 자산의 키 매칭 검사를 동일하게 유지해 로컬 커밋 전에 누락을 차단
- 현재 clone은 core.hooksPath=.githooks 로 연결해 즉시 동일한 pre-commit 검사를 사용하도록 설정
- Assets/External 하위 샘플 및 서드파티 에셋 파일의 실행 비트 변경을 별도 커밋으로 분리
- PolygonGeneric, SidekickCharacters, Synty 도구 자산 전반의 줄바꿈 및 재직렬화 차이를 그대로 보존
- 프로젝트 고유 로직 변경과 분리해 이후 히스토리에서 외부 에셋 노이즈 범위를 식별하기 쉽게 정리
- 프로젝트 AGENTS 지침에 커밋 후 푸시 확인 규칙과 런타임 콘텐츠 에이전트 규칙을 보강
- 보스 설계 플레이북과 멀티플레이 보스 설계 철학 문서를 추가해 사람용 설계 기준을 정리
- Codex-Tools 디렉터리에 Markdown→YAML→검증 파이프라인 스크립트와 프롬프트, 스키마, 설정 파일을 추가
- 드로그 전용 무기 프리팹과 네트워크 프리팹 등록을 추가하고 관련 솔루션 및 패키지 잠금 파일을 갱신
- Drog 메인 씬 보정과 DrogSidekickAttackReview 테스트 씬을 추가해 후속 검증용 환경을 정리
- SpawnEffect가 BossBehaviorRuntimeState의 현재 대상을 참조하도록 맞추고 TMP 폰트 자산 재생성 결과를 반영
- 드로그 전투 컨텍스트를 BossBehaviorRuntimeState 중심 구조로 정리하고 BossEnemy, 패턴 액션, 조건 노드가 마지막 실행 결과와 phase 상태를 직접 사용하도록 갱신
- BT_Drog와 재빌드 에디터 스크립트를 확장해 phase 전환, 집행 결과 분기, 거리/쿨타임 기반 패턴 선택을 드로그 전용 자산과 노드 파라미터로 재구성
- 드로그 패턴/스킬/이펙트/애니메이션 플레이스홀더 자산을 재생성하고 보스 프리팹이 새 런타임 상태 및 등록 클립 구성을 참조하도록 정리
- SphereCast 충돌 당기기 로직 제거로 카메라가 항상 원래 거리 유지
- ObstacleTransparencyController 신규: 카메라-타겟 사이 장애물을 renderer.enabled로 숨김
- 플레이어 발 위치 이하의 바닥/지형은 숨김 대상에서 제외
- 파티클/트레일 렌더러는 숨김 스킵
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- SkillGemTriggeredEffectEntry를 공용 타입 SkillTriggeredEffectEntry로 승격
- SkillData.effects를 List<SkillTriggeredEffectEntry>로 변경 (기존 flat list는 OnValidate에서 자동 마이그레이션)
- SkillLoadoutEntry, PlayerSkillInput 등 소비자 코드 그룹 구조 대응
- 기존 스킬 에셋 마이그레이션 완료
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
- SkillData에서 레거시 legacySkillClip/legacyEndClip 필드 및 MigrateLegacyClips 제거
- [FormerlySerializedAs] 누락으로 인해 실제로 동작하지 않던 마이그레이션 코드 정리
- 애니메이션 클립이 없는 스킬 11개 삭제 (투척, 광역치유, 구르기, 돌진, 방어태세, 보호막, 부활, 철벽, 치유, 투사체, 회전베기)
- 삭제된 스킬에 연결된 전용 이펙트 11개 삭제
- 어떤 스킬에서도 참조되지 않는 고아 이펙트 9개 추가 삭제 (투척투사체_0_데미지, 기절, 다운, 베기_1_버프, 베기_2_디버프, 치유_0_회복, 침묵, 투사체_0_데미지, 한손_마법발사_0_데미지)
- 양손_내려찍기 애니메이션 클립 신규 추가 (untracked)
- 카메라 충돌 시 SmoothDamp로 부드럽게 보간하도록 변경 (기존: 즉시 hit.point 이동)
- collisionMask 기본값을 Default/Enemy/Ground 레이어로 제한 (기존: 모든 레이어 포함)
- collisionRadius 0.2→0.3 증가로 보스 등 대형 오브젝트 탐지 개선
- minDistance 0.5 추가로 카메라가 플레이어 모델 안으로 파고드는 현상 방지
- VfxEffect 스킬 이펙트 클래스 추가 (일회성 VFX 스폰, 위치/스케일/파티클 제어)
- SkillEffect.IsVisualOnly 프로퍼티 추가로 서버 가드 없이 모든 클라이언트에서 VFX 로컬 실행
- SkillProjectile 트레일 VFX 지원 (OnNetworkSpawn에서 양쪽 생성, despawn 시 월드 분리)
- SkillProjectile HitEffectClientRpc 추가로 충돌 이펙트 클라이언트 동기화
- Ground Target 시스템: 타겟팅 모드 상태머신, 인디케이터, 지면 위치 RPC 전달
- 마법 오름 Ground Target 스킬 에셋 및 VfxEffect 에셋 추가
- 마법 오름 애니메이션 클립 추가
- Ground layer (Layer 7) 추가
- ProjectileBasic에 trailPrefab/hitEffect 필드 추가
- Prefabs/VFX/ 폴더 생성
- SkillData: skillClip/endClip 단일 필드를 animationClips 리스트로 통합
- Data_Skill_ 접두사 애셋 이름과 Anim_{key}_{순서} 클립을 자동 매칭
- 레거시 skillClip/endClip 데이터 자동 마이그레이션
- SkillController: 클립 시퀀스 내 순차 재생 로직 (TryPlayNextClipInSequence)
- baseSkillClip을 컨트롤러 Skill state에서 OnValidate로 자동 발견
- waitingForEndAnimation / IsInEndAnimation 제거
- BuildSimulationEngine: 전체 클립 duration 합산 및 모든 클립 OnEffect 이벤트 파싱
- PlayerAbnormalityVerificationRunner: GetSkillDuration 전체 클립 길이 합산으로 변경
- EnemyBase: IsInEndAnimation 참조 제거
- AnimationClipExtractor: animationClips 리스트 기반 relink/collect로 변경
- AnimationClipSkillDataMatcher: 클립 변경 시 관련 SkillData 자동 갱신 (AssetPostprocessor)
- BaseSkillClipAssigner: 모든 컨트롤러의 Skill state에 base clip 일괄 할당 에디터 메뉴
- pre-commit hook: Anim_ 네이밍 규칙에 {순서} 패턴 추가 및 Anim_↔Data_Skill_ 매칭 검증
- Player 클립에 한손/양손/공용 프리픽스 추가 (강타→양손_강타, 베기→한손_베기, 구르기→공용_구르기 등)
- Drog 점프 클립을 점프시작/점프공중/점프착지로 분리
- 사용하지 않는 클립 삭제 (방어태세, 보호막, 철벽, _End 클립들 등)
- Common에 공중, 걷기, 점프 클립 추가
- clipAutoRegisterFilter 필드 추가로 각 캐릭터별 클립 자동 등록 필터 분리
- 필터 좌우 _ 제거 로직 추가 (예: "_Drog_" → "Drog" 매칭)
- AutoRegisterPlayerClips → AutoRegisterClips으로 리네임
- Drog 프리팹에 clipAutoRegisterFilter = "_Drog_" 설정
- AC_Boss_Default의 Skill 상태 Motion을 baseSkillClip과 동일 에셋으로 수정
- FBX 내장 AnimationClip을 개별 .anim 파일로 추출하는 에디터 툴 추가 (AnimationClipExtractor)
- 스킬/보스/AnimatorController에서 참조 중인 클립만 선택적 추출
- 추출 후 모든 참조(SkillData, BossPhaseData, AnimatorController)를 .anim으로 자동 relink
- 추출 완료된 FBX 자동 삭제 (참조 안전성 검증 포함)
- SkillController: registeredClips를 OnValidate에서 _Player_ 이름 기반 자동 등록
- PlayerSkillInput: skillSlots를 OnValidate에서 _Skill_Player_ 이름 기반 자동 등록
- 38개 FBX 삭제, 40+개 .anim 파일로 교체 완료
- SkillRegistry ScriptableObject 추가: _Skill_Player_ 에셋을 자동 수집하여 빌드 포함 보장
- PlayerSkillInput에 Registry 참조 추가 및 AutoRegisterPlayerSkills 개편
- 슬롯 0~5는 Inspector에서 디버그용 수동 설정 가능 (AutoRegister 불개입)
- 슬롯 6(회피)에 구르기 스킬 자동 유지
- OnValidate 호출 순서 변경: SyncLegacySkillsToLoadoutEntries → AutoRegisterPlayerSkills
- 플레이어 프리팹에 SkillRegistry 에셋 할당 (14개 플레이어 스킬 수집됨)
- 에디터 전용 EditorAllPlayerSkills 정적 프로퍼티로 전체 스킬 목록 접근 가능
- AnimationClipMerger: 여러 클립을 순서 조정 후 이어 붙이는 에디터 윈도우 추가
- AnimationClipTrimmerWindow: 시작/종료 프레임 지정으로 클립 잘라내기 에디터 윈도우 추가
- 기존 애니메이션 에디터 툴 메뉴를 Tools/Animation/ 서브메뉴로 통합
- Merge Clips, Trim Clip, Reverse Clip, Section Speed Editor
- UIModeController: leftAlt 키로 커서 표시/게임플레이 입력 차단 토글 (공용 싱글톤)
- DebugPanelUI: 보스 스킬 강제 발동 섹션 추가 (드롭다운 + 발동/취소 버튼)
- 에디터에서 Data/Skills의 보스 이름 기반 스킬 검색, 빌드에서 패턴 슬롯 fallback
- BossCombatBehaviorContext.GetAllPatternSkills() 추가 (디버그용 스킬 목록 수집)
- TMP Settings에 한글 폰트(MaruBuri)를 fallback으로 등록
- 젬/패시브/디버그 토글 버튼을 우측 하단에 수직 정렬
- InputSystem에 UIMode 액션(leftAlt) 추가
- WeaponTrait enum 추가 (Melee/TwoHanded/Defense/Magic/Ranged)
- SkillData에 allowedWeaponTraits 필드 및 MatchesWeaponTrait() 검증 메서드 추가
- WeaponEquipment에 보조손(오프핸드) 슬롯 지원 (장착/해제/스탯 보너스/네트워크 동기화)
- EquippedWeaponTraits 프로퍼티로 메인+보조 무기 특성 합산 제공
- PlayerSkillInput 4곳(OnSkillInput/RPC/CanUseSkill/DebugExecute)에 무기 trait 제약 검증 추가
- SkillSlotUI에 무기 불호환 시 회색 표시(weaponIncompatibleColor) 지원
- 기존 검 에셋에 weaponTrait=Melee 설정
- 전진베기를 WindUp/Hit/FollowThrough 서브클립으로 분할
- 회전베기(Anim_Player_회전베기) 애니메이션 클립 추가
- 본대베기(Anim_Player_본대베기) 애니메이션 클립 및 Ready 클립 추가
- BalanceDummy 씬에 AllyTargetingDebugTest 및 Temp_Player_Edit 추가
- AnimationSectionSpeedEditor: 에디터 윈도우로 .anim 클립의 특정 프레임 구간 키프레임 간격 조절
- In-Memory API 방식(AnimationUtility + SerializedObject)로 FBX 타임라인 확장 문제 회피
- ImportAsset 미사용으로 Model Importer 재처리 차단
- 본/IK/prop/eyeLight 모든 커브 동시 수정, Humanoid muscle curve만 제외
- AnimationEvent 시간도 구간에 맞게 리맵핑
- 접선 스케일링으로 속도 변경 시 곡선 형태 유지
- ReverseAnimation: 애니메이션 반전 에디터 스크립트 추가
- PatternStepType.ChargeWait 및 ChargeStepData 도입으로 충전/차단 판정을 일반 패턴 스텝으로 표현
- UsePatternByRoleAction에서 IsSignature 분기 완전 제거, 일반 패턴 경로로 통합
- BossCombatBehaviorContext에서 시그니처 전용 메서드 10개 이상 제거
- BossStaggerAction(신규): 충전 차단 성공 시 보스 경직 처리
- SignatureFailureEffectsAction(신규): 차단 실패 시 범위 피해/넉백/다운 적용
- RebuildDrogBehaviorAuthoringGraph에 시그니처 Sequence + outcomeBranch 구조 추가
- 집행개시 에셋 스텝 구성을 ChargeWait(3초) → Skill으로 변경
- BossHealthBarUI 시그니처 UI 비활성화, PlayerSkillDebugMenu 디버그 메서드 제거