[WL] #944 무기 lineup 9종 — 주스탯 표(힘/민첩/지능) · 오브(맹약) ×5 손 위 부유(WLOrbFloat) · 마법책 신규 9009(WLItemTableExtra·CSV·StarterKit·WLFloatingBook·summoner 모션 = 맹약·FREE 팩 시전 R2) · 창 모션 = Platform Spear 세트(매핑 10701·컨트롤러·Stab 궤적·사거리 1.50/1.50/1.47) · 2타 가림 life/minInterval 0.9 · 팩 데모 중복 스크립트 백업 이동(PD 승인) — Play 미확인(세션 종료 · 다음 세션 verify944.sh)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
294620a433
commit
d8f6cec099
|
|
@ -786,6 +786,49 @@ ModelImporter:
|
|||
maskType: 0
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Cast2_S_10303
|
||||
takeName: Take 001
|
||||
internalID: 6641085478485924818
|
||||
firstFrame: 48
|
||||
lastFrame: 83
|
||||
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: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.407
|
||||
functionName: Projectile
|
||||
data: Projectile_10303
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 0
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -998496362607748373, guid: 53058ef486fc88f49820c30b8ca9e674,
|
||||
m_Motion: {fileID: 1827226128182048838, guid: eb4cd7aeba3f5bf4fb3ee03443437acb,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
@ -80,7 +80,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack2c
|
||||
m_Speed: 3
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 6867887696765296130}
|
||||
|
|
@ -93,7 +93,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 6641085478485924818, guid: 53058ef486fc88f49820c30b8ca9e674,
|
||||
m_Motion: {fileID: 6641085478485924818, guid: eb4cd7aeba3f5bf4fb3ee03443437acb,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
@ -376,7 +376,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack2b
|
||||
m_Speed: 3
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -6303488384549399601}
|
||||
|
|
@ -389,7 +389,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 3060872287085348379, guid: 53058ef486fc88f49820c30b8ca9e674,
|
||||
m_Motion: {fileID: 3060872287085348379, guid: eb4cd7aeba3f5bf4fb3ee03443437acb,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
@ -417,7 +417,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -998496362607748373, guid: d49af005f8f03dd40944d120d5009866,
|
||||
m_Motion: {fileID: 1827226128182048838, guid: 6c44c397d64b80543a6d1c1ccf35589e,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
@ -488,7 +488,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack2f
|
||||
m_Speed: 3
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 3733479137453790388}
|
||||
|
|
@ -501,7 +501,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -6788666626592393668, guid: 53058ef486fc88f49820c30b8ca9e674,
|
||||
m_Motion: {fileID: -6788666626592393668, guid: eb4cd7aeba3f5bf4fb3ee03443437acb,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
@ -538,7 +538,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack2
|
||||
m_Speed: 3
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 1829211669066088794}
|
||||
|
|
@ -551,7 +551,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 1827226128182048838, guid: 53058ef486fc88f49820c30b8ca9e674,
|
||||
m_Motion: {fileID: -998496362607748373, guid: eb4cd7aeba3f5bf4fb3ee03443437acb,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
@ -566,7 +566,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack2e
|
||||
m_Speed: 3
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -2463007587306551008}
|
||||
|
|
@ -579,7 +579,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 6234510843852800090, guid: 53058ef486fc88f49820c30b8ca9e674,
|
||||
m_Motion: {fileID: 6234510843852800090, guid: eb4cd7aeba3f5bf4fb3ee03443437acb,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
@ -2405,7 +2405,7 @@ AnimatorState:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Attack2d
|
||||
m_Speed: 3
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: -5049265843962658925}
|
||||
|
|
@ -2418,7 +2418,7 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: -5059006814000262888, guid: 53058ef486fc88f49820c30b8ca9e674,
|
||||
m_Motion: {fileID: -5059006814000262888, guid: eb4cd7aeba3f5bf4fb3ee03443437acb,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ AnimatorState:
|
|||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 258676161812000113}
|
||||
- {fileID: -944003229221772330}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
|
|
@ -201,6 +201,28 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-944003229221772330
|
||||
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: 3043085607005748951}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.15
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.854
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-353046110555146665
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -1983,6 +2005,9 @@ AnimatorStateMachine:
|
|||
- serializedVersion: 1
|
||||
m_State: {fileID: 8179735056056065630}
|
||||
m_Position: {x: 30, y: -20, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 3043085607005748951}
|
||||
m_Position: {x: -50, y: -150, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions: []
|
||||
m_EntryTransitions: []
|
||||
|
|
@ -2047,28 +2072,6 @@ AnimatorStateMachine:
|
|||
m_ExitPosition: {x: 300, y: 60, z: 0}
|
||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||
m_DefaultState: {fileID: 110211406}
|
||||
--- !u!1101 &258676161812000113
|
||||
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: -2252420057100530637}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.25
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.8333333
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &599008317494261071
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -2096,6 +2099,28 @@ AnimatorState:
|
|||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &788794430214549228
|
||||
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!1101 &811731208389968518
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
|
|
@ -2303,6 +2328,34 @@ AnimatorStateTransition:
|
|||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &3043085607005748951
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: attack2
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 788794430214549228}
|
||||
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: 6641085478485924818, guid: e0919932c9c179142ad06cf4ee11f204,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1102 &4804184176358769930
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
|
|
@ -2401,7 +2454,8 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: a9b647a73aef2fb4a83c157be5e4867c, type: 3}
|
||||
m_Motion: {fileID: -998496362607748373, guid: 8b4aea68a09b24149ab89408f7199bb1,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
|
@ -2427,7 +2481,8 @@ AnimatorState:
|
|||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 1b2fe44648e75a04d9482baeaeeab102, type: 3}
|
||||
m_Motion: {fileID: 1827226128182048838, guid: 8b4aea68a09b24149ab89408f7199bb1,
|
||||
type: 3}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
fileFormatVersion: 2
|
||||
guid: eb4cd7aeba3f5bf4fb3ee03443437acb
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 182928
|
||||
packageName: Platform Animation
|
||||
packageVersion: 2.5
|
||||
assetPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
uploadId: 568326
|
||||
ModelImporter:
|
||||
serializedVersion: 25
|
||||
serializedVersion: 24300
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
1: 100000
|
||||
|
|
@ -779,18 +786,18 @@ ModelImporter:
|
|||
second: Mannequin
|
||||
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:
|
||||
|
|
@ -834,6 +841,377 @@ ModelImporter:
|
|||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack1_S_10701
|
||||
takeName: Take 001
|
||||
internalID: 1827226128182048838
|
||||
firstFrame: 0
|
||||
lastFrame: 30
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0.133
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_1
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.167
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.2
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.2
|
||||
functionName: Projectile
|
||||
data: Projectile_10101
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack2_S_10701
|
||||
takeName: Take 001
|
||||
internalID: -998496362607748373
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.2
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_2
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.4
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.05
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.6
|
||||
functionName: Projectile
|
||||
data: Projectile_10101
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack2b_S_10701
|
||||
takeName: Take 001
|
||||
internalID: 3060872287085348379
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.2
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_2
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.4
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.05
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack2c_S_10701
|
||||
takeName: Take 001
|
||||
internalID: 6641085478485924818
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.2
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_2
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.4
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.05
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.6
|
||||
functionName: Projectile
|
||||
data: Projectile_10101
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack2d_S_10701
|
||||
takeName: Take 001
|
||||
internalID: -5059006814000262888
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.2
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_2
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.4
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.05
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack2e_S_10701
|
||||
takeName: Take 001
|
||||
internalID: 6234510843852800090
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.2
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_2
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.4
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.05
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.6
|
||||
functionName: Projectile
|
||||
data: Projectile_10101
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack2f_S_10701
|
||||
takeName: Take 001
|
||||
internalID: -6788666626592393668
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.2
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_2
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.4
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.05
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
|
|
@ -841,26 +1219,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
|
||||
|
|
@ -871,7 +1262,6 @@ ModelImporter:
|
|||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
copyAvatar: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human:
|
||||
|
|
@ -1581,16 +1971,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/07_Spear/Stander@Spear_Attack1.FBX
|
||||
uploadId: 568326
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6c44c397d64b80543a6d1c1ccf35589e
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 182928
|
||||
packageName: Platform Animation
|
||||
packageVersion: 2.5
|
||||
assetPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack2.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,63 @@ ModelImporter:
|
|||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
- serializedVersion: 16
|
||||
name: Attack3_S_10701
|
||||
takeName: Take 001
|
||||
internalID: 1827226128182048838
|
||||
firstFrame: 0
|
||||
lastFrame: 32
|
||||
wrapMode: 0
|
||||
orientationOffsetY: 0
|
||||
level: 0
|
||||
cycleOffset: 0
|
||||
loop: 0
|
||||
hasAdditiveReferencePose: 0
|
||||
loopTime: 1
|
||||
loopBlend: 0
|
||||
loopBlendOrientation: 1
|
||||
loopBlendPositionY: 1
|
||||
loopBlendPositionXZ: 0
|
||||
keepOriginalOrientation: 1
|
||||
keepOriginalPositionY: 1
|
||||
keepOriginalPositionXZ: 1
|
||||
heightFromFeet: 0
|
||||
mirror: 0
|
||||
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
|
||||
curves: []
|
||||
events:
|
||||
- time: 0
|
||||
functionName: LookAtTarget
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.125
|
||||
functionName: ShowEffect
|
||||
data: Effect_Slash_10101_3
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 1
|
||||
messageOptions: 0
|
||||
- time: 0.188
|
||||
functionName: Move
|
||||
data:
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0.3
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
- time: 0.281
|
||||
functionName: Projectile
|
||||
data: Projectile_10101
|
||||
objectReferenceParameter: {instanceID: 0}
|
||||
floatParameter: 0
|
||||
intParameter: 0
|
||||
messageOptions: 0
|
||||
transformMask: []
|
||||
maskType: 3
|
||||
maskSource: {instanceID: 0}
|
||||
additiveReferencePoseFrame: 0
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
|
|
@ -397,26 +461,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 +504,6 @@ ModelImporter:
|
|||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
copyAvatar: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human:
|
||||
|
|
@ -1137,16 +1213,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/07_Spear/Stander@Spear_Attack2.FBX
|
||||
uploadId: 568326
|
||||
|
|
|
|||
|
|
@ -135,6 +135,7 @@ namespace WL.Character
|
|||
float k = Fit(w, sock);
|
||||
_applied[id] = k;
|
||||
if (k != 1f) LastApplied++;
|
||||
WL.Combat.Weapon.WLOrbFloat.TryAttach(w); // #944 오브(맹약) = 손 위 부유 + ×5 (Resources/WL/WLOrbFloat.json · 이름이 안 맞으면 아무것도 안 함)
|
||||
}
|
||||
// ── 팔레트(WL-816b) — 메시(UV)·머티리얼만 바꾼다. 정점 좌표가 같아 위 배수 계산과 무관하다.
|
||||
if (pal && (force || !_paletted.Contains(id)))
|
||||
|
|
|
|||
|
|
@ -1104,7 +1104,7 @@ MonoBehaviour:
|
|||
floatParameter: 0
|
||||
- classId: 10303
|
||||
note: "\uC9C0\uD321\uC774 \xB7 Summoner \u2192 Mage Warrior pack Attack2_S (#838
|
||||
\uB300\uAE30 Event_Idle \uBCF5\uC6D0)"
|
||||
\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 최대)"
|
||||
controllerPathOverride:
|
||||
enabled: 1
|
||||
states:
|
||||
|
|
@ -1149,6 +1149,57 @@ MonoBehaviour:
|
|||
stringParameter: Projectile_{CID}
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: attack2
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Mage Warrior Mecanim Animation Pack/Animations/Mage@Attack3_S.FBX
|
||||
subClipName: Cast2_S_{CID}
|
||||
sourceClipName:
|
||||
incomingExitTime: 0.854
|
||||
createIfMissing: 0
|
||||
firstFrame: -1
|
||||
lastFrame: -1
|
||||
speed: 0
|
||||
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: casting
|
||||
sourceFbxPath: Assets/ExplosiveLLC/RPG Character Mecanim Animation Pack FREE/Animations/Unarmed/RPG-Character@Unarmed-Attack-R2.FBX
|
||||
subClipName: BookCharge_S_{CID}
|
||||
sourceClipName:
|
||||
incomingExitTime: 0
|
||||
createIfMissing: 0
|
||||
firstFrame: 0
|
||||
lastFrame: 6
|
||||
speed: 0
|
||||
events: []
|
||||
- stateName: casting_end
|
||||
sourceFbxPath: Assets/ExplosiveLLC/RPG Character Mecanim Animation Pack FREE/Animations/Unarmed/RPG-Character@Unarmed-Attack-R2.FBX
|
||||
subClipName: BookCast_S_{CID}
|
||||
sourceClipName:
|
||||
incomingExitTime: 0
|
||||
createIfMissing: 0
|
||||
firstFrame: 6
|
||||
lastFrame: 24
|
||||
speed: 0
|
||||
events:
|
||||
- functionName: SkillEvent
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.191
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- classId: 10801
|
||||
note: "\uB300\uAC80 \xB7 Greatsword(WL 10801) \u2192 2Handed Attack2_S(1\uD0C0)
|
||||
\xB7 Attack3_S(2\uD0C0) \xB7 Attack1_S(3\uD0C0) + 4\uD0C0 Spearman \uC810\uD504
|
||||
|
|
@ -1367,15 +1418,14 @@ MonoBehaviour:
|
|||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- classId: 10701
|
||||
note: "\uCC3D \xB7 Spear(WL 10701) \u2192 Spearman Attack2_S(1\uD0C0) \xB7 \uCC0C\uB974\uAE30
|
||||
\uAD6C\uAC04 \xD73(2\uD0C0) \xB7 Attack1(3\uD0C0) (#840 \uC7AC\uBC30\uC5F4 \xB7 #940 2\uD0C0 = \uCC0C\uB974\uAE30 6\uC5F0\uD0C0 \uC18D\uB3C4 3 \xB7 \uD0C0\uACA9 3)"
|
||||
note: "창 · Spear(WL 10701) → Shinabro Platform Animation Spear 세트(#944 PD 「Platform Animation 에서 찌르기 공격 모션」) · 1타 Spear_Attack1 전체(정면 찌르기 · 30 fps · 내지르기 f4~f6 · 창끝 최대 f6) · 2타 Spear_Attack1 f3~f8 ×6 연타(속도 1 = 1회 0.167 s · exit 0.9 → 0.15 s · 6회 0.9 s · 타격 2a·2c·2e) · 3타 Spear_Attack2 전체(오른쪽 아래로 당겼다 내지르기 · 창끝 최대 f9) — ShowEffect = 내지르기 시작 · Move = 중간 · Projectile = 창끝 최대(편집 모드 포즈 실측 scripts/wl/probes/944_spear_pose.cs · 이전 = Spearman 팩 #840·#940)"
|
||||
controllerPathOverride: Assets/Res_Addr/Animations/pcanim_spear.controller
|
||||
enabled: 1
|
||||
states:
|
||||
- stateName: attack
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack2_S.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
subClipName: Attack1_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack1
|
||||
incomingExitTime: 0
|
||||
createIfMissing: 0
|
||||
firstFrame: -1
|
||||
|
|
@ -1385,33 +1435,33 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.305
|
||||
normalizedTime: 0.133
|
||||
stringParameter: Effect_Slash_10101_1
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.365
|
||||
normalizedTime: 0.167
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.2
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.425
|
||||
normalizedTime: 0.2
|
||||
stringParameter: Projectile_10101
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: Attack2
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack2_S.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
subClipName: Attack2_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack1
|
||||
incomingExitTime: 0.775
|
||||
createIfMissing: 0
|
||||
firstFrame: 33
|
||||
lastFrame: 46
|
||||
speed: 3
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
speed: 1
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
@ -1423,33 +1473,33 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.32
|
||||
normalizedTime: 0.2
|
||||
stringParameter: Effect_Slash_10101_2
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.38
|
||||
normalizedTime: 0.4
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.05
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.44
|
||||
normalizedTime: 0.6
|
||||
stringParameter: Projectile_10101
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: Attack2b
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack2_S.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
subClipName: Attack2b_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack1
|
||||
incomingExitTime: 0.9
|
||||
createIfMissing: 1
|
||||
firstFrame: 33
|
||||
lastFrame: 46
|
||||
speed: 3
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
speed: 1
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
@ -1461,26 +1511,26 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.32
|
||||
normalizedTime: 0.2
|
||||
stringParameter: Effect_Slash_10101_2
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.38
|
||||
normalizedTime: 0.4
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.05
|
||||
- stateName: Attack2c
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack2_S.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
subClipName: Attack2c_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack1
|
||||
incomingExitTime: 0.9
|
||||
createIfMissing: 1
|
||||
firstFrame: 33
|
||||
lastFrame: 46
|
||||
speed: 3
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
speed: 1
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
@ -1492,33 +1542,33 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.32
|
||||
normalizedTime: 0.2
|
||||
stringParameter: Effect_Slash_10101_2
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.38
|
||||
normalizedTime: 0.4
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.05
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.44
|
||||
normalizedTime: 0.6
|
||||
stringParameter: Projectile_10101
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: Attack2d
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack2_S.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
subClipName: Attack2d_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack1
|
||||
incomingExitTime: 0.9
|
||||
createIfMissing: 1
|
||||
firstFrame: 33
|
||||
lastFrame: 46
|
||||
speed: 3
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
speed: 1
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
@ -1530,26 +1580,26 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.32
|
||||
normalizedTime: 0.2
|
||||
stringParameter: Effect_Slash_10101_2
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.38
|
||||
normalizedTime: 0.4
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.05
|
||||
- stateName: Attack2e
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack2_S.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
subClipName: Attack2e_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack1
|
||||
incomingExitTime: 0.9
|
||||
createIfMissing: 1
|
||||
firstFrame: 33
|
||||
lastFrame: 46
|
||||
speed: 3
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
speed: 1
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
@ -1561,33 +1611,33 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.32
|
||||
normalizedTime: 0.2
|
||||
stringParameter: Effect_Slash_10101_2
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.38
|
||||
normalizedTime: 0.4
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.05
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.44
|
||||
normalizedTime: 0.6
|
||||
stringParameter: Projectile_10101
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
- stateName: Attack2f
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack2_S.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack1.FBX
|
||||
subClipName: Attack2f_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack1
|
||||
incomingExitTime: 0.9
|
||||
createIfMissing: 1
|
||||
firstFrame: 33
|
||||
lastFrame: 46
|
||||
speed: 3
|
||||
firstFrame: 3
|
||||
lastFrame: 8
|
||||
speed: 1
|
||||
events:
|
||||
- functionName: LookAtTarget
|
||||
time: 0
|
||||
|
|
@ -1599,21 +1649,21 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.32
|
||||
normalizedTime: 0.2
|
||||
stringParameter: Effect_Slash_10101_2
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.38
|
||||
normalizedTime: 0.4
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.05
|
||||
- stateName: Attack3
|
||||
sourceFbxPath: Assets/ExplosiveLLC/Spearman Warrior Mecanim Animation Pack/Animations/Spearman@Attack1.FBX
|
||||
sourceFbxPath: Assets/Shinabro/Platform_Animation/Animation/07_Spear/Stander@Spear_Attack2.FBX
|
||||
subClipName: Attack3_S_{CID}
|
||||
sourceClipName:
|
||||
sourceClipName: Spear_Attack2
|
||||
incomingExitTime: 0.9
|
||||
createIfMissing: 0
|
||||
firstFrame: -1
|
||||
|
|
@ -1630,21 +1680,21 @@ MonoBehaviour:
|
|||
- functionName: ShowEffect
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.319
|
||||
normalizedTime: 0.125
|
||||
stringParameter: Effect_Slash_10101_3
|
||||
intParameter: 1
|
||||
floatParameter: 0
|
||||
- functionName: Move
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.379
|
||||
normalizedTime: 0.188
|
||||
stringParameter:
|
||||
intParameter: 0
|
||||
floatParameter: 0.3
|
||||
- functionName: Projectile
|
||||
time: 0
|
||||
useNormalized: 1
|
||||
normalizedTime: 0.439
|
||||
normalizedTime: 0.281
|
||||
stringParameter: Projectile_10101
|
||||
intParameter: 0
|
||||
floatParameter: 0
|
||||
|
|
|
|||
|
|
@ -268,8 +268,9 @@
|
|||
"follow": true,
|
||||
"forward": 0.885,
|
||||
"side": 0.89,
|
||||
"life": 1.0,
|
||||
"minInterval": 0.8,
|
||||
"life": 0.9,
|
||||
"minInterval": 0.9,
|
||||
"_note_944": "#944 창 모션이 Platform Spear 로 바뀌어 2타 연타 = 0.9 s(첫·마지막 ShowEffect 간격 0.75 s) → life 0.9 · minInterval 0.9(에이전트 실측 권고 · Play 미확인)",
|
||||
"_note_941": "#941 PD 「창 공격 시 이펙트와 캐릭터 방향이 일치하게」 — alignWeapon: 매 프레임 창 소켓(손잡이 → 창끝 · 수평) 방향으로 돌리고 손잡이에서 길이 × alignFraction 자리에 둔다(forward/side 는 이때 안 씀 · massLocal 로 섬광 묶음 중심 보정)",
|
||||
"alignWeapon": false,
|
||||
"alignFraction": 0.55,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,137 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: WL_Book_Cover
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 5a162d5dbca9e524bbe671acddcfec3b, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 5a162d5dbca9e524bbe671acddcfec3b, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &3677586776343178000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5d40fb5db98b8a74588f6d8bac07e97c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-7605246359580436501
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: WL_Book_Page1
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 62f617c3ab7748a459afaf35dfc38815, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 62f617c3ab7748a459afaf35dfc38815, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c30f776901cadf34b9b2aab41c5dc96e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-3656858630038846230
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: WL_Book_Page2
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 2800000, guid: 5e95c98e266015b47adde6db9ef77aea, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 5e95c98e266015b47adde6db9ef77aea, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: fee8962030061e74caef6d6d17cf74db
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b5d37742389cf4f4cb15380012f145da
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ba83d4b1d6b00c64aa8229e3e3a4bf0e
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"enabled": 1,
|
||||
"weaponIds": [
|
||||
9009
|
||||
],
|
||||
"classIds": [],
|
||||
"prefab": "WL/Book/WL_Book_Magic",
|
||||
"count": 1,
|
||||
"scale": 0.9,
|
||||
"side": 0.55,
|
||||
"height": 0.68,
|
||||
"forward": 0.05,
|
||||
"euler": [
|
||||
40.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"faceCamera": 1,
|
||||
"bobAmp": 0.05,
|
||||
"bobHz": 0.45,
|
||||
"swayYawDeg": 6.0,
|
||||
"swayRollDeg": 3.0,
|
||||
"swayHz": 0.3,
|
||||
"orbitDegPerSec": 0.0,
|
||||
"followLerp": 10.0,
|
||||
"turnLerp": 8.0,
|
||||
"animLoopStartSec": 1.0,
|
||||
"animLoopEndSec": 2.79,
|
||||
"matchPcLayer": 1,
|
||||
"pollSec": 0.25,
|
||||
"note": "#944 PD 「마법책은 오브 모션과 같도록 수정하고 캐릭터 주위에 책 오브젝트가 떠다니게 해줘(Low Poly Casual Magic Book 활용 · 위치·동작 형태만 참고)」 + 「신규 마법책 장비도 인벤토리에 추가해줘」 — 새 무기 마법책(GroupNo 9009 · 직업 10303) 장착 중 PC 오른쪽 어깨 옆에 펼친 책 1권(WL 사본 Resources/WL/Book/WL_Book_Magic · URP Lit 재질 사본)을 띄운다. 값은 편집 모드 렌더(scripts/wl/probes/944_book_view.cs Scene) 기준 추정 → Play 실측 뒤 보정."
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7ee21986d7ec64a4799167882bf92d10
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
10701
|
||||
],
|
||||
"stage": 1,
|
||||
"frontReach": 1.29,
|
||||
"frontReach": 1.5,
|
||||
"_note_943": "#943-⑥ PD 「창 사거리를 실제 창 길이에 맞게」 — 앞 끝 = 창끝 정면 도달 실측(편집 모드 · 게임과 같은 PC LH_M05 × 1.0527 · 창 WL_W_Spear_T05_003 1.846 m · 60 Hz 포즈 · AgentScripts/WL828_TrailBake.ProbeDump): 1·2타(수평 회전 베기) 최대 1.29 · 3타(내려찍기) 1.55 m. 이전 2.66~2.78 = 사거리 2.5 크기 궤적 기준"
|
||||
},
|
||||
{
|
||||
|
|
@ -95,14 +95,14 @@
|
|||
10701
|
||||
],
|
||||
"stage": 2,
|
||||
"frontReach": 1.29
|
||||
"frontReach": 1.5
|
||||
},
|
||||
{
|
||||
"classIds": [
|
||||
10701
|
||||
],
|
||||
"stage": 3,
|
||||
"frontReach": 1.55
|
||||
"frontReach": 1.47
|
||||
},
|
||||
{
|
||||
"classIds": [
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"enabled": 1,
|
||||
"weaponNames": [
|
||||
"Orb"
|
||||
],
|
||||
"scaleMul": 5.0,
|
||||
"hoverHeight": 0.25,
|
||||
"forward": 0.0,
|
||||
"bobAmp": 0.04,
|
||||
"bobHz": 1.0,
|
||||
"spinDegPerSec": 40.0,
|
||||
"tiltDeg": 0.0,
|
||||
"note": "#944 PD 「오브(손에 빛나는 원형 이펙트)의 크기를 눈에 띄게 5배 키워줘」 + 레퍼런스(펼친 손바닥 위에 떠서 천천히 흔들리는 빛 고리 · 아트는 무시 · 위치·동작만) — 맹약(1057 · 10301) 무기 Orb 프리팹을 WLWeaponFitter 보정 뒤 ×5 · 손 소켓 위 0.25 m 부유(흔들림 0.04 m · 1 Hz · 회전 40°/s). 값은 Play 실측 뒤 보정."
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 89b221ccef44b384c8f8ec0c3ec036a1
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -10,7 +10,8 @@
|
|||
1071,
|
||||
1057,
|
||||
9006,
|
||||
9008
|
||||
9008,
|
||||
9009
|
||||
],
|
||||
"synergyPartners": 1,
|
||||
"equipPartners": 0
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
weapon_id,weapon_name,family,class_id,anim_controller,unlock_phase,main_stat,attack_speed_mult,step,anim_state,hit_type,hits,dmg_ratio_per_hit,range_m,arc_deg,aoe_radius_m,proj_speed,pierce,move_m,hitbox_prefab,slash_vfx,hit_vfx,ref_skill_ids,src
|
||||
1435,묵광,Sword,10101,pcanim_onehand,1,CRIT_DMG,1.0,1,attack,MeleeArc,1,1.0,1.5,120,0,0,0,0.3,Projectile_10101,Effect_Slash_10101_1,Effect_Hit_10101,703502|703103,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1435,묵광,Sword,10101,pcanim_onehand,1,CRIT_DMG,1.0,2,Attack2,MeleeArc,1,1.1,1.5,120,0,0,0,0.15,Projectile_10101,Effect_Slash_10101_2,Effect_Hit_10101,703502|703103,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1435,묵광,Sword,10101,pcanim_onehand,1,CRIT_DMG,1.0,3,Attack3,MeleeArc,1,1.6,1.5,150,0,0,0,0.31,Projectile_10101,Effect_Slash_10101_3,Effect_Hit_10101,703502|703103,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1435,묵광,Sword,10101,pcanim_onehand,1,STR,1.0,1,attack,MeleeArc,1,1.0,1.5,120,0,0,0,0.3,Projectile_10101,Effect_Slash_10101_1,Effect_Hit_10101,703502|703103,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1435,묵광,Sword,10101,pcanim_onehand,1,STR,1.0,2,Attack2,MeleeArc,1,1.1,1.5,120,0,0,0,0.15,Projectile_10101,Effect_Slash_10101_2,Effect_Hit_10101,703502|703103,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1435,묵광,Sword,10101,pcanim_onehand,1,STR,1.0,3,Attack3,MeleeArc,1,1.6,1.5,150,0,0,0,0.31,Projectile_10101,Effect_Slash_10101_3,Effect_Hit_10101,703502|703103,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1015,파괴자,Hammer,10501,pcanim_bluntshield,1,STR,1.0,1,attack,MeleeArc,1,1.2,1.5,120,0,0,0,0.3,Projectile_10501,Effect_Slash_10501_1,Effect_Hit_10501,guard_shield|703503,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1015,파괴자,Hammer,10501,pcanim_bluntshield,1,STR,1.0,2,Attack2,MeleeArc,1,1.3,1.5,120,0,0,0,0.15,Projectile_10501,Effect_Slash_10501_2,Effect_Hit_10501,guard_shield|703503,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1015,파괴자,Hammer,10501,pcanim_bluntshield,1,STR,1.0,3,Attack3,Area,1,2.2,1.5,0,2.0,0,0,0.31,Projectile_10501,Effect_Slash_10501_3,Effect_Hit_10501,guard_shield|703503,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
|
|
@ -9,9 +9,9 @@
|
|||
1029,바람쐐기,Bow,10402,pcanim_archer,1,DEX,1.0,2,Bow_Attack2,Projectile,1,0.9,6,0,0,18,0,0,Projectile_10402,,Effect_Hit_10402,703405|703406,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
1029,바람쐐기,Bow,10402,pcanim_archer,1,DEX,1.0,3,Bow_Attack3,Projectile,3,0.5,6,30,0,18,1,0,Projectile_10402,,Effect_Hit_10402,703405|703406,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
1071,현자의 지팡이,Staff,10302,pcanim_sorceress,1,INT,1.0,1,attack,Area,1,1.25,5,0,1.2,14,0,0,Projectile_10302,,Effect_Hit_10302,703306|703305,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
1001,월광,Sword,10102,pcanim_spellblade,2,CRIT_DMG,1.0,1,attack,MeleeArc,1,1.0,1.5,120,0,0,0,0.3,Projectile_10102,Effect_Slash_10102_1,Effect_Hit_10102,703106|703105,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1001,월광,Sword,10102,pcanim_spellblade,2,CRIT_DMG,1.0,2,Attack2,MeleeArc,1,1.0,1.5,120,0,0,0,0.15,Projectile_10102,Effect_Slash_10102_2,Effect_Hit_10102,703106|703105,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1001,월광,Sword,10102,pcanim_spellblade,2,CRIT_DMG,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
|
||||
1001,월광,Sword,10102,pcanim_spellblade,2,STR,1.0,1,attack,MeleeArc,1,1.0,1.5,120,0,0,0,0.3,Projectile_10102,Effect_Slash_10102_1,Effect_Hit_10102,703106|703105,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1001,월광,Sword,10102,pcanim_spellblade,2,STR,1.0,2,Attack2,MeleeArc,1,1.0,1.5,120,0,0,0,0.15,Projectile_10102,Effect_Slash_10102_2,Effect_Hit_10102,703106|703105,M:weapon_id;class_id;anim_controller;anim_state;range_m;move_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
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
|
||||
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
|
||||
|
|
@ -20,19 +20,20 @@
|
|||
9002,들꽃 단궁,Bow,10401,pcanim_rookiearcher,2,DEX,1.0,1,attack,Projectile,1,0.7,6,0,0,20,0,0,Projectile_10401,,Effect_Hit_10401,703401|703403,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
9002,들꽃 단궁,Bow,10401,pcanim_rookiearcher,2,DEX,1.0,2,Bow_Attack2,Projectile,1,0.7,6,0,0,20,0,0,Projectile_10401,,Effect_Hit_10401,703401|703403,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
9002,들꽃 단궁,Bow,10401,pcanim_rookiearcher,2,DEX,1.0,3,Bow_Attack_Loop,MultiHit,4,0.35,6,0,0,20,0,0,Projectile_10401,,Effect_Hit_10401,703401|703403,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
1043,비수,Dagger,10202,pcanim_assassin,3,CRIT_RATE,1.0,1,attack,MultiHit,2,0.45,1,90,0,0,0,0,Projectile_10202,Effect_Slash_10202_1,Effect_Hit_10202,703204|703206,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1043,비수,Dagger,10202,pcanim_assassin,3,CRIT_RATE,1.0,2,DualBlades_Attack2,MultiHit,2,0.45,1,90,0,0,0,0,Projectile_10202,Effect_Slash_10202_2,Effect_Hit_10202,703204|703206,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1043,비수,Dagger,10202,pcanim_assassin,3,CRIT_RATE,1.0,3,DualBlades_Attack3,MultiHit,3,0.4,1,90,0,0,0,0,Projectile_10202,Effect_Slash_10202_3,Effect_Hit_10202,703204|703206,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9003,무희의 쌍검,Dagger,10201,pcanim_bladedancer,3,CRIT_RATE,1.0,1,attack,MultiHit,2,0.45,1,120,0,0,0,0,Projectile_10201,Effect_Slash_10201_1,Effect_Hit_10201,703202|703203,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9003,무희의 쌍검,Dagger,10201,pcanim_bladedancer,3,CRIT_RATE,1.0,2,DualBlades_Attack2,MultiHit,2,0.45,1,120,0,0,0,0,Projectile_10201,Effect_Slash_10201_2,Effect_Hit_10201,703202|703203,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9003,무희의 쌍검,Dagger,10201,pcanim_bladedancer,3,CRIT_RATE,1.0,3,DualBlades_Attack3,Area,4,0.3,1,0,1.5,0,0,0,Projectile_10201,Effect_Slash_10201_3,Effect_Hit_10201,703202|703203,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1043,비수,Dagger,10202,pcanim_assassin,3,DEX,1.0,1,attack,MultiHit,2,0.45,1,90,0,0,0,0,Projectile_10202,Effect_Slash_10202_1,Effect_Hit_10202,703204|703206,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1043,비수,Dagger,10202,pcanim_assassin,3,DEX,1.0,2,DualBlades_Attack2,MultiHit,2,0.45,1,90,0,0,0,0,Projectile_10202,Effect_Slash_10202_2,Effect_Hit_10202,703204|703206,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
1043,비수,Dagger,10202,pcanim_assassin,3,DEX,1.0,3,DualBlades_Attack3,MultiHit,3,0.4,1,90,0,0,0,0,Projectile_10202,Effect_Slash_10202_3,Effect_Hit_10202,703204|703206,M:weapon_id;class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9003,무희의 쌍검,Dagger,10201,pcanim_bladedancer,3,DEX,1.0,1,attack,MultiHit,2,0.45,1,120,0,0,0,0,Projectile_10201,Effect_Slash_10201_1,Effect_Hit_10201,703202|703203,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9003,무희의 쌍검,Dagger,10201,pcanim_bladedancer,3,DEX,1.0,2,DualBlades_Attack2,MultiHit,2,0.45,1,120,0,0,0,0,Projectile_10201,Effect_Slash_10201_2,Effect_Hit_10201,703202|703203,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9003,무희의 쌍검,Dagger,10201,pcanim_bladedancer,3,DEX,1.0,3,DualBlades_Attack3,Area,4,0.3,1,0,1.5,0,0,0,Projectile_10201,Effect_Slash_10201_3,Effect_Hit_10201,703202|703203,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;slash_vfx;hit_vfx;ref_skill_ids
|
||||
9005,정령의 셉터,Staff,10303,pcanim_summoner,4,INT,1.0,1,attack,Projectile,1,1.2,5,0,0,12,0,0,Projectile_10303,,Effect_Hit_10303,703307|703309,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
9006,철창(가칭),Spear,10701,pcanim_spear,2,STR,1.0,1,attack,MeleeArc,1,1.1,1.29,60,0,0,0,0.3,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9006,철창(가칭),Spear,10701,pcanim_spear,2,STR,1.0,2,Attack2,MeleeArc,1,1.1,1.29,60,0,0,0,0.2,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9006,철창(가칭),Spear,10701,pcanim_spear,2,STR,1.0,3,Attack3,MeleeArc,1,1.7,1.55,40,0,0,1,0.5,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9007,은창(가칭),Spear,10701,pcanim_spear,3,STR,1.0,1,attack,MeleeArc,1,1.1,1.29,60,0,0,0,0.3,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9007,은창(가칭),Spear,10701,pcanim_spear,3,STR,1.0,2,Attack2,MeleeArc,1,1.1,1.29,60,0,0,0,0.2,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9007,은창(가칭),Spear,10701,pcanim_spear,3,STR,1.0,3,Attack3,MeleeArc,1,1.7,1.55,40,0,0,1,0.5,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9009,마법책(가칭),Staff,10303,pcanim_summoner,4,INT,1.0,1,attack,Projectile,1,1.2,5,0,0,12,0,0,Projectile_10303,,Effect_Hit_10303,703307|703309,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx;ref_skill_ids
|
||||
9006,철창(가칭),Spear,10701,pcanim_spear,2,DEX,1.0,1,attack,MeleeArc,1,1.1,1.5,60,0,0,0,0.3,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9006,철창(가칭),Spear,10701,pcanim_spear,2,DEX,1.0,2,Attack2,MeleeArc,1,1.1,1.5,60,0,0,0,0.2,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9006,철창(가칭),Spear,10701,pcanim_spear,2,DEX,1.0,3,Attack3,MeleeArc,1,1.7,1.47,40,0,0,1,0.5,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9007,은창(가칭),Spear,10701,pcanim_spear,3,DEX,1.0,1,attack,MeleeArc,1,1.1,1.5,60,0,0,0,0.3,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9007,은창(가칭),Spear,10701,pcanim_spear,3,DEX,1.0,2,Attack2,MeleeArc,1,1.1,1.5,60,0,0,0,0.2,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9007,은창(가칭),Spear,10701,pcanim_spear,3,DEX,1.0,3,Attack3,MeleeArc,1,1.7,1.47,40,0,0,1,0.5,Projectile_10101,,Effect_Hit_10101,,M:class_id;anim_controller;anim_state;range_m;hitbox_prefab;hit_vfx
|
||||
9008,대검(가칭),Greatsword,10801,pcanim_greatsword,2,STR,1.0,1,attack,MeleeArc,1,1.2,1.8,150,0,0,0,0.3,Projectile_10101,,Effect_Hit_10101,703102|703603,M:class_id;anim_controller;anim_state;hitbox_prefab;hit_vfx
|
||||
9008,대검(가칭),Greatsword,10801,pcanim_greatsword,2,STR,1.0,2,Attack2,MeleeArc,1,1.2,1.8,150,0,0,0,0.15,Projectile_10101,,Effect_Hit_10101,703102|703603,M:class_id;anim_controller;anim_state;hitbox_prefab;hit_vfx
|
||||
9008,대검(가칭),Greatsword,10801,pcanim_greatsword,2,STR,1.0,3,Attack3,MeleeArc,1,1.9,2.0,180,0,0,0,0.31,Projectile_10101,,Effect_Hit_10101,703102|703603,M:class_id;anim_controller;anim_state;hitbox_prefab;hit_vfx
|
||||
|
|
|
|||
|
|
|
@ -53,7 +53,7 @@
|
|||
"weaponRHIndex": 1,
|
||||
"weaponLHPrefab": "",
|
||||
"weaponLHIndex": -1,
|
||||
"attackRange": 1.09,
|
||||
"attackRange": 1.3,
|
||||
"_note_943": "#943-⑥ PD 「창 사거리를 실제 창 길이에 맞게」 — 공격 시작 거리 = 1타 창끝 정면 도달 1.29 m(편집 모드 포즈 실측 = WLHitboxFit.json 1타 앞 끝) − 즉시 공격 여유 0.2(WLTargetingSettings) → 흰 원 1.29 = 1타 판정 앞 끝(검 10101 의 1.18 + 0.2 = 1타 1.38 과 같은 규칙) · 이전 2.5",
|
||||
"attackSpd": -1,
|
||||
"attackClipTokens": [],
|
||||
|
|
|
|||
|
|
@ -21,5 +21,7 @@
|
|||
9003,무희의 쌍검,2,703203,죽음의 칼날,Skill_DeathBlade,bd_skill3,,6,15,0,10,6.5,Poison,,Effect_Poison,5,M:skill_id;skill_name;skill_class;anim;next_anim;range_m;awaken2_extra;vfx;src_cool_ref,,,,
|
||||
9005,정령의 셉터,1,703307,악마의 꽃,Skill_Flower,casting,casting_end,3,7,0,10,2.2,Burn,,Effect_Burn,5,M:skill_id;skill_name;skill_class;anim;next_anim;range_m;awaken2_extra;vfx;src_cool_ref,,,,
|
||||
9005,정령의 셉터,2,703309,골렘 소환,Skill_Golem,casting,casting_end,6,25,0,10,1.0,Burn,,Effect_Burn,5,M:skill_id;skill_name;skill_class;anim;next_anim;range_m;awaken2_extra;vfx;src_cool_ref,,,,
|
||||
9009,마법책(가칭),1,703307,악마의 꽃,Skill_Flower,casting,casting_end,3,7,0,10,2.2,Burn,,Effect_Burn,5,M:skill_id;skill_name;skill_class;anim;next_anim;range_m;awaken2_extra;vfx;src_cool_ref,,,,
|
||||
9009,마법책(가칭),2,703309,골렘 소환,Skill_Golem,casting,casting_end,6,25,0,10,1.0,Burn,,Effect_Burn,5,M:skill_id;skill_name;skill_class;anim;next_anim;range_m;awaken2_extra;vfx;src_cool_ref,,,,
|
||||
9008,대검(가칭),1,703102,회심의 일격,Skill_FatalBlow,fatalblow,,3,7,0,5,2.6,Blood,,Effect_Blood,8,PD#882 이동 — 원래 묵광 1번(회심의 일격 = 점프 내려치기),,,,
|
||||
9008,대검(가칭),2,703603,칼날 폭풍,Skill_Whirlwind,twohandskill3,,6,16,0,5,6.0,Blood,,Effect_Blood,5,PD#883 결정 — E30 칼날 폭풍(힘민지 양손검 · 쿨 16 = 다른 근접 각성과 같게 · 조정 가능),,,,
|
||||
|
|
|
|||
|
|
|
@ -0,0 +1,215 @@
|
|||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
// WLFloatingBook.cs — 마법책(새 무기 9009 · 직업 10303) 장착 중 PC 옆에 떠다니는 책 (#944 · 2026-10-19)
|
||||
//
|
||||
// PD 원문: 「신규 마법책 장비도 인벤토리에 추가해줘」(새 무기 9009 · 직업 10303) · 「마법책은 오브 모션과 같도록 수정하고 캐릭터 주위에 책 오브젝트가 떠다니게 해줘. (보유 에셋중 Low Poly Casual Magic Book를 활용하고,
|
||||
// 부유 위치나 컨셉은 스크린샷을 참고할 것)」 · 「아트 컨셉은 무시해도 되며 위치 및 동작 형태만 참고할 것」
|
||||
// ■ 원리 — 원본 코드 훅 0줄. WLWeaponClassApplier 와 같이 씬 로드 뒤 상주 오브젝트 1개를 만들고, WLInventory.Changed(장착 변경) + pollSec 폴링으로
|
||||
// 「내 PC 가 있고 · 살아 있고(활성) · 장착 무기 GroupNo 가 weaponIds 에 든다(또는 그 직업이 classIds 에 든다)」를 판정한다.
|
||||
// 참이면 책 프리팹(Resources · WL 사본)을 PC 와 같은 씬에 count 권 만들고, LateUpdate(애니메이터 뒤)마다 PC 기준 (side · height · forward) 자리로
|
||||
// 부드럽게 따라가게 둔다(상하 흔들림 · 좌우 흔들림 · 선택 공전). 거짓이 되면(해제 · 사망 · PC 교체) 바로 없앤다. 씬이 바뀌면 책은 씬과 함께 사라지고
|
||||
// 다음 판정에서 새 PC 에 다시 만든다.
|
||||
// ■ 애니 — 책 클립(7.46 초 · 0~1 초 펼침 · 넘김 · 4.5 초부터 닫힘)을 처음부터 재생해 펼친 뒤 [animLoopStartSec, animLoopEndSec) 을 반복한다(넘김).
|
||||
// ■ 값 = Resources/WL/WLFloatingBook.json (C45 · 코드 기본값은 0/빈 값 — 파일이 없으면 꺼짐) · 🔴 Debug.LogError 금지(원본 ErrorLogHook 팝업)
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using WL.Equip;
|
||||
|
||||
namespace WL.Combat.Weapon
|
||||
{
|
||||
[System.Serializable]
|
||||
public class WLFloatingBookJson
|
||||
{
|
||||
public int enabled;
|
||||
public int[] weaponIds = new int[0]; // 장착 무기 GroupNo 가 여기 들면 띄운다(#944 마법책 9009)
|
||||
public int[] classIds = new int[0]; // (선택) 장착 무기의 직업(공격표 class_id)이 여기 들어도 띄운다 — 같은 직업을 쓰는 다른 무기에도 뜨므로 기본은 비움
|
||||
public string prefab = ""; // Resources 경로(확장자 없음)
|
||||
public int count = 1; // 권 수(여러 권 = PC 둘레에 고르게)
|
||||
public float scale = 1f; // 프리팹 배율
|
||||
public float side, height, forward; // PC 기준 오른쪽 · 발밑 위 · 정면 m
|
||||
public float[] euler = new float[3]; // PC(또는 카메라) 방향 기준 책 회전(도)
|
||||
public int faceCamera; // 1 = 책 방향(yaw)을 카메라 기준으로(펼친 면이 늘 화면 쪽) · 0 = PC 정면 기준
|
||||
public float bobAmp, bobHz; // 상하 흔들림 진폭 m · 초당 횟수
|
||||
public float swayYawDeg, swayRollDeg, swayHz;// 좌우 돌기 · 기울기 흔들림(도) · 초당 횟수
|
||||
public float orbitDegPerSec; // 0 = 옆에 고정 · 그 외 = PC 둘레 공전
|
||||
public float followLerp, turnLerp; // 따라가기 · 돌기 부드러움(초당 · 0 = 즉시)
|
||||
public float animLoopStartSec, animLoopEndSec;// 책 클립 반복 구간(초 · 끝 ≤ 시작 = 반복 안 함)
|
||||
public int matchPcLayer; // 1 = 책 레이어를 PC 와 같게(같은 카메라 경로로 그려지게)
|
||||
public float pollSec = 0.25f;
|
||||
public string note = "";
|
||||
}
|
||||
|
||||
public static class WLFloatingBookSettings
|
||||
{
|
||||
public const string ResourcesPath = "WL/WLFloatingBook";
|
||||
static WLFloatingBookJson s_cfg; static bool s_loaded;
|
||||
public static WLFloatingBookJson Cfg { get { if (!s_loaded) Load(); return s_cfg; } }
|
||||
public static void Reload() { s_loaded = false; }
|
||||
static void Load()
|
||||
{
|
||||
s_loaded = true;
|
||||
try { var ta = Resources.Load<TextAsset>(ResourcesPath); s_cfg = ta != null ? JsonUtility.FromJson<WLFloatingBookJson>(ta.text) : null; }
|
||||
catch (System.Exception ex) { WLFloatingBook.LastLog = "설정 읽기 실패 — " + ex.Message; s_cfg = null; }
|
||||
if (s_cfg == null) s_cfg = new WLFloatingBookJson { enabled = 0 };
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>상주 드라이버(씬 로드 뒤 1개 · DontDestroyOnLoad) — 책 만들기 · 없애기 · 매 프레임 배치.</summary>
|
||||
public sealed class WLFloatingBook : MonoBehaviour
|
||||
{
|
||||
public static WLFloatingBook Instance { get; private set; }
|
||||
public static int Spawned, Cleared, Frames, LoopJumps;
|
||||
public static string LastLog = "";
|
||||
|
||||
readonly List<Transform> _books = new List<Transform>();
|
||||
readonly List<Animator> _anims = new List<Animator>();
|
||||
PCActor _pc; float _t, _t0, _orbit; bool _dirty = true;
|
||||
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
|
||||
static void Boot()
|
||||
{
|
||||
if (Instance != null) return;
|
||||
var c = WLFloatingBookSettings.Cfg; if (c == null || c.enabled == 0) return;
|
||||
var go = new GameObject("WL_FloatingBook");
|
||||
DontDestroyOnLoad(go);
|
||||
Instance = go.AddComponent<WLFloatingBook>();
|
||||
}
|
||||
|
||||
void OnEnable() { WLInventory.Changed += OnChanged; }
|
||||
void OnDisable() { WLInventory.Changed -= OnChanged; Clear("비활성"); }
|
||||
void OnDestroy() { if (Instance == this) Instance = null; }
|
||||
void OnChanged() { _dirty = true; }
|
||||
|
||||
void Update()
|
||||
{
|
||||
var c = WLFloatingBookSettings.Cfg; if (c == null) return;
|
||||
_t += Time.unscaledDeltaTime;
|
||||
if (!_dirty && _t < Mathf.Max(0.05f, c.pollSec)) return;
|
||||
_t = 0f; _dirty = false;
|
||||
try { Tick(c); }
|
||||
catch (System.Exception ex) { LastLog = "예외 — " + ex.Message; }
|
||||
}
|
||||
|
||||
void Tick(WLFloatingBookJson c)
|
||||
{
|
||||
PCActor pc = MyValue.bMyPC ? MyValue.MyPC : null;
|
||||
bool want = c.enabled != 0 && pc != null && !pc.IsDead() && WantsBook(c);
|
||||
bool missing = false;
|
||||
for (int i = 0; i < _books.Count; i++) if (_books[i] == null) { missing = true; break; }
|
||||
if (_books.Count > 0 && (!want || missing || !ReferenceEquals(pc, _pc))) Clear(!want ? "조건 해제" : missing ? "씬 정리됨" : "PC 교체");
|
||||
if (want && _books.Count == 0) Spawn(c, pc);
|
||||
}
|
||||
|
||||
/// <summary>장착 무기(FR GroupNo)가 weaponIds 에 들거나, 그 무기의 공격표 class_id 가 classIds 에 드는가.</summary>
|
||||
static bool WantsBook(WLFloatingBookJson c)
|
||||
{
|
||||
bool byWeapon = c.weaponIds != null && c.weaponIds.Length > 0, byClass = c.classIds != null && c.classIds.Length > 0;
|
||||
if (!byWeapon && !byClass || !WLInventory.EnsureLoaded()) return false;
|
||||
var w = WLInventory.EquippedInSlot(eFREquipmentType.Weapon);
|
||||
int gid = w != null && w.itemJson != null ? w.itemJson.GroupNo : 0;
|
||||
if (gid <= 0) return false;
|
||||
if (byWeapon && System.Array.IndexOf(c.weaponIds, gid) >= 0) return true;
|
||||
int cls = byClass ? WLWeaponAttackTable.ClassIdFor(gid) : 0;
|
||||
return cls > 0 && System.Array.IndexOf(c.classIds, cls) >= 0;
|
||||
}
|
||||
|
||||
void Spawn(WLFloatingBookJson c, PCActor pc)
|
||||
{
|
||||
var prefab = string.IsNullOrEmpty(c.prefab) ? null : Resources.Load<GameObject>(c.prefab);
|
||||
if (prefab == null) { LastLog = "책 프리팹 없음 — " + c.prefab; return; }
|
||||
int n = Mathf.Max(1, c.count);
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
var go = Instantiate(prefab);
|
||||
_books.Add(go.transform); _anims.Add(go.GetComponentInChildren<Animator>()); // 먼저 등록(예외가 나도 Clear 가 치운다) · 기본 상태가 처음(닫힘)부터 재생 → 펼친 뒤 반복 구간
|
||||
go.name = prefab.name + "_" + i;
|
||||
var ps = pc.gameObject.scene; // PC 와 같은 씬 → 씬이 바뀌면 함께 사라진다
|
||||
if (ps.IsValid() && go.scene != ps) { if (ps.name == "DontDestroyOnLoad") DontDestroyOnLoad(go); else UnityEngine.SceneManagement.SceneManager.MoveGameObjectToScene(go, ps); }
|
||||
go.transform.localScale = prefab.transform.localScale * c.scale;
|
||||
if (c.matchPcLayer != 0) SetLayer(go.transform, pc.gameObject.layer);
|
||||
}
|
||||
_pc = pc; _t0 = Time.time; _orbit = 0f;
|
||||
Place(c, true);
|
||||
Spawned++;
|
||||
LastLog = "책 " + n + "권 생성 — " + prefab.name + " · PC " + pc.name + " · 배율 " + c.scale + " · 옆 " + c.side + " 위 " + c.height + " 앞 " + c.forward;
|
||||
}
|
||||
|
||||
void Clear(string why)
|
||||
{
|
||||
if (_books.Count == 0) return;
|
||||
for (int i = 0; i < _books.Count; i++) if (_books[i] != null) Destroy(_books[i].gameObject);
|
||||
_books.Clear(); _anims.Clear(); _pc = null;
|
||||
Cleared++; LastLog = "책 정리 — " + why;
|
||||
}
|
||||
|
||||
static void SetLayer(Transform t, int layer)
|
||||
{
|
||||
t.gameObject.layer = layer;
|
||||
for (int i = 0; i < t.childCount; i++) SetLayer(t.GetChild(i), layer);
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
if (_books.Count == 0 || _pc == null) return;
|
||||
var c = WLFloatingBookSettings.Cfg; if (c == null) return;
|
||||
Place(c, false);
|
||||
LoopAnim(c);
|
||||
Frames++;
|
||||
}
|
||||
|
||||
void Place(WLFloatingBookJson c, bool snap)
|
||||
{
|
||||
float t = Time.time - _t0;
|
||||
_orbit += c.orbitDegPerSec * Time.deltaTime;
|
||||
var pt = _pc.transform;
|
||||
var pcYaw = Quaternion.Euler(0f, pt.eulerAngles.y, 0f);
|
||||
Quaternion faceYaw = pcYaw;
|
||||
if (c.faceCamera != 0) { var cam = Camera.main; if (cam != null) { var f = cam.transform.forward; f.y = 0f; if (f.sqrMagnitude > 1e-4f) faceYaw = Quaternion.LookRotation(f.normalized, Vector3.up); } }
|
||||
var e = c.euler != null && c.euler.Length >= 3 ? Quaternion.Euler(c.euler[0], c.euler[1], c.euler[2]) : Quaternion.identity;
|
||||
int n = _books.Count;
|
||||
float kp = snap || c.followLerp <= 0f ? 1f : 1f - Mathf.Exp(-c.followLerp * Time.deltaTime);
|
||||
float kr = snap || c.turnLerp <= 0f ? 1f : 1f - Mathf.Exp(-c.turnLerp * Time.deltaTime);
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
var b = _books[i]; if (b == null) continue;
|
||||
float share = (float)i / n; // 여러 권 = 둘레 · 흔들림 위상 고르게
|
||||
var ring = Quaternion.Euler(0f, _orbit + 360f * share, 0f);
|
||||
float bob = Mathf.Sin((t * c.bobHz + share) * Mathf.PI * 2f) * c.bobAmp;
|
||||
float sw = Mathf.Sin((t * c.swayHz + share) * Mathf.PI * 2f);
|
||||
var pos = pt.position + pcYaw * (ring * new Vector3(c.side, 0f, c.forward)) + Vector3.up * (c.height + bob);
|
||||
var rot = faceYaw * ring * e * Quaternion.Euler(0f, sw * c.swayYawDeg, sw * c.swayRollDeg);
|
||||
if (kp >= 1f && kr >= 1f) b.SetPositionAndRotation(pos, rot);
|
||||
else b.SetPositionAndRotation(Vector3.Lerp(b.position, pos, kp), Quaternion.Slerp(b.rotation, rot, kr));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>펼친 뒤 넘김 구간 반복 — 상태 시간이 끝 초를 넘으면 시작 초로 되돌린다.</summary>
|
||||
void LoopAnim(WLFloatingBookJson c)
|
||||
{
|
||||
if (c.animLoopEndSec <= c.animLoopStartSec) return;
|
||||
for (int i = 0; i < _anims.Count; i++)
|
||||
{
|
||||
var an = _anims[i]; if (an == null || !an.isActiveAndEnabled) continue;
|
||||
var st = an.GetCurrentAnimatorStateInfo(0);
|
||||
float len = st.length; if (len <= 0.0001f) continue;
|
||||
if (st.normalizedTime * len >= c.animLoopEndSec) { an.Play(st.fullPathHash, 0, c.animLoopStartSec / len); LoopJumps++; }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>프로브용 한 줄 — 책 수 · 셈 · PC 와의 거리/높이.</summary>
|
||||
public static string Describe()
|
||||
{
|
||||
var s = "spawned=" + Spawned + " cleared=" + Cleared + " frames=" + Frames + " loops=" + LoopJumps;
|
||||
var me = Instance;
|
||||
if (me != null && me._pc != null)
|
||||
for (int i = 0; i < me._books.Count; i++)
|
||||
{
|
||||
var b = me._books[i]; if (b == null) continue;
|
||||
var d = b.position - me._pc.transform.position;
|
||||
var local = Quaternion.Inverse(Quaternion.Euler(0f, me._pc.transform.eulerAngles.y, 0f)) * d;
|
||||
s += " | " + b.name + " local(" + local.x.ToString("F2") + "," + local.y.ToString("F2") + "," + local.z.ToString("F2") + ") scale " + b.localScale.x.ToString("F2");
|
||||
}
|
||||
return s + " · " + LastLog;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 512426e3b748a7548ba75698c0c70caa
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
// WLOrbFloat.cs — 오브 무기(맹약 · Res_Addr/Weapon/Orb.prefab)를 손 위에 띄운다 (#944 · 2026-10-19)
|
||||
//
|
||||
// PD 원문: 「오브(손에 빛나는 원형 이펙트)의 크기를 눈에 띄게 5개[배] 키워줘」 · 레퍼런스 = 펼친 손바닥 위에 빛나는 고리가 떠서 천천히 흔들림
|
||||
// 「아트 컨셉은 무시해도 되며 오브의 위치 및 동작 형태만 참고할 것」
|
||||
// ■ 원리 — 무기는 PCActor.Make_Weapon(Addressables 콜백)으로 손 소켓 자식에 붙고, WLWeaponFitter 가 LateUpdate 소켓 스캔으로 새 자식을 1회 보정한다.
|
||||
// 그 자리(Fit 직후)에서 이름이 weaponNames 에 든 무기에 이 컴포넌트를 1회 붙인다(훅 1줄). 이 컴포넌트는 LateUpdate(애니메이터 뒤)마다
|
||||
// 월드 위치 = 소켓 위치 + 위 hoverHeight + 흔들림(sin) · 회전 = 월드 위 축 spin · 크기 = 보정된 크기 × scaleMul 로 둔다.
|
||||
// ■ 값 = Resources/WL/WLOrbFloat.json (C45) · enabled 0 = 아무것도 안 함 · 🔴 Debug.LogError 금지(원본 ErrorLogHook 팝업)
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
using UnityEngine;
|
||||
|
||||
namespace WL.Combat.Weapon
|
||||
{
|
||||
[System.Serializable]
|
||||
public class WLOrbFloatJson
|
||||
{
|
||||
public int enabled = 1;
|
||||
public string[] weaponNames = new[] { "Orb" }; // 소켓 자식 이름 앞부분(프리팹 이름 · "(Clone)" 무시)
|
||||
public float scaleMul = 5f; // 보정된 크기 × 배수
|
||||
public float hoverHeight = 0.25f; // 소켓(손) 위 m
|
||||
public float forward = 0f; // 소켓 기준 PC 정면 쪽 m
|
||||
public float bobAmp = 0.04f; // 상하 흔들림 진폭 m
|
||||
public float bobHz = 1.0f; // 흔들림 주기(초당)
|
||||
public float spinDegPerSec = 40f; // 월드 위 축 회전
|
||||
public float tiltDeg = 0f; // 고리를 눕히는 각(0 = 프리팹 그대로)
|
||||
public string note = "";
|
||||
}
|
||||
|
||||
public static class WLOrbFloatSettings
|
||||
{
|
||||
public const string ResourcesPath = "WL/WLOrbFloat";
|
||||
static WLOrbFloatJson s_cfg; static bool s_loaded;
|
||||
public static WLOrbFloatJson Cfg { get { if (!s_loaded) Load(); return s_cfg; } }
|
||||
public static void Reload() { s_loaded = false; }
|
||||
static void Load()
|
||||
{
|
||||
s_loaded = true;
|
||||
try { var ta = Resources.Load<TextAsset>(ResourcesPath); s_cfg = ta != null ? JsonUtility.FromJson<WLOrbFloatJson>(ta.text) : null; }
|
||||
catch (System.Exception ex) { WLOrbFloat.LastLog = "설정 읽기 실패 — " + ex.Message; s_cfg = null; }
|
||||
if (s_cfg == null) s_cfg = new WLOrbFloatJson { enabled = 0 };
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>손 소켓 자식(오브)에 붙어 손 위에 띄운다. WLWeaponFitter 훅 1줄 → TryAttach.</summary>
|
||||
public sealed class WLOrbFloat : MonoBehaviour
|
||||
{
|
||||
public static int Attached, Frames; public static string LastLog = "";
|
||||
Transform _socket, _pc; Vector3 _baseScale; float _t0, _spin;
|
||||
|
||||
public static bool TryAttach(Transform weapon)
|
||||
{
|
||||
try
|
||||
{
|
||||
var c = WLOrbFloatSettings.Cfg; if (c == null || c.enabled == 0 || weapon == null) return false;
|
||||
string n = weapon.name; bool hit = false;
|
||||
if (c.weaponNames != null) for (int i = 0; i < c.weaponNames.Length; i++) if (!string.IsNullOrEmpty(c.weaponNames[i]) && n.StartsWith(c.weaponNames[i])) { hit = true; break; }
|
||||
if (!hit) return false;
|
||||
var f = weapon.GetComponent<WLOrbFloat>(); if (f != null) return true;
|
||||
f = weapon.gameObject.AddComponent<WLOrbFloat>();
|
||||
f._socket = weapon.parent; f._pc = f._socket != null ? f._socket.root : null; f._baseScale = weapon.localScale; f._t0 = Time.time;
|
||||
weapon.localScale = f._baseScale * Mathf.Max(0.01f, c.scaleMul);
|
||||
Attached++; LastLog = "오브 부착 " + n + " 소켓=" + (f._socket != null ? f._socket.name : "-") + " 크기 ×" + c.scaleMul + " 높이 " + c.hoverHeight;
|
||||
return true;
|
||||
}
|
||||
catch (System.Exception ex) { LastLog = "오브 부착 실패 — " + ex.Message; return false; }
|
||||
}
|
||||
|
||||
void LateUpdate()
|
||||
{
|
||||
var c = WLOrbFloatSettings.Cfg; if (c == null || c.enabled == 0 || _socket == null) return;
|
||||
float t = Time.time - _t0;
|
||||
Vector3 fwd = _pc != null ? _pc.forward : Vector3.forward; fwd.y = 0f; if (fwd.sqrMagnitude < 1e-4f) fwd = Vector3.forward; fwd.Normalize();
|
||||
Vector3 pos = _socket.position + Vector3.up * (c.hoverHeight + Mathf.Sin(t * c.bobHz * Mathf.PI * 2f) * c.bobAmp) + fwd * c.forward;
|
||||
_spin += c.spinDegPerSec * Time.deltaTime;
|
||||
var rot = Quaternion.AngleAxis(_spin, Vector3.up) * Quaternion.Euler(c.tiltDeg, 0f, 0f);
|
||||
transform.SetPositionAndRotation(pos, rot);
|
||||
Frames++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 70ffcce8ae428204da0e35e9ad05cb94
|
||||
|
|
@ -869,6 +869,15 @@
|
|||
"W_Sword_7",
|
||||
"W_Sword_8",
|
||||
"W_Sword_8"
|
||||
],
|
||||
"9009": [
|
||||
"W_Wand_4",
|
||||
"W_Wand_7",
|
||||
"W_Wand_8",
|
||||
"W_Wand_9",
|
||||
"W_Wand_10",
|
||||
"W_Wand_11",
|
||||
"W_Wand_12"
|
||||
]
|
||||
},
|
||||
"partIcons": {
|
||||
|
|
|
|||
|
|
@ -754,5 +754,257 @@
|
|||
"Equipments": "[Type:1,Prefab:Sword_red]",
|
||||
"SkillIndex": 1007,
|
||||
"Desc": "대검 계열(가칭) — 창 9006 행을 복제한 더미(#838 · 2026-10-11) · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900900,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 0,
|
||||
"GradeLv": 0,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 10,
|
||||
"ItemLvAbilityID": 10000,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900901,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 1,
|
||||
"GradeLv": 0,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 20,
|
||||
"ItemLvAbilityID": 10001,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900902,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 2,
|
||||
"GradeLv": 0,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 30,
|
||||
"ItemLvAbilityID": 10002,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900903,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 3,
|
||||
"GradeLv": 0,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 50,
|
||||
"ItemLvAbilityID": 10003,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900904,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 3,
|
||||
"GradeLv": 1,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 60,
|
||||
"ItemLvAbilityID": 10004,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900905,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 3,
|
||||
"GradeLv": 2,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 70,
|
||||
"ItemLvAbilityID": 10005,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900906,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 4,
|
||||
"GradeLv": 0,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 80,
|
||||
"ItemLvAbilityID": 10006,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900907,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 4,
|
||||
"GradeLv": 1,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 90,
|
||||
"ItemLvAbilityID": 10007,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900908,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 4,
|
||||
"GradeLv": 2,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 100,
|
||||
"ItemLvAbilityID": 10008,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900909,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 4,
|
||||
"GradeLv": 3,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 110,
|
||||
"ItemLvAbilityID": 10009,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900910,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 5,
|
||||
"GradeLv": 0,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 120,
|
||||
"ItemLvAbilityID": 10010,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900911,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 5,
|
||||
"GradeLv": 1,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 130,
|
||||
"ItemLvAbilityID": 10011,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900912,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 5,
|
||||
"GradeLv": 2,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 140,
|
||||
"ItemLvAbilityID": 10012,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
},
|
||||
{
|
||||
"Index": 900913,
|
||||
"Item_name": "마법책(가칭)",
|
||||
"ItemCategory": 1,
|
||||
"ItemType": 1,
|
||||
"IsEquip": 1,
|
||||
"IsStack": 0,
|
||||
"WeaponType": 5,
|
||||
"EquipmentType": 1,
|
||||
"ItemGrade": 5,
|
||||
"GradeLv": 3,
|
||||
"GroupNo": 9009,
|
||||
"ItemMaxLv": 150,
|
||||
"ItemLvAbilityID": 10013,
|
||||
"Equipments": "[Type:1,Prefab:]",
|
||||
"SkillIndex": 1005,
|
||||
"Desc": "마법책 계열(가칭) — #944 PD 「신규 마법책 장비도 인벤토리에 추가해줘」 · 등급 행 = 철창 9006 복제 · WeaponType/SkillIndex = 맹약 1057(지팡이 계열) · 손 모델은 직업 10303 행 · 떠다니는 책 = WLFloatingBook · Equipments 는 WL 이 읽지 않음 · PD 이름 확정 전"
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -783,63 +783,6 @@ MonoBehaviour:
|
|||
straight=0.61 sweep=400.6\xB0 pivot=\uCE7C\uB05D\uC6D0 tipR=0.925 hiltR=0.252
|
||||
dev=0.053 fitQ=0.89 kind=Swing (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
- classId: 10701
|
||||
clipName: Effect_Slash_10101_1
|
||||
kind: 1
|
||||
planeNormal: {x: 0.038015425, y: 0.9977091, z: -0.055959173}
|
||||
pivot: {x: 0.074319184, y: 0.5030525, z: -0.035045374}
|
||||
bisector: {x: -0.98307157, y: 0.047384575, z: 0.17698874}
|
||||
startDir: {x: 0.5735504, y: -0.067642264, z: -0.8163727}
|
||||
tipRadius: 1.332726
|
||||
hiltRadius: 0.5697392
|
||||
sweepDeg: 270.71988
|
||||
stabAxis: {x: -0.4314748, y: 0.02015867, z: 0.90189976}
|
||||
stabStart: {x: 0.8704324, y: 0.4606447, z: -1.1683016}
|
||||
stabLength: 2.7308962
|
||||
quality: 50
|
||||
source: "wl828m1 2026-10-12 12:52 Attack1_S_10701 f24~f32/74@60Hz n=9(\uD2B8\uB9BC
|
||||
9\u21929) PC=LH_M05 rootScale=1.0527 weaponK=0.9937 path=6.21 bladeAng=281\xB0
|
||||
straight=0.60 sweep=270.7\xB0 pivot=\uCE7C\uB05D\uC6D0 tipR=1.333 hiltR=0.570
|
||||
dev=0.041 fitQ=0.94 kind=Swing (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
- classId: 10701
|
||||
clipName: Effect_Slash_10101_2
|
||||
kind: 1
|
||||
planeNormal: {x: 0.06909985, y: 0.9951445, z: -0.07009097}
|
||||
pivot: {x: 0.00859721, y: 0.48270226, z: 0.05625285}
|
||||
bisector: {x: -0.4852508, y: 0.09491526, z: 0.86920816}
|
||||
startDir: {x: -0.87254333, y: 0.026227323, z: -0.4878323}
|
||||
tipRadius: 1.2709038
|
||||
hiltRadius: 0.6023491
|
||||
sweepDeg: 179.7864
|
||||
stabAxis: {x: 0.87280905, y: -0.007052272, z: 0.48801085}
|
||||
stabStart: {x: -1.112246, y: 0.48289385, z: -0.56674975}
|
||||
stabLength: 2.5402837
|
||||
quality: 50
|
||||
source: "wl828m1 2026-10-12 12:52 Attack2_S_10701 f8~f12/26@60Hz n=5(\uD2B8\uB9BC
|
||||
5\u21925) PC=LH_M05 rootScale=1.0527 weaponK=0.9937 path=3.90 bladeAng=183\xB0
|
||||
straight=0.65 sweep=179.8\xB0 pivot=\uCE7C\uB05D\uC6D0 tipR=1.271 hiltR=0.602
|
||||
dev=0.013 fitQ=0.98 kind=Swing (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
- classId: 10701
|
||||
clipName: Effect_Slash_10101_3
|
||||
kind: 1
|
||||
planeNormal: {x: 0.95719343, y: 0.28941464, z: -0.0044637853}
|
||||
pivot: {x: 0.25622573, y: 0.3826955, z: 0.07922937}
|
||||
bisector: {x: -0.25352824, y: 0.84574616, z: 0.46950716}
|
||||
startDir: {x: -0.1840746, y: 0.5967516, z: -0.7810276}
|
||||
tipRadius: 1.5382556
|
||||
hiltRadius: 0.4461397
|
||||
sweepDeg: 158.71616
|
||||
stabAxis: {x: 0.119720384, y: -0.45538092, z: 0.8822104}
|
||||
stabStart: {x: -0.0034473303, y: 1.3192463, z: -1.1360762}
|
||||
stabLength: 3.0381339
|
||||
quality: 50
|
||||
source: "wl828m1 2026-10-12 12:52 Attack3_S_10701 f25~f30/68@60Hz n=6(\uD2B8\uB9BC
|
||||
6\u21926) PC=LH_M05 rootScale=1.0527 weaponK=0.9937 path=4.19 bladeAng=169\xB0
|
||||
straight=0.72 sweep=158.7\xB0 pivot=\uCE7C\uB05D\uC6D0 tipR=1.538 hiltR=0.446
|
||||
dev=0.011 fitQ=0.99 kind=Swing (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
- classId: 10801
|
||||
clipName: Effect_Slash_10101_2
|
||||
kind: 1
|
||||
|
|
@ -916,6 +859,63 @@ MonoBehaviour:
|
|||
straight=0.65 sweep=218.9\xB0 pivot=\uCE7C\uB05D\uC6D0 tipR=1.664 hiltR=0.405
|
||||
dev=0.034 fitQ=0.96 kind=Swing (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
- classId: 10701
|
||||
clipName: Effect_Slash_10101_1
|
||||
kind: 2
|
||||
planeNormal: {x: 0.88158125, y: 0.349564, z: 0.31720594}
|
||||
pivot: {x: 0.65397054, y: 0.591501, z: -0.05616218}
|
||||
bisector: {x: -0.28329372, y: -0.1457048, z: 0.9479002}
|
||||
startDir: {x: -0.29784253, y: -0.109399565, z: 0.94832563}
|
||||
tipRadius: 1.7077701
|
||||
hiltRadius: 0.16302724
|
||||
sweepDeg: 4.4824414
|
||||
stabAxis: {x: -0.2826259, y: -0.38485995, z: 0.87863845}
|
||||
stabStart: {x: 0.23207891, y: 0.43653736, z: 1.2871335}
|
||||
stabLength: 0.5966695
|
||||
quality: 50
|
||||
source: "wl828m1 2026-10-19 22:18 Attack1_S_10701 f8~f12/60@60Hz n=5(\uD2B8\uB9BC
|
||||
5\u21925) PC=LH_M05 rootScale=1.0527 weaponK=0.9937 path=0.78 bladeAng=23\xB0
|
||||
straight=0.77 sweep=4.5\xB0 pivot=\uC190\uC7A1\uC774\uC911\uC2EC tipR=1.708
|
||||
hiltR=0.163 dev=0.028 fitQ=0.97 kind=Stab (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
- classId: 10701
|
||||
clipName: Effect_Slash_10101_2
|
||||
kind: 2
|
||||
planeNormal: {x: 0.8815804, y: 0.34956875, z: 0.31720287}
|
||||
pivot: {x: 0.65396595, y: 0.5915029, z: -0.05616577}
|
||||
bisector: {x: -0.2832882, y: -0.14570992, z: 0.94790107}
|
||||
startDir: {x: -0.29783878, y: -0.109400816, z: 0.94832665}
|
||||
tipRadius: 1.7077725
|
||||
hiltRadius: 0.16302733
|
||||
sweepDeg: 4.4829264
|
||||
stabAxis: {x: -0.28262606, y: -0.38485983, z: 0.8786383}
|
||||
stabStart: {x: 0.232079, y: 0.43653727, z: 1.2871336}
|
||||
stabLength: 0.5966694
|
||||
quality: 50
|
||||
source: "wl828m1 2026-10-19 22:18 Attack2_S_10701 f2~f6/10@60Hz n=5(\uD2B8\uB9BC
|
||||
5\u21925) PC=LH_M05 rootScale=1.0527 weaponK=0.9937 path=0.78 bladeAng=23\xB0
|
||||
straight=0.77 sweep=4.5\xB0 pivot=\uC190\uC7A1\uC774\uC911\uC2EC tipR=1.708
|
||||
hiltR=0.163 dev=0.028 fitQ=0.97 kind=Stab (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
- classId: 10701
|
||||
clipName: Effect_Slash_10101_3
|
||||
kind: 2
|
||||
planeNormal: {x: -0.3317561, y: -0.939542, z: 0.08484529}
|
||||
pivot: {x: -0.14228718, y: 0.2193865, z: -0.052341327}
|
||||
bisector: {x: 0.36536872, y: -0.045050137, z: 0.92977214}
|
||||
startDir: {x: 0.4971443, y: -0.09768714, z: 0.86215127}
|
||||
tipRadius: 1.8285621
|
||||
hiltRadius: 0.21789326
|
||||
sweepDeg: 18.031006
|
||||
stabAxis: {x: -0.31145805, y: 0.106075756, z: 0.94432086}
|
||||
stabStart: {x: 0.60700047, y: 0.07215406, z: 1.2470788}
|
||||
stabLength: 0.90029204
|
||||
quality: 50
|
||||
source: "wl828m1 2026-10-19 22:18 Attack3_S_10701 f8~f18/64@60Hz n=11(\uD2B8\uB9BC
|
||||
11\u219211) PC=LH_M05 rootScale=1.0527 weaponK=0.9937 path=1.00 bladeAng=28\xB0
|
||||
straight=0.90 sweep=18.0\xB0 pivot=\uC190\uC7A1\uC774\uC911\uC2EC tipR=1.829
|
||||
hiltR=0.218 dev=0.027 fitQ=0.97 kind=Stab (\uB7F0\uD0C0\uC784 \uB85C\uCEEC=\uD68C\uC804\uB9CC
|
||||
\xB7 \uCEE8\uD2B8\uB864\uB7EC \uD074\uB9BD)"
|
||||
swingMinSweepDegrees: 150
|
||||
swingMinTipHiltRatio: 3
|
||||
stabMinStraightness: 0.86
|
||||
|
|
|
|||
|
|
@ -8,3 +8,5 @@
|
|||
## note
|
||||
#904 PD 「소드 공격은 궤적 범위에 비해 실제 판정 범위가 너무 넓음 — 공격 판정 영역을 궤적에 맞게 · 검 2타가 모자라는 부분은 2타 공격 시점에 전진하며 맞추기」 — frontReach = 판정 상자 앞 끝(PC 몸 중심에서 정면 m) = Play 실측 검기 정면 도달(묵광 · 월광 같음 · 1타 1.38 · 2타 1.14 · 3타 1.49) · 원본 상자 = PC 몸 중심 앞 spawnForward 0.3 m 에 깊이 2 m · 중심 z 0.5 = 정면 −0.2 ~ 1.8 m(뒤 끝 · 너비 · 높이는 그대로 두고 앞 끝만 맞춤) · stage = 기본 공격 콤보 단계(0 = 모든 단계) · 검 2타 전진 = WLCombatMotionSettings Attack2_S_101 표(30 cm · 적과 0.9 m 까지) · 표에 없는 직업 · 단계 = 원본 상자 · 다른 근접 무기(PD 「타수마다 사정거리가 다르면 전진하며 맞추거나 궤적을 늘려 자연스러운 타격」) — Play 실측 검기 정면 도달: 비수 10202(원 1.20 · 1타 0.97 · 2타 1.03~1.11 · 3타 1.17 · 4타 돌진 1.89 — 1·2타는 기존 전진 표 + 정지 거리 0.9 m 로 메움) · 대검 10801(원 2.00 · 2.10 / 2.23 / 2.12 · 4타 미측정 = 단계 0 기본 2.2) · 창 10701(원 2.70 · 2.66 / 2.75 / 2.78) — 대검 · 창은 원본 판정 상자(Projectile_10101 · 정면 1.8 m)가 궤적보다 짧았다 · 해머 10501 = 회전 이펙트 반경(칼끝 반경 × radiusFit · 1타 1.05 × 1.3 = 1.37 · 2타 0.91 × 1.6 = 1.46 · 3타 1.10 × 1.6 = 1.76 · 추정 = 이펙트가 PC 가까이 중심을 둔다고 봄)
|
||||
|
||||
## _note_944
|
||||
#944 PD 「창 모션 = Platform Animation 찌르기」 — 1타 Spear_Attack1 · 2타 Spear_Attack1 f3~f8 ×6 · 3타 Spear_Attack2 로 바뀌어 판정 앞 끝 = 창끝 정면 최대(편집 모드 · 게임과 같은 Animator 구동 = 루트 이동 버림 · PC LH_M05 × 1.0527 · 창 WL_W_Spear_T05_003 1.846 m · scripts/wl/probes/944_spear_pose.cs Dump): 1타 1.50(f6) · 2타 1.50(f6) · 3타 1.47(f9) · attackRange = 1타 1.50 − 즉시 공격 여유 0.2(WLTargetingSettings) = 1.3 · 참고: TrailBake 방식(AnimationMode = 클립 루트 이동이 포즈에 얹힘) 1타 1.81 · 3타 2.11 · 값 파일 안 _note_943 의 1.29/1.55 는 이 값으로 대체
|
||||
|
|
|
|||
|
|
@ -26,3 +26,5 @@ PD 2026-10-09 「해머는 무기가 제대로 보이지 않아(방패를 들고
|
|||
## _note_spear_timing
|
||||
#835 (2026-10-11) 창 클립 칼끝 실측(WL804_TipProbe · 30fps): 1타 찌르기 f3~f6(0.10~0.20) · 2타 f2~f9(0.06~0.28) · 3타 휘두르기 f1~f4+f9~f10. 이전 값(이펙트 0.28/0.28/0.33 · 판정 0.4/0.4/0.45)은 찌르기가 끝난 뒤였다 → 이펙트 = 찌르기 시작 직전 · 판정 = 찌르기 끝.
|
||||
|
||||
## _note_944
|
||||
#944 PD 「창 모션 = Platform Animation 찌르기」 — 1타 Spear_Attack1 · 2타 Spear_Attack1 f3~f8 ×6 · 3타 Spear_Attack2 로 바뀌어 판정 앞 끝 = 창끝 정면 최대(편집 모드 · 게임과 같은 Animator 구동 = 루트 이동 버림 · PC LH_M05 × 1.0527 · 창 WL_W_Spear_T05_003 1.846 m · scripts/wl/probes/944_spear_pose.cs Dump): 1타 1.50(f6) · 2타 1.50(f6) · 3타 1.47(f9) · attackRange = 1타 1.50 − 즉시 공격 여유 0.2(WLTargetingSettings) = 1.3 · 참고: TrailBake 방식(AnimationMode = 클립 루트 이동이 포즈에 얹힘) 1타 1.81 · 3타 2.11 · 값 파일 안 _note_943 의 1.29/1.55 는 이 값으로 대체
|
||||
|
|
|
|||
Loading…
Reference in New Issue