diff --git a/Assets/Script/Character/Projectile/Skill/Skill_DarkAmbush.cs b/Assets/Script/Character/Projectile/Skill/Skill_DarkAmbush.cs index 70555c234..55e3a3a8c 100644 --- a/Assets/Script/Character/Projectile/Skill/Skill_DarkAmbush.cs +++ b/Assets/Script/Character/Projectile/Skill/Skill_DarkAmbush.cs @@ -19,7 +19,7 @@ public class Skill_DarkAmbush : ProjectileBase { colliderControl.gameObject.SetActive(false); colliderControl.Set(m_ProjecTileData); - m_ProjecTileData.shooter.Set_Invisible(1.5f, null); + m_ProjecTileData.shooter.Set_Invisible(WL.Combat.Weapon.WLGhostStrike.InvisibleSeconds(this, 1.5f), null); // WL #965 숨김 = 이펙트가 끝나는 시각(WLGhostStrike.json invisibleMatchFx · 끄면 원본 1.5 s) bool keepCam = WL.Combat.Weapon.WLGhostStrike.KeepCamera(this); // WL #953 PD 「카메라 각도를 바꾸지 말고 현재 상태로 착지」 — 규칙(WLGhostStrike.json keepCamera)이면 탑뷰 전환 생략 if (MyValue.m_RealCamera != null && !keepCam) MyValue.m_RealCamera.Set_TopView(m_ProjecTileData.shooter); // WL #881 섬 RealCamera 없음 가드 yield return new WaitForSeconds(0.25f); diff --git a/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json b/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json index 9755e75e5..5b3cd91ff 100644 --- a/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json +++ b/Assets/WL/Combat/Impact/Resources/WL/WLImpactFx.json @@ -159,12 +159,13 @@ "massLocal": [ 0, 0, 0 ], "fixedDir": false, "lockFacing": false, - "blinkDistance": 0.5, - "blinkGhosts": 4, + "blinkDistance": 0.0, + "blinkGhosts": 0, "camHoldSeconds": 0.7, "camZoomOut": 0.6, "keepTrail": true, - "blinkTrailSeconds": 0.3, + "_note_965": "#965 PD 「비수 마지막 시 전진하지 않고 제자리에서 내려치기 공격으로 바꾸고, 잔상은 없애줘」 — 순간이동 0.5 → 0 · 순간이동 길 잔상 4 → 0 · 따라오는 잔상 0.3 → 0 s · 돌진(공격 전진 표 Attack4_S_102 · 약 1.13 m)은 표 이름을 Attack4_S_10201 로 좁혀 10202 4타에서 뺌 · 동작(머리 위 → 바닥 내려찍기)·검기·카메라 고정은 그대로", + "blinkTrailSeconds": 0.0, "blinkTrailInterval": 0.0, "blinkTrailMinStep": 0.25, "_note_964": "#964 PD ① 「4타 이펙트를 1, 2타와 같은 검기로」 — keepTrail: 초승달(WL_Impact_DaggerSpin)은 안 띄우고 검기 호(녹색) · 순간이동 0.5 m · 카메라 고정·줌아웃은 유지 · 4타 동작 = 머리 위 → 정면 바닥 내려찍기(칼끝 실측 f7~f12)라 호가 세로로 서서 위 카메라에서 안 보임 → SlashTrailSettings arcTilts(10202 · Effect_Slash_10202_4 · 카메라 쪽 기울기) · 크기 30 % 축소 = arcSizeMulStages[3](지금 4타 폭 4.97 m × 0.7 목표) · 범위 30 % 축소 = WLHitboxFit 4타 frontReach 1.89 → 1.32 ② 「4타 잔상이 플레이어를 따라가지 않음 → 빠르게 이동한 것처럼 따라 생성」 — 1차 Play 실측: 4타 돌진 = 공격 전진 표 Attack4_S_102(프레임 5~8 · 약 1.13 m 를 0.07 s)가 순간이동 뒤에 와서 잔상(순간이동 길 4개)이 뒤에 남음 → 순간이동 뒤 0.3 s 동안 매 프레임 지나온 길에 0.25 m 간격으로 잔상(blinkTrail · BlinkGhosts 보간)", diff --git a/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerMulti.prefab b/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerMulti.prefab index eb0d6edfc..0fa15bb2c 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerMulti.prefab +++ b/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerMulti.prefab @@ -289,8 +289,8 @@ ParticleSystem: startSize: serializedVersion: 2 minMaxState: 3 - scalar: 8 - minScalar: 5 + scalar: 1.8506427 + minScalar: 1.1566517 maxCurve: serializedVersion: 2 m_Curve: @@ -1476,7 +1476,7 @@ ParticleSystem: m_RotationOrder: 4 separateAxes: 1 ColorModule: - enabled: 1 + enabled: 0 gradient: serializedVersion: 2 minMaxState: 1 @@ -4363,8 +4363,8 @@ ParticleSystem: m_NumColorKeys: 2 m_NumAlphaKeys: 2 CustomDataModule: - enabled: 0 - mode0: 0 + enabled: 1 + mode0: 1 vectorComponentCount0: 4 color0: serializedVersion: 2 @@ -4434,27 +4434,36 @@ ParticleSystem: colorLabel0: Color vector0_0: serializedVersion: 2 - minMaxState: 0 - scalar: 0 + minMaxState: 1 + scalar: 0.98 minScalar: 0 maxCurve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 + value: 1 + inSlope: -10.117915 + outSlope: -5.435413 + tangentMode: 65 weightedMode: 0 inWeight: 0.33333334 - outWeight: 0.33333334 + outWeight: 0.16439223 + - serializedVersion: 3 + time: 0.18040706 + value: 0.019413143 + inSlope: -5.435413 + outSlope: -0.09187784 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50618774 - serializedVersion: 3 time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 + value: -0.055889286 + inSlope: -0.09187784 + outSlope: -0.25530308 + tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -4648,17 +4657,17 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 vectorLabel0_3: W - mode1: 0 + mode1: 2 vectorComponentCount1: 4 color1: serializedVersion: 2 - minMaxState: 0 + minMaxState: 1 minColor: {r: 1, g: 1, b: 1, a: 1} maxColor: {r: 1, g: 1, b: 1, a: 1} maxGradient: serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} + key0: {r: 0, g: 1.582193, b: 0.12657532, a: 1} + key1: {r: 0.015663957, g: 0.3018868, b: 0.03856176, a: 0} key2: {r: 0, g: 0, b: 0, a: 0} key3: {r: 0, g: 0, b: 0, a: 0} key4: {r: 0, g: 0, b: 0, a: 0} @@ -4666,14 +4675,14 @@ ParticleSystem: key6: {r: 0, g: 0, b: 0, a: 0} key7: {r: 0, g: 0, b: 0, a: 0} ctime0: 0 - ctime1: 65535 + ctime1: 38864 ctime2: 0 ctime3: 0 ctime4: 0 ctime5: 0 ctime6: 0 ctime7: 0 - atime0: 0 + atime0: 33911 atime1: 65535 atime2: 0 atime3: 0 @@ -4958,7 +4967,7 @@ ParticleSystemRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: bf638850d6c4d8342b4b030c82944736, type: 2} + - {fileID: 2100000, guid: 62a88a8d105d99c4c89fdced84335769, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -5001,10 +5010,10 @@ ParticleSystemRenderer: m_FreeformStretching: 0 m_RotateWithStretchDirection: 1 m_UseCustomVertexStreams: 1 - m_VertexStreams: 00030409 + m_VertexStreams: 00010304052226 m_UseCustomTrailVertexStreams: 0 m_TrailVertexStreams: 00010304 - m_Mesh: {fileID: -4907317404281051548, guid: 9b070b1b446bd0f45b356f1bf631f2fe, type: 3} + m_Mesh: {fileID: -9132845362894151416, guid: f8e288e5376a9cd4e93754a36d204c40, type: 3} m_Mesh1: {fileID: 0} m_Mesh2: {fileID: 0} m_Mesh3: {fileID: 0} @@ -5235,7 +5244,7 @@ ParticleSystem: serializedVersion: 2 minMaxState: 0 minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 0.21102285, g: 0.8018868, b: 0.59086394, a: 1} + maxColor: {r: 0.2216981, g: 1, b: 0.2839622, a: 1} maxGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -10309,8 +10318,8 @@ ParticleSystem: startSize: serializedVersion: 2 minMaxState: 3 - scalar: 8 - minScalar: 5 + scalar: 1.8506427 + minScalar: 1.1566517 maxCurve: serializedVersion: 2 m_Curve: @@ -11496,7 +11505,7 @@ ParticleSystem: m_RotationOrder: 4 separateAxes: 1 ColorModule: - enabled: 1 + enabled: 0 gradient: serializedVersion: 2 minMaxState: 1 @@ -14383,8 +14392,8 @@ ParticleSystem: m_NumColorKeys: 2 m_NumAlphaKeys: 2 CustomDataModule: - enabled: 0 - mode0: 0 + enabled: 1 + mode0: 1 vectorComponentCount0: 4 color0: serializedVersion: 2 @@ -14454,27 +14463,36 @@ ParticleSystem: colorLabel0: Color vector0_0: serializedVersion: 2 - minMaxState: 0 - scalar: 0 + minMaxState: 1 + scalar: 0.98 minScalar: 0 maxCurve: serializedVersion: 2 m_Curve: - serializedVersion: 3 time: 0 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 + value: 1 + inSlope: -10.117915 + outSlope: -5.435413 + tangentMode: 65 weightedMode: 0 inWeight: 0.33333334 - outWeight: 0.33333334 + outWeight: 0.16439223 + - serializedVersion: 3 + time: 0.18040706 + value: 0.019413143 + inSlope: -5.435413 + outSlope: -0.09187784 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.50618774 - serializedVersion: 3 time: 1 - value: 0 - inSlope: 0 - outSlope: 0 - tangentMode: 0 + value: -0.055889286 + inSlope: -0.09187784 + outSlope: -0.25530308 + tangentMode: 69 weightedMode: 0 inWeight: 0.33333334 outWeight: 0.33333334 @@ -14668,17 +14686,17 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 vectorLabel0_3: W - mode1: 0 + mode1: 2 vectorComponentCount1: 4 color1: serializedVersion: 2 - minMaxState: 0 + minMaxState: 1 minColor: {r: 1, g: 1, b: 1, a: 1} maxColor: {r: 1, g: 1, b: 1, a: 1} maxGradient: serializedVersion: 2 - key0: {r: 1, g: 1, b: 1, a: 1} - key1: {r: 1, g: 1, b: 1, a: 1} + key0: {r: 0, g: 1.582193, b: 0.12657532, a: 1} + key1: {r: 0.015663957, g: 0.3018868, b: 0.03856176, a: 0} key2: {r: 0, g: 0, b: 0, a: 0} key3: {r: 0, g: 0, b: 0, a: 0} key4: {r: 0, g: 0, b: 0, a: 0} @@ -14686,14 +14704,14 @@ ParticleSystem: key6: {r: 0, g: 0, b: 0, a: 0} key7: {r: 0, g: 0, b: 0, a: 0} ctime0: 0 - ctime1: 65535 + ctime1: 38864 ctime2: 0 ctime3: 0 ctime4: 0 ctime5: 0 ctime6: 0 ctime7: 0 - atime0: 0 + atime0: 33911 atime1: 65535 atime2: 0 atime3: 0 @@ -14978,7 +14996,7 @@ ParticleSystemRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 57549874941670b4aadfdbda77559b5c, type: 2} + - {fileID: 2100000, guid: 62a88a8d105d99c4c89fdced84335769, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -15021,10 +15039,10 @@ ParticleSystemRenderer: m_FreeformStretching: 0 m_RotateWithStretchDirection: 1 m_UseCustomVertexStreams: 1 - m_VertexStreams: 00030409 + m_VertexStreams: 00010304052226 m_UseCustomTrailVertexStreams: 0 m_TrailVertexStreams: 00010304 - m_Mesh: {fileID: -4907317404281051548, guid: 9b070b1b446bd0f45b356f1bf631f2fe, type: 3} + m_Mesh: {fileID: -9132845362894151416, guid: f8e288e5376a9cd4e93754a36d204c40, type: 3} m_Mesh1: {fileID: 0} m_Mesh2: {fileID: 0} m_Mesh3: {fileID: 0} diff --git a/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_Meteor01.prefab b/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_Meteor01.prefab index cfce1e18e..f0b2ba9b0 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_Meteor01.prefab +++ b/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_Meteor01.prefab @@ -5210,7 +5210,7 @@ ParticleSystem: serializedVersion: 2 minMaxState: 0 minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 0.94375, b: 0.90999997, a: 0.36} maxGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -6362,8 +6362,8 @@ ParticleSystem: maxColor: {r: 1, g: 1, b: 1, a: 1} maxGradient: serializedVersion: 2 - key0: {r: 0.41509432, g: 0, b: 0, a: 1} - key1: {r: 0.20161195, g: 0.17319329, b: 0.26415092, a: 1} + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 1, g: 1, b: 1, a: 1} key2: {r: 0, g: 0, b: 0, a: 0} key3: {r: 0, g: 0, b: 0, a: 0} key4: {r: 0, g: 0, b: 0, a: 0} @@ -6371,7 +6371,7 @@ ParticleSystem: key6: {r: 0, g: 0, b: 0, a: 0} key7: {r: 0, g: 0, b: 0, a: 0} ctime0: 0 - ctime1: 42409 + ctime1: 65535 ctime2: 0 ctime3: 0 ctime4: 0 @@ -6379,8 +6379,8 @@ ParticleSystem: ctime6: 0 ctime7: 0 atime0: 0 - atime1: 65535 - atime2: 0 + atime1: 9830 + atime2: 65535 atime3: 0 atime4: 0 atime5: 0 @@ -6389,7 +6389,7 @@ ParticleSystem: m_Mode: 0 m_ColorSpace: -1 m_NumColorKeys: 2 - m_NumAlphaKeys: 2 + m_NumAlphaKeys: 3 minGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -6428,8 +6428,8 @@ ParticleSystem: fps: 30 frameOverTime: serializedVersion: 2 - minMaxState: 3 - scalar: 0.6859375 + minMaxState: 1 + scalar: 0.9999 minScalar: 0.65625 maxCurve: serializedVersion: 2 @@ -6533,8 +6533,8 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 speedRange: {x: 0, y: 1} - tilesX: 8 - tilesY: 8 + tilesX: 4 + tilesY: 4 animationType: 0 rowIndex: 0 cycles: 1 @@ -9253,7 +9253,7 @@ ParticleSystem: m_NumColorKeys: 2 m_NumAlphaKeys: 2 CustomDataModule: - enabled: 1 + enabled: 0 mode0: 1 vectorComponentCount0: 4 color0: @@ -9848,7 +9848,7 @@ ParticleSystemRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 940497618fb910c429d06829a874836b, type: 2} + - {fileID: 2100000, guid: 41d5ce8e9756a244dbdd4af1c8604aa2, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -9891,7 +9891,7 @@ ParticleSystemRenderer: m_FreeformStretching: 0 m_RotateWithStretchDirection: 1 m_UseCustomVertexStreams: 1 - m_VertexStreams: 00010304052226 + m_VertexStreams: 00010304 m_UseCustomTrailVertexStreams: 0 m_TrailVertexStreams: 00010304 m_Mesh: {fileID: 0} @@ -15043,7 +15043,7 @@ ParticleSystem: serializedVersion: 2 minMaxState: 0 minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 0, g: 0, b: 0, a: 1} + maxColor: {r: 1, g: 0.94375, b: 0.90999997, a: 0.36} maxGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -16261,8 +16261,8 @@ ParticleSystem: fps: 30 frameOverTime: serializedVersion: 2 - minMaxState: 0 - scalar: 0.828125 + minMaxState: 1 + scalar: 0.9999 minScalar: 0.28125 maxCurve: serializedVersion: 2 @@ -16366,8 +16366,8 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 speedRange: {x: 0, y: 1} - tilesX: 8 - tilesY: 8 + tilesX: 4 + tilesY: 4 animationType: 0 rowIndex: 0 cycles: 1 @@ -19086,7 +19086,7 @@ ParticleSystem: m_NumColorKeys: 2 m_NumAlphaKeys: 2 CustomDataModule: - enabled: 1 + enabled: 0 mode0: 1 vectorComponentCount0: 4 color0: @@ -19681,7 +19681,7 @@ ParticleSystemRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 940497618fb910c429d06829a874836b, type: 2} + - {fileID: 2100000, guid: 41d5ce8e9756a244dbdd4af1c8604aa2, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -19724,7 +19724,7 @@ ParticleSystemRenderer: m_FreeformStretching: 0 m_RotateWithStretchDirection: 1 m_UseCustomVertexStreams: 1 - m_VertexStreams: 00010304052226 + m_VertexStreams: 00010304 m_UseCustomTrailVertexStreams: 0 m_TrailVertexStreams: 00010304 m_Mesh: {fileID: 0} @@ -29932,7 +29932,7 @@ ParticleSystem: serializedVersion: 2 minMaxState: 0 minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 0.94375, b: 0.90999997, a: 0.36} maxGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -31084,8 +31084,8 @@ ParticleSystem: maxColor: {r: 1, g: 1, b: 1, a: 1} maxGradient: serializedVersion: 2 - key0: {r: 0.41509432, g: 0, b: 0, a: 1} - key1: {r: 0.1662049, g: 0.12335349, b: 0.26415092, a: 1} + key0: {r: 1, g: 1, b: 1, a: 0} + key1: {r: 1, g: 1, b: 1, a: 1} key2: {r: 0, g: 0, b: 0, a: 0} key3: {r: 0, g: 0, b: 0, a: 0} key4: {r: 0, g: 0, b: 0, a: 0} @@ -31093,7 +31093,7 @@ ParticleSystem: key6: {r: 0, g: 0, b: 0, a: 0} key7: {r: 0, g: 0, b: 0, a: 0} ctime0: 0 - ctime1: 42409 + ctime1: 65535 ctime2: 0 ctime3: 0 ctime4: 0 @@ -31101,8 +31101,8 @@ ParticleSystem: ctime6: 0 ctime7: 0 atime0: 0 - atime1: 65535 - atime2: 0 + atime1: 9830 + atime2: 65535 atime3: 0 atime4: 0 atime5: 0 @@ -31111,7 +31111,7 @@ ParticleSystem: m_Mode: 0 m_ColorSpace: -1 m_NumColorKeys: 2 - m_NumAlphaKeys: 2 + m_NumAlphaKeys: 3 minGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -31150,8 +31150,8 @@ ParticleSystem: fps: 30 frameOverTime: serializedVersion: 2 - minMaxState: 3 - scalar: 0.0453125 + minMaxState: 1 + scalar: 0.9999 minScalar: 0 maxCurve: serializedVersion: 2 @@ -31255,8 +31255,8 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 speedRange: {x: 0, y: 1} - tilesX: 8 - tilesY: 8 + tilesX: 4 + tilesY: 4 animationType: 0 rowIndex: 0 cycles: 1 @@ -33975,7 +33975,7 @@ ParticleSystem: m_NumColorKeys: 2 m_NumAlphaKeys: 2 CustomDataModule: - enabled: 1 + enabled: 0 mode0: 1 vectorComponentCount0: 4 color0: @@ -34570,7 +34570,7 @@ ParticleSystemRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: 940497618fb910c429d06829a874836b, type: 2} + - {fileID: 2100000, guid: 41d5ce8e9756a244dbdd4af1c8604aa2, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -34613,7 +34613,7 @@ ParticleSystemRenderer: m_FreeformStretching: 0 m_RotateWithStretchDirection: 1 m_UseCustomVertexStreams: 1 - m_VertexStreams: 00010304052226 + m_VertexStreams: 00010304 m_UseCustomTrailVertexStreams: 0 m_TrailVertexStreams: 00010304 m_Mesh: {fileID: 0} diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLGhostStrike.json b/Assets/WL/Combat/Weapon/Resources/WL/WLGhostStrike.json index 78b0df571..ecb0f5b5f 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLGhostStrike.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLGhostStrike.json @@ -56,6 +56,9 @@ "landTotalSeconds": 0.5, "_note_959": "#959 PD 「각성 시전 후 공중에 떨어지지 말고 옆에서 튀어나와 정지하는 것처럼」 — 시전 잔상은 위(1.0) 대신 오른쪽 1.0 m 로 빠지고(jumpSide · 위 0.15 · 앞 0.1) · 다시 보이는 순간 최종 자리의 오른쪽 1.2 m(entrySide)에서 0.2 s 동안 감속하며 미끄러져 들어와(그동안 반투명 착지 자세 캐릭터 · 수직 이동 0 = landHeight 0) 정지(앞 미끄러짐 0.45 → 0.1 m) → 모델 + 잔상 3 + 먼지", "landAtSeconds": 3.4, + "invisibleMatchFx": 1, + "invisibleExtra": 0.0, + "_note_965": "#965 PD 「비수 각성 스킬 끝나고 캐릭터 등장까지 딜레이가 너무 길어 — 이펙트 종료와 동시에 캐릭터가 등장」 — 원본 Skill_DarkAmbush 의 숨김 Set_Invisible(1.5 s)를 이 시전 이펙트 끝(폭발 Exp_01~ 시작 지연 0~1.0 s + 분출 + 수명 · 켜진 렌더러 입자계만)으로(원본 훅 1줄 · WLGhostStrike.InvisibleSeconds) · 다시 보이는 순간 = 착지 시작 · 0 이면 원본 1.5 s", "airClip": "Skill8_Air", "landGhosts": 0, "dustPrefab": "WL/Fx/WL_Fx_LandDust", diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLShadowSlash.json b/Assets/WL/Combat/Weapon/Resources/WL/WLShadowSlash.json index c924fc0ec..c15525143 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLShadowSlash.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLShadowSlash.json @@ -4,6 +4,9 @@ "freezeAnim": 0, "slashScale": 0.5, "smokeScale": 0.5, + "smokeHide": 1, + "_note_965_smoke": "#965 PD 「비수 주력스킬 사용 때 캐릭터 주위에 생기는 독 연기 이펙트는 제거해」 — 원본 go_invisibleEffect(FX_DarkSkill_SmokeExplosion · 시작 · 끝 순간이동 자리) 렌더러 끔(smokeHide 1 · WLShadowSlash.OnSet) · 0 이면 다시 보임", + "_note_965_fx": "#965 PD 「비수 주력스킬 이펙트도 기본 공격 이펙트와 같은 궤적 이펙트로(형태는 지금과 동일 · 디자인만)」 — 사본 WL_Fx_DaggerMulti 의 초승달 2층(분출 시각 0/0.3/0.6 · 0.15/0.45/0.75 · 수명 0.3 · 회전 · 눕힘 · 자리 그대로)의 메시 · 재질 · 정점 스트림 · 사용자 데이터만 기본 공격 검기(Slash_B slash_alp · M_slashB_Alp)로 · 색 = 직업 10202 궤적 색조(녹색 · WLArcTint 와 같은 셈) · 크기 = 메시 반지름 비 ×0.231 · 반짝이 = 검기 먼지 녹색(scripts/wl/probes/965_apply.cs · 백업 공유/개발팀_백업/WL/Fx965_*)", "keepHitBox": 1, "fxPrefab": "WL/Fx/WL_Fx_DaggerMulti", "fxScale": 0.85, diff --git a/Assets/WL/Combat/Weapon/WLGhostStrike.cs b/Assets/WL/Combat/Weapon/WLGhostStrike.cs index 864c16523..2ab751b2c 100644 --- a/Assets/WL/Combat/Weapon/WLGhostStrike.cs +++ b/Assets/WL/Combat/Weapon/WLGhostStrike.cs @@ -46,6 +46,8 @@ namespace WL.Combat.Weapon public string landState = ""; // 착지 애니메이터 상태 이름(비우면 착지 연출 없음) public float landHeight = 1.2f, landFallSeconds = 0.25f, slideDistance = 0.5f, slideSeconds = 0.3f, landTotalSeconds = 1f; public float landAtSeconds = 0f; // 공중 클립 종료를 못 잡았을 때 이 시각(시전 뒤 초)에 착지 시작(0 = 클립 감지만) + public int invisibleMatchFx; // #965 1 = 원본 숨김 시간(Set_Invisible)을 이 시전 이펙트가 끝나는 시각(켜진 렌더러 입자계의 시작 지연 + 마지막 분출 + 수명 최댓값)으로 + public float invisibleExtra; // #965 위 시각에 더할 초(0 = 이펙트 끝과 동시에 등장) public string airClip = ""; // 원본 스킬의 공중 클립 이름 조각(예 Skill8_Air) — 이 클립이 보였다가 다른 클립으로 바뀌는 순간 = 공격 끝 → 착지 시작 public int landGhosts = 2; // 떨어지는 동안 잔상 수 public string dustPrefab = ""; public float dustScale = 1f; @@ -196,6 +198,36 @@ namespace WL.Combat.Weapon catch (System.Exception) { return false; } } + public static string InvisibleLog = ""; + /// #965 PD 「비수 각성 스킬 끝나고 캐릭터 등장까지 딜레이가 너무 길어 — 이펙트 종료와 동시에 등장」 — 원본 Skill_DarkAmbush.Co_Update 의 Set_Invisible(1.5 s) 인자 훅(1줄): + /// 규칙 invisibleMatchFx 면 이 시전 인스턴스의 켜진 렌더러 입자계(반복 · 렌더러 꺼진 보조 입자계 제외)마다 (시작 지연 + 마지막 분출 + 수명 최댓값)의 최댓값 = 마지막 폭발이 사라지는 시각 + invisibleExtra. + /// 다시 보이는 순간 = 착지 시작(LateTick 「보이는 순간」)이라 등장도 그 시각. + public static float InvisibleSeconds(ProjectileBase skill, float orig) + { + try + { + var c = Cfg; if (skill == null || c.enabled == 0) return orig; + WLGhostStrikeRule r; if (!s_rules.TryGetValue(skill.GetType().Name, out r) || r == null || r.invisibleMatchFx == 0) return orig; + float v = 0f; + foreach (var ps in skill.GetComponentsInChildren(true)) + { + var rd = ps.GetComponent(); if (rd == null || !rd.enabled) continue; + var m = ps.main; if (m.loop) continue; + float delay = m.startDelay.mode == ParticleSystemCurveMode.Constant ? m.startDelay.constant : m.startDelay.constantMax; + float life = m.startLifetime.mode == ParticleSystemCurveMode.Constant ? m.startLifetime.constant : (m.startLifetime.mode == ParticleSystemCurveMode.TwoConstants ? m.startLifetime.constantMax : m.startLifetime.curveMultiplier); + var em = ps.emission; float last = -1f; + for (int i = 0; i < em.burstCount; i++) { var b = em.GetBurst(i); if (b.cycleCount <= 0) continue; last = Mathf.Max(last, b.time + (b.cycleCount - 1) * b.repeatInterval); } + if (em.rateOverTime.constantMax > 0f) last = Mathf.Max(last, m.duration); + if (last < 0f) continue; + v = Mathf.Max(v, delay + last + life); + } + if (v < 0.2f) { InvisibleLog = "이펙트 시간 못 셈 → 원본 " + orig; return orig; } + float sec = Mathf.Max(0.2f, v + r.invisibleExtra); + InvisibleLog = "숨김 " + orig.ToString("F2") + " → " + sec.ToString("F2") + " s(이펙트 끝 " + v.ToString("F2") + ")"; return sec; + } + catch (System.Exception) { return orig; } + } + public static void OnSet(ProjectileBase skill) { try diff --git a/Assets/WL/Combat/Weapon/WLShadowSlash.cs b/Assets/WL/Combat/Weapon/WLShadowSlash.cs index 60e4f68df..8219fd0de 100644 --- a/Assets/WL/Combat/Weapon/WLShadowSlash.cs +++ b/Assets/WL/Combat/Weapon/WLShadowSlash.cs @@ -29,6 +29,7 @@ namespace WL.Combat.Weapon public int freezeAnim = 0; // 1 = 원본처럼 애니메이터 배속 0 유지(보이면 2.1 초 정지 자세) · 0 = 원본 상태 사슬 재생 public float slashScale = 1f; // 베기(go_effect) 보이는 크기 배율 public float smokeScale = 1f; // 연기(go_invisibleEffect) 크기 배율 + public int smokeHide; // #965 PD 「비수 주력스킬 사용 때 캐릭터 주위에 생기는 독 연기 이펙트는 제거」 — 1 = 연기(시작 · 끝 순간이동 자리) 렌더러를 끈다(풀 인스턴스라 매 시전 값대로 맞춤) public int keepHitBox = 1; // 1 = 베기 판정 상자 월드 크기 유지(보이는 크기만 바꿈) // #954 PD 「비수 주력 = Slash Effects FREE 의 녹색 난사(Multiple Slash 2)로」 — 원본 베기 렌더러를 끄고(판정 상자 그대로) WL 사본을 같은 자리·시각에 띄운다 public string fxPrefab = ""; // Resources 경로(비우면 원본 베기 그대로) @@ -117,7 +118,11 @@ namespace WL.Combat.Weapon if (c.freezeAnim == 0 && shooter.m_animation != null) shooter.m_animation.speed = 1f; } if (skill.go_effect != null) Scale(skill.go_effect.transform, c.slashScale, c.keepHitBox != 0); - if (skill.go_invisibleEffect != null) Scale(skill.go_invisibleEffect.transform, c.smokeScale, false); + if (skill.go_invisibleEffect != null) + { + Scale(skill.go_invisibleEffect.transform, c.smokeScale, false); + foreach (var rd in skill.go_invisibleEffect.GetComponentsInChildren(true)) rd.enabled = c.smokeHide == 0; // #965 독 연기 끄기(원본이 끝에 다시 켜도 렌더러는 꺼진 채) + } int seq = ++s_castSeq; s_liveFx.Clear(); s_castShooter = shooter; // #961 이번 시전 번호(구르기 캔슬 때 반복 · 잔상을 멈추는 표지) if (!string.IsNullOrEmpty(c.fxPrefab) && !DSUtil.CheckNull(shooter)) // #954 { diff --git a/Assets/WL/Settings/Resources/WL/WLCombatMotionSettings.asset b/Assets/WL/Settings/Resources/WL/WLCombatMotionSettings.asset index 3595e8779..0abb380aa 100644 --- a/Assets/WL/Settings/Resources/WL/WLCombatMotionSettings.asset +++ b/Assets/WL/Settings/Resources/WL/WLCombatMotionSettings.asset @@ -217,7 +217,7 @@ MonoBehaviour: - 1 - 0.4 passThrough: 0 - - clipContains: Attack4_S_102 + - clipContains: Attack4_S_10201 frames: 0100000005000000060000000700000008000000090000000a0000000b0000002000000021000000 cm: - 1.5