|
@@ -0,0 +1,420 @@
|
|
|
|
+[gd_scene load_steps=23 format=2]
|
|
|
|
+
|
|
|
|
+[ext_resource path="res://godotea.png" type="Texture" id=1]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=1]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+uniform float outline_width=2.0;
|
|
|
|
+uniform vec4 outline_color: hint_color;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+vec4 col = texture(TEXTURE,UV);
|
|
|
|
+vec2 ps = TEXTURE_PIXEL_SIZE;
|
|
|
|
+float a;
|
|
|
|
+float maxa=col.a;
|
|
|
|
+float mina=col.a;
|
|
|
|
+a=texture(TEXTURE,UV+vec2(0,-outline_width)*ps).a;
|
|
|
|
+maxa=max(a,maxa);
|
|
|
|
+mina=min(a,mina);
|
|
|
|
+a=texture(TEXTURE,UV+vec2(0,outline_width)*ps).a;
|
|
|
|
+maxa=max(a,maxa);
|
|
|
|
+mina=min(a,mina);
|
|
|
|
+a=texture(TEXTURE,UV+vec2(-outline_width,0)*ps).a;
|
|
|
|
+maxa=max(a,maxa);
|
|
|
|
+mina=min(a,mina);
|
|
|
|
+a=texture(TEXTURE,UV+vec2(outline_width,0)*ps).a;
|
|
|
|
+maxa=max(a,maxa);
|
|
|
|
+mina=min(a,mina);
|
|
|
|
+
|
|
|
|
+COLOR=mix(col,outline_color,maxa-mina);
|
|
|
|
+}"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=2]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 1 )
|
|
|
|
+shader_param/outline_width = null
|
|
|
|
+shader_param/outline_color = Color( 0, 1, 0.109375, 1 )
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=3]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=4]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+uniform float outline_width = 2.0;
|
|
|
|
+uniform vec4 outline_color: hint_color;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+ vec4 col = texture(TEXTURE, UV);
|
|
|
|
+ vec2 ps = TEXTURE_PIXEL_SIZE;
|
|
|
|
+ float a;
|
|
|
|
+ float maxa = col.a;
|
|
|
|
+ float mina = col.a;
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(0, -outline_width)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(0, outline_width)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(-outline_width,0)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(outline_width, 0)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ COLOR = mix(col, outline_color, maxa-mina);
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=5]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 4 )
|
|
|
|
+shader_param/outline_width = 4.0
|
|
|
|
+shader_param/outline_color = Color( 0, 0, 0, 1 )
|
|
|
|
+_sections_unfolded = [ "Resource", "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=6]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+render_mode blend_premul_alpha;
|
|
|
|
+
|
|
|
|
+//this shader only works properly with premultiplied alpha blend mode
|
|
|
|
+uniform float aura_width = 2.0;
|
|
|
|
+uniform vec4 aura_color:hint_color;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+ vec4 col = texture(TEXTURE, UV);
|
|
|
|
+ vec2 ps = TEXTURE_PIXEL_SIZE;
|
|
|
|
+ float a;
|
|
|
|
+ float maxa = col.a;
|
|
|
|
+ float mina = col.a;
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(0, -aura_width)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(0, aura_width)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(-aura_width, 0)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ a = texture(TEXTURE, UV + vec2(aura_width, 0)*ps).a;
|
|
|
|
+ maxa = max(a, maxa);
|
|
|
|
+ mina = min(a, mina);
|
|
|
|
+
|
|
|
|
+ col.rgb *= col.a;
|
|
|
|
+
|
|
|
|
+ COLOR = col;
|
|
|
|
+ float auraa = (maxa-mina);
|
|
|
|
+
|
|
|
|
+ COLOR.rgb += aura_color.rgb*(auraa);
|
|
|
|
+
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=7]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 6 )
|
|
|
|
+shader_param/aura_width = 6.0
|
|
|
|
+shader_param/aura_color = Color( 0.143326, 0.33235, 0.677765, 0.442 )
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=8]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+render_mode blend_mix;
|
|
|
|
+
|
|
|
|
+uniform float radius = 4.0;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+ vec4 col = texture(TEXTURE, UV);
|
|
|
|
+ vec2 ps = TEXTURE_PIXEL_SIZE;
|
|
|
|
+
|
|
|
|
+ col += texture(TEXTURE, UV + vec2(0, -radius)*ps);
|
|
|
|
+ col += texture(TEXTURE, UV + vec2(0, radius)*ps);
|
|
|
|
+ col += texture(TEXTURE, UV + vec2(-radius, 0)*ps);
|
|
|
|
+ col += texture(TEXTURE, UV + vec2(radius, 0)*ps);
|
|
|
|
+ col /= 5.0;
|
|
|
|
+
|
|
|
|
+ COLOR = col;
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=9]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 8 )
|
|
|
|
+shader_param/radius = 4.0
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=10]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+
|
|
|
|
+render_mode blend_mix;
|
|
|
|
+uniform float fattyness = 2.0;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+ vec2 ruv = UV - vec2(0.5,0.5);
|
|
|
|
+ vec2 dir = normalize(ruv);
|
|
|
|
+ float len = length(ruv);
|
|
|
|
+
|
|
|
|
+ len = pow(len*2.0, fattyness)*0.5;
|
|
|
|
+ ruv = len*dir;
|
|
|
|
+
|
|
|
|
+ vec4 col = texture(TEXTURE, ruv + vec2(0.5, 0.5));
|
|
|
|
+
|
|
|
|
+ COLOR = col;
|
|
|
|
+}"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=11]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 10 )
|
|
|
|
+shader_param/fattyness = 3.0
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=12]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+render_mode blend_mix;
|
|
|
|
+
|
|
|
|
+uniform float radius = 5.0;
|
|
|
|
+uniform vec4 modulate:hint_color;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+ vec2 ps = TEXTURE_PIXEL_SIZE;
|
|
|
|
+
|
|
|
|
+ vec4 shadow = texture(TEXTURE, UV + vec2(-radius, -radius)*ps);
|
|
|
|
+
|
|
|
|
+ shadow += texture(TEXTURE, UV + vec2(-radius, 0)*ps);
|
|
|
|
+ shadow += texture(TEXTURE, UV + vec2(-radius, radius)*ps);
|
|
|
|
+ shadow += texture(TEXTURE, UV + vec2(0, -radius)*ps);
|
|
|
|
+ shadow += texture(TEXTURE, UV + vec2(0, radius)*ps);
|
|
|
|
+ shadow += texture(TEXTURE, UV + vec2(radius, -radius)*ps);
|
|
|
|
+ shadow += texture(TEXTURE, UV + vec2(radius, 0)*ps);
|
|
|
|
+ shadow += texture(TEXTURE, UV + vec2(radius, radius)*ps);
|
|
|
|
+ shadow /= 8.0;
|
|
|
|
+ shadow *= modulate;
|
|
|
|
+
|
|
|
|
+ vec4 col = texture(TEXTURE, UV);
|
|
|
|
+ COLOR = mix(shadow, col, col.a);
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=13]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 12 )
|
|
|
|
+shader_param/radius = 8.0
|
|
|
|
+shader_param/modulate = Color( 0, 0, 0, 0.501961 )
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=14]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+render_mode blend_mix;
|
|
|
|
+
|
|
|
|
+uniform vec2 offset = vec2(8,8);
|
|
|
|
+uniform vec4 modulate:hint_color;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+ vec2 ps = TEXTURE_PIXEL_SIZE;
|
|
|
|
+
|
|
|
|
+ vec4 shadow = vec4(modulate.rgb, texture(TEXTURE, UV - offset*ps).a*modulate.a);
|
|
|
|
+ vec4 col = texture(TEXTURE, UV);
|
|
|
|
+
|
|
|
|
+ COLOR = mix(shadow, col, col.a);
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=15]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 14 )
|
|
|
|
+shader_param/offset = Vector2( 20, 20 )
|
|
|
|
+shader_param/modulate = Color( 0.90625, 0.269043, 0.746948, 1 )
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=16]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+
|
|
|
|
+render_mode blend_mix;
|
|
|
|
+uniform vec4 modulate:hint_color;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+
|
|
|
|
+ COLOR = vec4(modulate.rgb, texture(TEXTURE, UV).a*modulate.a);
|
|
|
|
+
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=17]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 16 )
|
|
|
|
+shader_param/modulate = Color( 1, 0.0234375, 0.481201, 0.596706 )
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=18]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+render_mode blend_premul_alpha;
|
|
|
|
+
|
|
|
|
+uniform float radius = 2.0;
|
|
|
|
+uniform float amount = 0.6;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+ float r = radius;
|
|
|
|
+ vec2 ps = TEXTURE_PIXEL_SIZE;
|
|
|
|
+ vec4 col = texture(TEXTURE, UV);
|
|
|
|
+ vec4 glow = col;
|
|
|
|
+
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(-r, -r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(-r, 0)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(-r, r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(0, -r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(0, r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(r, -r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(r, 0)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(r, r)*ps);
|
|
|
|
+
|
|
|
|
+ r *= 2.0;
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(-r, -r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(-r, 0)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(-r, r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(0, -r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(0, r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(r, -r)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(r, 0)*ps);
|
|
|
|
+ glow += texture(TEXTURE, UV + vec2(r, r)*ps);
|
|
|
|
+
|
|
|
|
+ glow /= 17.0;
|
|
|
|
+ glow *= amount;
|
|
|
|
+ col.rgb *= col.a;
|
|
|
|
+
|
|
|
|
+ COLOR = glow + col;
|
|
|
|
+
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=19]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 18 )
|
|
|
|
+shader_param/radius = 12.0
|
|
|
|
+shader_param/amount = 0.5
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[sub_resource type="Shader" id=20]
|
|
|
|
+
|
|
|
|
+code = "shader_type canvas_item;
|
|
|
|
+render_mode blend_mix;
|
|
|
|
+
|
|
|
|
+uniform float amount = 20.0;
|
|
|
|
+
|
|
|
|
+void fragment(){
|
|
|
|
+
|
|
|
|
+ vec2 uv = UV*0.05;
|
|
|
|
+ float a = fract(sin(dot(UV, vec2(12.9898, 78.233)))*438.5453);
|
|
|
|
+ vec4 col = texture(TEXTURE, UV);
|
|
|
|
+
|
|
|
|
+ col.a *= pow(a, amount);
|
|
|
|
+
|
|
|
|
+ COLOR = col;
|
|
|
|
+ }"
|
|
|
|
+
|
|
|
|
+[sub_resource type="ShaderMaterial" id=21]
|
|
|
|
+
|
|
|
|
+render_priority = 0
|
|
|
|
+shader = SubResource( 20 )
|
|
|
|
+shader_param/amount = 4.0
|
|
|
|
+_sections_unfolded = [ "shader_param" ]
|
|
|
|
+
|
|
|
|
+[node name="shaders" type="Node2D" index="0"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 2 )
|
|
|
|
+position = Vector2( 263.737, 179.444 )
|
|
|
|
+scale = Vector2( 0.3, 0.3 )
|
|
|
|
+_sections_unfolded = [ "Material", "Region", "Transform" ]
|
|
|
|
+
|
|
|
|
+[node name="normal" type="Sprite" parent="." index="0"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 3 )
|
|
|
|
+position = Vector2( -2.16144, 0 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Offset" ]
|
|
|
|
+
|
|
|
|
+[node name="outline" type="Sprite" parent="." index="1"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 5 )
|
|
|
|
+position = Vector2( 400, 0 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform" ]
|
|
|
|
+
|
|
|
|
+[node name="aura" type="Sprite" parent="." index="2"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 7 )
|
|
|
|
+position = Vector2( 800, 0 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Animation", "Material", "Offset", "Region", "Transform", "Visibility", "Z Index" ]
|
|
|
|
+
|
|
|
|
+[node name="blur" type="Sprite" parent="." index="3"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 9 )
|
|
|
|
+position = Vector2( 1200, 0 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform" ]
|
|
|
|
+
|
|
|
|
+[node name="fatty" type="Sprite" parent="." index="4"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 11 )
|
|
|
|
+position = Vector2( 1600, 0 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform" ]
|
|
|
|
+
|
|
|
|
+[node name="dropshadow" type="Sprite" parent="." index="5"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 13 )
|
|
|
|
+position = Vector2( 0, 800 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform" ]
|
|
|
|
+
|
|
|
|
+[node name="offsetshadow" type="Sprite" parent="." index="6"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 15 )
|
|
|
|
+position = Vector2( 400, 800 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform" ]
|
|
|
|
+
|
|
|
|
+[node name="silouette" type="Sprite" parent="." index="7"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 17 )
|
|
|
|
+position = Vector2( 800, 800 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform" ]
|
|
|
|
+
|
|
|
|
+[node name="glow" type="Sprite" parent="." index="8"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 19 )
|
|
|
|
+position = Vector2( 1200, 800 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform", "Z Index" ]
|
|
|
|
+
|
|
|
|
+[node name="dissintegrate" type="Sprite" parent="." index="9"]
|
|
|
|
+
|
|
|
|
+material = SubResource( 21 )
|
|
|
|
+position = Vector2( 1600, 800 )
|
|
|
|
+texture = ExtResource( 1 )
|
|
|
|
+region_rect = Rect2( 141, 115, 39, 6 )
|
|
|
|
+_sections_unfolded = [ "Material", "Transform" ]
|
|
|
|
+
|
|
|
|
+
|