From fc6afb99a44580e2fb03f4532aafab2365a723f3 Mon Sep 17 00:00:00 2001 From: swrring Date: Sun, 25 Oct 2026 01:59:40 +0900 Subject: [PATCH] =?UTF-8?q?WL=20#980c=20=EB=B9=84=EC=88=98=20=EC=88=98?= =?UTF-8?q?=EB=A6=AC=EA=B2=80=20=EC=8A=A4=ED=81=AC=EB=A6=B0=EC=83=B7=20?= =?UTF-8?q?=EB=8A=90=EB=82=8C=20=E2=80=94=20faceTilt=20=EC=8B=A0=EC=84=A4(?= =?UTF-8?q?=EC=B9=B4=EB=A9=94=EB=9D=BC=20=EC=A0=95=EB=A9=B4=EC=97=90?= =?UTF-8?q?=EC=84=9C=2070=C2=B0=20=EB=88=95=ED=9E=98=20=C2=B7=20=EC=88=98?= =?UTF-8?q?=EB=A6=AC=EA=B2=80=EB=A7=88=EB=8B=A4=20=EC=9E=90=EA=B8=B0=20?= =?UTF-8?q?=EC=9E=90=EB=A6=AC=20=E2=86=92=20=EC=B9=B4=EB=A9=94=EB=9D=BC=20?= =?UTF-8?q?=EB=B0=A9=ED=96=A5=20=EA=B8=B0=EC=A4=80=20=3D=20=EC=9B=90?= =?UTF-8?q?=EA=B7=BC=20=EB=B3=B4=EC=A0=95)=20=C2=B7=20=ED=9D=B0=20?= =?UTF-8?q?=EB=82=A0=EA=B0=9C=20=3D=20=EA=BC=AC=EB=A6=AC=20=EC=9E=AC?= =?UTF-8?q?=EC=A7=88=20WL=20=EC=82=AC=EB=B3=B8=20WL=5FShurikenTrail=5FBrig?= =?UTF-8?q?ht(=5FAddIntensity=20=E2=88=920.8=20=E2=86=92=200.3=20=C2=B7=20?= =?UTF-8?q?=EC=9B=90=EB=B3=B8=20=EB=AC=B4=EC=88=98=EC=A0=95)=20=C2=B7=20?= =?UTF-8?q?=EC=97=B0=EB=91=90=20=EA=B3=A0=EB=A6=AC=20(0.7,1,0.25,0.85)=201?= =?UTF-8?q?.9=20=EB=B0=B0=20=C2=B7=20=ED=81=AC=EA=B8=B0=200.4=20=EB=B0=B0?= =?UTF-8?q?=20=E2=80=94=20=EC=8B=A4=EC=B8=A1=20=EB=A9=B4-=EC=B9=B4?= =?UTF-8?q?=EB=A9=94=EB=9D=BC=20=EA=B0=81=2069.9~70.0=C2=B0=20=C2=B7=20?= =?UTF-8?q?=EB=82=98=EC=84=A0=20=EA=B1=B0=EB=A6=AC=200.77=20=E2=86=92=203.?= =?UTF-8?q?97=20m=20=C2=B7=20=EC=BD=98=EC=86=94=20=EC=98=A4=EB=A5=98=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../Materials/WL_ShurikenTrail_Bright.mat | 220 ++++++++++++++++++ .../WL_ShurikenTrail_Bright.mat.meta | 8 + .../WL/Fx/WL_Fx_DaggerShurikenMSP.prefab | 186 +++++++-------- .../Weapon/Resources/WL/WLShurikenRider.json | 6 +- Assets/WL/Combat/Weapon/WLShurikenRider.cs | 16 +- 5 files changed, 335 insertions(+), 101 deletions(-) create mode 100644 Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat create mode 100644 Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat.meta diff --git a/Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat b/Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat new file mode 100644 index 000000000..9fc13c559 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat @@ -0,0 +1,220 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7023167649920730042 +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: + version: 10 +--- !u!114 &-5708060556190444575 +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: 639247ca83abc874e893eb93af2b5e44, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 0 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: WL_ShurikenTrail_Bright + m_Shader: {fileID: -6465566751694194690, guid: b85d6def27a1d1041b93e3045d7d6c0f, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _DEPTHFADE + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: + - _EMISSION + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseTexture: + m_Texture: {fileID: 2800000, guid: aaa0d6e4cfc05804ab9f5a353a4fc1c6, 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: aaa0d6e4cfc05804ab9f5a353a4fc1c6, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskTexture2: + 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} + - _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} + - _RampTexture: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddIntensity: 0.3 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _BUILTIN_AlphaClip: 0 + - _BUILTIN_Blend: 0 + - _BUILTIN_CullMode: 0 + - _BUILTIN_DstBlend: 10 + - _BUILTIN_QueueControl: -1 + - _BUILTIN_QueueOffset: 0 + - _BUILTIN_SrcBlend: 1 + - _BUILTIN_Surface: 1 + - _BUILTIN_ZTest: 4 + - _BUILTIN_ZWrite: 0 + - _BUILTIN_ZWriteControl: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _CastShadows: 0 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _DEPTHFADE: 1 + - _DepthFadeDistance: 100 + - _DepthFadeMax: 0.2 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _EDGEFADE: 0 + - _EdgeFadeMax: 0.6 + - _EdgeFadeMin: 1 + - _EmissionEnabled: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _LUT: 0 + - _LightingEnabled: 0 + - _MaskFeather: 0.2 + - _MaskFeather2: 0.2 + - _MaskIntensity: 0 + - _MaskIntensity2: 0 + - _MaskRepeat: 0 + - _MaskRepeat2: 0 + - _Metallic: 0 + - _Mode: 2 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _RemapDark: 0 + - _RemapWhite: 1 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _USEMASK: 0 + - _USEMASK2: 0 + - _UVSec: 0 + - _WARP: 0 + - _WarpIntensity: 0 + - _WarpScale: 1 + - _XRMotionVectorsPass: 1 + - _ZTest: 4 + - _ZWrite: 0 + - _ZWriteControl: 0 + m_Colors: + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 0.7607843} + - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _InitOffset: {r: 0, g: 0, b: 0, a: 0} + - _MaskOffset: {r: 0, g: 0, b: 0, a: 0} + - _MaskOffset2: {r: 0, g: 0, b: 0, a: 0} + - _MaskScroll: {r: 0, g: 0, b: 0, a: 0} + - _MaskScroll2: {r: 0, g: 0, b: 0, a: 0} + - _MaskTiling: {r: 1, g: 1, b: 0, a: 0} + - _MaskTiling2: {r: 1, g: 1, b: 0, a: 0} + - _Offset: {r: 0, g: 0, b: 0, a: 0} + - _ScrollSpeed: {r: 0, g: 0, b: 0, a: 0} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _Tiling: {r: 1, g: 1, b: 0, a: 0} + - _WarpScroll: {r: 0, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat.meta b/Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat.meta new file mode 100644 index 000000000..8c95bf621 --- /dev/null +++ b/Assets/WL/Combat/Weapon/Materials/WL_ShurikenTrail_Bright.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fadc8054b098b40409b1464d41a3ac90 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerShurikenMSP.prefab b/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerShurikenMSP.prefab index 017072d4f..9d5a48603 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerShurikenMSP.prefab +++ b/Assets/WL/Combat/Weapon/Resources/WL/Fx/WL_Fx_DaggerShurikenMSP.prefab @@ -1,5 +1,37 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &59132457903157103 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 680733866467285179} + m_Layer: 0 + m_Name: GreenSwirl + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &680733866467285179 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 59132457903157103} + serializedVersion: 2 + m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.9, y: 1.9, z: 1.9} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7210903556170203949} + m_Father: {fileID: 3164786921903872425} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1145359976747068581 GameObject: m_ObjectHideFlags: 0 @@ -33,9 +65,9 @@ Transform: m_Children: - {fileID: 5673069742829479196} - {fileID: 7814736288666797739} - - {fileID: 6404227499573586804} - {fileID: 3061664574960189424} - {fileID: 7888187617241362191} + - {fileID: 680733866467285179} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!198 &3113299348077050052 @@ -9765,7 +9797,7 @@ ParticleSystemRenderer: m_MeshWeighting1: 1 m_MeshWeighting2: 1 m_MeshWeighting3: 1 ---- !u!1 &1694859895540210189 +--- !u!1 &5909738697710814137 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -9773,9 +9805,56 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4221723821079497695} - - component: {fileID: 3087031429084384095} - - component: {fileID: 1371793106596501058} + - component: {fileID: 7814736288666797739} + - component: {fileID: 6736253737350633480} + m_Layer: 0 + m_Name: Shuriken + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7814736288666797739 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5909738697710814137} + serializedVersion: 2 + m_LocalRotation: {x: -1, y: 0, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.6, y: 0.02, z: 0.6} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6804394497677922654} + - {fileID: 3972815263606037215} + m_Father: {fileID: 3164786921903872425} + m_LocalEulerAnglesHint: {x: -180, y: 0, z: 0} +--- !u!114 &6736253737350633480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5909738697710814137} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7fefc0e474fe2a1438717d0d8a932858, type: 3} + m_Name: + m_EditorClassIdentifier: + RotateAngle: {x: 0, y: -720, z: 0} +--- !u!1 &6429858703304037939 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7210903556170203949} + - component: {fileID: 5551514161931989675} + - component: {fileID: 7336751549758402069} m_Layer: 0 m_Name: 'Ring ' m_TagString: Untagged @@ -9783,28 +9862,28 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &4221723821079497695 +--- !u!4 &7210903556170203949 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1694859895540210189} + m_GameObject: {fileID: 6429858703304037939} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0.078} m_LocalScale: {x: 1.4, y: 1.4, z: 1.4} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 6404227499573586804} + m_Father: {fileID: 680733866467285179} m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} ---- !u!198 &3087031429084384095 +--- !u!198 &5551514161931989675 ParticleSystem: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1694859895540210189} + m_GameObject: {fileID: 6429858703304037939} serializedVersion: 8 lengthInSec: 0.4 simulationSpeed: 1 @@ -9988,7 +10067,7 @@ ParticleSystem: serializedVersion: 2 minMaxState: 0 minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 0.55, g: 1, b: 0.15, a: 0.6} + maxColor: {r: 0.7, g: 1, b: 0.25, a: 0.85} maxGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -14588,14 +14667,14 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 vectorLabel1_3: W ---- !u!199 &1371793106596501058 +--- !u!199 &7336751549758402069 ParticleSystemRenderer: serializedVersion: 7 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1694859895540210189} + m_GameObject: {fileID: 6429858703304037939} m_Enabled: 1 m_CastShadows: 0 m_ReceiveShadows: 0 @@ -14668,85 +14747,6 @@ ParticleSystemRenderer: m_MeshWeighting1: 1 m_MeshWeighting2: 1 m_MeshWeighting3: 1 ---- !u!1 &3012163254460132286 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6404227499573586804} - m_Layer: 0 - m_Name: GreenSwirl - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6404227499573586804 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3012163254460132286} - serializedVersion: 2 - m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1.6, y: 1.6, z: 1.6} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4221723821079497695} - m_Father: {fileID: 3164786921903872425} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &5909738697710814137 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7814736288666797739} - - component: {fileID: 6736253737350633480} - m_Layer: 0 - m_Name: Shuriken - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7814736288666797739 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5909738697710814137} - serializedVersion: 2 - m_LocalRotation: {x: -1, y: 0, z: 0, w: 0} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.6, y: 0.02, z: 0.6} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6804394497677922654} - - {fileID: 3972815263606037215} - m_Father: {fileID: 3164786921903872425} - m_LocalEulerAnglesHint: {x: -180, y: 0, z: 0} ---- !u!114 &6736253737350633480 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5909738697710814137} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 7fefc0e474fe2a1438717d0d8a932858, type: 3} - m_Name: - m_EditorClassIdentifier: - RotateAngle: {x: 0, y: -720, z: 0} --- !u!1 &7201908629682279775 GameObject: m_ObjectHideFlags: 0 @@ -24663,7 +24663,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: fa761847d4e6f2942a331fe2da073629, type: 2} + - {fileID: 2100000, guid: fadc8054b098b40409b1464d41a3ac90, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 diff --git a/Assets/WL/Combat/Weapon/Resources/WL/WLShurikenRider.json b/Assets/WL/Combat/Weapon/Resources/WL/WLShurikenRider.json index 74d4c1feb..3019185dd 100644 --- a/Assets/WL/Combat/Weapon/Resources/WL/WLShurikenRider.json +++ b/Assets/WL/Combat/Weapon/Resources/WL/WLShurikenRider.json @@ -10,7 +10,7 @@ "prefab": "WL/Fx/WL_Fx_DaggerShurikenMSP", "every": 8, "maxRiders": 12, - "riderScale": 0.3, + "riderScale": 0.4, "rimFraction": 1.0, "maxSeconds": 2.5, "hidePath": 1, @@ -30,10 +30,12 @@ "spiralFadeIn": 0.08, "spiralFadeOut": 0.2, "faceCamera": 1, + "faceTilt": 70.0, "note_980": "#980 PD 「지금 수리검은 어색하게 움직이다가 사라지는데 회전하는 수리검이 플레이어 주위를 나선형으로 휘몰아치며 퍼져나는 연출로 구성되길 바래」 + 「수리검의 이펙트 방향은 카메라 시점을 기준으로 가장 자연스럽게 보이도록 구성해줘」 — mode spiral(경로 입자 무관 · 시전자 둘레 10개 = 반대편 팔 2개 × 5 · 팔마다 0.07 s 차례(1팔 8개는 한쪽에 줄줄이 몰려 뱀처럼 보여 = Play 캡처) · 1.0 s 동안 540°/s 공전 · 반지름 0.6 → 4.0 m ease-out · 높이 0.8 → 1.0 m · 처음 0.08 s · 끝 0.2 s 크기 페이드) · faceCamera 1(수리검 면이 카메라를 봄 · 제 축 회전) · 크기 0.3 배 · 녹색 고리 수명 색 = 흰 → 연두 → 녹색(분홍 단계 없음 · 스크린샷 녹색 · 연두)(PM 값)", "note_979": "#979 PD 「비수 이펙트는 내가 요청한 이펙트가 아닌 것으로 확인되었어. \"Master Stylized Projectile\" 에셋의 수리검 형태의 이펙트를 요청했는데 엉뚱한 이펙트로 보여. 다시 수정하고, 지면에 남는 검은색 흔적은 보이지 않게 해줘 (공중을 부양하는 수리검 컨셉이야)」 + 「Master Stylized Projectile 에셋 방금 받아서 임포트 해두었어. 내가 지시한 수리검을 다시 체크해봐」 — 수리검 = Assets/MasterStylizedProjectiles/Projectiles/Shurikens/Prefabs/ShurikenBullet 사본 WL_Fx_DaggerShurikenMSP(검은 풍차형 수리검 · 흰 테두리 · 꼬리 메시 · 흰 반짝임 · AutoRotate 회전 · 979_fx.cs Copy2 · 팩이 재생하는 층 전부 재생 — PD 「해당 수리검의 이펙트는 끄지 말고 재생시켜 (내가 끄라고 한것은 궤적 이펙트를 말한거야.)」 · 루트 입자 층은 팩 원본에서 방출이 꺼진 템플릿 층(재질이 팩에 없음 · 켜면 흰 사각형)이라 원본대로 둠 · 빠진 재질 자리만 TemplateBulletHead) · 크기 0.25 배(PM 값) · 공중 부양 = 시전자 발 위 최소 0.6 m(minHeight · PM 값) · 지면 흔적 = Skill_BrutalSlash 의 Crater · Slash Cracks · Flying 렌더러 끔(프리팹 덮어쓰기)", "note_978": "#978 PD 「비수 기본 스킬에 요청한 이펙트가 전혀 보이지 않아. (내가 요청한 이펙트를 확인할 수 있도록 궤적 처럼 보이는 이펙트를 잠시 숨겨줘)」 — 경로 호(Multiple Slashes) 그리기만 끔(hidePath 1 · 입자는 돌아 수리검이 따라감 · 되살리기 = 0) · 수리검 0.3 → 0.6 배(PM 값)", "note": "#977 PD 「비수의 기본 스킬 시전 시 Master Stylized Projectile 에셋의 첨부 된 스크린샷과 같은 수리검을 경로 이펙트에 다수 보이게 연출해줘. (이때 이펙트 궤적의 색상을 기본 공격처럼 녹색 계열로 바꾸고, 투명도를 조금 부여해서 자연스럽게 구성해줘)」 — 수리검 = MasterStylizedFX Projectiles/GreenProjectile 사본(녹색 초승달 소용돌이 + 흰 별 = 스크린샷 · 진행 방향으로 돌림 · 처음 만든 ShurikensHit 층 사본은 녹색 베기 띠가 사각으로 보여 바꿈) · 경로 = 무자비한 일격 Multiple Slashes 호(시작색 (0.17,1.00,0.23) 투명도 0.75 · 기본 공격 녹색) · 호 입자 8개 중 1개에 수리검(최대 12) · 호 가장자리에 붙어 호와 함께 돈다 · 크기 0.3(PM 값)", "note_979b": "#979 PD 「그럼 왜 수리검이 회전할 때 보이는 녹색 이펙트가 보이지 않는거지?」(데모 스크린샷) — 녹색 = 팩 데모 묶음(BulletDatas Shuriken)의 발사 이펙트 ShurikensMuzzle 의 Ring 층(녹색 → 노랑 → 분홍 고리 · 데모에선 발사 순간 0.4 s) · 비행 이펙트(ShurikenBullet)엔 녹색 없음(꼬리 메시 = 흰 텍스처 × 어둡게) → WL 사본 자식 GreenSwirl 로 Ring 만 붙여 수리검 면과 같은 수평(−90°) · 1.6 배 · 0.4 s 반복(979_fx.cs AddLayers · MuzzleEdge 는 눕히면 아래 녹색 가시라 제외)", - "note_980b": "#980 PD 「수리검에만 가짜 빛 번짐을 더해줘」 — 데모 씬 Bloom 대신 수리검 사본에 가산 후광 2장(FakeGlow 크기 4.2 · (1,1,0.9,1) / FakeGlowOuter 6.5 · (0.5,1,0.25,1) · 카메라 기준 수리검 뒤 −0.15 · −0.2 · 입자 1개 계속 · 재질 = 원본 블랙홀 glow 층(Eric glow_19) 렌더러째 복사 = 979_fx.cs AddGlowFrom — 팩 UberParticles · Eric 셰이더는 사용자 정점 스트림이 있어야 보여 새 입자에 재질만 꽂으면 안 보임)(PM 값)" + "note_980b": "#980 PD 「수리검에만 가짜 빛 번짐을 더해줘」 — 데모 씬 Bloom 대신 수리검 사본에 가산 후광 2장(FakeGlow 크기 4.2 · (1,1,0.9,1) / FakeGlowOuter 6.5 · (0.5,1,0.25,1) · 카메라 기준 수리검 뒤 −0.15 · −0.2 · 입자 1개 계속 · 재질 = 원본 블랙홀 glow 층(Eric glow_19) 렌더러째 복사 = 979_fx.cs AddGlowFrom — 팩 UberParticles · Eric 셰이더는 사용자 정점 스트림이 있어야 보여 새 입자에 재질만 꽂으면 안 보임)(PM 값)", + "note_980c": "#980 PD 「수리검 이펙트가 스크린샷과 같은 느낌이 나도록 하려면 어떻게 해야하지?」 — 스크린샷 = 같은 수리검 + 발사 고리를 눈높이 옆(데모 카메라 0°)에서 Bloom 3 으로 본 장면 → 게임 카메라에서 같은 모양: faceTilt 70°(정면에서 눕혀 납작한 원판 + 초승달) · 흰 날개 = 꼬리 재질 WL 사본 WL_ShurikenTrail_Bright(_AddIntensity −0.8 → 0.3 · 원본 무수정) · 연두 고리 시작색 (0.7,1,0.25,0.85) · 1.9 배 · 크기 0.4 배 · 빛 번짐 = 가산 후광 2장(PM 값 · 정면으로 되돌리기 = faceTilt 0)" } diff --git a/Assets/WL/Combat/Weapon/WLShurikenRider.cs b/Assets/WL/Combat/Weapon/WLShurikenRider.cs index 9f80017a6..fe9f3942b 100644 --- a/Assets/WL/Combat/Weapon/WLShurikenRider.cs +++ b/Assets/WL/Combat/Weapon/WLShurikenRider.cs @@ -41,6 +41,7 @@ namespace WL.Combat.Weapon public float spiralStagger = 0.05f, spiralEase = 2f; // 다음 수리검까지(s) · 반지름 ease-out 지수 public float spiralFadeIn = 0.08f, spiralFadeOut = 0.2f; // 처음 · 끝에 크기 0 ↔ 1(s) public int faceCamera = 0; // #980 PD 「수리검 이펙트 방향은 카메라 시점 기준 가장 자연스럽게」 — 1 = 수리검 면이 카메라를 봄(제 축으로 회전) + public float faceTilt = 0f; // #980 PD 「스크린샷과 같은 느낌」 — 카메라 정면에서 카메라 오른쪽 축으로 눕히는 각(°) · 70 ≈ 데모처럼 옆에서 본 납작한 원판 + 초승달 public string note = ""; } @@ -121,7 +122,7 @@ namespace WL.Combat.Weapon if (_c.minHeight > 0f) pos.y = Mathf.Max(pos.y, _ground + _c.minHeight); // 공중 부양 WLShurikenRider.MinY = Mathf.Min(WLShurikenRider.MinY, pos.y - _ground); WLShurikenRider.MaxY = Mathf.Max(WLShurikenRider.MaxY, pos.y - _ground); var mv = pos - g.transform.position; // 투사체 이펙트라 진행 방향(앞 = +Z)으로 돌린다 — 꼬리가 지나온 쪽 - if (_c.faceCamera != 0) g.transform.rotation = Face(); else if (!fresh && mv.sqrMagnitude > 1e-6f) g.transform.rotation = Quaternion.LookRotation(mv); + if (_c.faceCamera != 0) g.transform.rotation = Face(_c.faceTilt, pos); else if (!fresh && mv.sqrMagnitude > 1e-6f) g.transform.rotation = Quaternion.LookRotation(mv); g.transform.position = pos; shown++; } @@ -136,7 +137,7 @@ namespace WL.Combat.Weapon void Spiral() { float t = Time.time - _t0; int n = Mathf.Min(_c.spiralCount, _riders.Count); bool pending = false; int shown = 0; - var c0 = _center != null ? _center.position : transform.position; c0.y = _ground; var rot = _c.faceCamera != 0 ? Face() : Quaternion.identity; + var c0 = _center != null ? _center.position : transform.position; c0.y = _ground; var useFace = _c.faceCamera != 0; for (int i = 0; i < n; i++) { int arms = Mathf.Max(1, _c.spiralArms), arm = i % arms, idx = i / arms; @@ -150,7 +151,7 @@ namespace WL.Combat.Weapon var pos = c0 + dir * r + Vector3.up * (_c.spiralHeight + _c.spiralRise * e); float k = Mathf.Min(1f, ti / Mathf.Max(0.01f, _c.spiralFadeIn)) * Mathf.Clamp01((_c.spiralSeconds - ti) / Mathf.Max(0.01f, _c.spiralFadeOut)); g.transform.position = pos; g.transform.localScale = Vector3.one * (_c.riderScale * k); - g.transform.rotation = _c.faceCamera != 0 ? rot : Quaternion.LookRotation(Vector3.Cross(Vector3.up, dir) * _c.spiralDir); // 카메라를 보거나 · 공전 진행 방향 + g.transform.rotation = useFace ? Face(_c.faceTilt, pos) : Quaternion.LookRotation(Vector3.Cross(Vector3.up, dir) * _c.spiralDir); // 카메라를 보거나 · 공전 진행 방향 WLShurikenRider.MinY = Mathf.Min(WLShurikenRider.MinY, pos.y - _ground); WLShurikenRider.MaxY = Mathf.Max(WLShurikenRider.MaxY, pos.y - _ground); shown++; } @@ -158,11 +159,14 @@ namespace WL.Combat.Weapon if (!pending) Stop(); } - // 수리검 면(사본 루트 +Y)을 카메라 쪽으로 · 앞(+Z) = 카메라 위쪽 — 위에서 내려다보는 카메라에서 납작한 원판이 정면으로 보이고 제 축(AutoRotate)으로 돈다 - static Quaternion Face() + // 수리검 면(사본 루트 +Y)을 카메라 쪽으로 · 앞(+Z) = 카메라 위쪽 — 위에서 내려다보는 카메라에서 납작한 원판이 정면으로 보이고 제 축(AutoRotate)으로 돈다 · tilt° 만큼 카메라 오른쪽 축으로 눕힘 + static Quaternion Face(float tilt, Vector3 pos) { var cam = Camera.main; if (cam == null) return Quaternion.identity; - return Quaternion.LookRotation(cam.transform.up, -cam.transform.forward); + var to = cam.transform.position - pos; if (to.sqrMagnitude < 1e-6f) to = -cam.transform.forward; to.Normalize(); // 원근 — 자기 자리에서 카메라 쪽(화면 가장자리 수리검도 같은 각도로 보이게) + var fwd = Vector3.ProjectOnPlane(cam.transform.up, to); if (fwd.sqrMagnitude < 1e-6f) fwd = Vector3.ProjectOnPlane(Vector3.forward, to); + var face = Quaternion.LookRotation(fwd.normalized, to); + return Quaternion.AngleAxis(tilt, face * Vector3.right) * face; } int FreeSlot() { for (int i = 0; i < _riders.Count; i++) if (!_bySeed.ContainsValue(i)) return i; return -1; }