ご提示のBurningPaperにちょっと手を加えて半透明に対応させ...
ShaderLab
1Shader "Custom/BurningPaper"
2{
3 Properties {
4 _MainTex ("Main texture", 2D) = "white" {}
5 _DissolveTex ("Dissolution texture", 2D) = "gray" {}
6 _Threshold ("Threshold", Range(0, 1.1)) = 0
7 }
8
9 SubShader {
10 // 透明キューに変更
11 Tags { "RenderType"="Transparent" "Queue"="Transparent" }
12
13 Pass {
14 // ブレンドその他を設定
15 Blend SrcAlpha OneMinusSrcAlpha
16 ZWrite Off
17 Cull Off
18
19 // 以降は変更なし
20 CGPROGRAM
21 #pragma vertex vert
22 #pragma fragment frag
23
24 #include "UnityCG.cginc"
25
26 struct v2f {
27 float4 pos : SV_POSITION;
28 float2 uv : TEXCOORD0;
29 };
30
31 sampler2D _MainTex;
32 float4 _MainTex_ST;
33
34 v2f vert(appdata_base v) {
35 v2f o;
36 o.pos = UnityObjectToClipPos(v.vertex);
37 o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
38 return o;
39 }
40
41 sampler2D _DissolveTex;
42 float _Threshold;
43
44 fixed4 frag(v2f i) : SV_Target {
45 fixed4 c = tex2D(_MainTex, i.uv);
46 fixed val = 1 - tex2D(_DissolveTex, i.uv).r;
47 if(val < _Threshold - 0.04)
48 {
49 discard;
50 }
51
52 bool b = val < _Threshold;
53 return lerp(c, c * fixed4(lerp(1, 0, 1 - saturate(abs(_Threshold - val) / 0.04)), 0, 0, 1), b);
54 }
55
56 ENDCG
57
58 }
59
60 }
61 FallBack "Diffuse"
62}
「Dissolution texture」は下記のように作ってはいかがでしょうか。
- ノイズパターンを作る(たとえばPhotoshopの「雲模様 1」)


- 垂直方向のグラデーションを作る(グラデーションの下端は0、ノイズの明度を0.2倍にしたので上端は0.8とでもする)


この場合、描画結果は下図のようになるかと思います。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。