SAIMA/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader
GrassTE 626f792f11 Squashed commit of the following:
commit 9559cc8882161192a43be22670a8ff69db1ea13a
Author: Roman <1325980292@qq.com>
Date:   Sat Aug 27 19:22:38 2022 +0800

    短学期Log

    任务:替换和实装美术素材
    1.在教程场景布置图标和文字提示内容
    DONE
    2.制作GamePlay中背景元素的动画并实装
    DONE
    3.替换拆迁障碍物美术素材
    DONE

    任务:实装音乐和音效
    1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。
    DONE
    2.实装人摔地音效
    DONE
    3.实装人跑动音效
    效果不好
    DONE
    4.实装人马分离音效
    DONE
    *.补充实装人降落到马上的音效
    DONE
    5.实装创烂障碍物音效
    DONE
    6.实装圣火点燃音效
    DONE
    7.实装马磕磕碰碰音效
    DONE
    8.实装马似音效
    DONE
    9.实装马着地音效
    DONE
    10.实装马起跳音效
    DONE
    11.实装马蹄点地音效
    效果不好
    DONE

    任务:实装特效
    1.实装后处理
    DONE
    2.实装日夜更替
    DONE
    3.实装树叶飘落
    DONE
    4.实装圣火粒子
    效果不好
    DONE
    5.实装破碎灰尘
    效果不好
    DONE
    6.实装马蹄灰尘
    DONE
    7.实装红黑闪特效
    DONE

    任务:完善没写的零散逻辑
    1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马
    **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修
    已修复
    DONE

    2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑
    DONE

    3.开发GamePlay距离记录和重开系统
    DONE

    4.策划要在点燃圣火时镜头放大,体现标题感
    URP相机不太好做
    ABANDON

    5.人的死亡动画逻辑之前没做
    DONE

    任务:测试并修复Bug
    DONE

    修复Bug
    1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。
    已修复
    DONE
    2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。
    DONE
    3.跑步动画和跑步音效完全对不上
    加快跑步动画
    DONE
    4.原爆破给力范围太大,会导致旧的碎片也被波及
    已修复
    DONE

commit cab00851df5e4da70b981c564888c53d86de1f95
Author: Roman <1325980292@qq.com>
Date:   Sat Aug 27 02:51:21 2022 +0800

    短学期Log

    任务:替换和实装美术素材
    1.在教程场景布置图标和文字提示内容
    DONE
    2.制作GamePlay中背景元素的动画并实装
    DONE
    3.替换拆迁障碍物美术素材
    DONE

    任务:实装音乐和音效
    1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。
    DONE
    2.实装人摔地音效
    DONE
    3.实装人跑动音效
    DONE
    4.实装人马分离音效
    DONE
    5.实装创烂障碍物音效
    DOING
    6.实装圣火点燃音效
    7.实装马磕磕碰碰音效
    8.实装马似音效
    9.实装马着地音效
    10.实装马起跳音效

    任务:实装特效
    ……

    任务:完善没写的零散逻辑
    1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马
    **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修
    WAIT
    2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑
    DONE
    3.开发GamePlay距离记录和重开系统
    ……

    修复Bug
    1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。
    2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。

commit 3f0c9dd791c66e7222d6dbb72d8b762b73f06aed
Merge: e6888a7 bc74426
Author: Roman <1325980292@qq.com>
Date:   Fri Aug 26 18:13:00 2022 +0800

    Merge branch 'Saipo' of https://e.coding.net/gensokyogroup/saima/SAIMA into Roman

    # Conflicts:
    #	UserSettings/EditorUserSettings.asset
    #	UserSettings/Layouts/CurrentMaximizeLayout.dwlt
    #	UserSettings/Layouts/default-2021.dwlt

