红色背景优化

This commit is contained in:
cakipaul 2025-06-18 21:02:36 +08:00
parent 70673f0fed
commit 3abad98e1f
22 changed files with 400 additions and 88 deletions

View File

@ -1,4 +1,4 @@
[gd_resource type="SpriteFrames" load_steps=31 format=3 uid="uid://dxu8w8d8oty65"]
[gd_resource type="SpriteFrames" load_steps=37 format=3 uid="uid://dxu8w8d8oty65"]
[ext_resource type="Texture2D" uid="uid://rpn4mftq06xw" path="res://asset/art/gif/c02_红色梦境/小眼睛睁开/0.png" id="1_a71jv"]
[ext_resource type="Texture2D" uid="uid://cbjhwihdhavsu" path="res://asset/art/gif/c02_红色梦境/小嘴巴说话/0.png" id="1_hdfk4"]
@ -30,6 +30,12 @@
[ext_resource type="Texture2D" uid="uid://c1gswi82n8wjo" path="res://asset/art/gif/c02_红色梦境/大眼睛动画/2.png" id="19_lluc1"]
[ext_resource type="Texture2D" uid="uid://cejnves6646lw" path="res://asset/art/gif/c02_红色梦境/红色背景剪影人物床(指天呼吸)/2.png" id="20_gwken"]
[ext_resource type="Texture2D" uid="uid://drxfl0efa72u" path="res://asset/art/gif/c02_红色梦境/红色背景剪影人物床(指天呼吸)/3.png" id="21_bvlmc"]
[ext_resource type="Texture2D" uid="uid://cbjhwihdhavsu" path="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/0.png" id="24_0k5we"]
[ext_resource type="Texture2D" uid="uid://b7jlo0bith1vd" path="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/1.png" id="25_g6qp8"]
[ext_resource type="Texture2D" uid="uid://weutdv750wv8" path="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/2.png" id="26_b20v1"]
[ext_resource type="Texture2D" uid="uid://dwean2yri24xl" path="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/3.png" id="27_nh0y5"]
[ext_resource type="Texture2D" uid="uid://rk47ys5r8atn" path="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/4.png" id="28_6h10p"]
[ext_resource type="Texture2D" uid="uid://du8xuuoxdbj3r" path="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/5.png" id="29_dhh4q"]
[resource]
animations = [{
@ -128,6 +134,29 @@ animations = [{
"speed": 30.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("24_0k5we")
}, {
"duration": 1.0,
"texture": ExtResource("25_g6qp8")
}, {
"duration": 1.0,
"texture": ExtResource("26_b20v1")
}, {
"duration": 1.0,
"texture": ExtResource("27_nh0y5")
}, {
"duration": 1.0,
"texture": ExtResource("28_6h10p")
}, {
"duration": 1.0,
"texture": ExtResource("29_dhh4q")
}],
"loop": true,
"name": &"小嘴巴说话_改",
"speed": 5.0
}, {
"frames": [{
"duration": 6.0,
"texture": ExtResource("1_a71jv")
}, {

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cbjhwihdhavsu"
path="res://.godot/imported/0.png-6c7c96513589ebe485202b1c9ecdb9f5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/0.png"
dest_files=["res://.godot/imported/0.png-6c7c96513589ebe485202b1c9ecdb9f5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7jlo0bith1vd"
path="res://.godot/imported/1.png-e2636b205caf249a0750248fb7568ecf.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/1.png"
dest_files=["res://.godot/imported/1.png-e2636b205caf249a0750248fb7568ecf.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://weutdv750wv8"
path="res://.godot/imported/2.png-fd75090538c084505b9ec7b87ffa7b82.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/2.png"
dest_files=["res://.godot/imported/2.png-fd75090538c084505b9ec7b87ffa7b82.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dwean2yri24xl"
path="res://.godot/imported/3.png-3aabd93dfc48466ef55ea15db08c7900.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/3.png"
dest_files=["res://.godot/imported/3.png-3aabd93dfc48466ef55ea15db08c7900.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://rk47ys5r8atn"
path="res://.godot/imported/4.png-98f6ef604a52fc56c9733d7048d4f612.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/4.png"
dest_files=["res://.godot/imported/4.png-98f6ef604a52fc56c9733d7048d4f612.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://du8xuuoxdbj3r"
path="res://.godot/imported/5.png-61c4a9f852711fb1b1c42e5937ec0405.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://asset/art/gif/c02_红色梦境/小嘴巴说话_改/5.png"
dest_files=["res://.godot/imported/5.png-61c4a9f852711fb1b1c42e5937ec0405.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@ -109,32 +109,32 @@ color_ramp = SubResource("GradientTexture1D_5cty7")
[node name="white" type="GPUParticles2D" parent="."]
amount = 150
process_material = SubResource("ParticleProcessMaterial_44bc2")
texture = ExtResource("1_lv5jb")
lifetime = 200.0
preprocess = 100.0
speed_scale = 2.0
speed_scale = 3.0
visibility_rect = Rect2(0, -130, -5000, 260)
trail_sections = 16
process_material = SubResource("ParticleProcessMaterial_44bc2")
metadata/_edit_vertical_guides_ = [-721.0]
[node name="grey" type="GPUParticles2D" parent="."]
amount = 200
process_material = SubResource("ParticleProcessMaterial_3xiox")
texture = ExtResource("2_wgqpb")
lifetime = 200.0
preprocess = 100.0
speed_scale = 2.0
speed_scale = 3.0
visibility_rect = Rect2(0, -130, -5000, 260)
trail_sections = 16
process_material = SubResource("ParticleProcessMaterial_3xiox")
[node name="black" type="GPUParticles2D" parent="."]
amount = 180
process_material = SubResource("ParticleProcessMaterial_wa8gc")
texture = ExtResource("3_abc1v")
lifetime = 200.0
preprocess = 100.0
speed_scale = 2.0
speed_scale = 3.0
visibility_rect = Rect2(0, -130, -5000, 260)
trail_enabled = true
trail_sections = 16
process_material = SubResource("ParticleProcessMaterial_wa8gc")

View File

@ -24,6 +24,7 @@ mouse_filter = 2
[node name="Sprite2D" type="Sprite2D" parent="TextureContainer"]
unique_name_in_owner = true
light_mask = 16
z_index = 100
position = Vector2(3.8147e-06, 3.8147e-06)
scale = Vector2(0.1, 0.1)
texture = ExtResource("2_y564w")

View File

@ -13,7 +13,14 @@ func _ready() -> void:
return
var eye_light
var eye_light_energy
func _on_ground_ready() -> void:
eye_light = $"../AmbientLayer/PointLight2D眼睛打光"
eye_light_energy = eye_light.energy
eye_light.energy = 0
var counter = $"../DeployLayer/空房间残留物/柜子"
# counter 默认在 s10 中 x 为 364.0
if ArchiveManager.get_global_value("c02_counter_pushed_out"):
@ -78,6 +85,8 @@ func _on_player_position_updated(global_pos: Vector2) -> void:
func _start_blinking():
var tween = create_tween()
tween.tween_callback(_blink_eye)
tween.tween_property(eye_light, "energy", 0, 0.1)
tween.tween_property(eye_light, "energy", eye_light_energy, 0.2)
tween.tween_interval(3.5)
tween.set_loops(10000)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=52 format=4 uid="uid://ryups1dnwdto"]
[gd_scene load_steps=56 format=4 uid="uid://ryups1dnwdto"]
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_o0m5w"]
[ext_resource type="Script" uid="uid://beqnywn1dlnax" path="res://scene/ground/scene/c02/s09_animation.gd" id="2_34a6f"]
@ -33,6 +33,7 @@
[ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="20_drmtd"]
[ext_resource type="SpriteFrames" uid="uid://dxu8w8d8oty65" path="res://asset/art/gif/c02_红色梦境/c02_红色梦境_frames.tres" id="21_kpfk1"]
[ext_resource type="Script" uid="uid://cuh2rwewoav3n" path="res://scene/ground/script/c02/s09_锅浮动.gd" id="26_0bx1l"]
[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="32_dv46s"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_rbu7p"]
shader = ExtResource("5_0fmdd")
@ -107,6 +108,9 @@ animations = [{
[sub_resource type="RectangleShape2D" id="RectangleShape2D_enajl"]
size = Vector2(65, 20)
[sub_resource type="OccluderPolygon2D" id="OccluderPolygon2D_dv46s"]
polygon = PackedVector2Array(4535, 37, 2806, 38, 115, 31, 95, 7, 115, -16, 150, 15, 2626, 24, 2840, 30, 4534, 32, 4548, 33, 4548, 36)
[sub_resource type="Gradient" id="Gradient_f0w8c"]
interpolation_mode = 2
offsets = PackedFloat32Array(0, 0.142857, 0.249216, 1)
@ -120,19 +124,19 @@ fill_to = Vector2(1, 0.143603)
[sub_resource type="Gradient" id="Gradient_4ua5q"]
interpolation_mode = 2
offsets = PackedFloat32Array(0, 0.0840336, 0.27451, 0.879444, 0.893354, 1)
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0.713726, 1, 1, 1, 1.1262, 1, 1, 1, 0.701961, 1, 1, 1, 0, 1, 1, 1, 0)
offsets = PackedFloat32Array(0, 0.179567, 0.44582, 0.727554, 0.893354, 1)
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1.1262, 1, 1, 1, 0.701961, 1, 1, 1, 0, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_f0w8c"]
gradient = SubResource("Gradient_4ua5q")
width = 3800
width = 500
height = 200
fill_from = Vector2(0, 0.902062)
fill_to = Vector2(1, 1)
fill_from = Vector2(0, 0.629845)
fill_to = Vector2(0.784238, 1)
[sub_resource type="Gradient" id="Gradient_4alth"]
interpolation_mode = 2
offsets = PackedFloat32Array(0, 0.592879)
offsets = PackedFloat32Array(0, 0.758514)
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 2.00392)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_dv46s"]
@ -154,6 +158,18 @@ height = 200
fill_from = Vector2(0, 0.5)
fill_to = Vector2(1, 0.5)
[sub_resource type="Gradient" id="Gradient_xkmad"]
offsets = PackedFloat32Array(0, 0.713622, 1)
colors = PackedColorArray(1, 1, 1, 1, 0.831373, 0.831373, 0.831373, 0, 1, 1, 1, 0)
[sub_resource type="GradientTexture2D" id="GradientTexture2D_xbdgx"]
gradient = SubResource("Gradient_xkmad")
width = 500
height = 200
fill = 1
fill_from = Vector2(0.5, 0.5)
fill_to = Vector2(1, 1)
[node name="S09" type="Node2D"]
metadata/_edit_horizontal_guides_ = [-120.0]
@ -191,7 +207,7 @@ metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
texture = ExtResource("6_87wfh")
[node name="眼睛背景" type="Sprite2D" parent="Ground/BGSprite2D" index="0"]
light_mask = 4
light_mask = 36
position = Vector2(2268, 0)
texture = ExtResource("7_76qsd")
@ -278,13 +294,13 @@ angle_range = 1.29
position = Vector2(1529, 125)
[node name="眼睛前景" type="Sprite2D" parent="Ground/BGSprite2D" index="2"]
light_mask = 4
light_mask = 36
z_index = 2
position = Vector2(2268, 0)
texture = ExtResource("7_wkhnu")
[node name="眨眼" type="AnimatedSprite2D" parent="Ground/BGSprite2D" index="3"]
light_mask = 5
light_mask = 36
z_index = 2
position = Vector2(1559, -51)
sprite_frames = ExtResource("21_kpfk1")
@ -310,7 +326,7 @@ target_portal = "right"
matched_sign_texture = null
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
position = Vector2(3750, 83)
position = Vector2(4361, 61)
matched_sign_texture = null
[node name="黑影" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
@ -321,7 +337,7 @@ texture = ExtResource("11_kpfk1")
[node name="麻绳" type="MeshInstance2D" parent="Ground/DeployLayer" index="3"]
unique_name_in_owner = true
light_mask = 33
light_mask = 0
z_index = 6
material = SubResource("ShaderMaterial_rbu7p")
position = Vector2(1480, 25)
@ -475,60 +491,43 @@ label_rotation = 0.5
[node name="嘴巴右侧" type="Node2D" parent="Ground/DeployLayer" index="6"]
position = Vector2(754, 12)
[node name="嘴巴说话" type="AnimatedSprite2D" parent="Ground/DeployLayer/嘴巴右侧"]
visible = false
position = Vector2(1888, -26)
rotation = 0.201929
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
[node name="嘴巴说话2" type="AnimatedSprite2D" parent="Ground/DeployLayer/嘴巴右侧"]
visible = false
position = Vector2(1822, -51)
rotation = -0.164957
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
speed_scale = 1.02
[node name="嘴巴说话3" type="AnimatedSprite2D" parent="Ground/DeployLayer/嘴巴右侧"]
position = Vector2(1246, -53)
rotation = 0.118359
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
speed_scale = 1.07
[node name="嘴巴说话4" type="AnimatedSprite2D" parent="Ground/DeployLayer/嘴巴右侧"]
position = Vector2(1217.4, -80.1638)
rotation = -0.171688
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
[node name="嘴巴说话5" type="AnimatedSprite2D" parent="Ground/DeployLayer/嘴巴右侧"]
position = Vector2(1437, -41)
rotation = -0.265883
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
speed_scale = 0.92
[node name="嘴巴说话6" type="AnimatedSprite2D" parent="Ground/DeployLayer/嘴巴右侧"]
position = Vector2(1562, -69)
rotation = -0.0407933
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
speed_scale = 0.9
[node name="嘴巴说话7" type="AnimatedSprite2D" parent="Ground/DeployLayer/嘴巴右侧"]
position = Vector2(1813, -71)
rotation = 0.154841
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
speed_scale = 0.97
[node name="小眼睛右侧" type="Node2D" parent="Ground/DeployLayer" index="7"]
@ -603,8 +602,8 @@ speed_scale = 1.05
position = Vector2(1728.3, -47.705)
rotation = -0.0375123
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
speed_scale = 0.97
[node name="小眼睁开6" type="AnimatedSprite2D" parent="Ground/DeployLayer/左侧小眼睛嘴巴"]
@ -627,8 +626,8 @@ speed_scale = 0.93
position = Vector2(1544, -56.9999)
rotation = 2.56032
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
speed_scale = 0.92
[node name="小眼睁开4" type="AnimatedSprite2D" parent="Ground/DeployLayer/左侧小眼睛嘴巴"]
@ -651,8 +650,8 @@ speed_scale = 0.92
position = Vector2(1257, -76)
rotation = 1.13545
sprite_frames = ExtResource("21_kpfk1")
animation = &"小嘴巴说话"
autoplay = "小嘴巴说话"
animation = &"小嘴巴说话_改"
autoplay = "小嘴巴说话_改"
speed_scale = 0.9
[node name="坍塌" type="Node2D" parent="Ground/DeployLayer" index="9"]
@ -734,7 +733,7 @@ position = Vector2(536, 1)
sprite_frames = SubResource("SpriteFrames_71bf1")
[node name="上下浮动的锅" type="Sprite2D" parent="Ground/DeployLayer" index="16"]
light_mask = 5
light_mask = 7
position = Vector2(2443, -101)
texture = ExtResource("15_4ua5q")
script = ExtResource("26_0bx1l")
@ -798,39 +797,89 @@ texture = ExtResource("10_ow44k")
position = Vector2(0, 21)
shape = SubResource("RectangleShape2D_enajl")
[node name="PointLight2D右侧空房间" type="PointLight2D" parent="Ground/AmbientLayer" index="0"]
[node name="LightOccluder2D" type="LightOccluder2D" parent="Ground/AmbientLayer" index="0"]
occluder = SubResource("OccluderPolygon2D_dv46s")
occluder_light_mask = 47
[node name="PointLight2D右侧空房间" type="PointLight2D" parent="Ground/AmbientLayer" index="1"]
position = Vector2(3810, -59)
energy = 0.1
blend_mode = 1
texture = SubResource("GradientTexture2D_26xv7")
[node name="PointLight2D红色打光" type="PointLight2D" parent="Ground/AmbientLayer" index="1"]
[node name="PointLight2D红色打光" type="PointLight2D" parent="Ground/AmbientLayer" index="2"]
position = Vector2(1325, -65)
energy = 1.84
energy = 0.2
range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_f0w8c")
[node name="PointLight2D红色下边压暗" type="PointLight2D" parent="Ground/AmbientLayer" index="2"]
position = Vector2(1277, 58)
[node name="PointLight2D红色边缘打光" type="PointLight2D" parent="Ground/AmbientLayer" index="3"]
position = Vector2(2863, -108)
energy = 0.6
range_item_cull_mask = 4
texture = ExtResource("16_k15h1")
[node name="PointLight2D红色下边压暗" type="PointLight2D" parent="Ground/AmbientLayer" index="4"]
position = Vector2(1274, 44)
energy = 0.6
blend_mode = 1
range_item_cull_mask = 4
texture = SubResource("GradientTexture2D_dv46s")
[node name="PointLight2D老鼠压暗" type="PointLight2D" parent="Ground/AmbientLayer" index="3"]
[node name="PointLight2D老鼠压暗" type="PointLight2D" parent="Ground/AmbientLayer" index="5"]
position = Vector2(260, -55)
energy = 1.8
energy = 0.2
blend_mode = 1
range_item_cull_mask = 36
texture = SubResource("GradientTexture2D_fgtii")
[node name="ParticalsAsh" parent="Ground/AmbientLayer" index="4" instance=ExtResource("7_4a1t6")]
[node name="PointLight2D眼睛打光" type="PointLight2D" parent="Ground/AmbientLayer" index="6"]
position = Vector2(1564, -54)
color = Color(0.955664, 0.335062, 0.346781, 1)
energy = 1.7
range_item_cull_mask = 5
texture = SubResource("GradientTexture2D_xbdgx")
[node name="PointLight2D锅打光" type="PointLight2D" parent="Ground/AmbientLayer" index="7"]
position = Vector2(2447, -69)
range_item_cull_mask = 2
texture = ExtResource("32_dv46s")
texture_scale = 1.5
[node name="PointLight2D独立打光" type="PointLight2D" parent="Ground/AmbientLayer" index="8"]
position = Vector2(2440, -45)
color = Color(0.854488, 0.195138, 0.240125, 1)
range_item_cull_mask = 32
texture = ExtResource("32_dv46s")
[node name="PointLight2D独立打光3" type="PointLight2D" parent="Ground/AmbientLayer" index="9"]
position = Vector2(669, -45)
color = Color(0.854488, 0.195138, 0.240125, 1)
energy = 1.9
range_item_cull_mask = 5
texture = ExtResource("32_dv46s")
[node name="PointLight2D独立打光4" type="PointLight2D" parent="Ground/AmbientLayer" index="10"]
position = Vector2(318, -36)
color = Color(0.854488, 0.195138, 0.240125, 1)
energy = 2.5
range_item_cull_mask = 5
texture = ExtResource("32_dv46s")
[node name="ParticalsAsh" parent="Ground/AmbientLayer" index="11" instance=ExtResource("7_4a1t6")]
position = Vector2(1091, 1)
[node name="ParticalsAsh2" parent="Ground/AmbientLayer" index="5" instance=ExtResource("7_4a1t6")]
[node name="ParticalsAsh2" parent="Ground/AmbientLayer" index="12" instance=ExtResource("7_4a1t6")]
position = Vector2(1715, 5)
[node name="ParticalsAsh3" parent="Ground/AmbientLayer" index="6" instance=ExtResource("7_4a1t6")]
position = Vector2(2574, -5)
[node name="ParticalsAsh3" parent="Ground/AmbientLayer" index="13" instance=ExtResource("7_4a1t6")]
position = Vector2(2622, -9)
[node name="ParticalsAsh5" parent="Ground/AmbientLayer" index="14" instance=ExtResource("7_4a1t6")]
position = Vector2(2782, -7)
[node name="ParticalsAsh4" parent="Ground/AmbientLayer" index="15" instance=ExtResource("7_4a1t6")]
position = Vector2(2987, -12)
[node name="MainPlayer" parent="Ground" index="4"]
position = Vector2(4461, 115)
@ -851,7 +900,7 @@ texture = ExtResource("6_nntqg")
position = Vector2(3421, 25)
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
points = PackedVector2Array(80, 150, 3850, 150)
points = PackedVector2Array(80, 150, 4500.93, 150)
[node name="DirectionalLight2D" parent="Ground" index="8"]
visible = false

View File

@ -28,6 +28,7 @@ var catty_head: Pickable2D
var door: Portal2D
var portal: Portal2D
func _on_ground_ready() -> void:
xiao_chan_sprite = $"../DeployLayer/大头小蝉"
xiao_chan_interactable = $"../DeployLayer/Interactable小蝉"
@ -175,11 +176,7 @@ func after_counter_moved():
func _on_pick_catty_head() -> void:
# 进过瞎子卧室后,通道关闭
if not ArchiveManager.get_global_value("c02_the_blind_room_unlocked"):
portal.enabled = true
if not SceneManager.has_prop("prop_无头小猫玩具"):
return
if SceneManager.has_prop("prop_无头小猫玩具"):
var inspector = SceneManager.get_inspector()
await inspector.quit_and_hidden
# 将小猫头与身子合并
@ -192,3 +189,6 @@ func _on_pick_catty_head() -> void:
await sprite.animation_finished
sprite.visible = false
SceneManager.enable_prop_item("prop_小猫玩具完整")
# 进过瞎子卧室后,通道关闭
if not ArchiveManager.get_global_value("c02_the_blind_room_unlocked"):
portal.enabled = true

View File

@ -194,12 +194,24 @@ mute_when_interacted = false
visible = false
light_mask = 32
z_index = 10
position = Vector2(291, -7.15256e-07)
position = Vector2(282, -7.15256e-07)
sprite_frames = ExtResource("15_2j5dr")
animation = &"小猫玩具合并动画"
[node name="Sprite2D" type="Sprite2D" parent="Ground/DeployLayer/拼接小猫玩具"]
[node name="Sprite2D" type="TextureRect" parent="Ground/DeployLayer/拼接小猫玩具"]
show_behind_parent = true
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -339.5
offset_top = -171.5
offset_right = 224.5
offset_bottom = 68.5
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 0
texture = ExtResource("14_e24j0")
[node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/拼接小猫玩具"]

View File

@ -30,10 +30,10 @@ func _on_area_entered(_body):
label.visible = true
await get_tree().create_timer(randf()).timeout
var tween = create_tween()
tween.tween_property(label, "position:y", 3.0, 0.5).set_trans(Tween.TRANS_BOUNCE)
tween.tween_property(label, "position:y", 0.0, 0.5).set_trans(Tween.TRANS_BOUNCE)
tween.set_loops(1000000)
tween.tween_property(label, "position:y", 3.0, 0.6).set_trans(Tween.TRANS_BOUNCE)
tween.tween_property(label, "position:y", 0.0, 0.6).set_trans(Tween.TRANS_BOUNCE)
tween.set_loops(10)
create_tween().tween_property(label, "modulate:a", 0.0, 8.0)
func _update_text():
label.text = "[pulse ease=2.0 freq=2 color=#000000cf] " + tr(key)

View File

@ -156,7 +156,7 @@ func _play_animation() -> void:
sprite.offset = current_animation_config["foot_offset"]
sprite.scale = current_animation_config["scale"]
# reset the os label position on animation changed.
_reset_os_and_shadow_position()
_reset_os_and_light_position()
# 检查动画基础偏移
check_foot_offset()
# 进一步偏移+播放动画
@ -364,13 +364,15 @@ func set_facing_direction(direction: Vector2) -> void:
# animation_shadow_polygons[animation] = coords_dict
func _reset_os_and_shadow_position():
func _reset_os_and_light_position():
if sprite and sprite.animation:
# reset the os label position
# var texture = sprite.sprite_frames.get_frame_texture(sprite.animation, 0) as Texture2D
# var size = texture.get_size()
# os_pivot.position.y = -size.y * 0.5 * sprite.scale.x
os_pivot.position.y = -abs(current_animation_config["os_height"])
light.position.y = -abs(current_animation_config["light_height"])
catty_light.position.y = -abs(current_animation_config["light_height"])
# reset the shadow position
# shadow_y = size.y * 0.5

View File

@ -21,6 +21,7 @@ var ANIMATION_CONFIG = {
"run_footstep": 7.0 / 10.0 / 2.0,
# 内心 os 时dialogue 的高度
"os_height": 120.0,
"light_height": 60.0,
# 人物脚底 offset吕萍为 0高 200px足底在 100px 处
"foot_offset": Vector2(0, -100),
MOVEMENT_IDLE: [&"c00_吕萍_idle_left", &"c00_吕萍_idle_right"],
@ -54,6 +55,7 @@ var ANIMATION_CONFIG = {
"walk_footstep": 0.7,
"run_footstep": 0.7,
"os_height": 50.0,
"light_height": 20.0,
# 人物脚底 offset吕萍为 0高 200px足底在 100px 处
# 吕萍爬行高 59px
"foot_offset": Vector2(0, -23.5),
@ -71,6 +73,7 @@ var ANIMATION_CONFIG = {
"walk_footstep": 0.5,
"run_footstep": 0.5,
"os_height": 120.0,
"light_height": 60.0,
# 人物脚底 offset吕萍为 0高 200px足底在 100px 处
"foot_offset": Vector2(0, -100),
MOVEMENT_IDLE: [&"c00_吕萍带小猫_idle_left", &"c00_吕萍带小猫_idle_right"],
@ -86,6 +89,7 @@ var ANIMATION_CONFIG = {
"walk_footstep": 0.5,
"run_footstep": 0.5,
"os_height": 120.0,
"light_height": 65.0,
# 人物脚底 offset吕萍为 0高 200px足底在 100px 处
"foot_offset": Vector2(22.5, -101),
MOVEMENT_IDLE: [&"c00_吕萍_拉箱子呼吸_镜像", &"c00_吕萍_拉箱子呼吸_镜像"],
@ -115,6 +119,7 @@ var ANIMATION_CONFIG = {
"walk_footstep": 0.5,
"run_footstep": 7.0 / 10.0 / 2.0,
"os_height": 70.0,
"light_height": 40.0,
# 如果使用 auto就会自动以最低点为基准
# "auto_foot_offset": true,
# 人物脚底 offset吕萍为 0高 200px足底在 100px 处
@ -145,6 +150,7 @@ var ANIMATION_CONFIG = {
"walk_footstep": 0.5,
"run_footstep": 7.0 / 10.0 / 2.0,
"os_height": 70.0,
"light_height": 20.0,
# 如果使用 auto就会自动以最低点为基准
# "auto_foot_offset": true,
"foot_offset": Vector2(0, -68.0),