feat: 드로그 콤보 스킬 자산을 타격 단위로 재구성

- RebuildDrogCombatAssets를 갱신해 기본기/강타/발구르기 콤보를 타격 단위 스킬 시퀀스로 생성하도록 변경
- 외부 후보 모션을 드로그 로컬 애니메이션 클립으로 복제하고 콤보 관련 스킬을 루트모션 사용 기준으로 재생하도록 정리
- 레거시 단일 콤보 스킬/클립/이펙트를 제거하고 드로그 리뷰 씬 삭제를 함께 반영
This commit is contained in:
2026-04-06 15:07:18 +09:00
parent 48c629bf17
commit daaf54169a
100 changed files with 767817 additions and 135437 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,53 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: "Anim_Drog_\uC5F0\uD0C01_0"
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -1,53 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: "Anim_Drog_\uC5F0\uD0C02_0"
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -1,53 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: "Anim_Drog_\uC5F0\uD0C03_0"
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -1,53 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: "Anim_Drog_\uC5F0\uD0C04_0"
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 523e4247711d3fe44b47b9c932f176ae
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1d87e0fcee0f16ed1b9fa55cceca0341
guid: 7cc42fa8d27f37167b5c3715e8ebef8c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f60b42207380c5d54a4bfaa5a1087451
guid: 61446056d515e836f9a210484e185660
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 03c87eb33f9bceba4a072d790247df1a
guid: 567a0c8cbb10eafa08807226645826e2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7239bdd2beec28defb93f5ce22425eb5
guid: 94da51b9da4bad4129ba5e33e671db62
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b948f6e859be42cf9ad570e16fd418f1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8cfd11750543a4484bae82462b7c0351
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b8206d6d914a86cd9a169763c82f273e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 16c44854334d767d3af2fd774b89a809
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 82cf3119cd7b56e3e9d579cac94fc09d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 18b092b0aae73b9219db20623b0c3427
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8f572193078ff9e229c1d39038620857
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9678ad326a270e9aa9cb5ebf5fa00279
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 71c802f9bbefb10be81506bf40e18f19
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7a296d71e8987d8379c9871af2c55b6c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -10,16 +10,23 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3}
m_Name: "Data_Pattern_Drog_\uC5F0\uD0C03-\uAC15\uD0C0"
m_Name: "Data_Pattern_Drog_\uCF64\uBCF4-\uAC15\uD0C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData
patternName: "\uC5F0\uD0C03-\uAC15\uD0C0"
patternName: "\uCF64\uBCF4-\uAC15\uD0C0"
category: 0
isSignature: 0
isMelee: 1
targetMode: 1
steps:
- Type: 0
Skill: {fileID: 11400000, guid: 02babcb77e8edd6fb953502812fab96f, type: 2}
Skill: {fileID: 11400000, guid: ae7fc1b970b770680b95f69111f2b08a, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
- Type: 0
Skill: {fileID: 11400000, guid: e666c41a932cdd478a62552e12c64801, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
@@ -27,7 +34,7 @@ MonoBehaviour:
staggerDuration: 0
- Type: 1
Skill: {fileID: 0}
Duration: 0.15
Duration: 0.1
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}

View File

@@ -10,16 +10,23 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3}
m_Name: "Data_Pattern_Drog_\uC5F0\uD0C01"
m_Name: "Data_Pattern_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE301"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData
patternName: "\uC5F0\uD0C01"
patternName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE301"
category: 0
isSignature: 0
isMelee: 1
targetMode: 1
steps:
- Type: 0
Skill: {fileID: 11400000, guid: e1ba27f8395cb86ddbc8e49a330fc5af, type: 2}
Skill: {fileID: 11400000, guid: 19675febf4943e06b87c83e7d8517e3c, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
- Type: 0
Skill: {fileID: 11400000, guid: ff1a135feff0d1999892a94317128bcf, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0

View File

@@ -10,21 +10,28 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3}
m_Name: "Data_Pattern_Drog_\uC5F0\uD0C02"
m_Name: "Data_Pattern_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE302"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData
patternName: "\uC5F0\uD0C02"
patternName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE302"
category: 0
isSignature: 0
isMelee: 1
targetMode: 1
steps:
- Type: 0
Skill: {fileID: 11400000, guid: 090c42040801281eb8e387b96f6a4c6c, type: 2}
Skill: {fileID: 11400000, guid: d8008b7d595f832798f900b884fb6ac2, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
cooldown: 2.75
- Type: 0
Skill: {fileID: 11400000, guid: a42c075b82a2b40b3b1c4540bea4bd03, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
cooldown: 3
minPhase: 1
skipJumpStepOnNoTarget: 0

View File

@@ -0,0 +1,44 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3}
m_Name: "Data_Pattern_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE303"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData
patternName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE303"
category: 0
isSignature: 0
isMelee: 1
targetMode: 1
steps:
- Type: 0
Skill: {fileID: 11400000, guid: 78fa18c15c0ea5248bc6966b4b2c4e04, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
- Type: 0
Skill: {fileID: 11400000, guid: 03c4971dcffb2ea0eb36ac997ee2a1a0, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
- Type: 0
Skill: {fileID: 11400000, guid: fc435c80b8f1348f889910629f8eec51, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
cooldown: 3.25
minPhase: 1
skipJumpStepOnNoTarget: 0

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e1ba27f8395cb86ddbc8e49a330fc5af
guid: 4497b01b8602eb4d4adb886a8518db45
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@@ -10,16 +10,23 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ce956e0878565343974c31b8111c0c6, type: 3}
m_Name: "Data_Pattern_Drog_\uC5F0\uD0C04-\uBC1C\uAD6C\uB974\uAE30"
m_Name: "Data_Pattern_Drog_\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.AI.BossPatternData
patternName: "\uC5F0\uD0C04-\uBC1C\uAD6C\uB974\uAE30"
patternName: "\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30"
category: 0
isSignature: 0
isMelee: 1
targetMode: 1
steps:
- Type: 0
Skill: {fileID: 11400000, guid: f0e9809c017aa41388e69576ae962b9b, type: 2}
Skill: {fileID: 11400000, guid: a3d01db588247bc93861ea39572489f5, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}
staggerDuration: 0
- Type: 0
Skill: {fileID: 11400000, guid: 4d2a845524d535769b4e2583c6321ffe, type: 2}
Duration: 0
ChargeData:
requiredDamageRatio: 0
@@ -27,7 +34,7 @@ MonoBehaviour:
staggerDuration: 0
- Type: 1
Skill: {fileID: 0}
Duration: 0.15
Duration: 0.1
ChargeData:
requiredDamageRatio: 0
telegraphAbnormality: {fileID: 0}

View File

@@ -22,7 +22,7 @@ MonoBehaviour:
animationClips:
- {fileID: 7400000, guid: c901be6f00fe40f85ac3cefc15305b22, type: 2}
animationSpeed: 1
useRootMotion: 0
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1

View File

@@ -22,7 +22,7 @@ MonoBehaviour:
animationClips:
- {fileID: 7400000, guid: 523e4247711d3fe44b47b9c932f176ae, type: 2}
animationSpeed: 1
useRootMotion: 0
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1

View File

@@ -10,18 +10,18 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uC5F0\uD0C01"
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAC15\uD0C0_1"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uC5F0\uD0C01"
description: "\uAE30\uBCF8 \uB8E8\uD504\uC758 \uCCAB \uD0C0\uACA9\uC785\uB2C8\uB2E4."
skillName: "\uCF64\uBCF4-\uAC15\uD0C0 1\uD0C0"
description: "\uAC15\uD0C0 \uCF64\uBCF4\uC758 \uCCAB \uC120\uD589 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: f60b42207380c5d54a4bfaa5a1087451, type: 2}
- {fileID: 7400000, guid: 7cc42fa8d27f37167b5c3715e8ebef8c, type: 2}
animationSpeed: 1
useRootMotion: 0
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
@@ -35,7 +35,7 @@ MonoBehaviour:
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: 6136552683784666d82eb35cd07e8a91, type: 2}
- {fileID: 11400000, guid: c3acb7cffe4a84368adbca89fb6363e5, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 090c42040801281eb8e387b96f6a4c6c
guid: ae7fc1b970b770680b95f69111f2b08a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@@ -0,0 +1,49 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAC15\uD0C0_2"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uCF64\uBCF4-\uAC15\uD0C0 2\uD0C0"
description: "\uAC15\uD0C0\uB85C \uC774\uC5B4\uC9C0\uB294 \uB450 \uBC88\uC9F8 \uC120\uD589
\uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 61446056d515e836f9a210484e185660, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
castTargetTrackingMode: 1
castTargetRotationSpeed: 12
castTargetStopDistance: 2.5
allowedWeaponTraits: 0
cooldown: 0
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: a3fea66d68f45e93b9ed16f64e777363, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 02babcb77e8edd6fb953502812fab96f
guid: e666c41a932cdd478a62552e12c64801
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@@ -0,0 +1,49 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE301_1"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE301 1\uD0C0"
description: "\uAE30\uBCF8\uAE30 \uCF64\uBCF41\uC758 \uCCAB \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 567a0c8cbb10eafa08807226645826e2, type: 2}
- {fileID: 7400000, guid: 94da51b9da4bad4129ba5e33e671db62, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
castTargetTrackingMode: 1
castTargetRotationSpeed: 12
castTargetStopDistance: 2.5
allowedWeaponTraits: 0
cooldown: 0
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: 7c6dcda007f2749e584594e4645dfb49, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f0e9809c017aa41388e69576ae962b9b
guid: 19675febf4943e06b87c83e7d8517e3c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@@ -10,18 +10,18 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uC5F0\uD0C02"
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE301_2"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uC5F0\uD0C02"
description: "\uAE30\uBCF8 \uB8E8\uD504\uC758 \uB450 \uBC88\uC9F8 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
skillName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE301 2\uD0C0"
description: "\uAE30\uBCF8\uAE30 \uCF64\uBCF41\uC758 \uD6C4\uC18D \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 7239bdd2beec28defb93f5ce22425eb5, type: 2}
- {fileID: 7400000, guid: b948f6e859be42cf9ad570e16fd418f1, type: 2}
animationSpeed: 1
useRootMotion: 0
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
@@ -35,7 +35,7 @@ MonoBehaviour:
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: 83be6f5d07a09dabd98331426177712c, type: 2}
- {fileID: 11400000, guid: 135f4690ea9c62bd8835b97c7ace22d7, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ff1a135feff0d1999892a94317128bcf
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,50 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE302_1"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE302 1\uD0C0"
description: "\uAE30\uBCF8\uAE30 \uCF64\uBCF42\uC758 \uC2DC\uC791 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 8cfd11750543a4484bae82462b7c0351, type: 2}
- {fileID: 7400000, guid: b8206d6d914a86cd9a169763c82f273e, type: 2}
- {fileID: 7400000, guid: 16c44854334d767d3af2fd774b89a809, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
castTargetTrackingMode: 1
castTargetRotationSpeed: 12
castTargetStopDistance: 2.5
allowedWeaponTraits: 0
cooldown: 0
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: 3d9ee31e7f777725fa5d08ff31f8f6d1, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d8008b7d595f832798f900b884fb6ac2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -10,18 +10,18 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uC5F0\uD0C03"
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE302_2"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uC5F0\uD0C03"
description: "\uAC15\uD0C0\uB85C \uC774\uC5B4\uC9C0\uB294 \uC120\uD589 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
skillName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE302 2\uD0C0"
description: "\uAE30\uBCF8\uAE30 \uCF64\uBCF42\uC758 \uB9C8\uBB34\uB9AC \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 1d87e0fcee0f16ed1b9fa55cceca0341, type: 2}
- {fileID: 7400000, guid: 82cf3119cd7b56e3e9d579cac94fc09d, type: 2}
animationSpeed: 1
useRootMotion: 0
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
@@ -35,7 +35,7 @@ MonoBehaviour:
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: dd0dbf465f53b30ea99867debe76cc30, type: 2}
- {fileID: 11400000, guid: fdbbc8f5dc30568cf934a62595987d5c, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a42c075b82a2b40b3b1c4540bea4bd03
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE303_1"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE303 1\uD0C0"
description: "\uAE30\uBCF8\uAE30 \uCF64\uBCF43\uC758 \uCCAB \uBC88\uC9F8 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 18b092b0aae73b9219db20623b0c3427, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
castTargetTrackingMode: 1
castTargetRotationSpeed: 12
castTargetStopDistance: 2.5
allowedWeaponTraits: 0
cooldown: 0
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: 9a363d0ace156cebba88aa01565c0a55, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 78fa18c15c0ea5248bc6966b4b2c4e04
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE303_2"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE303 2\uD0C0"
description: "\uAE30\uBCF8\uAE30 \uCF64\uBCF43\uC758 \uB450 \uBC88\uC9F8 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 8f572193078ff9e229c1d39038620857, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
castTargetTrackingMode: 1
castTargetRotationSpeed: 12
castTargetStopDistance: 2.5
allowedWeaponTraits: 0
cooldown: 0
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: 3112e5c033c4381c68a0c4d1924a738e, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 03c4971dcffb2ea0eb36ac997ee2a1a0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE303_3"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uCF64\uBCF4-\uAE30\uBCF8\uAE303 3\uD0C0"
description: "\uAE30\uBCF8\uAE30 \uCF64\uBCF43\uC758 \uBC1C\uCC28\uAE30 \uB9C8\uBB34\uB9AC\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 9678ad326a270e9aa9cb5ebf5fa00279, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
castTargetTrackingMode: 1
castTargetRotationSpeed: 12
castTargetStopDistance: 2.5
allowedWeaponTraits: 0
cooldown: 0
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: 7061e70acfcf6971a8b451af29336e8a, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fc435c80b8f1348f889910629f8eec51
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30_1"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30 1\uD0C0"
description: "\uBC1C\uAD6C\uB974\uAE30 \uCF64\uBCF4\uC758 \uCCAB \uC120\uD589 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 71c802f9bbefb10be81506bf40e18f19, type: 2}
animationSpeed: 1
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
blockJumpWhileCasting: 1
blockOtherSkillsWhileCasting: 1
castTargetTrackingMode: 1
castTargetRotationSpeed: 12
castTargetStopDistance: 2.5
allowedWeaponTraits: 0
cooldown: 0
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: ac7e8e62a369ee81195c6bf8fbebf25a, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3
channelTickInterval: 0.5
channelTickEffects: []
channelEndEffects: []
channelVfxPrefab: {fileID: 0}
channelVfxMountPath:
channelVfxLengthScale: 1
channelVfxWidthScale: 1

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a3d01db588247bc93861ea39572489f5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -10,19 +10,19 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94f0a76cebcac2f4fb5daf1b675fd79f, type: 3}
m_Name: "Data_Skill_Drog_\uC5F0\uD0C04"
m_Name: "Data_Skill_Drog_\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30_2"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.SkillData
skillName: "\uC5F0\uD0C04"
description: "\uBC1C\uAD6C\uB974\uAE30\uB85C \uC774\uC5B4\uC9C0\uB294 \uC555\uBC15\uC6A9
skillName: "\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30 2\uD0C0"
description: "\uBC1C\uAD6C\uB974\uAE30\uB85C \uC5F0\uACB0\uB418\uB294 \uB450 \uBC88\uC9F8
\uC120\uD589 \uD0C0\uACA9\uC785\uB2C8\uB2E4."
icon: {fileID: 0}
skillRole: 1
activationType: 1
baseTypes: 1
animationClips:
- {fileID: 7400000, guid: 03c87eb33f9bceba4a072d790247df1a, type: 2}
- {fileID: 7400000, guid: 7a296d71e8987d8379c9871af2c55b6c, type: 2}
animationSpeed: 1
useRootMotion: 0
useRootMotion: 1
ignoreRootMotionY: 1
jumpToTarget: 0
blockMovementWhileCasting: 1
@@ -36,7 +36,7 @@ MonoBehaviour:
manaCost: 0
maxGemSlotCount: 0
castStartEffects:
- {fileID: 11400000, guid: f30b00740a78c7a4888e0f23bc66150d, type: 2}
- {fileID: 11400000, guid: a5f62aa768348b13ab9844fa521c5728, type: 2}
triggeredEffects: []
isChanneling: 0
channelDuration: 3

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4d2a845524d535769b4e2583c6321ffe
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 6136552683784666d82eb35cd07e8a91
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 83be6f5d07a09dabd98331426177712c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: dd0dbf465f53b30ea99867debe76cc30
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f30b00740a78c7a4888e0f23bc66150d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uC5F0\uD0C03_0_\uB370\uBBF8\uC9C0"
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAC15\uD0C0_1_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
@@ -23,7 +23,7 @@ MonoBehaviour:
areaRadius: 3.6
fanOriginDistance: 1.3
fanRadius: 3.6
fanHalfAngle: 55
baseDamage: 26
fanHalfAngle: 52
baseDamage: 20
damageType: 0
statScaling: 0.8
statScaling: 0.6

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c3acb7cffe4a84368adbca89fb6363e5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAC15\uD0C0_2_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 3.2
fanOriginDistance: 1.15
fanRadius: 3.2
fanHalfAngle: 42
baseDamage: 16
damageType: 0
statScaling: 0.45

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a3fea66d68f45e93b9ed16f64e777363
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uC5F0\uD0C01_0_\uB370\uBBF8\uC9C0"
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE301_1_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
@@ -24,6 +24,6 @@ MonoBehaviour:
fanOriginDistance: 1.25
fanRadius: 3.25
fanHalfAngle: 42
baseDamage: 24
baseDamage: 22
damageType: 0
statScaling: 0.75
statScaling: 0.65

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7c6dcda007f2749e584594e4645dfb49
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE301_2_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 3.3
fanOriginDistance: 1.25
fanRadius: 3.3
fanHalfAngle: 40
baseDamage: 16
damageType: 0
statScaling: 0.5

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 135f4690ea9c62bd8835b97c7ace22d7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uC5F0\uD0C02_0_\uB370\uBBF8\uC9C0"
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE302_1_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
@@ -24,6 +24,6 @@ MonoBehaviour:
fanOriginDistance: 1.35
fanRadius: 3.5
fanHalfAngle: 46
baseDamage: 30
baseDamage: 26
damageType: 0
statScaling: 0.9
statScaling: 0.8

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3d9ee31e7f777725fa5d08ff31f8f6d1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -10,7 +10,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uC5F0\uD0C04_0_\uB370\uBBF8\uC9C0"
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE302_2_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
@@ -20,10 +20,10 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 3.8
areaRadius: 3.6
fanOriginDistance: 1.35
fanRadius: 3.8
fanHalfAngle: 58
baseDamage: 28
fanRadius: 3.6
fanHalfAngle: 42
baseDamage: 20
damageType: 0
statScaling: 0.85
statScaling: 0.6

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fdbbc8f5dc30568cf934a62595987d5c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE303_1_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 2.6
fanOriginDistance: 1.1
fanRadius: 2.6
fanHalfAngle: 55
baseDamage: 12
damageType: 0
statScaling: 0.35

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9a363d0ace156cebba88aa01565c0a55
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE303_2_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 2.6
fanOriginDistance: 1.1
fanRadius: 2.6
fanHalfAngle: 55
baseDamage: 12
damageType: 0
statScaling: 0.35

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3112e5c033c4381c68a0c4d1924a738e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uAE30\uBCF8\uAE303_3_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 3.1
fanOriginDistance: 1.15
fanRadius: 3.1
fanHalfAngle: 68
baseDamage: 18
damageType: 0
statScaling: 0.55

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7061e70acfcf6971a8b451af29336e8a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30_1_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 3.9
fanOriginDistance: 1.35
fanRadius: 3.9
fanHalfAngle: 60
baseDamage: 22
damageType: 0
statScaling: 0.65

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ac7e8e62a369ee81195c6bf8fbebf25a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,29 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 58efb3c775496fa40b801b21127a011e, type: 3}
m_Name: "Data_SkillEffect_Drog_\uCF64\uBCF4-\uBC1C\uAD6C\uB974\uAE30_2_0_\uB370\uBBF8\uC9C0"
m_EditorClassIdentifier: Colosseum.Game::Colosseum.Skills.Effects.DamageEffect
targetType: 1
targetTeam: 0
areaCenter: 0
areaShape: 1
targetLayers:
serializedVersion: 2
m_Bits: 0
includeCasterInArea: 0
areaRadius: 3.6
fanOriginDistance: 1.25
fanRadius: 3.6
fanHalfAngle: 44
baseDamage: 18
damageType: 0
statScaling: 0.5

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a5f62aa768348b13ab9844fa521c5728
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -24,10 +24,10 @@ namespace Colosseum.Editor
private const string DefaultPunishPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_밟기.asset";
private const string DefaultSignaturePatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_집행.asset";
private const string DefaultMobilityPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_도약.asset";
private const string DefaultSecondaryPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_연타2.asset";
private const string DefaultComboPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_연타3-강타.asset";
private const string DefaultPrimaryPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_연타1.asset";
private const string DefaultPressurePatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_연타4-발구르기.asset";
private const string DefaultSecondaryPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_콤보-기본기2.asset";
private const string DefaultComboPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_콤보-강타.asset";
private const string DefaultPrimaryPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_콤보-기본기1.asset";
private const string DefaultPressurePatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_콤보-발구르기.asset";
private const string DefaultUtilityPatternPath = "Assets/_Game/Data/Patterns/Data_Pattern_Drog_투척.asset";
private const string DefaultPhase3TransitionSkillPath = "Assets/_Game/Data/Skills/Data_Skill_Drog_포효.asset";
@@ -225,10 +225,10 @@ namespace Colosseum.Editor
BossPatternData punishPattern = LoadRequiredAsset<BossPatternData>(DefaultPunishPatternPath, "밟기 패턴");
BossPatternData signaturePattern = LoadRequiredAsset<BossPatternData>(DefaultSignaturePatternPath, "집행 개시 패턴");
BossPatternData mobilityPattern = LoadRequiredAsset<BossPatternData>(DefaultMobilityPatternPath, "점프 패턴");
BossPatternData secondaryPattern = LoadRequiredAsset<BossPatternData>(DefaultSecondaryPatternPath, "연타2 패턴");
BossPatternData comboPattern = LoadRequiredAsset<BossPatternData>(DefaultComboPatternPath, "연타3-강타 패턴");
BossPatternData primaryPattern = LoadRequiredAsset<BossPatternData>(DefaultPrimaryPatternPath, "기본 근접 패턴");
BossPatternData pressurePattern = LoadRequiredAsset<BossPatternData>(DefaultPressurePatternPath, "연타4-발구르기 패턴");
BossPatternData secondaryPattern = LoadRequiredAsset<BossPatternData>(DefaultSecondaryPatternPath, "콤보-기본기2 패턴");
BossPatternData comboPattern = LoadRequiredAsset<BossPatternData>(DefaultComboPatternPath, "콤보-강타 패턴");
BossPatternData primaryPattern = LoadRequiredAsset<BossPatternData>(DefaultPrimaryPatternPath, "콤보-기본기1 패턴");
BossPatternData pressurePattern = LoadRequiredAsset<BossPatternData>(DefaultPressurePatternPath, "콤보-발구르기 패턴");
BossPatternData utilityPattern = LoadRequiredAsset<BossPatternData>(DefaultUtilityPatternPath, "투척 패턴");
SkillData phase3TransitionSkill = LoadRequiredAsset<SkillData>(DefaultPhase3TransitionSkillPath, "Phase 3 포효 스킬");
@@ -335,7 +335,7 @@ namespace Colosseum.Editor
// 메인 체인: signatureBranch.True → Sequence
ConnectBranch(graphAsset, connectEdgeMethod, signatureBranch, "True", signatureSequence);
// #3 Combo — 연타3-강타
// #3 Combo — 콤보-강타
object comboBranch = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, branchCompositeType, new Vector2(branchX, startY + stepY * 2));
AttachPatternReadyCondition(comboBranch, comboPattern, authoringAssembly);
AttachPhaseConditionIfNeeded(comboBranch, comboPattern, authoringAssembly);
@@ -371,7 +371,7 @@ namespace Colosseum.Editor
LinkTarget(leapUseNode, targetVariable);
ConnectChildren(graphAsset, connectEdgeMethod, leapSequence, leapSelectNode, leapUseNode);
// #5 Primary — 연타1
// #5 Primary — 콤보-기본기1
object primaryBranch = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, branchCompositeType, new Vector2(branchX, startY + stepY * 4));
object primaryRangeCondModel = AttachCondition(primaryBranch, typeof(IsTargetInAttackRangeCondition), authoringAssembly);
if (primaryRangeCondModel != null) setFieldMethod.Invoke(primaryRangeCondModel, new object[] { "Target", targetVariable, typeof(GameObject) });
@@ -389,7 +389,7 @@ namespace Colosseum.Editor
LinkTarget(primaryUseNode, targetVariable);
ConnectChildren(graphAsset, connectEdgeMethod, primarySequence, primaryValidateNode, primaryUseNode);
// #6 Secondary Basic — 연타2
// #6 Secondary Basic — 콤보-기본기2
object secondaryBranch = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, branchCompositeType, new Vector2(branchX, startY + stepY * 5));
object secondaryRangeCondModel = AttachCondition(secondaryBranch, typeof(IsTargetInAttackRangeCondition), authoringAssembly);
if (secondaryRangeCondModel != null) setFieldMethod.Invoke(secondaryRangeCondModel, new object[] { "Target", targetVariable, typeof(GameObject) });
@@ -407,7 +407,7 @@ namespace Colosseum.Editor
LinkTarget(secondaryUseNode, targetVariable);
ConnectChildren(graphAsset, connectEdgeMethod, secondarySequence, secondaryValidateNode, secondaryUseNode);
// #7 Pressure — 연타4-발구르기
// #7 Pressure — 콤보-발구르기
object pressureBranch = CreateNode(graphAsset, createNodeMethod, getNodeInfoMethod, branchCompositeType, new Vector2(branchX, startY + stepY * 6));
object pressureRangeCondModel = AttachCondition(pressureBranch, typeof(IsTargetInAttackRangeCondition), authoringAssembly);
if (pressureRangeCondModel != null) setFieldMethod.Invoke(pressureRangeCondModel, new object[] { "Target", targetVariable, typeof(GameObject) });

View File

@@ -23,6 +23,13 @@ namespace Colosseum.Editor
private const string PatternsFolder = "Assets/_Game/Data/Patterns";
private const string EffectsFolder = "Assets/_Game/Data/Skills/Effects";
private const string ExecutionTelegraphAbnormalityPath = "Assets/_Game/Data/Abnormalities/Data_Abnormality_Drog_집행준비.asset";
private const string LightCombo01BSourcePath = "Assets/External/Animations/AnimationSwordCombat/Animations/Sidekick/Attack/LightCombo01/A_MOD_SWD_Attack_LightCombo01B_RM_Neut.fbx";
private const string HeavyCombo01BSourcePath = "Assets/External/Animations/AnimationSwordCombat/Animations/Sidekick/Attack/HeavyCombo01/A_MOD_SWD_Attack_HeavyCombo01B_RM_Neut.fbx";
private const string HeavyCombo01CSourcePath = "Assets/External/Animations/AnimationSwordCombat/Animations/Sidekick/Attack/HeavyCombo01/A_MOD_SWD_Attack_HeavyCombo01C_RM_Neut.fbx";
private const string ZweihanderAttack013SourcePath = "Assets/External/Animations/Knight_Zweihander_Animset/Animation/Attack/Root/Zweihander_Attack01_3_Root.FBX";
private const string PunchLSourcePath = "Assets/External/Animations/Mixamo/펀치L.fbx";
private const string PunchRSourcePath = "Assets/External/Animations/Mixamo/펀치R.fbx";
private const string KickRSourcePath = "Assets/External/Animations/Mixamo/킥R.fbx";
[MenuItem("Tools/Colosseum/Rebuild Drog Combat Assets")]
private static void Rebuild()
@@ -35,6 +42,7 @@ namespace Colosseum.Editor
EnsureFolder("Assets/_Game/Data/Skills");
EnsureFolder("Assets/_Game/Data/Patterns");
EnsureFolder("Assets/_Game/Data/Skills/Effects");
DeleteLegacyComboAssets();
AbnormalityData executionTelegraph = AssetDatabase.LoadAssetAtPath<AbnormalityData>(ExecutionTelegraphAbnormalityPath);
if (executionTelegraph == null)
@@ -43,12 +51,26 @@ namespace Colosseum.Editor
return;
}
AnimationClip combo1Clip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_타1_0.anim");
AnimationClip combo2Clip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_연타2_0.anim");
AnimationClip slamClip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_강타_0.anim");
AnimationClip combo3Clip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_연타3_0.anim");
AnimationClip combo4Clip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_연타4_0.anim");
AnimationClip stompClip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_발구르기_0.anim");
AnimationClip comboBasic1Hit1Clip0 = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기1_1_0.anim", $"{AnimationsFolder}/Anim_Drog_타1R_0.anim");
AnimationClip comboBasic1Hit1Clip1 = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기1_1_1.anim", $"{AnimationsFolder}/Anim_Drog_평타1R_1.anim");
AnimationClip comboBasic1Hit2Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기1_2_0.anim", LightCombo01BSourcePath, "A_MOD_SWD_Attack_LightCombo01B_RM_Neut");
AnimationClip comboBasic2Hit1Clip0 = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기2_1_0.anim", $"{AnimationsFolder}/Anim_Drog_평타2R_0.anim");
AnimationClip comboBasic2Hit1Clip1 = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기2_1_1.anim", $"{AnimationsFolder}/Anim_Drog_평타2R_1.anim");
AnimationClip comboBasic2Hit1Clip2 = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기2_1_2.anim", $"{AnimationsFolder}/Anim_Drog_평타2R_2.anim");
AnimationClip comboBasic2Hit2Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기2_2_0.anim", HeavyCombo01CSourcePath, "A_MOD_SWD_Attack_HeavyCombo01C_RM_Neut");
AnimationClip comboBasic3Hit1Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기3_1_0.anim", PunchLSourcePath, "mixamo.com");
AnimationClip comboBasic3Hit2Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기3_2_0.anim", PunchRSourcePath, "mixamo.com");
AnimationClip comboBasic3Hit3Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-기본기3_3_0.anim", KickRSourcePath, "mixamo.com");
AnimationClip comboSlamHit1Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-강타_1_0.anim", HeavyCombo01BSourcePath, "A_MOD_SWD_Attack_HeavyCombo01B_RM_Neut");
AnimationClip comboSlamHit2Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-강타_2_0.anim", LightCombo01BSourcePath, "A_MOD_SWD_Attack_LightCombo01B_RM_Neut");
AnimationClip slamClip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_강타_0.anim", $"{AnimationsFolder}/Anim_Drog_강타R_0.anim");
AnimationClip comboStompHit1Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-발구르기_1_0.anim", ZweihanderAttack013SourcePath, "Zweihander_Attack01_3_Root");
AnimationClip comboStompHit2Clip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_콤보-발구르기_2_0.anim", HeavyCombo01CSourcePath, "A_MOD_SWD_Attack_HeavyCombo01C_RM_Neut");
AnimationClip stompClip = EnsureClipFromSource($"{AnimationsFolder}/Anim_Drog_발구르기_0.anim", $"{AnimationsFolder}/Anim_Drog_발구르기_0.anim");
AnimationClip leapPrepareClip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_도약_준비_0.anim");
AnimationClip leapAirClip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_도약_공중_0.anim");
AnimationClip leapLandingClip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_도약_착지_0.anim");
@@ -60,11 +82,11 @@ namespace Colosseum.Editor
AnimationClip executionHit2Clip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_집행_연타2_0.anim");
AnimationClip executionHit3Clip = EnsurePlaceholderClip($"{AnimationsFolder}/Anim_Drog_집행_연타3_0.anim");
DamageEffect combo1Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_연타1_0_데미지.asset",
24f,
DamageEffect comboBasic1Hit1Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기1_1_0_데미지.asset",
22f,
DamageType.Physical,
0.75f,
0.65f,
AreaShapeType.Fan,
3.25f,
1.25f,
@@ -72,11 +94,23 @@ namespace Colosseum.Editor
42f,
AreaCenterType.Caster);
DamageEffect combo2Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_연타2_0_데미지.asset",
30f,
DamageEffect comboBasic1Hit2Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기1_2_0_데미지.asset",
16f,
DamageType.Physical,
0.9f,
0.5f,
AreaShapeType.Fan,
3.3f,
1.25f,
3.3f,
40f,
AreaCenterType.Caster);
DamageEffect comboBasic2Hit1Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기2_1_0_데미지.asset",
26f,
DamageType.Physical,
0.8f,
AreaShapeType.Fan,
3.5f,
1.35f,
@@ -84,6 +118,18 @@ namespace Colosseum.Editor
46f,
AreaCenterType.Caster);
DamageEffect comboBasic2Hit2Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기2_2_0_데미지.asset",
20f,
DamageType.Physical,
0.6f,
AreaShapeType.Fan,
3.6f,
1.35f,
3.6f,
42f,
AreaCenterType.Caster);
DamageEffect slamDamage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_강타_0_데미지.asset",
48f,
@@ -106,28 +152,88 @@ namespace Colosseum.Editor
32f,
AreaCenterType.Caster);
DamageEffect combo3Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_연타3_0_데미지.asset",
26f,
DamageEffect comboBasic3Hit1Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기3_1_0_데미지.asset",
12f,
DamageType.Physical,
0.8f,
0.35f,
AreaShapeType.Fan,
2.6f,
1.1f,
2.6f,
55f,
AreaCenterType.Caster);
DamageEffect comboBasic3Hit2Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기3_2_0_데미지.asset",
12f,
DamageType.Physical,
0.35f,
AreaShapeType.Fan,
2.6f,
1.1f,
2.6f,
55f,
AreaCenterType.Caster);
DamageEffect comboBasic3Hit3Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기3_3_0_데미지.asset",
18f,
DamageType.Physical,
0.55f,
AreaShapeType.Fan,
3.1f,
1.15f,
3.1f,
68f,
AreaCenterType.Caster);
DamageEffect comboSlamHit1Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-강타_1_0_데미지.asset",
20f,
DamageType.Physical,
0.6f,
AreaShapeType.Fan,
3.6f,
1.3f,
3.6f,
55f,
52f,
AreaCenterType.Caster);
DamageEffect combo4Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_연타4_0_데미지.asset",
28f,
DamageEffect comboSlamHit2Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-강타_2_0_데미지.asset",
16f,
DamageType.Physical,
0.85f,
0.45f,
AreaShapeType.Fan,
3.8f,
3.2f,
1.15f,
3.2f,
42f,
AreaCenterType.Caster);
DamageEffect comboStompHit1Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-발구르기_1_0_데미지.asset",
22f,
DamageType.Physical,
0.65f,
AreaShapeType.Fan,
3.9f,
1.35f,
3.8f,
58f,
3.9f,
60f,
AreaCenterType.Caster);
DamageEffect comboStompHit2Damage = CreateDamageEffect(
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-발구르기_2_0_데미지.asset",
18f,
DamageType.Physical,
0.5f,
AreaShapeType.Fan,
3.6f,
1.25f,
3.6f,
44f,
AreaCenterType.Caster);
DamageEffect stompDamage = CreateDamageEffect(
@@ -251,75 +357,159 @@ namespace Colosseum.Editor
180f,
AreaCenterType.Caster);
SkillData combo1Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_연타1.asset",
"연타1",
"기본 루프의 첫 타격입니다.",
combo1Clip,
SkillData comboBasic1Hit1Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기1_1.asset",
"콤보-기본기1 1타",
"기본기 콤보1의 첫 타격입니다.",
new[] { comboBasic1Hit1Clip0, comboBasic1Hit1Clip1 },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
true,
true,
false,
combo1Damage);
comboBasic1Hit1Damage);
SkillData combo2Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_연타2.asset",
"연타2",
"기본 루프의 두 번째 타격입니다.",
combo2Clip,
SkillData comboBasic1Hit2Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기1_2.asset",
"콤보-기본기1 2타",
"기본기 콤보1의 후속 타격입니다.",
new[] { comboBasic1Hit2Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
true,
true,
false,
combo2Damage);
comboBasic1Hit2Damage);
SkillData comboBasic2Hit1Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기2_1.asset",
"콤보-기본기2 1타",
"기본기 콤보2의 시작 타격입니다.",
new[] { comboBasic2Hit1Clip0, comboBasic2Hit1Clip1, comboBasic2Hit1Clip2 },
1f,
SkillCastTargetTrackingMode.FaceTarget,
true,
true,
false,
comboBasic2Hit1Damage);
SkillData comboBasic2Hit2Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기2_2.asset",
"콤보-기본기2 2타",
"기본기 콤보2의 마무리 타격입니다.",
new[] { comboBasic2Hit2Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
true,
true,
false,
comboBasic2Hit2Damage);
SkillData slamSkill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_강타.asset",
"강타",
"정면 관리 실패를 응징하는 강한 일격입니다.",
slamClip,
new[] { slamClip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
true,
true,
false,
slamDamage,
slamDown);
SkillData combo3Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_연타3.asset",
"연타3",
"강타로 이어지는 선행 타격입니다.",
combo3Clip,
SkillData comboBasic3Hit1Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기3_1.asset",
"콤보-기본기3 1타",
"기본기 콤보3의 첫 번째 타격입니다.",
new[] { comboBasic3Hit1Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
true,
true,
false,
combo3Damage);
comboBasic3Hit1Damage);
SkillData combo4Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_연타4.asset",
"연타4",
"발구르기로 이어지는 압박용 선행 타격입니다.",
combo4Clip,
SkillData comboBasic3Hit2Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기3_2.asset",
"콤보-기본기3 2타",
"기본기 콤보3의 두 번째 타격입니다.",
new[] { comboBasic3Hit2Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
true,
true,
false,
combo4Damage);
comboBasic3Hit2Damage);
SkillData comboBasic3Hit3Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기3_3.asset",
"콤보-기본기3 3타",
"기본기 콤보3의 발차기 마무리입니다.",
new[] { comboBasic3Hit3Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
true,
true,
false,
comboBasic3Hit3Damage);
SkillData comboSlamHit1Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-강타_1.asset",
"콤보-강타 1타",
"강타 콤보의 첫 선행 타격입니다.",
new[] { comboSlamHit1Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
true,
true,
false,
comboSlamHit1Damage);
SkillData comboSlamHit2Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-강타_2.asset",
"콤보-강타 2타",
"강타로 이어지는 두 번째 선행 타격입니다.",
new[] { comboSlamHit2Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
true,
true,
false,
comboSlamHit2Damage);
SkillData comboStompHit1Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-발구르기_1.asset",
"콤보-발구르기 1타",
"발구르기 콤보의 첫 선행 타격입니다.",
new[] { comboStompHit1Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
true,
true,
false,
comboStompHit1Damage);
SkillData comboStompHit2Skill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_콤보-발구르기_2.asset",
"콤보-발구르기 2타",
"발구르기로 연결되는 두 번째 선행 타격입니다.",
new[] { comboStompHit2Clip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
true,
true,
false,
comboStompHit2Damage);
SkillData stompSkill = CreateSkill(
$"{SkillsFolder}/Data_Skill_Drog_발구르기.asset",
"발구르기",
"근접 측후방 전체를 흔드는 광역 압박입니다.",
stompClip,
new[] { stompClip },
1f,
SkillCastTargetTrackingMode.None,
false,
true,
true,
false,
stompDamage,
@@ -329,7 +519,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_도약_준비.asset",
"도약 준비",
"원거리 이탈 대상에게 시선을 고정합니다.",
leapPrepareClip,
new[] { leapPrepareClip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
@@ -340,7 +530,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_도약_공중.asset",
"도약 공중",
"대상 위치로 도약하는 이동 스텝입니다.",
leapAirClip,
new[] { leapAirClip },
1f,
SkillCastTargetTrackingMode.MoveTowardTarget,
true,
@@ -351,7 +541,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_도약_착지.asset",
"도약 착지",
"도약 종료 시 주변에 피해와 넉백을 줍니다.",
leapLandingClip,
new[] { leapLandingClip },
1f,
SkillCastTargetTrackingMode.None,
false,
@@ -364,7 +554,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_밟기.asset",
"밟기",
"다운된 대상을 후속 압박으로 처벌합니다.",
stepClip,
new[] { stepClip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
@@ -377,7 +567,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_투척.asset",
"투척",
"부활 시전자나 원거리 대상을 견제하는 유틸리티 공격입니다.",
throwClip,
new[] { throwClip },
1f,
SkillCastTargetTrackingMode.FaceTarget,
false,
@@ -389,7 +579,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_포효.asset",
"포효",
"Phase 3 진입을 알리는 전환 신호입니다.",
roarClip,
new[] { roarClip },
0.9f,
SkillCastTargetTrackingMode.None,
false,
@@ -400,7 +590,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_집행_준비.asset",
"집행 준비",
"집행 돌입 전 자세를 고정합니다.",
executionReadyClip,
new[] { executionReadyClip },
0.85f,
SkillCastTargetTrackingMode.None,
false,
@@ -411,7 +601,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_집행_연타1.asset",
"집행 연타1",
"집행의 첫 압박 타격입니다.",
executionHit1Clip,
new[] { executionHit1Clip },
1f,
SkillCastTargetTrackingMode.None,
false,
@@ -423,7 +613,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_집행_연타2.asset",
"집행 연타2",
"집행의 두 번째 압박 타격입니다.",
executionHit2Clip,
new[] { executionHit2Clip },
1.1f,
SkillCastTargetTrackingMode.None,
false,
@@ -435,7 +625,7 @@ namespace Colosseum.Editor
$"{SkillsFolder}/Data_Skill_Drog_집행_연타3.asset",
"집행 연타3",
"집행의 세 번째 압박 타격입니다.",
executionHit3Clip,
new[] { executionHit3Clip },
1.2f,
SkillCastTargetTrackingMode.None,
false,
@@ -444,8 +634,8 @@ namespace Colosseum.Editor
executionHit3);
CreatePattern(
$"{PatternsFolder}/Data_Pattern_Drog_연타1.asset",
"연타1",
$"{PatternsFolder}/Data_Pattern_Drog_콤보-기본기1.asset",
"콤보-기본기1",
PatternCategory.Basic,
false,
true,
@@ -453,23 +643,39 @@ namespace Colosseum.Editor
2.5f,
1,
false,
PatternStepDefinition.CreateSkillStep(combo1Skill));
PatternStepDefinition.CreateSkillStep(comboBasic1Hit1Skill),
PatternStepDefinition.CreateSkillStep(comboBasic1Hit2Skill));
CreatePattern(
$"{PatternsFolder}/Data_Pattern_Drog_연타2.asset",
"연타2",
$"{PatternsFolder}/Data_Pattern_Drog_콤보-기본기2.asset",
"콤보-기본기2",
PatternCategory.Basic,
false,
true,
TargetResolveMode.HighestThreat,
2.75f,
3f,
1,
false,
PatternStepDefinition.CreateSkillStep(combo2Skill));
PatternStepDefinition.CreateSkillStep(comboBasic2Hit1Skill),
PatternStepDefinition.CreateSkillStep(comboBasic2Hit2Skill));
CreatePattern(
$"{PatternsFolder}/Data_Pattern_Drog_연타3-강타.asset",
"연타3-강타",
$"{PatternsFolder}/Data_Pattern_Drog_콤보-기본기3.asset",
"콤보-기본기3",
PatternCategory.Basic,
false,
true,
TargetResolveMode.HighestThreat,
3.25f,
1,
false,
PatternStepDefinition.CreateSkillStep(comboBasic3Hit1Skill),
PatternStepDefinition.CreateSkillStep(comboBasic3Hit2Skill),
PatternStepDefinition.CreateSkillStep(comboBasic3Hit3Skill));
CreatePattern(
$"{PatternsFolder}/Data_Pattern_Drog_콤보-강타.asset",
"콤보-강타",
PatternCategory.Basic,
false,
true,
@@ -477,13 +683,14 @@ namespace Colosseum.Editor
4.5f,
1,
false,
PatternStepDefinition.CreateSkillStep(combo3Skill),
PatternStepDefinition.CreateWaitStep(0.15f),
PatternStepDefinition.CreateSkillStep(comboSlamHit1Skill),
PatternStepDefinition.CreateSkillStep(comboSlamHit2Skill),
PatternStepDefinition.CreateWaitStep(0.1f),
PatternStepDefinition.CreateSkillStep(slamSkill));
CreatePattern(
$"{PatternsFolder}/Data_Pattern_Drog_연타4-발구르기.asset",
"연타4-발구르기",
$"{PatternsFolder}/Data_Pattern_Drog_콤보-발구르기.asset",
"콤보-발구르기",
PatternCategory.Basic,
false,
true,
@@ -491,8 +698,9 @@ namespace Colosseum.Editor
5f,
1,
false,
PatternStepDefinition.CreateSkillStep(combo4Skill),
PatternStepDefinition.CreateWaitStep(0.15f),
PatternStepDefinition.CreateSkillStep(comboStompHit1Skill),
PatternStepDefinition.CreateSkillStep(comboStompHit2Skill),
PatternStepDefinition.CreateWaitStep(0.1f),
PatternStepDefinition.CreateSkillStep(stompSkill));
CreatePattern(
@@ -579,6 +787,36 @@ namespace Colosseum.Editor
AssetDatabase.CreateFolder(parent, Path.GetFileName(path));
}
/// <summary>
/// 이전 단일 스킬 기반 콤보 자산을 제거합니다.
/// </summary>
private static void DeleteLegacyComboAssets()
{
string[] legacyPaths =
{
$"{AnimationsFolder}/Anim_Drog_콤보-기본기1_0.anim",
$"{AnimationsFolder}/Anim_Drog_콤보-기본기2_0.anim",
$"{AnimationsFolder}/Anim_Drog_콤보-기본기3_0.anim",
$"{AnimationsFolder}/Anim_Drog_콤보-발구르기_선행_0.anim",
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기1.asset",
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기2.asset",
$"{SkillsFolder}/Data_Skill_Drog_콤보-기본기3.asset",
$"{SkillsFolder}/Data_Skill_Drog_콤보-발구르기_선행.asset",
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기1_0_데미지.asset",
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기2_0_데미지.asset",
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-기본기3_0_데미지.asset",
$"{EffectsFolder}/Data_SkillEffect_Drog_콤보-발구르기_선행_0_데미지.asset",
};
for (int i = 0; i < legacyPaths.Length; i++)
{
if (AssetDatabase.LoadMainAssetAtPath(legacyPaths[i]) == null)
continue;
AssetDatabase.DeleteAsset(legacyPaths[i]);
}
}
/// <summary>
/// 지정 경로의 ScriptableObject를 읽거나 새로 생성합니다.
/// </summary>
@@ -613,6 +851,108 @@ namespace Colosseum.Editor
return clip;
}
/// <summary>
/// 소스 클립을 독립 .anim 자산으로 복제하거나 기존 자산을 갱신합니다.
/// </summary>
private static AnimationClip EnsureClipFromSource(string targetPath, string sourcePath, string sourceClipName = null)
{
AnimationClip sourceClip = LoadClipFromPath(sourcePath, sourceClipName);
if (sourceClip == null)
{
Debug.LogWarning($"[DrogCombatAssets] 소스 클립을 찾지 못해 플레이스홀더를 유지합니다: {sourcePath} ({sourceClipName})");
return EnsurePlaceholderClip(targetPath);
}
AnimationClip clonedClip = CloneClip(sourceClip, Path.GetFileNameWithoutExtension(targetPath));
AnimationClip existingClip = AssetDatabase.LoadAssetAtPath<AnimationClip>(targetPath);
if (existingClip == null)
{
AssetDatabase.CreateAsset(clonedClip, targetPath);
return clonedClip;
}
EditorUtility.CopySerialized(clonedClip, existingClip);
existingClip.name = Path.GetFileNameWithoutExtension(targetPath);
EditorUtility.SetDirty(existingClip);
UnityEngine.Object.DestroyImmediate(clonedClip);
return existingClip;
}
/// <summary>
/// 경로에서 AnimationClip을 읽습니다. FBX인 경우 지정 이름의 서브 클립을 우선 사용합니다.
/// </summary>
private static AnimationClip LoadClipFromPath(string path, string preferredClipName = null)
{
AnimationClip directClip = AssetDatabase.LoadAssetAtPath<AnimationClip>(path);
if (directClip != null && (string.IsNullOrEmpty(preferredClipName) || directClip.name == preferredClipName))
return directClip;
UnityEngine.Object[] subAssets = AssetDatabase.LoadAllAssetsAtPath(path);
AnimationClip fallbackClip = null;
for (int i = 0; i < subAssets.Length; i++)
{
if (subAssets[i] is not AnimationClip clip)
continue;
if (!string.IsNullOrEmpty(preferredClipName) && clip.name == preferredClipName)
return clip;
if (fallbackClip == null && !clip.name.StartsWith("__preview__", StringComparison.Ordinal))
fallbackClip = clip;
}
return fallbackClip;
}
/// <summary>
/// 소스 클립의 커브와 이벤트를 복사한 독립 AnimationClip을 생성합니다.
/// </summary>
private static AnimationClip CloneClip(AnimationClip sourceClip, string targetName)
{
AnimationClip clonedClip = new AnimationClip
{
name = targetName,
frameRate = sourceClip.frameRate,
legacy = sourceClip.legacy,
wrapMode = sourceClip.wrapMode,
localBounds = sourceClip.localBounds,
};
EditorCurveBinding[] bindings = AnimationUtility.GetCurveBindings(sourceClip);
for (int i = 0; i < bindings.Length; i++)
{
AnimationCurve curve = AnimationUtility.GetEditorCurve(sourceClip, bindings[i]);
if (curve == null || curve.keys.Length == 0)
continue;
clonedClip.SetCurve(bindings[i].path, bindings[i].type, bindings[i].propertyName, curve);
}
AnimationEvent[] sourceEvents = AnimationUtility.GetAnimationEvents(sourceClip);
if (sourceEvents.Length > 0)
{
var clonedEvents = new AnimationEvent[sourceEvents.Length];
for (int i = 0; i < sourceEvents.Length; i++)
{
clonedEvents[i] = new AnimationEvent
{
time = sourceEvents[i].time,
functionName = sourceEvents[i].functionName,
floatParameter = sourceEvents[i].floatParameter,
intParameter = sourceEvents[i].intParameter,
stringParameter = sourceEvents[i].stringParameter,
objectReferenceParameter = sourceEvents[i].objectReferenceParameter,
messageOptions = sourceEvents[i].messageOptions,
};
}
AnimationUtility.SetAnimationEvents(clonedClip, clonedEvents);
}
return clonedClip;
}
/// <summary>
/// Effect/Skill/Pattern의 공통 Object 리스트를 설정합니다.
/// </summary>
@@ -768,7 +1108,7 @@ namespace Colosseum.Editor
string path,
string skillName,
string description,
AnimationClip clip,
IReadOnlyList<AnimationClip> clips,
float animationSpeed,
SkillCastTargetTrackingMode trackingMode,
bool useRootMotion,
@@ -799,7 +1139,17 @@ namespace Colosseum.Editor
serializedObject.FindProperty("maxGemSlotCount").intValue = 0;
serializedObject.FindProperty("triggeredEffects").arraySize = 0;
SetObjectList(serializedObject, "animationClips", new UnityEngine.Object[] { clip });
var clipObjects = new List<UnityEngine.Object>();
if (clips != null)
{
for (int i = 0; i < clips.Count; i++)
{
if (clips[i] != null)
clipObjects.Add(clips[i]);
}
}
SetObjectList(serializedObject, "animationClips", clipObjects);
var effectObjects = new List<UnityEngine.Object>();
if (castStartEffects != null)
@@ -813,6 +1163,7 @@ namespace Colosseum.Editor
SetObjectList(serializedObject, "castStartEffects", effectObjects);
serializedObject.ApplyModifiedPropertiesWithoutUndo();
skill.RefreshAnimationClips();
EditorUtility.SetDirty(skill);
return skill;