diff --git a/Assets/Res_Addr/Effect/WL_Effect_Hit_EnergySlashFlash.prefab b/Assets/Res_Addr/Effect/WL_Effect_Hit_EnergySlashFlash.prefab new file mode 100644 index 000000000..48237daf7 --- /dev/null +++ b/Assets/Res_Addr/Effect/WL_Effect_Hit_EnergySlashFlash.prefab @@ -0,0 +1,579 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1350445096495842306 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1350445096495842305} + - component: {fileID: 2691850233177647995} + m_Layer: 0 + m_Name: WL_Effect_Hit_EnergySlashFlash + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1350445096495842305 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1350445096495842306} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3608992348306799372} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2691850233177647995 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1350445096495842306} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 456d2bd1c5c2e5e4b8b948836c4975a4, type: 3} + m_Name: + m_EditorClassIdentifier: + NoUseParticleTime: 1 + OffTime: 0.5 + e_EffectLocation: 0 +--- !u!1001 &1211421648796847847 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1350445096495842305} + m_Modifications: + - target: {fileID: 1157170509065276573, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_Name + value: SlashHitComplex + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.5317218 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.0141509175 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.atime2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 2581246081342383203, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.13156863 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 0.9254902 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.54549026 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.1254902 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.a + value: 0.20705883 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.g + value: 0.5250001 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.atime3 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 2977174918668865734, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 0.93333334 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.61294127 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.25882357 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.atime2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key2.a + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3176652519396064368, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.5250001 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.atime2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 5427077955898790933, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.atime2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 5709964409102896158, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.43352944 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.5250001 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.35150945 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.26037738 + objectReference: {fileID: 0} + - target: {fileID: 6232618474635037349, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.13588236 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.5250001 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 7033682563711218389, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.6255883 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.2117647 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.g + value: 0.5250001 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: InitialModule.startColor.minColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.atime2 + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key2.a + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7258884150435476659, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 7968715334603949256, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: d7f0fb1de9cb63249aafd95a0e4688a4, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a769c9d2e74331246a300e6fba225910, type: 3} +--- !u!4 &3608992348306799372 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 2511428565345301995, guid: a769c9d2e74331246a300e6fba225910, + type: 3} + m_PrefabInstance: {fileID: 1211421648796847847} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Res_Addr/Effect/WL_Effect_Hit_EnergySlashFlash.prefab.meta b/Assets/Res_Addr/Effect/WL_Effect_Hit_EnergySlashFlash.prefab.meta new file mode 100644 index 000000000..fedf78588 --- /dev/null +++ b/Assets/Res_Addr/Effect/WL_Effect_Hit_EnergySlashFlash.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ad85323aa123ead44a4b8a9b55e682e8 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Res_Addr/Effect/WL_Effect_Slash_EnergySlash.prefab b/Assets/Res_Addr/Effect/WL_Effect_Slash_EnergySlash.prefab new file mode 100644 index 000000000..5c98f6c73 --- /dev/null +++ b/Assets/Res_Addr/Effect/WL_Effect_Slash_EnergySlash.prefab @@ -0,0 +1,354 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5164807117813024258 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1025451156603284880} + - component: {fileID: 8558499595176826072} + m_Layer: 0 + m_Name: WL_Effect_Slash_EnergySlash + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1025451156603284880 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5164807117813024258} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7779546774590818340} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8558499595176826072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5164807117813024258} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 456d2bd1c5c2e5e4b8b948836c4975a4, type: 3} + m_Name: + m_EditorClassIdentifier: + NoUseParticleTime: 1 + OffTime: 1 + e_EffectLocation: 0 +--- !u!1001 &6265987394935985210 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1025451156603284880} + m_Modifications: + - target: {fileID: 176913700564299972, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 1a41ec592de59ec47944b562ed33a50f, type: 2} + - target: {fileID: 1999761296254745984, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 1999761296254745984, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 1999761296254745984, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 3804521779338254503, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 321f69f3c6e84ec4db50948afcfe9fd8, type: 2} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalScale.x + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalScale.y + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalScale.z + value: 0.4 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalPosition.x + value: 0.38 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalPosition.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalPosition.z + value: -0.06 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.457209 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.45720914 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.539407 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.5394069 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -80.57001 + objectReference: {fileID: 0} + - target: {fileID: 4437757428617080786, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: m_Name + value: Orange_Slash_1 + objectReference: {fileID: 0} + - target: {fileID: 4491838220540049458, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 4491838220540049458, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 4491838220540049458, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 4748004960685704186, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: f76dc8ad51902564381e405a252c7417, type: 2} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.55 + objectReference: {fileID: 0} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.5250001 + objectReference: {fileID: 0} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 4820803202169937068, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.3179 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.68915445 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.3455882 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 5533637874220301288, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 6675810005810565097, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.25245 + objectReference: {fileID: 0} + - target: {fileID: 6675810005810565097, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 6675810005810565097, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 6675810005810565097, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 6675810005810565097, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 6675810005810565097, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 6675810005810565097, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 7297201754924428435, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: aa147f7753d149346a2f73a97ec01e0d, type: 2} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.a + value: 0.33165 + objectReference: {fileID: 0} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.b + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.g + value: 0.5250001 + objectReference: {fileID: 0} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: InitialModule.startColor.maxColor.r + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key0.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.g + value: 0.81000006 + objectReference: {fileID: 0} + - target: {fileID: 8579214359113483040, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: ColorModule.gradient.maxGradient.key1.r + value: 0.6 + objectReference: {fileID: 0} + - target: {fileID: 8815199620263163061, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: 321f69f3c6e84ec4db50948afcfe9fd8, type: 2} + - target: {fileID: 8993485997736124281, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + propertyPath: 'm_Materials.Array.data[0]' + value: + objectReference: {fileID: 2100000, guid: aa147f7753d149346a2f73a97ec01e0d, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 66d619abe0c84054a8ccb20b2911d643, type: 3} +--- !u!4 &7779546774590818340 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4396571810850249758, guid: 66d619abe0c84054a8ccb20b2911d643, + type: 3} + m_PrefabInstance: {fileID: 6265987394935985210} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Res_Addr/Effect/WL_Effect_Slash_EnergySlash.prefab.meta b/Assets/Res_Addr/Effect/WL_Effect_Slash_EnergySlash.prefab.meta new file mode 100644 index 000000000..446efe07f --- /dev/null +++ b/Assets/Res_Addr/Effect/WL_Effect_Slash_EnergySlash.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cd1d7ecf278c6574daedf4b5d0b6a253 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Script/Character/Projectile/ProjectileBase.cs b/Assets/Script/Character/Projectile/ProjectileBase.cs index a97ea95bb..982ed724f 100644 --- a/Assets/Script/Character/Projectile/ProjectileBase.cs +++ b/Assets/Script/Character/Projectile/ProjectileBase.cs @@ -446,7 +446,7 @@ public class ProjectileBase : MonoBehaviour WL.Combat.Core.CombatEvents.RaiseHitboxHit(this, m_ProjecTileData, hitter, noDmg); if (!noDmg) hitter.Get_Damage(WL.Combat.Status.WLStatus.BeforeDamage(hitter, Get_DamageInfo())); // #842 수면 중 피격 = 100 % 치명·치명 피해 배율·즉시 기상(그 외엔 그대로 돌려준다) m_ProjecTileData.Action_OnHit?.Invoke(hitter); - if (Off_byHit && !WL.Combat.Impact.WLImpactFx.DeferOff(this, hitter)) Off(false, false); // #843 지팡이 투사체는 몸 중심까지 날아간 뒤 끈다 + if (Off_byHit && !WL.Combat.Weapon.WLPierceProjectile.Pierces(this, m_ProjecTileData, other) && !WL.Combat.Impact.WLImpactFx.DeferOff(this, hitter)) Off(false, false); // #843 지팡이 투사체는 몸 중심까지 날아간 뒤 끈다 · WL #974 관통 스킬(WLPierceProjectile.json)은 안 끈다 Show_HitEffect(true, hitter); return true; } diff --git a/Assets/Script/Character/Projectile/Skill/Skill_EnergySlash.cs b/Assets/Script/Character/Projectile/Skill/Skill_EnergySlash.cs index 5046b5abe..8ae8c6476 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_EnergySlash.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_EnergySlash.cs @@ -19,7 +19,8 @@ public class Skill_EnergySlash : ProjectileBase IEnumerator Co_Update() { - InGameInfo.Ins.Show_Effect("Effect_Hit_Skill_EnergySlashFlash", transform.position); + if (!WL.Combat.Weapon.WLProjectileVisual.HideStartFx(this)) // WL #974 시작 섬광 = 스킬 연출 impact(푸른 WL 사본)가 띄움 → 원본 것은 끔(WLProjectileVisual.json hideStartFx) + InGameInfo.Ins.Show_Effect("Effect_Hit_Skill_EnergySlashFlash", transform.position); yield return new WaitForSeconds(0.25f); StartCoroutine(Co_Move_Strait(eProjectileStrait.Forward)); } diff --git a/Assets/WL/Combat/Reaction/MobStagger.cs b/Assets/WL/Combat/Reaction/MobStagger.cs index 9f0745af7..20b85f6a2 100644 --- a/Assets/WL/Combat/Reaction/MobStagger.cs +++ b/Assets/WL/Combat/Reaction/MobStagger.cs @@ -131,7 +131,7 @@ namespace WL.Combat.Reaction s.until = now + Mathf.Max(dur, st.mobMoveLockSeconds); // #903 피격 뒤 최소 0.5 초 이동 · 새 공격 잠금 s.recovered = false; s.idleHeld = false; s.pushUntil = -1f; // #903 루트를 때린 쪽 반대로 실제로 민다 → 대기 모션이 밀린 자리에서 이어진다 - float pushDist = st.mobHitPushDistance * (sr != null ? Mathf.Max(0f, sr.pushScale) : 1f); + float pushDist = sr != null && sr.pushMeters > 0f ? sr.pushMeters : st.mobHitPushDistance * (sr != null ? Mathf.Max(0f, sr.pushScale) : 1f); // #974 pushMeters = 밀기 거리 고정(m) if (sr != null) SkillOverrides++; if (pushDist > 0f && st.mobHitPushSeconds > 0f && !victim.IsSubRole(eSubRol.Boss) && e.attacker != null) { diff --git a/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json b/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json index 8fa22239b..86d553bd1 100644 --- a/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json +++ b/Assets/WL/Combat/Reaction/Resources/WL/WLSkillHitFeel.json @@ -9,6 +9,7 @@ "knockbackScale": 0.0, "staggerSeconds": 0.4 }, + { "skill": "Skill_EnergySlash", "pushScale": 1.0, "pushMeters": 0.2, "knockbackScale": 0.0, "staggerSeconds": 0.0, "_note_974": "#974 PD 「한손검 주력 검기 — 0.2m 정도 넉백」 — 원본 넉백(AttackKnockBack) 끔 · 피격 밀기(MobStagger · PC → 적 방향) 0.2 m 고정 · 관통 다단(WLPierceProjectile 0.2 s)마다 밀림" }, { "skill": "Skill_ArrowRain", "pushScale": 0.05, diff --git a/Assets/WL/Combat/Reaction/SkillSpectacle.cs b/Assets/WL/Combat/Reaction/SkillSpectacle.cs index e6a1efde6..24aa6e8d0 100644 --- a/Assets/WL/Combat/Reaction/SkillSpectacle.cs +++ b/Assets/WL/Combat/Reaction/SkillSpectacle.cs @@ -100,6 +100,9 @@ namespace WL.Combat.Reaction // ───────────────────────────────────────── 구독 [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] static void Register() { EnsureSubscribed(); } + /// #974 도메인 리로드 끔(테스트 씬) 대비 — Play 마다 행 해석(s_rows · 프리팹 이름 → 엔트리)을 다시 한다. 설정에서 연출 프리팹을 바꿔도 이전 Play 의 해석이 남아 원본이 계속 나왔다(실측). + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)] + static void ResetRows() { s_rows = null; s_preloadedRow = null; } /// 구독 보장(중복은 CombatEventList 가 막는다). 에디트 모드 프로브도 이걸 부른다. public static void EnsureSubscribed() diff --git a/Assets/WL/Combat/Reaction/WLSkillHitFeel.cs b/Assets/WL/Combat/Reaction/WLSkillHitFeel.cs index 591d11e1e..be975988f 100644 --- a/Assets/WL/Combat/Reaction/WLSkillHitFeel.cs +++ b/Assets/WL/Combat/Reaction/WLSkillHitFeel.cs @@ -20,6 +20,7 @@ namespace WL.Combat.Reaction { public string skill = ""; // eEffect 이름(원본 스킬 클래스) public float pushScale = 1f; // 피격 밀기 거리 배율 + public float pushMeters; // #974 > 0 = 피격 밀기 거리 고정(m · pushScale 대신) — PD 「0.2m 정도 넉백」 public float knockbackScale = 1f; // 원본 넉백 거리 배율(몹 넉백 배율 대신) public float staggerSeconds; // 경직 최소 시간(0 = 등급별 그대로) } diff --git a/Assets/WL/Combat/Settings/Resources/WL/WLSkillSpectacleSettings.asset b/Assets/WL/Combat/Settings/Resources/WL/WLSkillSpectacleSettings.asset index 4ebcf17d0..c9e504c65 100644 --- a/Assets/WL/Combat/Settings/Resources/WL/WLSkillSpectacleSettings.asset +++ b/Assets/WL/Combat/Settings/Resources/WL/WLSkillSpectacleSettings.asset @@ -41,32 +41,34 @@ MonoBehaviour: - _BaseColor classElements: - classId: 10101 - label: onehand · Nature + label: "onehand \xB7 Nature" element: 6 tint: {r: 0.55, g: 1, b: 0.45, a: 1} - classId: 10102 - label: spellblade · Dark + label: "spellblade \xB7 Dark" element: 2 tint: {r: 0.72, g: 0.45, b: 1, a: 1} - classId: 10501 - label: bluntshield · Holy + label: "bluntshield \xB7 Holy" element: 4 tint: {r: 1, g: 0.92, b: 0.55, a: 1} - classId: 10502 - label: paladin · Holy + label: "paladin \xB7 Holy" element: 4 tint: {r: 1, g: 0.92, b: 0.55, a: 1} rows: - skillId: 703101 classId: 10101 slot: 1 - label: 연속 베기 + label: "\uC5F0\uC18D \uBCA0\uAE30" charge: prefab: scale: 1 anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 body: @@ -75,6 +77,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0.6 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -83,19 +87,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 0 - skillId: 703102 classId: 10101 slot: 2 - label: 회심의 일격 + label: "\uD68C\uC2EC\uC758 \uC77C\uACA9" charge: prefab: Effect_Berserk scale: 0.999 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -104,6 +112,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0.8 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -112,19 +122,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 1 - skillId: 703103 classId: 10101 slot: 3 - label: 돌진 베기 + label: "\uB3CC\uC9C4 \uBCA0\uAE30" charge: prefab: Effect_PCDash scale: 0.702 anchor: 2 forwardOffset: 0 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -133,6 +147,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 1 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -141,19 +157,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 budgetClass: 1 - skillId: 702006 classId: 10101 slot: 4 - label: 돌개 바람 + label: "\uB3CC\uAC1C \uBC14\uB78C" charge: prefab: Effect_Howling scale: 0.251 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -162,6 +182,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0.5 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 impact: @@ -170,19 +192,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 budgetClass: 2 - skillId: 703106 classId: 10102 slot: 1 - label: 무자비한 일격 + label: "\uBB34\uC790\uBE44\uD55C \uC77C\uACA9" charge: prefab: scale: 1 anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 body: @@ -191,6 +217,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0.6 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -199,48 +227,58 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 0 - skillId: 703105 classId: 10102 slot: 2 - label: 검기 분출 + label: "\uAC80\uAE30 \uBD84\uCD9C" charge: prefab: Effect_Casting_Energyball scale: 0.667 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: - prefab: Effect_Slash_10102_2 + prefab: WL_Effect_Slash_EnergySlash scale: 0.403 anchor: 1 forwardOffset: 0.8 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: - prefab: Effect_Hit_Skill_EnergySlashFlash + prefab: WL_Effect_Hit_EnergySlashFlash scale: 0.193 anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 1 - skillId: 703104 classId: 10102 slot: 3 - label: 칼날 방패 + label: "\uCE7C\uB0A0 \uBC29\uD328" charge: prefab: Effect_Casting_ManaShield scale: 0.539 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -249,6 +287,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0.8 impact: @@ -257,19 +297,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 1 - skillId: 702009 classId: 10102 slot: 4 - label: 마나 폭발 + label: "\uB9C8\uB098 \uD3ED\uBC1C" charge: prefab: Effect_Casting_Meteor scale: 0.793 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -278,6 +322,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 impact: @@ -286,19 +332,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 budgetClass: 2 - skillId: 703502 classId: 10501 slot: 1 - label: 방패 치기 + label: "\uBC29\uD328 \uCE58\uAE30" charge: prefab: scale: 1 anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 body: @@ -307,6 +357,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0.6 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -315,13 +367,15 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 0 - skillId: 703503 classId: 10501 slot: 2 - label: 강력한 일격 + label: "\uAC15\uB825\uD55C \uC77C\uACA9" charge: prefab: Effect_PCDash scale: 0.562 @@ -338,6 +392,8 @@ MonoBehaviour: anchor: 2 forwardOffset: 0.8 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -346,19 +402,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 budgetClass: 1 - skillId: 703501 classId: 10501 slot: 3 - label: 간식 먹기 + label: "\uAC04\uC2DD \uBA39\uAE30" charge: prefab: scale: 1 anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 body: @@ -367,6 +427,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 impact: @@ -375,19 +437,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 0 - skillId: 702005 classId: 10501 slot: 4 - label: 휘몰아치는 파도 + label: "\uD718\uBAB0\uC544\uCE58\uB294 \uD30C\uB3C4" charge: prefab: Effect_Howling scale: 0.251 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -396,6 +462,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 1 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -404,19 +472,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 budgetClass: 2 - skillId: 703505 classId: 10502 slot: 1 - label: 십자 가르기 + label: "\uC2ED\uC790 \uAC00\uB974\uAE30" charge: prefab: scale: 1 anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 body: @@ -425,6 +497,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0.6 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -433,19 +507,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 0 - skillId: 703506 classId: 10502 slot: 2 - label: 회전 베기 + label: "\uD68C\uC804 \uBCA0\uAE30" charge: prefab: scale: 1 anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 body: @@ -454,6 +532,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 1 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 impact: @@ -462,19 +542,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 1 - skillId: 703504 classId: 10502 slot: 3 - label: 도발 + label: "\uB3C4\uBC1C" charge: prefab: Effect_Howling scale: 0.251 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -483,6 +567,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 1 impact: @@ -491,19 +577,23 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 0 lifetime: 0 budgetClass: 1 - skillId: 702012 classId: 10502 slot: 4 - label: 심판의 빛 + label: "\uC2EC\uD310\uC758 \uBE5B" charge: prefab: Effect_Casting_Meteor scale: 0.793 anchor: 2 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 body: @@ -512,6 +602,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 impact: @@ -520,6 +612,8 @@ MonoBehaviour: anchor: 1 forwardOffset: 0 useCasterRotation: 0 + aimTarget: 0 + yawOffset: 0 tint: 1 lifetime: 0 budgetClass: 2 diff --git a/Assets/WL/Combat/Weapon/Fx974Mat.meta b/Assets/WL/Combat/Weapon/Fx974Mat.meta new file mode 100644 index 000000000..68d54fb0b --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 148a5cda8f9eff2459de6b76584c222d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Hit_EnergySlashFlash_Spike3D.mat b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Hit_EnergySlashFlash_Spike3D.mat new file mode 100644 index 000000000..4a30cc092 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Hit_EnergySlashFlash_Spike3D.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4660267227424489648 +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: WL974_WL_Effect_Hit_EnergySlashFlash_Spike3D + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: + - _ALPHABLEND_ON + - _FLIPBOOKBLENDING_OFF + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - GRABPASS + - SHADOWCASTER + - DepthOnly + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 0b7ed158ac49eea4eb1412655a61d53a, 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: 0b7ed158ac49eea4eb1412655a61d53a, 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} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _EmissionEnabled: 0 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _LightingEnabled: 0 + - _Metallic: 0 + - _Mode: 2 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1.0324773, g: 1.3938444, b: 1.7207954, a: 1} + - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1.0324773, g: 1.3938444, b: 1.7207954, a: 1} + - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Hit_EnergySlashFlash_Spike3D.mat.meta b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Hit_EnergySlashFlash_Spike3D.mat.meta new file mode 100644 index 000000000..8fad582cf --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Hit_EnergySlashFlash_Spike3D.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d7f0fb1de9cb63249aafd95a0e4688a4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_A38.mat b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_A38.mat new file mode 100644 index 000000000..eec5d943d --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_A38.mat @@ -0,0 +1,111 @@ +%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: WL974_WL_Effect_Slash_EnergySlash_A38 + m_Shader: {fileID: 4800000, guid: 2b02ff58d507c6a478f8b1a00964a56d, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _EMISSION + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _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} + - _Flow: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: acbb6ee94ea96f449b0c62cacb2c847f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Mask: + m_Texture: {fileID: 0} + 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} + - _Noise: + 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} + - _texcoord: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _CullMode: 0 + - _Cutoff: 0.5 + - _Depthpower: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Emission: 2 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Opacity: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _Usecenterglow: 0 + - _Usedepth: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.6, g: 0.81000006, b: 1, a: 1} + - _DistortionSpeedXYPowerZ: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpeedMainTexUVNoiseZW: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.8161765, g: 0.56163865, b: 0.36607915, a: 0.653} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_A38.mat.meta b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_A38.mat.meta new file mode 100644 index 000000000..2c0363fe6 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_A38.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f76dc8ad51902564381e405a252c7417 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Default-Particle.mat b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Default-Particle.mat new file mode 100644 index 000000000..613bad965 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Default-Particle.mat @@ -0,0 +1,146 @@ +%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: WL974_WL_Effect_Slash_EnergySlash_Default-Particle + m_Shader: {fileID: 4800000, guid: bd6af5d577c618947b73aa60db554e51, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _EMISSION + - _SUNDISK_HIGH_QUALITY + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + m_Texture: {fileID: 0} + 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} + - _DownTex: + 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} + - _Flow: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FrontTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 2b9c2309eda4c4ace9a7c9d51ad432e0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Mask: + m_Texture: {fileID: 0} + 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} + - _Noise: + 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} + - _RightTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _texcoord: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - PixelSnap: 0 + - _AtmosphereThickness: 1 + - _Blend2: 1 + - _BumpScale: 1 + - _CullMode: 0 + - _Cutoff: 0.5 + - _Depthpower: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Emission: 1 + - _Exposure: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _InvFade: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Rotation: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SunDisk: 2 + - _SunSize: 0.04 + - _UVSec: 0 + - _Usecenterglow: 0 + - _Usecustomrandom: 0 + - _Usedepth: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0.6, g: 0.81000006, b: 1, a: 1} + - _DistortionSpeedXYPowerZ: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _GroundColor: {r: 0.369, g: 0.349, b: 0.341, a: 1} + - _SkyTint: {r: 0.5, g: 0.5, b: 0.5, a: 1} + - _SpeedMainTexUVNoiseZW: {r: 0, g: 0, b: 0, a: 0} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Default-Particle.mat.meta b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Default-Particle.mat.meta new file mode 100644 index 000000000..13287388c --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Default-Particle.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 321f69f3c6e84ec4db50948afcfe9fd8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash16.mat b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash16.mat new file mode 100644 index 000000000..96be2c46e --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash16.mat @@ -0,0 +1,61 @@ +%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: WL974_WL_Effect_Slash_EnergySlash_Slash16 + m_Shader: {fileID: 4800000, guid: 2b02ff58d507c6a478f8b1a00964a56d, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _Flow: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 43cc9d0278ec9f54d86edf6ac0da8111, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Mask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Noise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _texcoord: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _CullMode: 0 + - _Depthpower: 1 + - _Emission: 1 + - _InvFade: 1 + - _Opacity: 1 + - _Usecenterglow: 0 + - _Usedepth: 0 + m_Colors: + - _Color: {r: 0.6, g: 0.81000006, b: 1, a: 1} + - _DistortionSpeedXYPowerZ: {r: 0, g: 0, b: 0, a: 0} + - _SpeedMainTexUVNoiseZW: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.6691177, g: 0.3026638, b: 0.13775954, a: 0.465} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash16.mat.meta b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash16.mat.meta new file mode 100644 index 000000000..0647a5257 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash16.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1a41ec592de59ec47944b562ed33a50f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash17.mat b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash17.mat new file mode 100644 index 000000000..c80bfa2ed --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash17.mat @@ -0,0 +1,62 @@ +%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: WL974_WL_Effect_Slash_EnergySlash_Slash17 + m_Shader: {fileID: 4800000, guid: bd6af5d577c618947b73aa60db554e51, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _Flow: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: 43cc9d0278ec9f54d86edf6ac0da8111, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Mask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Noise: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _texcoord: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Blend2: 1 + - _CullMode: 0 + - _Depthpower: 1 + - _Emission: 1 + - _InvFade: 1 + - _Usecenterglow: 0 + - _Usecustomrandom: 0 + - _Usedepth: 0 + m_Colors: + - _Color: {r: 0.6, g: 0.81000006, b: 1, a: 1} + - _DistortionSpeedXYPowerZ: {r: 0, g: 0, b: 0, a: 0} + - _SpeedMainTexUVNoiseZW: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.9117647, g: 0.6574693, b: 0.54303634, a: 0.534} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash17.mat.meta b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash17.mat.meta new file mode 100644 index 000000000..49fa7da05 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Fx974Mat/WL974_WL_Effect_Slash_EnergySlash_Slash17.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aa147f7753d149346a2f73a97ec01e0d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLPierceProjectile.json b/Assets/WL/Combat/Weapon/Resources/WL/WLPierceProjectile.json new file mode 100644 index 000000000..4eba2ec42 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLPierceProjectile.json @@ -0,0 +1,12 @@ +{ + "enabled": 1, + "note": "#974 스킬 투사체 관통 · 다단 — rules[].skill = eEffect 이름 · pierce 1 = 맞혀도 안 꺼짐 · rehitSeconds = 겹쳐 있는 적을 다시 맞히는 간격", + "rules": [ + { + "skill": "Skill_EnergySlash", + "pierce": 1, + "rehitSeconds": 0.2, + "note": "#974 PD 「한손검 주력 검기 — 경로 상 적을 관통하며 모든 적에게 피해 · 관통하는 동안 0.2초 간격으로 피해를 더」 — 넉백 0.2 m = WLSkillHitFeel pushMeters · 크기 50 % = WLProjectileVisual fxScale" + } + ] +} diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLPierceProjectile.json.meta b/Assets/WL/Combat/Weapon/Resources/WL/WLPierceProjectile.json.meta new file mode 100644 index 000000000..8844f6278 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLPierceProjectile.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0033f2a4abbada04592223562fdb55a9 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json b/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json index 0e769c37f..f4a42f06f 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLProjectileVisual.json @@ -1,5 +1,11 @@ { "rules": [ + { + "projectile": "Skill_EnergySlash", + "fxScale": 0.5, + "hideStartFx": 1, + "_note_974": "#974 PD 「한손검 주력 스킬로 발사하는 검기의 크기를 50% 줄이고」 — 원본 Skill_EnergySlash 루트 0.5 배(판정 상자 3.0 × 4.0 × 4.5 → 1.5 × 2.0 × 2.25 m · 입자 FX_SlashLight 는 계층 배율로 함께 · 진단 Play 실측) · 「회전 이펙트 색 강렬」 — 원본 코드 시작 섬광 끔(hideStartFx · 스킬 연출 impact 의 푸른 사본이 같은 자리에 뜸)" + }, { "projectile": "Skill_BlackHole", "fxScale": 0.5, diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillYaw.json b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillYaw.json new file mode 100644 index 000000000..39ebccfad --- /dev/null +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillYaw.json @@ -0,0 +1,13 @@ +{ + "enabled": 1, + "note": "#974 스킬 동작 상태 동안 보이는 몸(엉덩이 뼈)을 위 축으로 yaw° 돌림 — 루트 · 판정 · 투사체 방향 · 카메라 그대로", + "rules": [ + { + "state": "energyslash", + "yaw": -76, + "blendIn": 0.08, + "blendOut": 0.15, + "note": "#974 PD 「한손검 주력 스킬 시 회전할 때 공격 대상의 방향과 일치하도록 (현재는 공격 투사체 방향보다 더 회전)」 — 확인 Play(974_verify2): 보정 0° 에서 검기를 쏘는 순간(정규화 0.42~0.46) 어깨선 정면이 대상 · 검기 방향보다 +76 · +80° 더 돌아가 있음(= PD 「더 회전」) → −76° · 엉덩이 뼈 축은 기울어(#958) 정면 기준으로 쓰지 않음(엉덩이 −51° 와 어깨 +76° 는 축 차이 127° 로 일정)" + } + ] +} diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLSkillYaw.json.meta b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillYaw.json.meta new file mode 100644 index 000000000..eea0b5bac --- /dev/null +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLSkillYaw.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 35db910ff2729ee48804c8424f04bb47 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/WLPierceProjectile.cs b/Assets/WL/Combat/Weapon/WLPierceProjectile.cs new file mode 100644 index 000000000..82237769d --- /dev/null +++ b/Assets/WL/Combat/Weapon/WLPierceProjectile.cs @@ -0,0 +1,117 @@ +// ───────────────────────────────────────────────────────────────────────────── +// WLPierceProjectile.cs — 스킬 투사체 관통 + 겹쳐 있는 동안 일정 간격 다단 피해 (#974 · 2026-10-23) +// +// PD 원문: 「한손검 주력 스킬로 발사하는 검기의 크기를 50% 줄이고, 경로 상 적을 관통하며 모든 적에게 피해를 주도록 구현해줘. +// 0.2m 정도 넉백이 적용되어야 하며, 관통하는 동안 0.2초 간격으로 피해를 더 입힐 수 있어야 해. (만약 관통+밀리는 과정에 판정 범위에 있다면 1회 이상 피해를 받을 수 있음)」 +// ■ 원본 = ProjectileBase.ProcessCollider(Off_byHit 기본 true) — 처음 맞힌 적에서 투사체를 끈다(Skill_EnergySlash = 루트 BoxCollider 1개 · ProjectileHitChecker 없음 · 코드 실측) +// ■ 처리 = 규칙 스킬(맞힌 투사체의 SkillListTableData.e_Skill)이면 원본 명중 줄의 훅(1줄 · 끄기 조건)이 끄지 않는다(관통) + +// rehitSeconds > 0 이면 투사체 루트에 WLPierceRehit 을 붙여 겹쳐 있는 적(OnTriggerStay)을 그 간격마다 다시 ProcessCollider(피해 · 명중 이펙트 · 피격 반응 원본 그대로) +// ■ 넉백 0.2 m = WLSkillHitFeel 규칙 pushMeters · 크기 50 % = WLProjectileVisual fxScale +// ■ 값 = Resources/WL/WLPierceProjectile.json (C45) · 끄기 = enabled 0 +// 🔴 Debug.LogError 금지(원본 ErrorLogHook 팝업). +// ───────────────────────────────────────────────────────────────────────────── +using System.Collections.Generic; +using UnityEngine; + +namespace WL.Combat.Weapon +{ + [System.Serializable] + public class WLPierceRule + { + public string skill = ""; // eEffect 이름(원본 스킬 클래스) + public int pierce = 1; // 1 = 맞혀도 끄지 않는다(경로 위 모든 적) + public float rehitSeconds; // > 0 = 겹쳐 있는 적을 이 간격(초)마다 다시 맞힌다 + public string note = ""; + } + + [System.Serializable] + public class WLPierceJson + { + public int enabled = 1; + public WLPierceRule[] rules = new WLPierceRule[0]; + public string note = ""; + } + + public static class WLPierceProjectile + { + public const string ResourcesPath = "WL/WLPierceProjectile"; + public static int Pierced, Rehits, Errors; + public static string LastLog = ""; + + static WLPierceJson s_cfg; + static Dictionary s_rules; + + internal static WLPierceJson Cfg + { + get + { + if (s_cfg != null) return s_cfg; + s_cfg = new WLPierceJson(); s_rules = new Dictionary(); + var ta = Resources.Load(ResourcesPath); + if (ta == null) { LastLog = "설정 없음 " + ResourcesPath; return s_cfg; } + try { JsonUtility.FromJsonOverwrite(ta.text, s_cfg); } catch (System.Exception ex) { LastLog = "설정 파싱 실패 — " + ex.Message; } + if (s_cfg.rules != null) + foreach (var r in s_cfg.rules) + { + eEffect ef; + if (r != null && System.Enum.TryParse(r.skill, out ef)) s_rules[(int)ef] = r; + } + return s_cfg; + } + } + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] + static void Boot() { s_cfg = null; s_rules = null; } + + static WLPierceRule RuleFor(ProjectileData d) + { + var c = Cfg; + if (c.enabled == 0 || d == null || d.m_SkillListTableData == null || s_rules == null) return null; + WLPierceRule r; + return s_rules.TryGetValue((int)d.m_SkillListTableData.e_Skill, out r) ? r : null; + } + + /// 원본 ProjectileBase.ProcessCollider 명중 줄의 훅 — true = 이 명중에서 투사체를 끄지 않는다(관통) · 다단이면 그 적의 마지막 명중 시각을 기록. + public static bool Pierces(ProjectileBase pb, ProjectileData d, Collider other) + { + try + { + var r = RuleFor(d); + if (r == null || r.pierce == 0 || pb == null) return false; + if (r.rehitSeconds > 0f) + { + var rh = pb.GetComponent(); + if (rh == null) rh = pb.gameObject.AddComponent(); + rh.Init(pb, r.rehitSeconds); rh.Mark(other); + } + Pierced++; + return true; + } + catch (System.Exception ex) { Errors++; LastLog = "관통 확인 실패 — " + ex.Message; return false; } + } + } + + /// 투사체 루트(충돌체와 같은 오브젝트)에 붙어 겹쳐 있는 적을 간격마다 다시 맞힌다. 처음 닿음은 원본 OnTriggerEnter 가 맡는다. + internal sealed class WLPierceRehit : MonoBehaviour + { + ProjectileBase _pb; + float _interval; + bool _busy; + readonly Dictionary _last = new Dictionary(); + + public void Init(ProjectileBase pb, float interval) { _pb = pb; _interval = interval; } + public void Mark(Collider c) { if (c != null) _last[c.GetInstanceID()] = Time.time; } + void OnEnable() { _last.Clear(); } // 풀 재사용 — 이전 발사의 기록을 버린다 + + void OnTriggerStay(Collider other) + { + if (_busy || _pb == null || _interval <= 0f || other == null) return; + float t; int id = other.GetInstanceID(); + if (!_last.TryGetValue(id, out t) || Time.time - t < _interval) return; + _busy = true; + try { if (_pb.ProcessCollider(other, false)) { _last[id] = Time.time; WLPierceProjectile.Rehits++; } } // 원본 피해 경로(Off_byHit false = 훅을 안 거치므로 여기서 시각 갱신) + catch (System.Exception ex) { WLPierceProjectile.Errors++; WLPierceProjectile.LastLog = "다단 실패 — " + ex.Message; } + finally { _busy = false; } + } + } +} diff --git a/Assets/WL/Combat/Weapon/WLPierceProjectile.cs.meta b/Assets/WL/Combat/Weapon/WLPierceProjectile.cs.meta new file mode 100644 index 000000000..7913983dd --- /dev/null +++ b/Assets/WL/Combat/Weapon/WLPierceProjectile.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c57c1364a97825246b40e4b20dac66ab \ No newline at end of file diff --git a/Assets/WL/Combat/Weapon/WLProjectileVisual.cs b/Assets/WL/Combat/Weapon/WLProjectileVisual.cs index 1b2fd082b..97b13a97f 100644 --- a/Assets/WL/Combat/Weapon/WLProjectileVisual.cs +++ b/Assets/WL/Combat/Weapon/WLProjectileVisual.cs @@ -43,6 +43,8 @@ namespace WL.Combat.Weapon public WLProjectileStageScale[] stageScales = new WLProjectileStageScale[0]; // #968 PD 「오브 각성 스킬 이펙트 크기를 50% 줄이고」 — 1 이 아니면 쏠 때마다(풀 재사용 포함) 투사체 루트 크기 = 처음 크기 × fxScale (원본 이펙트 전체 · 입자는 계층 배율일 때만 따라 줄어든다 · 판정 반경은 그대로) public float fxScale = 1f; + // #974 1 = 원본 코드가 쏠 때 띄우는 시작 이펙트(검기 분출 Effect_Hit_Skill_EnergySlashFlash)를 끈다 — 같은 섬광을 스킬 연출 impact(푸른 WL 사본)가 띄우므로 두 번 겹치던 것 + public int hideStartFx; } [System.Serializable] @@ -81,7 +83,7 @@ namespace WL.Combat.Weapon for (int i = 0; i < j.rules.Length; i++) { var r = j.rules[i]; - if (r == null || string.IsNullOrEmpty(r.projectile) || (string.IsNullOrEmpty(r.visual) && string.IsNullOrEmpty(r.chargedVisual) && string.IsNullOrEmpty(r.hitFx) && (r.fxScale <= 0f || Mathf.Approximately(r.fxScale, 1f)))) continue; // #968 fxScale 만 있는 규칙(블랙홀 0.5 배)도 읽는다 + if (r == null || string.IsNullOrEmpty(r.projectile) || (string.IsNullOrEmpty(r.visual) && string.IsNullOrEmpty(r.chargedVisual) && string.IsNullOrEmpty(r.hitFx) && (r.fxScale <= 0f || Mathf.Approximately(r.fxScale, 1f)) && r.hideStartFx == 0)) continue; // #968 fxScale 만 있는 규칙(블랙홀 0.5 배)도 · #974 hideStartFx 만 있는 규칙도 읽는다 s_rules[r.projectile] = r; } } @@ -95,7 +97,7 @@ namespace WL.Combat.Weapon finally { WLStaffEarth.AfterProjectileSet(pb); } // #967 3타 메테오 = 겉모습 자식까지 붙은 뒤 넘겨받아 모두 끈다 } - static void OnSetVisual(ProjectileBase pb) + static WLProjectileVisualRule RuleOf(ProjectileBase pb) { if (!s_loaded) Load(); WLProjectileVisualRule rule; @@ -105,6 +107,20 @@ namespace WL.Combat.Weapon int k = n.IndexOf('('); var key = k > 0 ? n.Substring(0, k).TrimEnd() : n; s_rules.TryGetValue(key, out rule); s_byName[n] = rule; } + return rule; + } + + public static int StartFxHidden; + /// #974 원본 스킬 투사체의 시작 이펙트 줄 훅 — true = 띄우지 않는다(규칙 hideStartFx). + public static bool HideStartFx(ProjectileBase pb) + { + try { var r = pb != null ? RuleOf(pb) : null; if (r == null || r.hideStartFx == 0) return false; StartFxHidden++; return true; } + catch (System.Exception) { return false; } + } + + static void OnSetVisual(ProjectileBase pb) + { + var rule = RuleOf(pb); if (rule == null) return; if (rule.speedMul > 0f && !Mathf.Approximately(rule.speedMul, 1f)) { var sm = pb.GetComponent(); if (sm == null) sm = pb.gameObject.AddComponent(); sm.mul = rule.speedMul; sm.Arm(pb); } // #952-③ 매 발사 · 적용은 그 프레임 LateUpdate(Projectile_Strait.Set 이 base.Set 뒤에 m_Speed 로 덮어쓰므로 — 10402 prefab m_Speed 7 실측) if (!s_done.Contains(pb.GetInstanceID())) { Events++; if (Attach(pb, rule)) s_done.Add(pb.GetInstanceID()); } @@ -120,7 +136,12 @@ namespace WL.Combat.Weapon { if (rule.fxScale <= 0f || Mathf.Approximately(rule.fxScale, 1f)) return; int id = pb.GetInstanceID(); Vector3 b; - if (!s_baseRoot.TryGetValue(id, out b)) { b = pb.transform.localScale; s_baseRoot[id] = b; } + if (!s_baseRoot.TryGetValue(id, out b)) + { + b = pb.transform.localScale; s_baseRoot[id] = b; + // #974 입자가 Local 배율이면 루트 크기를 안 따라 그대로 보인다(검기 분출 FX_SlashLight) → 이 인스턴스 입자만 계층 배율로(원본 프리팹 무수정 · 처음 1회) + foreach (var ps in pb.GetComponentsInChildren(true)) { var m = ps.main; if (m.scalingMode != ParticleSystemScalingMode.Hierarchy) m.scalingMode = ParticleSystemScalingMode.Hierarchy; } + } pb.transform.localScale = b * rule.fxScale; FxScaled++; } diff --git a/Assets/WL/Combat/Weapon/WLSkillYaw.cs b/Assets/WL/Combat/Weapon/WLSkillYaw.cs new file mode 100644 index 000000000..80b195d67 --- /dev/null +++ b/Assets/WL/Combat/Weapon/WLSkillYaw.cs @@ -0,0 +1,108 @@ +// ───────────────────────────────────────────────────────────────────────────── +// WLSkillYaw.cs — 스킬 동작 상태 동안 보이는 몸(엉덩이 뼈)을 위 축으로 일정 각만큼 돌려 공격 대상 쪽에 맞춘다 (#974 · 2026-10-23) +// +// PD 원문: 「한손검 주력 스킬 시 회전할 때 공격 대상의 방향과 일치하도록 수정해줘 (현재는 공격 투사체 방향보다 더 회전하고 있어.)」 +// ■ 실측(#974 진단 Play · 974_probe Spin): 검기 분출 동작 energyslash(월광 클립 combo09_3)는 몸을 한 바퀴 반 돌리고, +// 검기를 쏘는 순간(정규화 0.41~0.45) 몸이 대상 · 검기 방향과 어긋난다(PC 루트 · 검기는 대상 쪽 · 어긋난 각 = 규칙 yaw 의 근거 · JSON 메모) +// ■ 처리 = 규칙 상태(지금 상태 또는 넘어가는 중인 다음 상태)일 때 LateUpdate(애니메이션 평가 뒤)에서 엉덩이 뼈를 PC 루트 둘레 위 축으로 yaw° — +// 들어갈 때 blendIn · 나갈 때 blendOut 초에 걸쳐 · 애니메이터가 매 프레임 뼈를 다시 쓰므로 누적 없음 · 루트 · 판정 · 투사체 방향 · 카메라는 그대로(보이는 몸만) +// (WLImpactFx 비수 3타 회전 #956 과 같은 방식) +// ■ 값 = Resources/WL/WLSkillYaw.json (C45) · 끄기 = enabled 0 +// 🔴 Debug.LogError 금지(원본 ErrorLogHook 팝업). +// ───────────────────────────────────────────────────────────────────────────── +using UnityEngine; + +namespace WL.Combat.Weapon +{ + [System.Serializable] + public class WLSkillYawRule + { + public string state = ""; // 애니메이터 0층 상태 이름(예: energyslash) + public float yaw; // 보이는 몸을 돌릴 각(°) · + = 위에서 볼 때 시계 방향 + public float blendIn = 0.08f, blendOut = 0.15f; + public string note = ""; + } + + [System.Serializable] + public class WLSkillYawJson + { + public int enabled = 1; + public WLSkillYawRule[] rules = new WLSkillYawRule[0]; + public string note = ""; + } + + public static class WLSkillYaw + { + public const string ResourcesPath = "WL/WLSkillYaw"; + public static int Frames; + public static float LastYaw; + public static string LastLog = ""; + + static WLSkillYawJson s_cfg; + static GameObject s_runner; + + internal static WLSkillYawJson Cfg + { + get + { + if (s_cfg != null) return s_cfg; + s_cfg = new WLSkillYawJson(); + var ta = Resources.Load(ResourcesPath); + if (ta == null) { LastLog = "설정 없음 " + ResourcesPath; return s_cfg; } + try { JsonUtility.FromJsonOverwrite(ta.text, s_cfg); } catch (System.Exception ex) { LastLog = "설정 파싱 실패 — " + ex.Message; } + return s_cfg; + } + } + + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] + static void Boot() + { + s_cfg = null; + if (Cfg.enabled == 0 || s_runner != null) return; + s_runner = new GameObject("[WL974] SkillYaw"); + s_runner.hideFlags = HideFlags.HideAndDontSave; + Object.DontDestroyOnLoad(s_runner); + s_runner.AddComponent(); + } + + internal static WLSkillYawRule Match(AnimatorStateInfo st) + { + var rules = Cfg.rules; + if (rules == null) return null; + for (int i = 0; i < rules.Length; i++) { var r = rules[i]; if (r != null && !string.IsNullOrEmpty(r.state) && st.IsName(r.state)) return r; } + return null; + } + } + + [DefaultExecutionOrder(-100)] // 손 · 무기를 따라가는 궤적 · 이펙트(LateUpdate)보다 먼저 몸을 돌린다 + internal sealed class WLSkillYawRunner : MonoBehaviour + { + float _w; + WLSkillYawRule _rule; + + void LateUpdate() + { + try + { + if (WLSkillYaw.Cfg.enabled == 0) return; + var pc = MyValue.MyPC as PCActor; + if (pc == null || pc.m_animation == null || !pc.m_animation.isHuman) { _w = 0f; _rule = null; return; } + var an = pc.m_animation; + var hit = WLSkillYaw.Match(an.GetCurrentAnimatorStateInfo(0)); + if (hit == null && an.IsInTransition(0)) hit = WLSkillYaw.Match(an.GetNextAnimatorStateInfo(0)); + if (hit != null) _rule = hit; + if (_rule == null) return; + float target = hit != null ? 1f : 0f; + float dur = target > _w ? _rule.blendIn : _rule.blendOut; + _w = Mathf.MoveTowards(_w, target, Time.deltaTime / Mathf.Max(0.01f, dur)); + if (_w <= 0f) { _rule = null; WLSkillYaw.LastYaw = 0f; return; } + var hips = an.GetBoneTransform(HumanBodyBones.Hips); + if (hips == null) return; + float d = _rule.yaw * _w; + hips.RotateAround(pc.transform.position, pc.transform.up, d); + WLSkillYaw.Frames++; WLSkillYaw.LastYaw = d; + } + catch (System.Exception ex) { WLSkillYaw.LastLog = "회전 실패 — " + ex.Message; _w = 0f; _rule = null; } + } + } +} diff --git a/Assets/WL/Combat/Weapon/WLSkillYaw.cs.meta b/Assets/WL/Combat/Weapon/WLSkillYaw.cs.meta new file mode 100644 index 000000000..d1eb7fcd9 --- /dev/null +++ b/Assets/WL/Combat/Weapon/WLSkillYaw.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0d023c00b6854e645887f52109ee5ffb \ No newline at end of file