生死簿效果优化
This commit is contained in:
parent
40647f8023
commit
ae4c121638
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://cwu4dhayra8pg"]
|
[gd_scene load_steps=15 format=3 uid="uid://cwu4dhayra8pg"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_b3cca"]
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_b3cca"]
|
||||||
[ext_resource type="Script" uid="uid://6q2pfbqsw10t" path="res://scene/ground/scene/c01/s08_animation.gd" id="2_0lque"]
|
[ext_resource type="Script" uid="uid://6q2pfbqsw10t" path="res://scene/ground/scene/c01/s08_animation.gd" id="2_0lque"]
|
||||||
@ -34,6 +34,8 @@ _data = {
|
|||||||
&"one_shot": SubResource("Animation_5koky")
|
&"one_shot": SubResource("Animation_5koky")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ddd5v"]
|
||||||
|
|
||||||
[node name="S08" type="Node2D"]
|
[node name="S08" type="Node2D"]
|
||||||
position = Vector2(1, 0)
|
position = Vector2(1, 0)
|
||||||
|
|
||||||
@ -49,6 +51,7 @@ script = ExtResource("2_0lque")
|
|||||||
oneshot_animation = "one_shot"
|
oneshot_animation = "one_shot"
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||||
|
material = SubResource("ShaderMaterial_ddd5v")
|
||||||
texture = ExtResource("3_322m4")
|
texture = ExtResource("3_322m4")
|
||||||
offset = Vector2(0, -158)
|
offset = Vector2(0, -158)
|
||||||
|
|
||||||
|
29
scene/little_game/书架/frosted_glass.gdshader
Normal file
29
scene/little_game/书架/frosted_glass.gdshader
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
// mipmap is neaded for textureLod
|
||||||
|
uniform sampler2D screen_texture: hint_screen_texture, repeat_disable, filter_nearest_mipmap;
|
||||||
|
// works better as a normal with warping
|
||||||
|
uniform sampler2D warp_texture: repeat_enable;
|
||||||
|
|
||||||
|
uniform float intensity: hint_range(0.0, 0.3) = 0.01;
|
||||||
|
uniform vec4 tint_color: source_color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||||
|
uniform float tint_amount: hint_range(0.0, 1.0) = 0.4;
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
// get our normal warp
|
||||||
|
vec2 warp = texture(warp_texture, UV).xy - 0.5;
|
||||||
|
// sample based on warp and intensity and blur based on intensity
|
||||||
|
vec4 screen = textureLod(screen_texture, UV + warp * intensity, intensity * 4.0);
|
||||||
|
// tint our image
|
||||||
|
screen = mix(screen, tint_color, tint_amount);
|
||||||
|
// get a random-ish value for some speckle noise
|
||||||
|
float noise = fract(sin(dot(UV, vec2(12.9898, 78.233))) * 43758.5453);
|
||||||
|
// light diffusion for glass shape highlights
|
||||||
|
float diff = max(dot(warp, normalize(vec2(1.0, 1.0))), 0.0);
|
||||||
|
// apply diffusion based on intensity
|
||||||
|
screen += diff * intensity;
|
||||||
|
// apply speckle noise based on intensity
|
||||||
|
screen += noise * intensity;
|
||||||
|
// yarp
|
||||||
|
COLOR = screen;
|
||||||
|
}
|
1
scene/little_game/书架/frosted_glass.gdshader.uid
Normal file
1
scene/little_game/书架/frosted_glass.gdshader.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://dty2iyehbp67g
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=37 format=3 uid="uid://bl5pohc77hi43"]
|
[gd_scene load_steps=41 format=3 uid="uid://bl5pohc77hi43"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cyyku6caspu01" path="res://scene/little_game/书架/生死簿.gd" id="1_wipr2"]
|
[ext_resource type="Script" uid="uid://cyyku6caspu01" path="res://scene/little_game/书架/生死簿.gd" id="1_wipr2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_17f8x"]
|
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_17f8x"]
|
||||||
@ -7,6 +7,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://ci1iuxsvpy6qn" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png" id="4_ghblq"]
|
[ext_resource type="Texture2D" uid="uid://ci1iuxsvpy6qn" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 书底.png" id="4_ghblq"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/c02/撞到柜子.mp3" id="4_jifnx"]
|
[ext_resource type="AudioStream" uid="uid://c26x8f18w6is0" path="res://asset/audio/sfx/c02/撞到柜子.mp3" id="4_jifnx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://munmy3e4qpcq" path="res://asset/art/little_game/书架_生死簿/封面.png" id="4_w8eyr"]
|
[ext_resource type="Texture2D" uid="uid://munmy3e4qpcq" path="res://asset/art/little_game/书架_生死簿/封面.png" id="4_w8eyr"]
|
||||||
|
[ext_resource type="Shader" uid="uid://dty2iyehbp67g" path="res://scene/little_game/书架/frosted_glass.gdshader" id="5_if63h"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cc8117h1lfo1n" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png" id="5_qhrv2"]
|
[ext_resource type="Texture2D" uid="uid://cc8117h1lfo1n" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 人名.png" id="5_qhrv2"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cl7byobu28rsb" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png" id="6_ujwqa"]
|
[ext_resource type="Texture2D" uid="uid://cl7byobu28rsb" path="res://asset/art/little_game/书架_生死簿/生死簿摊开特写 印章.png" id="6_ujwqa"]
|
||||||
[ext_resource type="Texture2D" uid="uid://vqq1hnf2yfat" path="res://asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png" id="7_hohup"]
|
[ext_resource type="Texture2D" uid="uid://vqq1hnf2yfat" path="res://asset/art/little_game/书架_生死簿/生死簿摊开 陆小蝶名.png" id="7_hohup"]
|
||||||
@ -122,6 +123,23 @@ _data = {
|
|||||||
}
|
}
|
||||||
point_count = 4
|
point_count = 4
|
||||||
|
|
||||||
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_if63h"]
|
||||||
|
fractal_octaves = 6
|
||||||
|
fractal_lacunarity = 5.0
|
||||||
|
fractal_gain = 5.0
|
||||||
|
|
||||||
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_if63h"]
|
||||||
|
width = 800
|
||||||
|
height = 500
|
||||||
|
noise = SubResource("FastNoiseLite_if63h")
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_adstd"]
|
||||||
|
shader = ExtResource("5_if63h")
|
||||||
|
shader_parameter/warp_texture = SubResource("NoiseTexture2D_if63h")
|
||||||
|
shader_parameter/intensity = 0.012
|
||||||
|
shader_parameter/tint_color = Color(1, 0.938631, 0.928082, 1)
|
||||||
|
shader_parameter/tint_amount = 0.127
|
||||||
|
|
||||||
[node name="生死簿" type="CanvasLayer"]
|
[node name="生死簿" type="CanvasLayer"]
|
||||||
layer = 11
|
layer = 11
|
||||||
script = ExtResource("1_wipr2")
|
script = ExtResource("1_wipr2")
|
||||||
@ -193,6 +211,10 @@ size_flags_horizontal = 3
|
|||||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_mii3t")
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_mii3t")
|
||||||
flat = true
|
flat = true
|
||||||
|
|
||||||
|
[node name="Polygon2D" type="Polygon2D" parent="Control"]
|
||||||
|
color = Color(0.592157, 0, 0.0156863, 0)
|
||||||
|
polygon = PackedVector2Array(-17, -13, 575, -11, 574, 324, -12, 322)
|
||||||
|
|
||||||
[node name="封面" type="Sprite2D" parent="Control"]
|
[node name="封面" type="Sprite2D" parent="Control"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
position = Vector2(-5, 0)
|
position = Vector2(-5, 0)
|
||||||
@ -479,3 +501,28 @@ curve = SubResource("Curve2D_7rw5g")
|
|||||||
position = Vector2(334.047, 169.012)
|
position = Vector2(334.047, 169.012)
|
||||||
rotation = 2.55739
|
rotation = 2.55739
|
||||||
progress = 50.9902
|
progress = 50.9902
|
||||||
|
|
||||||
|
[node name="DirectionalLight2D" type="DirectionalLight2D" parent="Control/页面/陆小蝶"]
|
||||||
|
color = Color(1, 0.4655, 0.395153, 1)
|
||||||
|
energy = 0.0
|
||||||
|
blend_mode = 2
|
||||||
|
range_layer_max = 30
|
||||||
|
|
||||||
|
[node name="DirectionalLight2D2" type="DirectionalLight2D" parent="Control/页面/陆小蝶"]
|
||||||
|
color = Color(1, 0.341404, 0.271965, 1)
|
||||||
|
energy = 0.0
|
||||||
|
range_layer_max = 30
|
||||||
|
|
||||||
|
[node name="effect" type="ColorRect" parent="Control/页面"]
|
||||||
|
visible = false
|
||||||
|
material = SubResource("ShaderMaterial_adstd")
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = 15.0
|
||||||
|
offset_top = -4.0
|
||||||
|
offset_right = 15.0
|
||||||
|
offset_bottom = -4.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
@ -25,6 +25,7 @@ func play() -> void:
|
|||||||
tween.tween_interval(7.0)
|
tween.tween_interval(7.0)
|
||||||
# 小蝶名字消失后再显示其他名字
|
# 小蝶名字消失后再显示其他名字
|
||||||
var interval = 2.0
|
var interval = 2.0
|
||||||
|
# var interval = 0.1 # 很快,测试用
|
||||||
var children = $seals.get_children()
|
var children = $seals.get_children()
|
||||||
# 前四个按顺序,后面的乱序
|
# 前四个按顺序,后面的乱序
|
||||||
var part1 = children.slice(0, 4)
|
var part1 = children.slice(0, 4)
|
||||||
@ -73,10 +74,28 @@ func _final_effect():
|
|||||||
|
|
||||||
|
|
||||||
func _jump_scare():
|
func _jump_scare():
|
||||||
# 屏幕四周闪红,jump scare屏幕抖动效果
|
var tween = create_tween()
|
||||||
var shading_layer = SceneManager.get_shading_layer()
|
# 毛玻璃模糊 / 熔蜡扭曲
|
||||||
shading_layer.flash_palette()
|
# var e_materaial = $"../effect".material
|
||||||
shading_layer.flash_glitch()
|
# tween.tween_property(e_materaial, "shader_parameter/intensity", 0.05, 1.0)
|
||||||
|
# tween.tween_property(e_materaial, "shader_parameter/tint_amount", 0.4, 1.0)
|
||||||
|
|
||||||
|
# # 屏幕四周闪红,jump scare屏幕抖动效果
|
||||||
|
# var shading_layer = SceneManager.get_shading_layer()
|
||||||
|
# shading_layer.flash_palette()
|
||||||
|
# shading_layer.flash_glitch()
|
||||||
|
|
||||||
|
var l1 = $DirectionalLight2D
|
||||||
|
var l2 = $DirectionalLight2D2
|
||||||
|
var polygon = $"../../Polygon2D"
|
||||||
|
tween.tween_property(l1, "energy", 1.0, 0.2)
|
||||||
|
tween.parallel().tween_property(l2, "energy", 2.0, 0.2)
|
||||||
|
tween.parallel().tween_property(polygon, "color:a", 0.5, 0.1)
|
||||||
|
tween.tween_property(l1, "energy", 0.0, 0.2)
|
||||||
|
tween.parallel().tween_property(l2, "energy", 0.0, 0.2)
|
||||||
|
tween.parallel().tween_property(polygon, "color:a", 0.0, 0.2)
|
||||||
|
|
||||||
|
|
||||||
# TODO 哈气
|
# TODO 哈气
|
||||||
SceneManager.pop_debug_dialog_info("音效", "突然哈气")
|
SceneManager.pop_debug_dialog_info("音效", "突然哈气")
|
||||||
$"SfxScare".play()
|
$"SfxScare".play()
|
||||||
|
Loading…
Reference in New Issue
Block a user