refactor: 드로그 BT 의사결정 투명화 — 모든 조건을 BT 노드로 표시

- 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 에셋 자동 재구성 메뉴 제공
This commit is contained in:
2026-03-30 15:34:21 +09:00
parent dea7fd39ec
commit c6fc56e9c6
56 changed files with 3287 additions and 3541 deletions

View File

@@ -2001,7 +2001,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 860882280
GlobalObjectIdHash: 223369646
InScenePlacedSourceGlobalObjectIdHash: 223369646
DeferredDespawnTick: 0
Ownership: 1
@@ -2030,11 +2030,13 @@ MonoBehaviour:
characterStats: {fileID: -5454809204868423215}
animator: {fileID: 4019041888965840580}
navMeshAgent: {fileID: 5153439431748782209}
abnormalityManager: {fileID: 0}
enemyData: {fileID: 11400000, guid: f21773b42c60c4b40b609966f09146aa, type: 2}
useThreatSystem: 1
damageThreatMultiplier: 1
threatDecayPerSecond: 0
retargetThreshold: 0
shieldStateAbnormality: {fileID: 0}
phases: []
initialBehaviorGraph: {fileID: -3933356984444701103, guid: 9ade9280028e9da4aa0151fe8e9ec454, type: 2}
phaseTransitionInvincibilityTime: 2
@@ -2185,23 +2187,26 @@ MonoBehaviour:
bossEnemy: {fileID: 6949205239376088310}
enemyBase: {fileID: 6949205239376088310}
skillController: {fileID: 8818883032728065057}
abnormalityManager: {fileID: 0}
navMeshAgent: {fileID: 5153439431748782209}
mainPattern: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2}
slamPattern: {fileID: 11400000, guid: 4a52d59d590b4eaa9ef92b7984eb08c7, type: 2}
leapPattern: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2}
behaviorGraphAgent: {fileID: 0}
primaryPattern: {fileID: 11400000, guid: 5efd8123be76bf844875d386d9d5f73d, type: 2}
secondaryPattern: {fileID: 11400000, guid: 4a52d59d590b4eaa9ef92b7984eb08c7, type: 2}
mobilityPattern: {fileID: 11400000, guid: 88e6cc7cab28baf4c8f8a742247000ec, type: 2}
utilityPattern: {fileID: 11400000, guid: 9f7ab8078af64fd9a6ff4c9ce6aa9d3a, type: 2}
downPunishPattern: {fileID: 11400000, guid: fe5100f855d14c0faac44b6d4f2c771e, type: 2}
comboPattern: {fileID: 0}
punishPattern: {fileID: 11400000, guid: fe5100f855d14c0faac44b6d4f2c771e, type: 2}
signaturePattern: {fileID: 11400000, guid: 5e732b41722c45288bb6234f3e3fa638, type: 2}
phase2HealthThreshold: 0.75
phase3HealthThreshold: 0.4
targetRefreshInterval: 0.2
leapDistanceThreshold: 8
downPunishSearchRadius: 6
primaryTargetRefreshInterval: 0.2
mobilityTriggerDistance: 8
punishSearchRadius: 6
utilityTriggerDistance: 5
phase1SlamInterval: 3
phase2SlamInterval: 2
phase3SlamInterval: 2
signatureMinPhase: 2
phase1SecondaryInterval: 3
phase2SecondaryInterval: 2
phase3SecondaryInterval: 2
basicLoopMinCountAfterBigPattern: 2
signatureRequiredDamageRatio: 0.1
signatureTelegraphAbnormality: {fileID: 11400000, guid: fb1a782e44ff4dc19fd8b3c633360752, type: 2}
signatureSuccessStaggerDuration: 2