commit e6888a748dc7188bd3c2f7ce4bceade7402f8cec
Author: Roman <1325980292@qq.com>
Date:   Fri Aug 26 18:11:05 2022 +0800

    任务:编写教程和开始场景
    分析:分为五个阶段,每个阶段一屏宽。前四个阶段是教程阶段,分别仅放一种障碍(第一个无障碍)和提示,提示参照茶杯头教程关。
    每个阶段间有明显间断、镜头固定,但当马通过该阶段的障碍后,镜头右移一个阶段。马不能倒退,相机左侧有空气墙。
    到达最终阶段后,按流程点燃圣火进入游戏

    设计:
    1.搭建核心场景,放置障碍物。
    DONE
    2.设计教程及开始场景管理器
    (1.控制相机,使马每通过一个阶段,相机运动到记录的位置
    DONE
    (2.给相机左侧添加空气墙
    DONE
    (3.管理器要明确记录此时玩家处于哪个阶段
    DONE
    (4.当玩家进入点燃圣火触发器,切断操控,等待动画结束或者一些信号,触发从右向左的渐变黑幕遮挡全屏,随后转场到新场景。
    DONE

    至此,基本逻辑完成,需要补充大量细节、替换大量美术素材。

    修复问题:
    1.人马分离障碍连续出现可能导致致命问题,修复使其不能连续出现
    DONE
    2.GamePlay中,远处的山需要补充运动逻辑
    DONE

commit 5d922db6142634cdd20aa7801c0b3c1c4994360c
Author: Roman <1325980292@qq.com>
Date:   Wed Aug 24 17:59:05 2022 +0800

    任务:制作人物动画逻辑
    1.当人物处于Normal时,重复播放骑在马上的动画
    2.当人物被射出,播放一次跳上动画,之后停在最后一帧,等待落到平台上。
    3.当人物进入Walk态,开始重复播放跑步动画。
    4.当人物开始降落,触发一次跳下动画,停在最后一帧
    5.当Recover结束,状态恢复为Normal,重回到骑在马上动画
    DONE

commit d1fe07492af5ce6ea736ef738eb3e38170a08066
Merge: 436eaf0 5e10767
Author: Roman <1325980292@qq.com>
Date:   Wed Aug 24 10:42:58 2022 +0800

    Merge branch 'Saipo' of https://e.coding.net/gensokyogroup/saima/SAIMA into Roman

    # Conflicts:
    #	UserSettings/Layouts/default-2021.dwlt

commit 436eaf01046248372e887eb8276f38e021915790
Author: Roman <1325980292@qq.com>
Date:   Wed Aug 24 10:40:51 2022 +0800

    为了拉取的提交,少量修改
2022-08-27 21:30:16 +08:00

159 lines
4.3 KiB
Plaintext

Shader "TextMeshPro/Distance Field (Surface)" {
Properties {
_FaceTex ("Fill Texture", 2D) = "white" {}
_FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0
_FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0
[HDR]_FaceColor ("Fill Color", Color) = (1,1,1,1)
_FaceDilate ("Face Dilate", Range(-1,1)) = 0
[HDR]_OutlineColor ("Outline Color", Color) = (0,0,0,1)
_OutlineTex ("Outline Texture", 2D) = "white" {}
_OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0
_OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0
_OutlineWidth ("Outline Thickness", Range(0, 1)) = 0
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0
_Bevel ("Bevel", Range(0,1)) = 0.5
_BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0
_BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0
_BevelClamp ("Bevel Clamp", Range(0,1)) = 0
_BevelRoundness ("Bevel Roundness", Range(0,1)) = 0
_BumpMap ("Normalmap", 2D) = "bump" {}
_BumpOutline ("Bump Outline", Range(0,1)) = 0.5
_BumpFace ("Bump Face", Range(0,1)) = 0.5
_ReflectFaceColor ("Face Color", Color) = (0,0,0,1)
_ReflectOutlineColor ("Outline Color", Color) = (0,0,0,1)
_Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ }
_EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0)
[HDR]_SpecColor ("Specular Color", Color) = (0,0,0,1)
_FaceShininess ("Face Shininess", Range(0,1)) = 0
_OutlineShininess ("Outline Shininess", Range(0,1)) = 0
[HDR]_GlowColor ("Color", Color) = (0, 1, 0, 0.5)
_GlowOffset ("Offset", Range(-1,1)) = 0
_GlowInner ("Inner", Range(0,1)) = 0.05
_GlowOuter ("Outer", Range(0,1)) = 0.05
_GlowPower ("Falloff", Range(1, 0)) = 0.75
_WeightNormal ("Weight Normal", float) = 0
_WeightBold ("Weight Bold", float) = 0.5
// Should not be directly exposed to the user
_ShaderFlags ("Flags", float) = 0
_ScaleRatioA ("Scale RatioA", float) = 1
_ScaleRatioB ("Scale RatioB", float) = 1
_ScaleRatioC ("Scale RatioC", float) = 1
_MainTex ("Font Atlas", 2D) = "white" {}
_TextureWidth ("Texture Width", float) = 512
_TextureHeight ("Texture Height", float) = 512
_GradientScale ("Gradient Scale", float) = 5.0
_ScaleX ("Scale X", float) = 1.0
_ScaleY ("Scale Y", float) = 1.0
_PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875
_Sharpness ("Sharpness", Range(-1,1)) = 0
_VertexOffsetX ("Vertex OffsetX", float) = 0
_VertexOffsetY ("Vertex OffsetY", float) = 0
_CullMode ("Cull Mode", Float) = 0
//_MaskCoord ("Mask Coords", vector) = (0,0,0,0)
//_MaskSoftness ("Mask Softness", float) = 0
}
SubShader {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
LOD 300
Cull [_CullMode]
CGPROGRAM
#pragma surface PixShader BlinnPhong alpha:blend vertex:VertShader nolightmap nodirlightmap
#pragma target 3.0
#pragma shader_feature __ GLOW_ON
#pragma glsl
#include "TMPro_Properties.cginc"
#include "TMPro.cginc"
half _FaceShininess;
half _OutlineShininess;
struct Input
{
fixed4 color : COLOR;
float2 uv_MainTex;
float2 uv2_FaceTex;
float2 uv2_OutlineTex;
float2 param; // Weight, Scale
float3 viewDirEnv;
};
#define BEVEL_ON 1
#include "TMPro_Surface.cginc"
ENDCG
// Pass to render object as a shadow caster
Pass
{
Name "Caster"
Tags { "LightMode" = "ShadowCaster" }
Offset 1, 1
Fog {Mode Off}
ZWrite On
ZTest LEqual
Cull Off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_shadowcaster
#include "UnityCG.cginc"
struct v2f {
V2F_SHADOW_CASTER;
float2 uv : TEXCOORD1;
float2 uv2 : TEXCOORD3;
float alphaClip : TEXCOORD2;
};
uniform float4 _MainTex_ST;
uniform float4 _OutlineTex_ST;
float _OutlineWidth;
float _FaceDilate;
float _ScaleRatioA;
v2f vert( appdata_base v )
{
v2f o;
TRANSFER_SHADOW_CASTER(o)
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex);
o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2;
return o;
}
uniform sampler2D _MainTex;
float4 frag(v2f i) : COLOR
{
fixed4 texcol = tex2D(_MainTex, i.uv).a;
clip(texcol.a - i.alphaClip);
SHADOW_CASTER_FRAGMENT(i)
}
ENDCG
}
}
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
}