summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat77
-rw-r--r--Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat.meta8
-rw-r--r--Assets/Bundle/Scenes/Demo/AnimationEditScene.unity4
-rw-r--r--Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_glitch.shader26
-rw-r--r--Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_motionBlur.shader4
-rw-r--r--Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Dash.asset36
-rw-r--r--Assets/Scripts/Managers/ResourceManager_Materials.cs2
-rw-r--r--Assets/Scripts/Unit/Components/UnitImageEffect.cs41
-rw-r--r--Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs3
-rw-r--r--Assets/Scripts/Unit/UnitDetail.cs1
-rw-r--r--Assets/Scripts/Utils/ListPool.cs2
-rw-r--r--Assets/ThirdParty/VRM/VRMShaders/MToon/MToon/Resources/Shaders/MToon.shader2
12 files changed, 179 insertions, 27 deletions
diff --git a/Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat b/Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat
new file mode 100644
index 00000000..e999362f
--- /dev/null
+++ b/Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat
@@ -0,0 +1,77 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 6
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: unit_img_glitch
+ m_Shader: {fileID: 4800000, guid: f1567ae3bc1c0964cb12b2cf79240e61, type: 3}
+ m_ShaderKeywords:
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ 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}
+ - _MainTex:
+ m_Texture: {fileID: 8600000, guid: 183fd8602e9304d46ae2ce82856d08c7, type: 2}
+ 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_Floats:
+ - _BumpScale: 1
+ - _Cutoff: 0.5
+ - _DetailNormalMapScale: 1
+ - _DstBlend: 0
+ - _GlossMapScale: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _UVSec: 0
+ - _ZWrite: 1
+ m_Colors:
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
+ - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
diff --git a/Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat.meta b/Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat.meta
new file mode 100644
index 00000000..f675e8e4
--- /dev/null
+++ b/Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e25e334493e9fd34585cd75b58ad2cc4
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity b/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity
index 11eec290..bce02def 100644
--- a/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity
+++ b/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity
@@ -62425,7 +62425,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 687023027}
- m_Enabled: 1
+ m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3}
m_Name:
@@ -62433,7 +62433,7 @@ MonoBehaviour:
volumeTrigger: {fileID: 687023028}
volumeLayer:
serializedVersion: 2
- m_Bits: 512
+ m_Bits: 768
stopNaNPropagation: 1
finalBlitToCameraTarget: 0
antialiasingMode: 0
diff --git a/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_glitch.shader b/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_glitch.shader
index 2e2c9fa2..62f75459 100644
--- a/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_glitch.shader
+++ b/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_glitch.shader
@@ -1,4 +1,4 @@
-Shader "Unlit/unit_effect_glitch"
+Shader "Erika/Unit/ImageEffect/unit_img_glitch"
{
Properties
{
@@ -6,16 +6,19 @@
}
SubShader
{
- Tags { "RenderType"="Opaque" }
- LOD 100
+ Tags { "RenderType" = "Opaque" "Queue" = "Transparent-1"}
+ LOD 100
+
+ ZWrite Off
+ ZTest LEqual
+
+ Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
- // make fog work
- #pragma multi_compile_fog
#include "UnityCG.cginc"
@@ -28,7 +31,6 @@
struct v2f
{
float2 uv : TEXCOORD0;
- UNITY_FOG_COORDS(1)
float4 vertex : SV_POSITION;
};
@@ -40,17 +42,19 @@
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
- UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
+ float amount = 0.01;
// sample the texture
- fixed4 col = tex2D(_MainTex, i.uv);
- // apply fog
- UNITY_APPLY_FOG(i.fogCoord, col);
- return col;
+ fixed4 col = tex2D(_MainTex, i.uv + fixed2(0, 0));
+ fixed4 col2 = tex2D(_MainTex, i.uv + fixed2(amount, 0));
+ fixed4 col3 = tex2D(_MainTex, i.uv + fixed2(-amount, 0));
+ fixed4 col4 = tex2D(_MainTex, i.uv + fixed2(0, 0));
+ fixed4 color = fixed4(col.r, col2.g, col3.b, col4.a);
+ return color;
}
ENDCG
}
diff --git a/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_motionBlur.shader b/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_motionBlur.shader
index e3308547..c5cfcf26 100644
--- a/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_motionBlur.shader
+++ b/Assets/Bundle/Shaders/Unit/ImageEffect/unit_img_motionBlur.shader
@@ -11,7 +11,7 @@ Shader "Erika/Unit/ImageEffect/unit_img_motionBlur"
}
SubShader
{
- Tags { "RenderType"="Opaque" "Queue" = "Geometry"}
+ Tags { "RenderType"="Opaque" "Queue" = "Transparent-1"}
LOD 100
ZWrite Off
@@ -63,7 +63,7 @@ Shader "Erika/Unit/ImageEffect/unit_img_motionBlur"
{
fixed2 uv = i.uv;
fixed2 offset = fixed2(0.05, 0.05);
- const float sampleCount = 20;
+ const float sampleCount = 30;
fixed4 color = fixed4(0,0,0,0);
float radian = radians(_Angle);
float distance = _Distance;
diff --git a/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Dash.asset b/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Dash.asset
index fca27ca9..4e3ed5f6 100644
--- a/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Dash.asset
+++ b/Assets/Bundle/Unit/PC/Erika/AnimationData/Air_Dash.asset
@@ -19,8 +19,8 @@ MonoBehaviour:
- {fileID: 0}
- {fileID: 0}
- {fileID: 114895186165284124}
- - {fileID: 114829983908477250}
- - {fileID: 114461861979665892}
+ - {fileID: 114100994216008508}
+ - {fileID: 114514857844340108}
hurtBoxes:
- collider:
type: 0
@@ -167,6 +167,20 @@ MonoBehaviour:
properties:
m_keys:
m_values: []
+--- !u!114 &114100994216008508
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: a4957372b8a4fd946b86016c20f83750, type: 3}
+ m_Name: EventMesh_VisibilityInMainCamera
+ m_EditorClassIdentifier:
+ startFrame: 5
+ isVisible: 0
--- !u!114 &114163276615738028
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -243,6 +257,20 @@ MonoBehaviour:
m_EditorClassIdentifier:
startFrame: 21
isVisible: 1
+--- !u!114 &114514857844340108
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: a4957372b8a4fd946b86016c20f83750, type: 3}
+ m_Name: EventMesh_VisibilityInMainCamera
+ m_EditorClassIdentifier:
+ startFrame: 20
+ isVisible: 1
--- !u!114 &114677701672343994
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -300,6 +328,6 @@ MonoBehaviour:
m_Name: EventMesh_ImageEffect_MotionBlur
m_EditorClassIdentifier:
startFrame: 4
- lifeTime: 0.1
+ lifeTime: 0.2
angle: 10
- distance: 0.4
+ distance: 0.3
diff --git a/Assets/Scripts/Managers/ResourceManager_Materials.cs b/Assets/Scripts/Managers/ResourceManager_Materials.cs
index 410fb844..39b90606 100644
--- a/Assets/Scripts/Managers/ResourceManager_Materials.cs
+++ b/Assets/Scripts/Managers/ResourceManager_Materials.cs
@@ -8,10 +8,12 @@ public partial class ResourceManager : Singleton<ResourceManager>
{
MotionBlur,
Glitch,
+ ColorDrift,
}
public readonly Dictionary<EImageEffectMaterails, string/*path*/> imageEffectMaterails = new Dictionary<EImageEffectMaterails, string>() {
{ EImageEffectMaterails.MotionBlur, "Assets/Bundle/Materials/Unit/ImageEffect/unit_img_motionBlur.mat"},
+ { EImageEffectMaterails.Glitch, "Assets/Bundle/Materials/Unit/ImageEffect/unit_img_glitch.mat"},
};
} \ No newline at end of file
diff --git a/Assets/Scripts/Unit/Components/UnitImageEffect.cs b/Assets/Scripts/Unit/Components/UnitImageEffect.cs
index 999740f3..a2689ca1 100644
--- a/Assets/Scripts/Unit/Components/UnitImageEffect.cs
+++ b/Assets/Scripts/Unit/Components/UnitImageEffect.cs
@@ -31,10 +31,13 @@ public class UnitImageEffectHandle
public class UnitImageEffect : UnitComponent
{
public List<UnitImageEffectHandle> effects = new List<UnitImageEffectHandle>();
- public static GameObject effectPlane;
+
+ public static GameObject effectPlane;
private Dictionary<float/*size*/, List<UnitImageEffectHolder>/*pool*/> m_HolderPool = new Dictionary<float, List<UnitImageEffectHolder>>();
+ private ObjectPool<UnitImageEffectHandle> m_HandlePool = new ObjectPool<UnitImageEffectHandle>(null, null);
+
public override void OnUpdate()
{
base.OnUpdate();
@@ -55,6 +58,7 @@ public class UnitImageEffect : UnitComponent
temp[j].holder.gameObject.SetActive(false);
ReleaseHolder(ref temp[j].holder);
effects.Remove(temp[j]);
+ m_HandlePool.Release(temp[j]);
}
ListPool<UnitImageEffectHandle>.Release(temp);
}
@@ -123,7 +127,8 @@ public class UnitImageEffect : UnitComponent
public void ShowMotionBlur(float lifeTime, float angle, float distance)
{
- UnitImageEffectHandle handle = new UnitImageEffectHandle();
+ UnitImageEffectHandle handle = m_HandlePool.Get();
+
handle.lifeTime = lifeTime;
handle.curTime = 0;
float size = UnitManager.Instance.pc.unitDetail.snapshotBound;
@@ -143,13 +148,41 @@ public class UnitImageEffect : UnitComponent
handle.holder.gameObject.transform.position = UnitManager.Instance.pc.center;
handle.holder.renderer.GetPropertyBlock(block);
- block.SetFloat("_Distance", (normalTime) * distance);
+ block.SetFloat("_Distance", /*(normalTime) * */distance);
+ handle.holder.renderer.SetPropertyBlock(block);
+ };
+
+ effects.Add(handle);
+ }
+
+ public void ShowGlitch(float lifeTime)
+ {
+ UnitImageEffectHandle handle = m_HandlePool.Get();
+
+ handle.lifeTime = lifeTime;
+ handle.curTime = 0;
+ float size = UnitManager.Instance.pc.unitDetail.snapshotBound;
+ handle.holder = ClaimHolder(size);
+ handle.holder.gameObject.SetActive(true);
+ string matPath = ResourceManager.Instance.imageEffectMaterails[ResourceManager.EImageEffectMaterails.Glitch];
+ handle.holder.renderer.sharedMaterial = ResourceManager.Instance.LoadAsset<Material>(matPath);
+
+ MaterialPropertyBlock block = new MaterialPropertyBlock();
+ handle.holder.renderer.GetPropertyBlock(block);
+ handle.holder.renderer.SetPropertyBlock(block);
+
+ handle.stepFunc = (float normalTime) =>
+ {
+ handle.holder.gameObject.transform.position = UnitManager.Instance.pc.center;
+
+ handle.holder.renderer.GetPropertyBlock(block);
handle.holder.renderer.SetPropertyBlock(block);
};
effects.Add(handle);
}
- #endregion
+
+ #endregion
} \ No newline at end of file
diff --git a/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs b/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs
index a55ba99b..0bb8df5c 100644
--- a/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs
+++ b/Assets/Scripts/Unit/TimelineEventProxy_Handlers.cs
@@ -180,7 +180,8 @@ public partial class TimelineEventProxy
return;
float angle = motionBlur.angle;
angle = owner.isTowardRight ? angle : 180 - angle;
- ((PCController)owner).unitImageEffect.ShowMotionBlur(motionBlur.lifeTime, angle, motionBlur.distance);
+ // ((PCController)owner).unitImageEffect.ShowMotionBlur(motionBlur.lifeTime, angle, motionBlur.distance);
+ ((PCController)owner).unitImageEffect.ShowGlitch(motionBlur.lifeTime);
}
#endregion
diff --git a/Assets/Scripts/Unit/UnitDetail.cs b/Assets/Scripts/Unit/UnitDetail.cs
index 03d26fdd..3d075451 100644
--- a/Assets/Scripts/Unit/UnitDetail.cs
+++ b/Assets/Scripts/Unit/UnitDetail.cs
@@ -140,7 +140,6 @@ public class UnitDetail : MonoBehaviour
}
}
-
public Vector3 center
{
get
diff --git a/Assets/Scripts/Utils/ListPool.cs b/Assets/Scripts/Utils/ListPool.cs
index b9fbd2b8..9819aa48 100644
--- a/Assets/Scripts/Utils/ListPool.cs
+++ b/Assets/Scripts/Utils/ListPool.cs
@@ -21,7 +21,7 @@ public static class ListPool<T>
});
}
-internal class ObjectPool<T> where T : new()
+public class ObjectPool<T> where T : new()
{
private readonly Stack<T> m_Stack = new Stack<T>();
private readonly UnityAction<T> m_ActionOnGet;
diff --git a/Assets/ThirdParty/VRM/VRMShaders/MToon/MToon/Resources/Shaders/MToon.shader b/Assets/ThirdParty/VRM/VRMShaders/MToon/MToon/Resources/Shaders/MToon.shader
index 496ac558..dafcf557 100644
--- a/Assets/ThirdParty/VRM/VRMShaders/MToon/MToon/Resources/Shaders/MToon.shader
+++ b/Assets/ThirdParty/VRM/VRMShaders/MToon/MToon/Resources/Shaders/MToon.shader
@@ -51,7 +51,7 @@ Shader "VRM/MToon"
// for SM 3.0
SubShader
{
- Tags { "RenderType" = "Opaque" "Queue" = "Geometry" }
+ Tags { "RenderType" = "Opaque" /* "Queue" = "Geometry" */ "Queue"="Transparent"}
// Forward Base
Pass