- SkillController를 패턴 경계 기준으로 분기해 보스 첫 스킬은 즉시 시작하고 마지막 스킬만 Idle로 부드럽게 복귀하도록 조정
- 보스 패턴 실행 중 현재 스킬이 첫/마지막 스텝인지 BossBehaviorRuntimeState와 패턴 실행 경로에서 공유하도록 확장
- 패턴 내부 연속 클립 전환은 하드 전환으로 유지해 시작 프레임 스킵과 중간 Idle 복귀 문제를 줄이고 종료 전환 시간을 별도 노출
- Data_Pattern_{name}가 Data_Skill_{name}_{seq}를 순번대로 찾아 시퀀스 스텝을 자동 재구성하도록 추가
- SkillData asset 변경 시 BossPatternData를 다시 맞추는 에디터 postprocessor를 추가
- 드로그 리빌드 경로와 콤보-기본기1 패턴 자산을 새 자동 동기화 규칙에 맞게 정리
- EnemyAnimationController가 보스 런타임 페이즈를 Animator Phase 파라미터로 동기화\n- AC_Boss_Drog에 1/2페이즈 공용 Idle과 3페이즈 전용 Idle 상태 및 전이 추가\n- 정지 중 페이즈 변경과 이동/피격 후 복귀가 현재 페이즈 Idle로 이어지도록 정리
- big pattern grace period 판정을 런타임 헬퍼에서 제거하고 BT 조건/액션 노드로 명시
- Increment/Reset Basic Loop Count 노드 추가 및 BT_Drog 재빌드 반영
- Signature Failure Effects 수치를 BT 노드가 직접 보관하도록 정리
- 트리밍 구간에 기존 키가 없더라도 시작점과 종료점 값을 샘플링해 경계 구간이 비지 않도록 보정
- ObjectReference 커브를 함께 잘라 VFX와 소품 전환 키가 새 클립에서도 유지되도록 수정
- 새 클립 생성 시 루트 모션, 루프, 미러 등 AnimationClipSettings를 원본에서 복사하도록 보강
- TargetSurfaceUtility를 추가해 플레이어와 적의 실제 충돌 표면 기준으로 거리, 방향, 목적지를 계산
- 플레이어 이동과 적 루트모션, 추적 로직에서 접촉 시 수평 이동을 제한해 겹침과 밀어내기 문제를 완화
- 드로그 AI 거리 판정 노드들이 표면 거리 기준을 사용하도록 맞춰 사거리 분기 오차를 줄임
- 상태이상 데이터와 관리자에서 단일 피격 면역을 경직, 넉백, 다운 개별 면역으로 분리
- 플레이어 프리팹과 디버그 메뉴, 공용 경직 애니메이션을 갱신해 분리된 면역 상태를 테스트 가능하게 정리
- PlayMode 테스트를 추가해 각 면역이 대응하는 반응만 차단하는지 검증
- 애니메이션 이벤트 기반 방어/유지/해제 흐름과 HUD 피드백, 방어 디버그 로그를 추가했다.
- 드로그 기본기1 테스트 패턴을 정리하고 공격 판정을 OnEffect 기반으로 옮기며 드로그 범위 효과의 타겟 레이어를 정상화했다.
- 플레이어 퀵슬롯 테스트 세팅과 적-플레이어 겹침 방지 로직을 조정해 충돌 시 적이 수평 이동을 멈추고 최소 분리만 수행하게 했다.
- HitReactionController에 경직, 다운 회복 가능 구간, Hit 속도 배율 파라미터 처리를 추가
- DownBegin/Recover 상태 종료를 StateMachineBehaviour로 받아 구르기 허용 구간과 다운 해제를 분리
- 드로그 발구르기를 경직 이펙트로 전환하고 넉백/경직 이펙트에서 Hit 애니메이션 속도 배율을 설정 가능하게 정리
- PlayMode 테스트를 추가해 경직/넉백이 Hit 애니메이션 속도 배율을 실제로 반영하는지 자동 검증
- RebuildDrogCombatAssets를 갱신해 기본기/강타/발구르기 콤보를 타격 단위 스킬 시퀀스로 생성하도록 변경
- 외부 후보 모션을 드로그 로컬 애니메이션 클립으로 복제하고 콤보 관련 스킬을 루트모션 사용 기준으로 재생하도록 정리
- 레거시 단일 콤보 스킬/클립/이펙트를 제거하고 드로그 리뷰 씬 삭제를 함께 반영
- 드로그 전용 무기 프리팹과 네트워크 프리팹 등록을 추가하고 관련 솔루션 및 패키지 잠금 파일을 갱신
- 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_ 매칭 검증
- 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 설정
- 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 디버그 메서드 제거
- 치유/보호막 스킬을 즉발 자가시전에서 투사체형 아군 1인 타겟팅으로 전환
- TargetType.SingleAlly 추가, targetOverride 매개변수로 외부 타겟 주입 지원
- PlayerSkillInput: 카메라 레이캐스트 기반 아군 탐지, 서버 검증, RPC 타겟 ID 전달
- AllyTargetIndicator: 호버 아군 위에 디스크 인디케이터 표시, 사거리/초과 색상 변경
- SpawnEffect: 타겟 방향 회전 보정
- 투사체 스폰 이펙트 에셋 생성 (치유/보호막 각각)
- 인디케이터 프리팹 + URP/Unlit 머티리얼 생성
- Player 프리팹에 AllyTargetIndicator 컴포넌트 추가 및 설정
- Input.mousePosition → Mouse.current.position.ReadValue() 수정 (Input System 호환)
- BossCombatPatternRole enum 완전 제거, BossPatternData에 직접 필드 추가
- 14개 패턴별 Check*/Use*Action → CheckPatternReadyCondition + UsePatternByRoleAction으로 통합
- BT 계단식 Branch 체인 구조 도입 (BranchingConditionComposite + FloatingPort)
- 패턴별 고유 전제 조건을 BT Condition으로 분리
- Punish: IsDownedTargetInRangeCondition (다운 대상 반경)
- Mobility: IsTargetBeyondDistanceCondition (원거리 대상)
- Utility: IsTargetBeyondDistanceCondition (원거리 대상)
- Primary: IsTargetInAttackRangeCondition (사거리 이내)
- Phase 진입 조건을 BT에서 확인 가능하도록 IsMinPhaseSatisfiedCondition 추가
- IsPatternReady()에서 minPhase 체크 분리 → 전용 Condition으로 노출
- Secondary 패턴 개념 제거 (secondaryPattern, 보조 차례, 교대 카운터 로직 전부 삭제)
- CanResolvePatternTargetCondition 삭제 (7개 중 5개가 노이즈)
- RebuildDrogBehaviorAuthoringGraph로 BT 에셋 자동 재구성 메뉴 제공
- PlayerSpawnPoint.GetRandomSpawnPoint()을 랜덤에서 Round-Robin 순차 할당으로 변경
- 접속 순서대로 스폰 포인트를 순환하며 중복 스폰 방지
- BalanceDummy 씬에 두 번째 스폰 포인트 추가 (x=-5, y=3, z=0)
- PlayerNetworkController에 Revive(healthPercent) 메서드와 OnRevived 이벤트 추가
- ReviveEffect 스킬 이펙트 구현 (Area/Ally 타겟팅, healthPercent로 체력 복구)
- GameManager가 OnRevived 구독하여 alivePlayers 동적 복구
- GameManager.Update에서 나중에 스폰된 플레이어 자동 구독 (MPP 대응)
- SkillCancelReason에 Revive 추가
- 부활 스킬/이펙트 ScriptableObject 에셋 생성 (치유 클립 임시 사용)
- PlayerSkillDebugMenu에 즉사/부활/리스폰/스폰/Client1 스킬 디버그 메뉴 추가
- PlayerAbnormalityDebugHUD에 부활 버튼 추가
- DebugExecuteSkillAsServer에 실패 원인 로그 추가
- AGENTS.md에 코드 변경 후 force reload 규칙 추가
- ThreatUtility: 공통 위협 생성 유틸리티 (OverlapSphere 기반 반경 내 적 탐색)
- OverlapSphereNonAlloc 버퍼 32→256 확장으로 씬 콜라이더 누락 수정
- 위협 배율 체인: SkillGem × ThreatController × Passive
- HealEffect: flatThreat + (actualHeal × threatPercent) 공식 적용
- ShieldEffect: flatThreat + (actualShield × threatPercent) 공식 적용
- AbnormalityEffect: flatThreat 고정 위협 생성
- EditMode 유닛 테스트 9/9 통과 (SupportThreatTests)
- 테스트 씬 UI 레이아웃 수정 사항 포함
- BossPatternData에 minPhase 필드 추가 (기본값 1, Inspector 설정 가능)
- BossCombatBehaviorContext의 signatureMinPhase를 minPhase로 대체
- IsPatternReady와 CheckPatternReadyActionBase에 Phase 체크 통합
- BT 경로와 Update 경로 모두 일관되게 Phase 제한 적용
- 집행개시 패턴 minPhase=3, 점프 패턴 minPhase=2 설정
- HUD 우측 하단 접이식 디버그 패널 (DebugPanelUI): 보스 HP 슬라이더/직접입력/프리셋, 페이즈 전환, 리스폰, 보호막, 이상상태 적용
- MCP execute_menu_item으로 호출 가능한 MenuItem 커맨드 (DebugBossMenuItems): HP/페이즈/보호막 제어, 상태 조회, 임의 값 설정 지원
- BossEnemyEditor 인스펙터 HP 조작 확장: 퍼센트 슬라이더 및 직접 HP 입력 추가
- Test 씬 UI Canvas 하위 DebugPanel GameObject 배치
- UNITY_EDITOR || DEVELOPMENT_BUILD 가드로 릴리즈 빌드 미포함
- 빌드 입력, 룰셋, 회전 정책, 결과/리포트 모델을 포함한 데미지 계산 시뮬레이터 기반을 추가
- 단일 실행 창과 배치 전수 조사 창, 플레이어 데미지 스윕 메뉴를 추가
- DamageEffect 계산값 접근자를 열어 기존 전투 공식을 시뮬레이터에서 재사용하도록 정리
- BalanceDummy 씬과 TrainingDummy 프리팹을 추가해 밸런싱용 허수아비 전투 공간을 구성
- TrainingDummyTarget과 DummyDpsBenchmarkRunner를 구현해 일정 시간 자동 시전 기반 DPS 측정을 지원
- 디버그 메뉴, 빌드 설정, 네트워크 프리팹 목록을 연결해 플레이 모드 검증 경로를 정리
- 패시브 트리/노드/프리셋 데이터와 카탈로그 참조 구조를 추가하고 Resources 의존을 Data/Passives 자산 구조로 정리
- 플레이어 런타임, 전투 계수, 프리셋 적용, 멀티플레이 동기화 경로에 패시브 적용 로직 연결
- 프리팹 기반 패시브 트리 UI와 노드 아이콘/프리셋/상세 패널 흐름을 추가하고 HUD에 연동
- 패시브 디버그/부트스트랩 메뉴와 UI 프리팹 재생성 경로를 추가