feat: 보스 패턴 시스템 구현

- BossPatternData SO로 스킬/Wait 스텝 순서와 쿨타임 정의
- UsePatternAction으로 Behavior Graph에서 패턴 실행
- 보스 전용 애니메이션 분리 및 AnimatorOverrideController 정상화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 18:08:06 +09:00
parent 03e1b1303c
commit 309bf5f48b
19 changed files with 565 additions and 321 deletions

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 05b69b4b9ac11f14f8a36997c49e8445
guid: d3e4690f866332b43b86ee7005291cd0
ModelImporter:
serializedVersion: 22200
internalIDToNameTable: []
@@ -15,7 +15,7 @@ ModelImporter:
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
motionNodeName: Root
rigImportErrors:
rigImportWarnings:
animationImportErrors:
@@ -33,7 +33,7 @@ ModelImporter:
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: A_Attack_LightCombo01A_ReturnToIdle_Sword
name: A_Attack_LightCombo01A_ReturnToIdle_RootMotion_Sword
takeName: A_Attack_Light01A_ReturnToIdle
internalID: -8265974341663887746
firstFrame: 25
@@ -46,12 +46,12 @@ ModelImporter:
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 1
loopBlendPositionY: 1
loopBlendPositionXZ: 1
keepOriginalOrientation: 1
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 079bd00af1b92964d8973dcbf2dcd21f
guid: 4005a77aa7d531742b1de1bec27001b1
ModelImporter:
serializedVersion: 24200
internalIDToNameTable: []
@@ -15,7 +15,7 @@ ModelImporter:
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
motionNodeName: Root
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
@@ -31,7 +31,7 @@ ModelImporter:
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: A_Attack_LightCombo01A_Sword
name: A_Attack_LightCombo01A_RootMotion_Sword
takeName: A_Attack_Light01A
internalID: -7717634560727564301
firstFrame: 1
@@ -47,36 +47,22 @@ ModelImporter:
loopBlendOrientation: 1
loopBlendPositionY: 1
loopBlendPositionXZ: 1
keepOriginalOrientation: 1
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events:
- time: 0.4590326
functionName: OnEffect
data:
objectReferenceParameter: {instanceID: 0}
floatParameter: 0
intParameter: 1
messageOptions: 0
- time: 0.46052074
functionName: OnEffect
data:
objectReferenceParameter: {instanceID: 0}
floatParameter: 0
intParameter: 2
messageOptions: 0
- time: 0.4627699
- time: 0.4984817
functionName: OnEffect
data:
objectReferenceParameter: {instanceID: 0}
floatParameter: 0
intParameter: 0
messageOptions: 0
- time: 1
- time: 0.9981159
functionName: OnSkillEnd
data:
objectReferenceParameter: {instanceID: 0}
@@ -196,7 +182,7 @@ ModelImporter:
maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2}
additiveReferencePoseFrame: 1
- serializedVersion: 16
name: A_Attack_LightCombo01A_WindUp_Sword
name: A_Attack_LightCombo01A_WindUp_RootMotion_Sword
takeName: A_Attack_Light01A
internalID: -3664902444864169318
firstFrame: 1
@@ -209,12 +195,12 @@ ModelImporter:
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 1
loopBlendPositionY: 1
loopBlendPositionXZ: 1
keepOriginalOrientation: 1
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
@@ -333,7 +319,7 @@ ModelImporter:
maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2}
additiveReferencePoseFrame: 1
- serializedVersion: 16
name: A_Attack_LightCombo01A_Hit_Sword
name: A_Attack_LightCombo01A_Hit_RootMotion_Sword
takeName: A_Attack_Light01A
internalID: 5609185257447268413
firstFrame: 11
@@ -346,12 +332,12 @@ ModelImporter:
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 1
loopBlendPositionY: 1
loopBlendPositionXZ: 1
keepOriginalOrientation: 1
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
@@ -470,7 +456,7 @@ ModelImporter:
maskSource: {fileID: 31900000, guid: ebc8800d7aef22a4aa95591cd452157d, type: 2}
additiveReferencePoseFrame: 1
- serializedVersion: 16
name: A_Attack_LightCombo01A_FollowThrough_Sword
name: A_Attack_LightCombo01A_FollowThrough_RootMotion_Sword
takeName: A_Attack_Light01A
internalID: -2249959126892459381
firstFrame: 15
@@ -483,12 +469,12 @@ ModelImporter:
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 1
loopBlendPositionY: 1
loopBlendPositionXZ: 1
keepOriginalOrientation: 1
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000