WL #951 PD 지시 6건 — ① 마법책 3타 = 1·2타 1회씩 교대(×1.4) ② 지팡이 3타 = RangeAttack2 거울 f28~32 ×0.25(내뻗은 채 정지 0.5 s) ③ 오브(1057) 3타 신설 = Mage Jump-Attack1 점프 내리치기(공격표 step 3 행 · 매핑 attack3 · pcanim_mage) ④ 오브 시전 시간 SkillList 703303 0.5 s · 703301 1.0 s ⑤ 비수 3타 궤적 = 원본 Effect_Slash_10202_3 사본을 swingFx follow+alignWeapon 으로 날 위치·방향 추종 ⑥ 비수 각성 연출 = 도약 잔상 4 → 공중 클립 끝에 1.2 m 낙하(LateUpdate) + 착지 클립 ghost_land(Platform Sub_HeroLanding · 어새신 컨트롤러) + 바닥 먼지(HCFX Dust_Dash 사본) + 0.5 m 미끄러짐(NavMeshAgent.Move) · WLGhostStrike 규칙 필드 신설
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
ff254eff1e
commit
c19e37a37d
|
|
@ -725,6 +725,49 @@ ModelImporter:
|
|||
maskType: 0
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: OrbSlam3_S_10301
|
||||
takeName: Take 001
|
||||
internalID: -998496362607748373
|
||||
firstFrame: 0
|
||||
lastFrame: 24
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 0
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.66
|
||||
functionName: Projectile
|
||||
data: Projectile_10301
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 0
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
|
|
|
|||
|
|
@ -655,8 +655,8 @@ ModelImporter:
|
|||
name: StaffCast3_S_10302
|
||||
takeName: Take 001
|
||||
internalID: 1827226128182048838
|
||||
firstFrame: 16
|
||||
lastFrame: 46
|
||||
firstFrame: 28
|
||||
lastFrame: 32
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
|
|
@ -683,7 +683,7 @@ ModelImporter:
|
|||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.35
|
||||
- time: 0.15
|
||||
functionName: Projectile
|
||||
data: Projectile_10302
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -416,6 +416,28 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-2371047487094635229
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110222392}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.9
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-2271460271125536330
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -565,6 +587,34 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-1537197310772809155
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: ghost_land
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -2371047487094635229}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -998496362607748373, guid: 25314145480ad74499a550c1b1ffe70e,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-923179202116366244
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -2404,6 +2454,9 @@ AnimatorStateMachine:
|
|||
- serializedVersion: 1
|
||||
m_State: {fileID: -6337961118936173454}
|
||||
m_Position: {x: 50, y: 40, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -1537197310772809155}
|
||||
m_Position: {x: -20, y: -170, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
|
|
|
|||
|
|
@ -1,27 +1,5 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1101 &-8539633261012113699
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110222392}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.8369565
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-7588987582283963691
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -49,6 +27,34 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-6957861221246778362
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack3
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -2386498368840134014}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -998496362607748373, guid: 45a67152c2387d44ca765df06da1d33a,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-6725469328595531331
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -60,7 +66,7 @@ AnimatorState:
|
|||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -8539633261012113699}
|
||||
- {fileID: 803565803277545113}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
|
|
@ -180,6 +186,28 @@ AnimatorStateTransition:
|
|||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-2386498368840134014
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110222392}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.8
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-2242026176269797008
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -2006,6 +2034,9 @@ AnimatorStateMachine:
|
|||
- serializedVersion: 1
|
||||
m_State: {fileID: -6188849112321773161}
|
||||
m_Position: {x: 290, y: -300, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -6957861221246778362}
|
||||
m_Position: {x: 325, y: -235, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
|
|
@ -2097,6 +2128,28 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &803565803277545113
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -6957861221246778362}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.15
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.85
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &811731208389968518
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
|
|||
|
|
@ -2303,7 +2303,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack3
|
||||
m_Speed: 1
|
||||
m_Speed: 0.25
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 7396964718502629461}
|
||||
|
|
|
|||
|
|
@ -49,56 +49,6 @@ AnimatorStateTransition:
|
|||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-4796975231335754110
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack3d
|
||||
m_Speed: 2.5
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 8777332740921490109}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 6234510843852800090, guid: e0919932c9c179142ad06cf4ee11f204,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-4218806072011345864
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -3990237916424465730}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.15
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.85
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-4177302407337328582
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -127,34 +77,6 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-3990237916424465730
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack3
|
||||
m_Speed: 2.5
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 6736461488995620371}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 6234510843852800090, guid: e3d070983d568754782121f6efd86a6d,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &-3931620847702217361
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -279,6 +201,28 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-1075653808135005254
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110222392}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.8
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-944003229221772330
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -2087,17 +2031,11 @@ AnimatorStateMachine:
|
|||
m_State: {fileID: 3043085607005748951}
|
||||
m_Position: {x: -50, y: -150, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -3990237916424465730}
|
||||
m_State: {fileID: 8771712776054593383}
|
||||
m_Position: {x: -15, y: -85, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1211289149971408261}
|
||||
m_State: {fileID: 5184296106726420485}
|
||||
m_Position: {x: 20, y: -20, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 1991670155751961014}
|
||||
m_Position: {x: 55, y: 45, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -4796975231335754110}
|
||||
m_Position: {x: 90, y: 110, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
|
|
@ -2189,28 +2127,6 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &712130927223328335
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1991670155751961014}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.15
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.85
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &811731208389968518
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -2374,34 +2290,6 @@ AnimatorStateTransition:
|
|||
m_InterruptionSource: 2
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &1211289149971408261
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack3b
|
||||
m_Speed: 2.5
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 712130927223328335}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -5059006814000262888, guid: e0919932c9c179142ad06cf4ee11f204,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &1858289013235272262
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -2424,34 +2312,6 @@ AnimatorStateTransition:
|
|||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &1991670155751961014
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack3c
|
||||
m_Speed: 2.5
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 2964847495087587129}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -6788666626592393668, guid: e3d070983d568754782121f6efd86a6d,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &2894507576667459654
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -2474,28 +2334,6 @@ AnimatorStateTransition:
|
|||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &2964847495087587129
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -4796975231335754110}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.15
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.85
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &3043085607005748951
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -2507,7 +2345,7 @@ AnimatorState:
|
|||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -4218806072011345864}
|
||||
- {fileID: 7720926868987146892}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
|
|
@ -2552,7 +2390,35 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &6736461488995620371
|
||||
--- !u!1102 &5184296106726420485
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack3b
|
||||
m_Speed: 1.4
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -1075653808135005254}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -5059006814000262888, guid: e0919932c9c179142ad06cf4ee11f204,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &5339900261231598212
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
|
|
@ -2561,7 +2427,7 @@ AnimatorStateTransition:
|
|||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 1211289149971408261}
|
||||
m_DstState: {fileID: 5184296106726420485}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
|
|
@ -2678,6 +2544,28 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &7720926868987146892
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 8771712776054593383}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.15
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.85
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 0
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &7931434825596784953
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -2731,28 +2619,34 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &8777332740921490109
|
||||
AnimatorStateTransition:
|
||||
--- !u!1102 &8771712776054593383
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: 110222392}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.8
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
m_Name: attack3
|
||||
m_Speed: 1.4
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 5339900261231598212}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 6234510843852800090, guid: e3d070983d568754782121f6efd86a6d,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &8958909966057575806
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 25314145480ad74499a550c1b1ffe70e
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 182928
|
||||
packageName: Platform Animation
|
||||
packageVersion: 2.5
|
||||
assetPath: Assets/Shinabro/Platform_Animation/Animation/99_Sub/Stander@Sub_HeroLanding.FBX
|
||||
uploadId: 568326
|
||||
ModelImporter:
|
||||
serializedVersion: 25
|
||||
serializedVersion: 24300
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
1: 100000
|
||||
|
|
@ -335,18 +342,18 @@ ModelImporter:
|
|||
second: //RootNode
|
||||
externalObjects: {}
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialImportMode: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
searchTexturesGlobally: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
rigImportErrors:
|
||||
rigImportWarnings:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
|
|
@ -390,6 +397,64 @@ ModelImporter:
|
|||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: GhostLand_S_10302
|
||||
takeName: Take 001
|
||||
internalID: 1827226128182048838
|
||||
firstFrame: 0
|
||||
lastFrame: 36
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 1
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: GhostLand_S_10202
|
||||
takeName: Take 001
|
||||
internalID: -998496362607748373
|
||||
firstFrame: 0
|
||||
lastFrame: 36
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 0
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 1
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events: []
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
|
|
@ -397,26 +462,39 @@ ModelImporter:
|
|||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 0
|
||||
fileIdsGeneration: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
generateMeshLods: 0
|
||||
meshLodGenerationFlags: 0
|
||||
maximumMeshLod: -1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 0
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
|
|
@ -427,7 +505,6 @@ ModelImporter:
|
|||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
copyAvatar: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human:
|
||||
|
|
@ -1137,16 +1214,14 @@ ModelImporter:
|
|||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 61366630e3c077b4b991d36e541d2c9d,
|
||||
type: 3}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 3
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 2
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
|
||||
importBlendShapeDeformPercent: 0
|
||||
remapMaterialsIfMaterialImportModeIsNone: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 182928
|
||||
packageName: Platform Animation
|
||||
packageVersion: 2.5
|
||||
assetPath: Assets/Shinabro/Platform_Animation/Animation/99_Sub/Stander@Sub_HeroLanding.FBX
|
||||
uploadId: 568326
|
||||
|
|
|
|||
|
|
@ -645,6 +645,16 @@ MonoBehaviour:
|
|||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: ghost_land
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/99_Sub/Stander@Sub_HeroLanding.FBX
|
||||
subClipName: GhostLand_S_{CID}
|
||||
sourceClipName:
|
||||
incomingExitTime: 0
|
||||
createIfMissing: 0
|
||||
firstFrame: 0
|
||||
lastFrame: 36
|
||||
speed: 1
|
||||
events: []
|
||||
- classId: 10201
|
||||
note: "\uB2E8\uAC80 \xB7 BladeDancer \u2192 Ninja Warrior pack (3\uD0C0 \uBE60\uB978
|
||||
\uBC1C\uB3D9\xB7\uC18D\uB3C4 1.3 #834)"
|
||||
|
|
@ -989,9 +999,9 @@ MonoBehaviour:
|
|||
sourceClipName:
|
||||
incomingExitTime: 0.85
|
||||
createIfMissing: 1
|
||||
firstFrame: 16
|
||||
lastFrame: 46
|
||||
speed: 1
|
||||
firstFrame: 28
|
||||
lastFrame: 32
|
||||
speed: 0.25
|
||||
maskPath:
|
||||
bakeRootY: -1
|
||||
mirror: 1
|
||||
|
|
@ -1006,7 +1016,7 @@ MonoBehaviour:
|
|||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.35
|
||||
normalizedTime: 0.15
|
||||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
|
|
@ -1105,6 +1115,30 @@ MonoBehaviour:
|
|||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: attack3
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Mage Warrior Mecanim Animation Pack/Animations/Mage@Jump-Attack1.FBX
|
||||
subClipName: OrbSlam3_S_{CID}
|
||||
sourceClipName:
|
||||
incomingExitTime: 0.85
|
||||
createIfMissing: 1
|
||||
firstFrame: 0
|
||||
lastFrame: 24
|
||||
speed: 1
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.66
|
||||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- classId: 10303
|
||||
note: "\uC9C0\uD321\uC774 \xB7 Summoner \u2192 Mage Warrior pack Attack2_S (#838
|
||||
\uB300\uAE30 Event_Idle \uBCF5\uC6D0) · #944 PD 「마법책은 오브 모션과 같도록」 → 2타 attack2 = 10301 과 같은 Mage@Attack3_S 서브클립(Cast2_S · Projectile 0.407 · 들어오는 exit 0.854) — 상태는 컨트롤러에 직접 만들고 전이를 pcanim_mage 에서 복제(scripts/wl/probes/944_book_ctl.cs · attack→attack2 0.854/0.15 s · attack2→idle 0.837/0.25 s · 기존 attack→Atk_A1_wing 전이 제거 · Atk_A1_wing 상태는 남김) · PD 「마법책 시전 모션은 RPG Character Mecanim Animation Pack FREE 의 해당 모션처럼」 → Unarmed-Attack-R2(30 fps · 0~24 frame · 원본 Hit 0.393 = 9.43 frame)를 둘로 나눔: casting = 0~6 frame(웅크려 모으기 · 이벤트 없음 · 시전 시간 동안 끝 포즈 유지) · casting_end = 6~24 frame(내지르며 발사 · SkillEvent 0.191 = (9.43-6)/18) · 고른 근거 = 편집 모드 포즈 렌더(944_book_pose.cs · 한 팔 앞 · 다른 팔 접음 · 런지 = 데모 캐릭터 손 앞 1.42 m · 발 벌림 1.55 m 최대)"
|
||||
|
|
@ -1214,7 +1248,7 @@ MonoBehaviour:
|
|||
createIfMissing: 1
|
||||
firstFrame: 34
|
||||
lastFrame: 64
|
||||
speed: 2.5
|
||||
speed: 1.4
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
@ -1238,55 +1272,7 @@ MonoBehaviour:
|
|||
createIfMissing: 1
|
||||
firstFrame: 48
|
||||
lastFrame: 83
|
||||
speed: 2.5
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.407
|
||||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: attack3c
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Mage Warrior Mecanim Animation Pack/Animations/Mage@Attack2_S.FBX
|
||||
subClipName: Cast3c_S_{CID}
|
||||
sourceClipName:
|
||||
incomingExitTime: 0.85
|
||||
createIfMissing: 1
|
||||
firstFrame: 34
|
||||
lastFrame: 64
|
||||
speed: 2.5
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.23
|
||||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: Attack3d
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Mage Warrior Mecanim Animation Pack/Animations/Mage@Attack3_S.FBX
|
||||
subClipName: Cast3d_S_{CID}
|
||||
sourceClipName:
|
||||
incomingExitTime: 0.85
|
||||
createIfMissing: 1
|
||||
firstFrame: 48
|
||||
lastFrame: 83
|
||||
speed: 2.5
|
||||
speed: 1.4
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b94b98d2bc366904d867df4d46e18025
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -102,6 +102,25 @@
|
|||
],
|
||||
"skillHitMinInterval": 0.12,
|
||||
"swingFx": [
|
||||
{
|
||||
"classIds": [ 10202 ],
|
||||
"stages": [ 3 ],
|
||||
"prefab": "WL_Impact_DaggerSlash3",
|
||||
"scale": 1.0,
|
||||
"euler": [ 0, 0, 0 ],
|
||||
"yOffset": 0.0,
|
||||
"calibrated": false,
|
||||
"follow": true,
|
||||
"forward": 0.0,
|
||||
"side": 0.0,
|
||||
"life": 0.8,
|
||||
"minInterval": 0.3,
|
||||
"alignWeapon": true,
|
||||
"alignFraction": 0.5,
|
||||
"fixedDir": false,
|
||||
"lockFacing": false,
|
||||
"_note_951": "#951 PD 「비수 3타 이펙트가 공격한 검 위치를 기준으로 호 형태로 펼쳐지도록」 — 원본 Effect_Slash_10202_3 의 WL 사본을 매 프레임 무기(손잡이 → 날 끝) 방향·위치에 맞춰 따라가게(창 2타 alignWeapon 과 같은 방식) · 수치는 Play 실측 뒤 조정"
|
||||
},
|
||||
{
|
||||
"classIds": [
|
||||
10501,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0ed9e3bd6836a6543b78d77bec37603e
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -37,6 +37,22 @@
|
|||
"hitTurnMax": 150,
|
||||
"hitMinInterval": 0.08,
|
||||
"castSeconds": 2.0,
|
||||
"jumpGhosts": 4,
|
||||
"jumpHeight": 1.0,
|
||||
"jumpForward": 0.4,
|
||||
"jumpSeconds": 0.25,
|
||||
"landState": "ghost_land",
|
||||
"landHeight": 1.2,
|
||||
"landFallSeconds": 0.25,
|
||||
"slideDistance": 0.5,
|
||||
"slideSeconds": 0.3,
|
||||
"landTotalSeconds": 1.0,
|
||||
"landAtSeconds": 3.4,
|
||||
"airClip": "Skill8_Air",
|
||||
"landGhosts": 2,
|
||||
"dustPrefab": "WL/Fx/WL_Fx_LandDust",
|
||||
"dustScale": 0.5,
|
||||
"_note_951": "#951 PD 「각성 시전 시 뛰어오르는 잔상 → 사라진 채 공격 → 잔상과 함께 등장 · 낮은 공중에서 떨어져 착지 포즈 · 0.5 m 미끄러지다 정지 · 흙먼지」 — 시전 순간 위·앞으로 잔상 jumpGhosts 개(jumpSeconds 동안) · PC 가 다시 보이는 순간(또는 landAtSeconds) 모델을 landHeight 에서 landFallSeconds 에 내리며 잔상 landGhosts · 착지 클립 landState(어새신 컨트롤러 ghost_land = Platform Sub_HeroLanding 0~36) · slideSeconds 동안 NavMeshAgent.Move 로 slideDistance 앞으로 · 착지 때 dustPrefab(Hyper Casual Dust_Dash 사본) · landTotalSeconds 뒤 idle",
|
||||
"poseSource": "clips",
|
||||
"poses": [
|
||||
"DualBlades_Attack2@0.35",
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
1001,월광,Sword,10102,pcanim_spellblade,2,STR,1.0,3,Attack3,Projectile,1,1.5,4,0,0,16,2,0.31,Projectile_10102,Effect_Slash_10102_3,Effect_Hit_10102,703106|703105,M:weapon_id;class_id;anim_controller;anim_state;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1057,맹약,Staff,10301,pcanim_mage,2,INT,1.0,1,attack,Projectile,1,1.0,5,0,0,14,0,0,Projectile_10301,,Effect_Hit_10301,703303|703301,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
1057,맹약,Staff,10301,pcanim_mage,2,INT,1.0,2,attack2,Projectile,1,1.4,5,0,0,14,2,0,Projectile_10301,,Effect_Hit_10301,703303|703301,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
1057,맹약,Staff,10301,pcanim_mage,2,INT,1.0,3,attack3,Projectile,1,1.4,5,0,0,14,2,0,Projectile_10301,,Effect_Hit_10301,703303|703301,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids;#951 PD 오브 3타 = Mage Jump-Attack1 점프 내리치기(step 2 값 복사 · 피해 1.4 = 원장)
|
||||
9001,수호자의 철퇴,Hammer,10502,pcanim_paladin,2,STR,1.0,1,attack,MeleeArc,1,1.1,1.5,160,0,0,0,0.3,Projectile_10502,Effect_Slash_10502_1,Effect_Hit_10502,703505|703506,M:class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9001,수호자의 철퇴,Hammer,10502,pcanim_paladin,2,STR,1.0,2,Sword&Shield_Attack2,MeleeArc,1,1.2,1.5,160,0,0,0,0.15,Projectile_10502,Effect_Slash_10502_2,Effect_Hit_10502,703505|703506,M:class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9001,수호자의 철퇴,Hammer,10502,pcanim_paladin,2,STR,1.0,3,Sword&Shield_Attack3,Area,1,2.0,1.5,0,2.2,0,0,0.31,Projectile_10502,Effect_Slash_10502_3,Effect_Hit_10502,703505|703506,M:class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
|
|
|
|||
|
|
|
@ -40,6 +40,15 @@ namespace WL.Combat.Weapon
|
|||
public float hitTurnMax = 150f; // hit: 최대(°)
|
||||
public float hitMinInterval = 0.08f; // hit: 같은 적 최소 간격(초)
|
||||
public float castSeconds = 2f; // 시전 기록 유지(초) — 이 안의 타격만 hit 고스트 · fx 예약도 이 안에서만
|
||||
// #951 PD 「시전 시 뛰어오르는 잔상 → 사라진 채 공격 → 잔상과 함께 등장 · 낮은 공중에서 떨어져 착지 포즈 · 0.5 m 미끄러지다 정지 · 흙먼지」
|
||||
public int jumpGhosts = 0; // 시전 순간 위·앞으로 남기는 잔상 수(0 = 없음)
|
||||
public float jumpHeight = 1f, jumpForward = 0.4f, jumpSeconds = 0.25f;
|
||||
public string landState = ""; // 착지 애니메이터 상태 이름(비우면 착지 연출 없음)
|
||||
public float landHeight = 1.2f, landFallSeconds = 0.25f, slideDistance = 0.5f, slideSeconds = 0.3f, landTotalSeconds = 1f;
|
||||
public float landAtSeconds = 0f; // 공중 클립 종료를 못 잡았을 때 이 시각(시전 뒤 초)에 착지 시작(0 = 클립 감지만)
|
||||
public string airClip = ""; // 원본 스킬의 공중 클립 이름 조각(예 Skill8_Air) — 이 클립이 보였다가 다른 클립으로 바뀌는 순간 = 공격 끝 → 착지 시작
|
||||
public int landGhosts = 2; // 떨어지는 동안 잔상 수
|
||||
public string dustPrefab = ""; public float dustScale = 1f;
|
||||
public string poseSource = "clips"; // clips = 숨은 꼭두각시에 poses 를 걸어 굽기 · live = 시전 순간 PC 자세 1 개
|
||||
public string[] poses = new string[0]; // "애니메이터 상태 이름@정규화 시각" — 차례로 돌려 쓴다(시작은 무작위)
|
||||
}
|
||||
|
|
@ -83,6 +92,9 @@ namespace WL.Combat.Weapon
|
|||
public WLGhostStrikeRule rule; public ProjectileBase skill; public Actor shooter;
|
||||
public float t0, groundY; public List<FxPoint> fx; public int next, poseCursor;
|
||||
public Vector3 lastPos; public bool hasLast, posesReady; public string sig = "";
|
||||
// #951 도약 잔상 · 착지
|
||||
public int jumpDone; public float jumpNext = -1f; public bool wasHidden, sawAir, landing, landed, dustDone; public float landT0, modelBaseY, modelY = float.NaN; public int landGhostsDone;
|
||||
public Vector3 landPos, landFwd; public Transform model; public UnityEngine.AI.NavMeshAgent agent; public object stopWas;
|
||||
public readonly List<SkinnedMeshRenderer> smrs = new List<SkinnedMeshRenderer>();
|
||||
public readonly List<MeshFilter> weapons = new List<MeshFilter>();
|
||||
public readonly List<string> smrPaths = new List<string>();
|
||||
|
|
@ -135,7 +147,7 @@ namespace WL.Combat.Weapon
|
|||
{
|
||||
s_cfg = null; s_cast = null; s_hitQ.Clear(); s_bearing.Clear(); s_lastHitAt.Clear(); s_fxCache.Clear();
|
||||
s_poses.Clear(); s_poseSig = ""; s_pool.Clear(); s_mat = null; s_depthMat = null; s_matsPre = s_matsOne = null; s_matTried = false; s_runner = null;
|
||||
Casts = FxSpawned = HitSpawned = SkippedCap = PuppetBuilt = PuppetFailed = PosesBaked = LiveBaked = Errors = 0; LastBakeMs = 0f; LastLog = "";
|
||||
Casts = FxSpawned = HitSpawned = SkippedCap = PuppetBuilt = PuppetFailed = PosesBaked = LiveBaked = Errors = 0; LastBakeMs = 0f; LastLog = ""; JumpSpawned = Landings = 0; LandLog = "";
|
||||
CombatEvents.HitConfirmed.Remove(OnHit);
|
||||
if (Cfg.enabled == 0) return;
|
||||
foreach (var r in s_rules.Values) if (r.anchor != "fx") { CombatEvents.HitConfirmed.Add(OnHit); break; }
|
||||
|
|
@ -161,7 +173,7 @@ namespace WL.Combat.Weapon
|
|||
var pd = skill.Get_ProjectTileData();
|
||||
var shooter = pd != null ? pd.shooter : null;
|
||||
if (DSUtil.CheckNull(shooter)) return;
|
||||
var cast = new Cast { rule = r, skill = skill, shooter = shooter, t0 = Time.time, groundY = shooter.Get_position().y, poseCursor = Random.Range(0, 1024) };
|
||||
var cast = new Cast { rule = r, skill = skill, shooter = shooter, t0 = Time.time, groundY = shooter.Get_position().y, poseCursor = Random.Range(0, 1024), jumpNext = Time.time };
|
||||
if (r.anchor != "hit") cast.fx = FxPoints(skill, r);
|
||||
Capture(cast, c);
|
||||
s_cast = cast;
|
||||
|
|
@ -204,6 +216,22 @@ namespace WL.Combat.Weapon
|
|||
if (cast != null)
|
||||
{
|
||||
if (!cast.posesReady) { cast.posesReady = true; PreparePoses(cast, c); }
|
||||
// #951 ① 도약 잔상(시전 직후 jumpSeconds 동안 위·앞으로)
|
||||
var rl = cast.rule;
|
||||
if (rl.jumpGhosts > 0 && cast.jumpDone < rl.jumpGhosts && now >= cast.jumpNext && cast.jumpNext >= 0f)
|
||||
{
|
||||
float k = (cast.jumpDone + 1f) / rl.jumpGhosts; var sp = cast.shooter.Get_position(); var fw = cast.shooter.transform.forward; fw.y = 0f; if (fw.sqrMagnitude < 1e-4f) fw = Vector3.forward; fw.Normalize();
|
||||
if (Spawn(c, cast, sp + Vector3.up * (rl.jumpHeight * k) + fw * (rl.jumpForward * k), fw)) JumpSpawned++;
|
||||
cast.jumpDone++; cast.jumpNext = now + rl.jumpSeconds / rl.jumpGhosts;
|
||||
}
|
||||
// #951 ② 다시 보이는 순간(또는 landAtSeconds) → 착지 연출
|
||||
if (!string.IsNullOrEmpty(rl.landState) && !cast.landing && !cast.landed)
|
||||
{
|
||||
string clip = CurrentClip(cast.shooter);
|
||||
if (!string.IsNullOrEmpty(rl.airClip) && clip.Contains(rl.airClip)) cast.sawAir = true;
|
||||
else if ((cast.sawAir && now - cast.t0 > 0.3f) || (rl.landAtSeconds > 0f && now - cast.t0 >= rl.landAtSeconds)) StartLanding(cast, now);
|
||||
}
|
||||
if (cast.landing) UpdateLanding(c, cast, now);
|
||||
if (cast.fx != null)
|
||||
while (cast.next < cast.fx.Count && now >= cast.t0 + cast.fx[cast.next].delay - cast.rule.fxLead)
|
||||
{
|
||||
|
|
@ -214,7 +242,8 @@ namespace WL.Combat.Weapon
|
|||
cast.lastPos = pos; cast.hasLast = true;
|
||||
}
|
||||
for (int i = 0; i < s_hitQ.Count; i++) HitSpawn(c, cast, s_hitQ[i]);
|
||||
if (now - cast.t0 > Mathf.Max(0.1f, cast.rule.castSeconds)) s_cast = null;
|
||||
bool landPending = !string.IsNullOrEmpty(cast.rule.landState) && !cast.landed && now - cast.t0 < Mathf.Max(0.1f, cast.rule.castSeconds) + 4f; // #951 착지가 끝날 때까지(상한 +4 s) 시전 기록 유지
|
||||
if (now - cast.t0 > Mathf.Max(0.1f, cast.rule.castSeconds) && !cast.landing && !landPending) s_cast = null;
|
||||
}
|
||||
s_hitQ.Clear();
|
||||
|
||||
|
|
@ -230,6 +259,92 @@ namespace WL.Combat.Weapon
|
|||
catch (System.Exception ex) { Errors++; LastLog = "틱 실패 — " + ex.Message; }
|
||||
}
|
||||
|
||||
// ───────────────────────────────────────── #951 도약 잔상 · 착지 연출
|
||||
public static int JumpSpawned, Landings; public static string LandLog = "";
|
||||
static System.Reflection.PropertyInfo s_isStop;
|
||||
|
||||
static string CurrentClip(Actor a)
|
||||
{
|
||||
var an = a != null ? a.m_animation : null; if (an == null) return "";
|
||||
var ci = an.GetCurrentAnimatorClipInfo(0); return ci.Length > 0 && ci[0].clip != null ? ci[0].clip.name : "";
|
||||
}
|
||||
|
||||
/// <summary>러너 LateUpdate — 애니메이터가 모델 위치를 쓴 뒤에 낙하 높이를 덮는다(Update 에서 쓰면 되돌아간다 · 실측).</summary>
|
||||
internal static void LateTick()
|
||||
{
|
||||
var cast = s_cast; if (cast == null || !cast.landing || cast.model == null || float.IsNaN(cast.modelY)) return;
|
||||
var lp = cast.model.localPosition; cast.model.localPosition = new Vector3(lp.x, cast.modelY, lp.z);
|
||||
}
|
||||
|
||||
static bool IsHidden(Cast cast)
|
||||
{
|
||||
for (int i = 0; i < cast.smrs.Count; i++) { var r = cast.smrs[i]; if (r == null) continue; return !r.enabled || !r.gameObject.activeInHierarchy; }
|
||||
return false;
|
||||
}
|
||||
|
||||
static void SetStop(Actor a, object v)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (s_isStop == null) s_isStop = typeof(Actor).GetProperty("IsStop", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public);
|
||||
if (s_isStop != null && s_isStop.CanWrite && v != null) s_isStop.SetValue(a, v, null);
|
||||
}
|
||||
catch (System.Exception) { }
|
||||
}
|
||||
|
||||
static void StartLanding(Cast cast, float now)
|
||||
{
|
||||
var pc = cast.shooter as PCActor; var r = cast.rule;
|
||||
cast.landing = true; cast.landT0 = now; cast.landGhostsDone = 0; cast.dustDone = false;
|
||||
cast.landPos = cast.shooter.Get_position(); cast.landFwd = cast.shooter.transform.forward; cast.landFwd.y = 0f; if (cast.landFwd.sqrMagnitude < 1e-4f) cast.landFwd = Vector3.forward; cast.landFwd.Normalize();
|
||||
cast.model = cast.shooter.m_animation != null ? cast.shooter.m_animation.transform : null; cast.modelBaseY = cast.model != null ? cast.model.localPosition.y : 0f;
|
||||
cast.agent = cast.shooter.GetComponent<UnityEngine.AI.NavMeshAgent>();
|
||||
if (pc != null) { try { if (s_isStop == null) s_isStop = typeof(Actor).GetProperty("IsStop", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public); cast.stopWas = s_isStop != null ? s_isStop.GetValue(pc, null) : null; } catch (System.Exception) { } SetStop(pc, true); pc.WL_StopNavMove(); }
|
||||
try { if (cast.shooter.m_animation != null) cast.shooter.m_animation.CrossFade(r.landState, 0.05f, 0, 0f); } catch (System.Exception ex) { LandLog = "착지 클립 실패 — " + ex.Message; }
|
||||
if (cast.model != null) cast.model.localPosition = new Vector3(cast.model.localPosition.x, cast.modelBaseY + r.landHeight, cast.model.localPosition.z);
|
||||
Landings++; LandLog = "착지 시작 t+" + (now - cast.t0).ToString("F2") + " @" + cast.landPos.ToString("F2") + (cast.agent != null ? " agent" : " agent 없음");
|
||||
}
|
||||
|
||||
static void UpdateLanding(WLGhostStrikeJson c, Cast cast, float now)
|
||||
{
|
||||
var r = cast.rule; float t = now - cast.landT0; float fall = Mathf.Max(0.05f, r.landFallSeconds);
|
||||
if (DSUtil.CheckNull(cast.shooter)) { cast.landing = false; cast.landed = true; return; }
|
||||
if (t < fall)
|
||||
{
|
||||
float k = 1f - t / fall; float y = r.landHeight * k * k; // 가속 낙하(실제 적용은 LateTick)
|
||||
cast.modelY = cast.modelBaseY + y;
|
||||
if (cast.landGhostsDone < r.landGhosts && t >= fall * (cast.landGhostsDone + 1f) / (r.landGhosts + 1f)) { cast.landGhostsDone++; if (Spawn(c, cast, cast.landPos + Vector3.up * y, cast.landFwd)) JumpSpawned++; }
|
||||
return;
|
||||
}
|
||||
cast.modelY = cast.modelBaseY;
|
||||
if (!cast.dustDone)
|
||||
{
|
||||
cast.dustDone = true;
|
||||
if (!string.IsNullOrEmpty(r.dustPrefab))
|
||||
{
|
||||
var p = Resources.Load<GameObject>(r.dustPrefab);
|
||||
if (p != null) { var go = Object.Instantiate(p, cast.landPos, Quaternion.LookRotation(cast.landFwd, Vector3.up)); go.transform.localScale = p.transform.localScale * r.dustScale; foreach (var ps in go.GetComponentsInChildren<ParticleSystem>(true)) { var m = ps.main; m.scalingMode = ParticleSystemScalingMode.Hierarchy; ps.Play(true); } Object.Destroy(go, 3f); }
|
||||
else LandLog = "먼지 프리팹 없음 " + r.dustPrefab;
|
||||
}
|
||||
}
|
||||
float slideT = t - fall;
|
||||
if (slideT < r.slideSeconds && r.slideDistance > 0f)
|
||||
{
|
||||
float step = r.slideDistance * Time.deltaTime / Mathf.Max(0.05f, r.slideSeconds);
|
||||
if (cast.agent != null && cast.agent.enabled && cast.agent.isOnNavMesh) cast.agent.Move(cast.landFwd * step);
|
||||
else cast.shooter.transform.position += cast.landFwd * step;
|
||||
}
|
||||
if (t >= r.landTotalSeconds)
|
||||
{
|
||||
cast.landing = false; cast.landed = true; cast.modelY = float.NaN;
|
||||
if (cast.model != null) { var lp = cast.model.localPosition; cast.model.localPosition = new Vector3(lp.x, cast.modelBaseY, lp.z); }
|
||||
var pc = cast.shooter as PCActor;
|
||||
SetStop(cast.shooter, cast.stopWas);
|
||||
try { if (pc != null) pc.Play_Idle(); } catch (System.Exception) { }
|
||||
LandLog += " · 끝 " + t.ToString("F2") + " s · 이동 " + Vector3.Distance(cast.landPos, cast.shooter.Get_position()).ToString("F2") + " m";
|
||||
}
|
||||
}
|
||||
|
||||
static List<FxPoint> FxPoints(ProjectileBase skill, WLGhostStrikeRule r)
|
||||
{
|
||||
List<FxPoint> list;
|
||||
|
|
@ -577,5 +692,5 @@ namespace WL.Combat.Weapon
|
|||
}
|
||||
|
||||
/// <summary>#943-⑦ 고스트 러너(숨김 GameObject 1 개) — 예약 · 요청 생성 · 페이드 · 꼭두각시 굽기는 여기(Update)에서만.</summary>
|
||||
public sealed class WLGhostStrikeRunner : MonoBehaviour { void Update() { WLGhostStrike.Tick(); } }
|
||||
public sealed class WLGhostStrikeRunner : MonoBehaviour { void Update() { WLGhostStrike.Tick(); } void LateUpdate() { WLGhostStrike.LateTick(); } }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue