c01s06猫鼠游戏浓雾效果;结束后传送下一场景
@ -13,7 +13,7 @@ class_name ProAnimatedSprite2D extends AnimatedSprite2D
|
|||||||
light2d.blend_mode = Light2D.BLEND_MODE_ADD
|
light2d.blend_mode = Light2D.BLEND_MODE_ADD
|
||||||
else:
|
else:
|
||||||
light2d.blend_mode = Light2D.BLEND_MODE_SUB
|
light2d.blend_mode = Light2D.BLEND_MODE_SUB
|
||||||
light_energy = val
|
light_energy = val * modulate.a
|
||||||
|
|
||||||
const ACTION_CONFIG = {
|
const ACTION_CONFIG = {
|
||||||
"animation_intro": "", "intro_loop": 1, "animation_wait_time": 0.0, "animation_next": ""
|
"animation_intro": "", "intro_loop": 1, "animation_wait_time": 0.0, "animation_next": ""
|
||||||
@ -76,6 +76,7 @@ func _load_config():
|
|||||||
if sprite_frames and sprite_frames.has_animation(move_config.animation):
|
if sprite_frames and sprite_frames.has_animation(move_config.animation):
|
||||||
animation_velocity[move_config.animation] = move_config.velocity
|
animation_velocity[move_config.animation] = move_config.velocity
|
||||||
|
|
||||||
|
|
||||||
func _on_frame_changed():
|
func _on_frame_changed():
|
||||||
if light_energy == 0.0:
|
if light_energy == 0.0:
|
||||||
return
|
return
|
||||||
@ -83,6 +84,8 @@ func _on_frame_changed():
|
|||||||
if not texture:
|
if not texture:
|
||||||
return
|
return
|
||||||
light2d.texture = texture
|
light2d.texture = texture
|
||||||
|
light_energy = light_energy * modulate.a
|
||||||
|
|
||||||
|
|
||||||
func _reset_loop(intro: String):
|
func _reset_loop(intro: String):
|
||||||
for c in action_configs:
|
for c in action_configs:
|
||||||
@ -121,7 +124,16 @@ func _on_animation_start():
|
|||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
if Engine.is_editor_hint() or not velocity or not is_playing():
|
if Engine.is_editor_hint() or not velocity or not is_playing():
|
||||||
return
|
return
|
||||||
position += velocity * delta
|
if flip_h:
|
||||||
|
position.x -= velocity.x * delta
|
||||||
|
else:
|
||||||
|
position.x += velocity.x * delta
|
||||||
|
if not velocity.y:
|
||||||
|
return
|
||||||
|
if flip_v:
|
||||||
|
position.y -= velocity.y * delta
|
||||||
|
else:
|
||||||
|
position.y += velocity.y * delta
|
||||||
|
|
||||||
|
|
||||||
# temporary set velocity
|
# temporary set velocity
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_resource type="SpriteFrames" load_steps=164 format=3 uid="uid://c6okvaeemoodq"]
|
[gd_resource type="SpriteFrames" load_steps=166 format=3 uid="uid://c6okvaeemoodq"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ciai4wast4i2a" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】回头/0.png" id="1_0n0k8"]
|
[ext_resource type="Texture2D" uid="uid://ciai4wast4i2a" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】回头/0.png" id="1_0n0k8"]
|
||||||
[ext_resource type="Texture2D" uid="uid://pabw11j5ifdw" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-2】画画/0.png" id="1_3rkvk"]
|
[ext_resource type="Texture2D" uid="uid://pabw11j5ifdw" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-2】画画/0.png" id="1_3rkvk"]
|
||||||
@ -79,7 +79,9 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://c8wwan5g0w8e7" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/2.png" id="9_w45v0"]
|
[ext_resource type="Texture2D" uid="uid://c8wwan5g0w8e7" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/2.png" id="9_w45v0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b12t68n036k5" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/3.png" id="10_mqmhd"]
|
[ext_resource type="Texture2D" uid="uid://b12t68n036k5" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/3.png" id="10_mqmhd"]
|
||||||
[ext_resource type="Texture2D" uid="uid://5foo5obbirtv" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/4.png" id="11_5rd7h"]
|
[ext_resource type="Texture2D" uid="uid://5foo5obbirtv" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/4.png" id="11_5rd7h"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dorexf3x6eqt8" path="res://asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/0.png" id="12_ld6on"]
|
||||||
[ext_resource type="Texture2D" uid="uid://drlk2k1hdfgi4" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/5.png" id="12_ohj4k"]
|
[ext_resource type="Texture2D" uid="uid://drlk2k1hdfgi4" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/5.png" id="12_ohj4k"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cesoun0hgdaws" path="res://asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/1.png" id="13_hf3q4"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ctydwkglgba3x" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/6.png" id="13_mvm5i"]
|
[ext_resource type="Texture2D" uid="uid://ctydwkglgba3x" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/6.png" id="13_mvm5i"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bnk72w6b3ammi" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/7.png" id="14_th4f0"]
|
[ext_resource type="Texture2D" uid="uid://bnk72w6b3ammi" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/7.png" id="14_th4f0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c26rwvwhwko3e" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/8.png" id="15_0nnpx"]
|
[ext_resource type="Texture2D" uid="uid://c26rwvwhwko3e" path="res://asset/art/gif/c01_孤儿院围墙/【墙上小孩猫影子】变身/8.png" id="15_0nnpx"]
|
||||||
@ -167,42 +169,42 @@
|
|||||||
[resource]
|
[resource]
|
||||||
animations = [{
|
animations = [{
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 3.0,
|
"duration": 7.0,
|
||||||
"texture": ExtResource("1_ppkaj")
|
"texture": ExtResource("1_ppkaj")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 7.0,
|
||||||
"texture": ExtResource("2_lkyps")
|
"texture": ExtResource("2_lkyps")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 7.0,
|
||||||
"texture": ExtResource("3_phrcs")
|
"texture": ExtResource("3_phrcs")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 7.0,
|
||||||
"texture": ExtResource("4_8ckwd")
|
"texture": ExtResource("4_8ckwd")
|
||||||
}, {
|
}, {
|
||||||
"duration": 6.0,
|
"duration": 7.0,
|
||||||
"texture": ExtResource("5_upnvy")
|
"texture": ExtResource("5_upnvy")
|
||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": false,
|
||||||
"name": &"【单残疾小孩】抓住",
|
"name": &"【单残疾小孩】抓住",
|
||||||
"speed": 30.0
|
"speed": 30.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("1_uv4ft")
|
"texture": ExtResource("1_uv4ft")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("2_i110w")
|
"texture": ExtResource("2_i110w")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("3_j2srm")
|
"texture": ExtResource("3_j2srm")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("4_tr405")
|
"texture": ExtResource("4_tr405")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("5_ooobw")
|
"texture": ExtResource("5_ooobw")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("6_drfic")
|
"texture": ExtResource("6_drfic")
|
||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
@ -210,40 +212,40 @@ animations = [{
|
|||||||
"speed": 30.0
|
"speed": 30.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("7_1njnw")
|
"texture": ExtResource("7_1njnw")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("8_yoixk")
|
"texture": ExtResource("8_yoixk")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("9_w45v0")
|
"texture": ExtResource("9_w45v0")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("10_mqmhd")
|
"texture": ExtResource("10_mqmhd")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("11_5rd7h")
|
"texture": ExtResource("11_5rd7h")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("12_ohj4k")
|
"texture": ExtResource("12_ohj4k")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("13_mvm5i")
|
"texture": ExtResource("13_mvm5i")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("14_th4f0")
|
"texture": ExtResource("14_th4f0")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("15_0nnpx")
|
"texture": ExtResource("15_0nnpx")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("16_gqvxl")
|
"texture": ExtResource("16_gqvxl")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("17_r2ypr")
|
"texture": ExtResource("17_r2ypr")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 4.0,
|
||||||
"texture": ExtResource("18_h1tve")
|
"texture": ExtResource("18_h1tve")
|
||||||
}],
|
}],
|
||||||
"loop": false,
|
"loop": false,
|
||||||
@ -251,22 +253,22 @@ animations = [{
|
|||||||
"speed": 30.0
|
"speed": 30.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("24_gjuvo")
|
"texture": ExtResource("24_gjuvo")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("25_jnic7")
|
"texture": ExtResource("25_jnic7")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("26_os8pk")
|
"texture": ExtResource("26_os8pk")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("27_5d871")
|
"texture": ExtResource("27_5d871")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("28_emcgp")
|
"texture": ExtResource("28_emcgp")
|
||||||
}, {
|
}, {
|
||||||
"duration": 3.0,
|
"duration": 5.0,
|
||||||
"texture": ExtResource("29_0n0ds")
|
"texture": ExtResource("29_0n0ds")
|
||||||
}],
|
}],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
@ -767,6 +769,17 @@ animations = [{
|
|||||||
"speed": 30.0
|
"speed": 30.0
|
||||||
}, {
|
}, {
|
||||||
"frames": [{
|
"frames": [{
|
||||||
|
"duration": 15.0,
|
||||||
|
"texture": ExtResource("12_ld6on")
|
||||||
|
}, {
|
||||||
|
"duration": 15.0,
|
||||||
|
"texture": ExtResource("13_hf3q4")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"【胖小孩背着残疾小孩】胖子独自呼吸",
|
||||||
|
"speed": 30.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
"duration": 3.0,
|
"duration": 3.0,
|
||||||
"texture": ExtResource("115_l68hn")
|
"texture": ExtResource("115_l68hn")
|
||||||
}],
|
}],
|
||||||
|
BIN
asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧.gif
Normal file
After Width: | Height: | Size: 2.6 KiB |
14
asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧.gif.import
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="gif.animated.texture.plugin"
|
||||||
|
type="SpriteFrames"
|
||||||
|
uid="uid://bpgdt83fesdv5"
|
||||||
|
path="res://.godot/imported/【单胖子】呼吸帧.gif-31a2327dd37521a2acdeb645f6128210.tres"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧.gif"
|
||||||
|
dest_files=["res://.godot/imported/【单胖子】呼吸帧.gif-31a2327dd37521a2acdeb645f6128210.tres"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
BIN
asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/0.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
34
asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/0.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dorexf3x6eqt8"
|
||||||
|
path="res://.godot/imported/0.png-c948cd4a194d5e266ecc5a99df9c9ad7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/0.png"
|
||||||
|
dest_files=["res://.godot/imported/0.png-c948cd4a194d5e266ecc5a99df9c9ad7.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
|
BIN
asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/1.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
34
asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/1.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cesoun0hgdaws"
|
||||||
|
path="res://.godot/imported/1.png-1971a88c6753920cb4b594462c176ae9.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c01_孤儿院围墙/【单胖子】呼吸帧/1.png"
|
||||||
|
dest_files=["res://.godot/imported/1.png-1971a88c6753920cb4b594462c176ae9.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
|
BIN
asset/art/tool/blury_point_light.webp
Normal file
After Width: | Height: | Size: 28 KiB |
34
asset/art/tool/blury_point_light.webp.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ck8x2mdcpdsht"
|
||||||
|
path="res://.godot/imported/blury_point_light.webp-81f1823538997ed57c97ef69694c5db0.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/tool/blury_point_light.webp"
|
||||||
|
dest_files=["res://.godot/imported/blury_point_light.webp-81f1823538997ed57c97ef69694c5db0.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
|
38
asset/art/tool/inverted_alpha_algo.gd
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
extends Sprite2D
|
||||||
|
|
||||||
|
@export var export_dir = "res://asset/art/ui/inverted_point_light_masks/"
|
||||||
|
@export var frames = 24
|
||||||
|
@export var frame_texture_size = Vector2(1000, 600)
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if texture and export_dir:
|
||||||
|
var image = texture.get_image()
|
||||||
|
if image:
|
||||||
|
if DirAccess.dir_exists_absolute(export_dir):
|
||||||
|
DirAccess.remove_absolute(export_dir)
|
||||||
|
DirAccess.make_dir_recursive_absolute(export_dir)
|
||||||
|
for i in range(frames):
|
||||||
|
var frame_image = Image.create_empty(
|
||||||
|
frame_texture_size.x, frame_texture_size.y, false, Image.FORMAT_RGBA8
|
||||||
|
)
|
||||||
|
frame_image.fill(Color.WHITE)
|
||||||
|
# 最后一张图片不需要处理,保持全白
|
||||||
|
if i < frames - 1:
|
||||||
|
var i_scale = cubic_interpolate(1.0, 0.0, 1.0, 0.0, float(i) / frames)
|
||||||
|
var i_len = int(frame_texture_size.y * i_scale)
|
||||||
|
image.resize(i_len, i_len, Image.INTERPOLATE_LANCZOS)
|
||||||
|
var i_offset = (
|
||||||
|
Vector2(frame_texture_size.x - i_len, frame_texture_size.y - i_len) * 0.5
|
||||||
|
)
|
||||||
|
for y in range(i_len):
|
||||||
|
for x in range(i_len):
|
||||||
|
var color = image.get_pixel(x, y)
|
||||||
|
frame_image.set_pixel(
|
||||||
|
x + i_offset.x, y + i_offset.y, Color(1.0, 1.0, 1.0, 1.0 - color.r)
|
||||||
|
)
|
||||||
|
var export_path = export_dir + str(i).pad_zeros(3) + ".png"
|
||||||
|
frame_image.save_png(export_path)
|
||||||
|
print("Exported to: " + export_path)
|
||||||
|
else:
|
||||||
|
print("No image found in texture")
|
9
asset/art/tool/inverted_alpha_algo.tscn
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://4wada1me2vj7"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="1_oxfr6"]
|
||||||
|
[ext_resource type="Script" path="res://asset/art/tool/inverted_alpha_algo.gd" id="2_kvma3"]
|
||||||
|
|
||||||
|
[node name="AlphaConverter" type="Sprite2D"]
|
||||||
|
position = Vector2(-1, 3)
|
||||||
|
texture = ExtResource("1_oxfr6")
|
||||||
|
script = ExtResource("2_kvma3")
|
BIN
asset/art/ui/inverted_point_light_masks/000.png
Normal file
After Width: | Height: | Size: 81 KiB |
34
asset/art/ui/inverted_point_light_masks/000.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bmlhwa80lywa3"
|
||||||
|
path="res://.godot/imported/000.png-c2347e8aafb889b5f4281a8c2c3cf3cb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/000.png"
|
||||||
|
dest_files=["res://.godot/imported/000.png-c2347e8aafb889b5f4281a8c2c3cf3cb.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
|
BIN
asset/art/ui/inverted_point_light_masks/001.png
Normal file
After Width: | Height: | Size: 87 KiB |
34
asset/art/ui/inverted_point_light_masks/001.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://42trxuhnubhw"
|
||||||
|
path="res://.godot/imported/001.png-b4395e80af7745faf899a889fcd348cc.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/001.png"
|
||||||
|
dest_files=["res://.godot/imported/001.png-b4395e80af7745faf899a889fcd348cc.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
|
BIN
asset/art/ui/inverted_point_light_masks/002.png
Normal file
After Width: | Height: | Size: 89 KiB |
34
asset/art/ui/inverted_point_light_masks/002.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cadj4kbscfani"
|
||||||
|
path="res://.godot/imported/002.png-4bba219980b7006d5aa3a6bb1487bbb8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/002.png"
|
||||||
|
dest_files=["res://.godot/imported/002.png-4bba219980b7006d5aa3a6bb1487bbb8.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
|
BIN
asset/art/ui/inverted_point_light_masks/003.png
Normal file
After Width: | Height: | Size: 89 KiB |
34
asset/art/ui/inverted_point_light_masks/003.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://3sml8l5k0wpe"
|
||||||
|
path="res://.godot/imported/003.png-3a8e48a212f79a88b623bb504e9c496d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/003.png"
|
||||||
|
dest_files=["res://.godot/imported/003.png-3a8e48a212f79a88b623bb504e9c496d.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
|
BIN
asset/art/ui/inverted_point_light_masks/004.png
Normal file
After Width: | Height: | Size: 87 KiB |
34
asset/art/ui/inverted_point_light_masks/004.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dxcdwhem7hp4m"
|
||||||
|
path="res://.godot/imported/004.png-e20e8e82ca0a267e37dfc2baf8c4ec05.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/004.png"
|
||||||
|
dest_files=["res://.godot/imported/004.png-e20e8e82ca0a267e37dfc2baf8c4ec05.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
|
BIN
asset/art/ui/inverted_point_light_masks/005.png
Normal file
After Width: | Height: | Size: 84 KiB |
34
asset/art/ui/inverted_point_light_masks/005.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://qtgxbebqaj1e"
|
||||||
|
path="res://.godot/imported/005.png-49a87cd5e64ada63cc1f8ca0e9cfeba8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/005.png"
|
||||||
|
dest_files=["res://.godot/imported/005.png-49a87cd5e64ada63cc1f8ca0e9cfeba8.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
|
BIN
asset/art/ui/inverted_point_light_masks/006.png
Normal file
After Width: | Height: | Size: 79 KiB |
34
asset/art/ui/inverted_point_light_masks/006.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cku06prhx2v36"
|
||||||
|
path="res://.godot/imported/006.png-fd9d3a60ef15b567959e227b63536575.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/006.png"
|
||||||
|
dest_files=["res://.godot/imported/006.png-fd9d3a60ef15b567959e227b63536575.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
|
BIN
asset/art/ui/inverted_point_light_masks/007.png
Normal file
After Width: | Height: | Size: 74 KiB |
34
asset/art/ui/inverted_point_light_masks/007.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cy62xq8rhoj3f"
|
||||||
|
path="res://.godot/imported/007.png-551735a9720420c1c6d695b65eef4931.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/007.png"
|
||||||
|
dest_files=["res://.godot/imported/007.png-551735a9720420c1c6d695b65eef4931.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
|
BIN
asset/art/ui/inverted_point_light_masks/008.png
Normal file
After Width: | Height: | Size: 68 KiB |
34
asset/art/ui/inverted_point_light_masks/008.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b87hfcnkn05h4"
|
||||||
|
path="res://.godot/imported/008.png-f7acbfa506fefb9c4b533f1fddc52a5d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/008.png"
|
||||||
|
dest_files=["res://.godot/imported/008.png-f7acbfa506fefb9c4b533f1fddc52a5d.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
|
BIN
asset/art/ui/inverted_point_light_masks/009.png
Normal file
After Width: | Height: | Size: 62 KiB |
34
asset/art/ui/inverted_point_light_masks/009.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://r3dm28fc0e83"
|
||||||
|
path="res://.godot/imported/009.png-2bfd785a40655e18745331f434062287.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/009.png"
|
||||||
|
dest_files=["res://.godot/imported/009.png-2bfd785a40655e18745331f434062287.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
|
BIN
asset/art/ui/inverted_point_light_masks/010.png
Normal file
After Width: | Height: | Size: 56 KiB |
34
asset/art/ui/inverted_point_light_masks/010.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b3supcynj63qx"
|
||||||
|
path="res://.godot/imported/010.png-08e291c94292e0823b72ea9b69da72cd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/010.png"
|
||||||
|
dest_files=["res://.godot/imported/010.png-08e291c94292e0823b72ea9b69da72cd.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
|
BIN
asset/art/ui/inverted_point_light_masks/011.png
Normal file
After Width: | Height: | Size: 50 KiB |
34
asset/art/ui/inverted_point_light_masks/011.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://brfiay0goejgl"
|
||||||
|
path="res://.godot/imported/011.png-6b9afaf4cd9e83a5fbde5163e3764716.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/011.png"
|
||||||
|
dest_files=["res://.godot/imported/011.png-6b9afaf4cd9e83a5fbde5163e3764716.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
|
BIN
asset/art/ui/inverted_point_light_masks/012.png
Normal file
After Width: | Height: | Size: 43 KiB |
34
asset/art/ui/inverted_point_light_masks/012.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bac4uqqp1ktki"
|
||||||
|
path="res://.godot/imported/012.png-c02f390a7ad315740052cc03183bed50.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/012.png"
|
||||||
|
dest_files=["res://.godot/imported/012.png-c02f390a7ad315740052cc03183bed50.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
|
BIN
asset/art/ui/inverted_point_light_masks/013.png
Normal file
After Width: | Height: | Size: 36 KiB |
34
asset/art/ui/inverted_point_light_masks/013.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://h1mdv3ygc6dd"
|
||||||
|
path="res://.godot/imported/013.png-cf9aa71263690d4f68931b35cc8dc689.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/013.png"
|
||||||
|
dest_files=["res://.godot/imported/013.png-cf9aa71263690d4f68931b35cc8dc689.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
|
BIN
asset/art/ui/inverted_point_light_masks/014.png
Normal file
After Width: | Height: | Size: 30 KiB |
34
asset/art/ui/inverted_point_light_masks/014.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://br4ry5glivh5g"
|
||||||
|
path="res://.godot/imported/014.png-23622a8c93e8e4a2f4abe84070560c36.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/014.png"
|
||||||
|
dest_files=["res://.godot/imported/014.png-23622a8c93e8e4a2f4abe84070560c36.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
|
BIN
asset/art/ui/inverted_point_light_masks/015.png
Normal file
After Width: | Height: | Size: 25 KiB |
34
asset/art/ui/inverted_point_light_masks/015.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://x7nvm37rxo62"
|
||||||
|
path="res://.godot/imported/015.png-538aaa8bb4219615eda6206fd1e805f8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/015.png"
|
||||||
|
dest_files=["res://.godot/imported/015.png-538aaa8bb4219615eda6206fd1e805f8.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
|
BIN
asset/art/ui/inverted_point_light_masks/016.png
Normal file
After Width: | Height: | Size: 20 KiB |
34
asset/art/ui/inverted_point_light_masks/016.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cmhqnt63xsw27"
|
||||||
|
path="res://.godot/imported/016.png-fad599461025b9731705d120296740d2.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/016.png"
|
||||||
|
dest_files=["res://.godot/imported/016.png-fad599461025b9731705d120296740d2.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
|
BIN
asset/art/ui/inverted_point_light_masks/017.png
Normal file
After Width: | Height: | Size: 16 KiB |
34
asset/art/ui/inverted_point_light_masks/017.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bpktur1e0dtb1"
|
||||||
|
path="res://.godot/imported/017.png-f2dd6e4e6bf72aa6fce1af9503370c81.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/017.png"
|
||||||
|
dest_files=["res://.godot/imported/017.png-f2dd6e4e6bf72aa6fce1af9503370c81.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
|
BIN
asset/art/ui/inverted_point_light_masks/018.png
Normal file
After Width: | Height: | Size: 12 KiB |
34
asset/art/ui/inverted_point_light_masks/018.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b62a8q5e4foo"
|
||||||
|
path="res://.godot/imported/018.png-b718bbed3cd805d14b50f02ad0fc54b7.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/018.png"
|
||||||
|
dest_files=["res://.godot/imported/018.png-b718bbed3cd805d14b50f02ad0fc54b7.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
|
BIN
asset/art/ui/inverted_point_light_masks/019.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
34
asset/art/ui/inverted_point_light_masks/019.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cdcgyjj1w3j8o"
|
||||||
|
path="res://.godot/imported/019.png-3ea65ff107fe5ba48d856c33e2a5d202.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/019.png"
|
||||||
|
dest_files=["res://.godot/imported/019.png-3ea65ff107fe5ba48d856c33e2a5d202.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
|
BIN
asset/art/ui/inverted_point_light_masks/020.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
34
asset/art/ui/inverted_point_light_masks/020.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dqwvsbj2savhv"
|
||||||
|
path="res://.godot/imported/020.png-54dc79b92f5c0d5f32ecebad12b13d26.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/020.png"
|
||||||
|
dest_files=["res://.godot/imported/020.png-54dc79b92f5c0d5f32ecebad12b13d26.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
|
BIN
asset/art/ui/inverted_point_light_masks/021.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
34
asset/art/ui/inverted_point_light_masks/021.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dy488fl2ijtb4"
|
||||||
|
path="res://.godot/imported/021.png-ccdb969051da06de301cee43087c071a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/021.png"
|
||||||
|
dest_files=["res://.godot/imported/021.png-ccdb969051da06de301cee43087c071a.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
|
BIN
asset/art/ui/inverted_point_light_masks/022.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
34
asset/art/ui/inverted_point_light_masks/022.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bo2ee2uhsp6l2"
|
||||||
|
path="res://.godot/imported/022.png-30f3590c19a2af9ca4fd2be3aea441fb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/022.png"
|
||||||
|
dest_files=["res://.godot/imported/022.png-30f3590c19a2af9ca4fd2be3aea441fb.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
|
BIN
asset/art/ui/inverted_point_light_masks/023.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
34
asset/art/ui/inverted_point_light_masks/023.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://gxl7kkkkq5vd"
|
||||||
|
path="res://.godot/imported/023.png-bac08ab4fcf040ae1388759a9cce92b3.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/ui/inverted_point_light_masks/023.png"
|
||||||
|
dest_files=["res://.godot/imported/023.png-bac08ab4fcf040ae1388759a9cce92b3.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
|
@ -93,6 +93,6 @@
|
|||||||
|
|
||||||
~ c01_s06_猫鼠游戏
|
~ c01_s06_猫鼠游戏
|
||||||
小胖孩: (台词设计)开始咯!5...4... [#wait=2] [ID:c01_s06_谈论鬼差7]
|
小胖孩: (台词设计)开始咯!5...4... [#wait=2] [ID:c01_s06_谈论鬼差7]
|
||||||
小蝶: (台词设计)啊! [#wait=1] [ID:c01_s06_谈论鬼差8]
|
小蝶: 啊! [#wait=0.5] [ID:c01_s06_谈论鬼差8]
|
||||||
小胖孩: (台词设计)3...2...1... [#wait=3] [ID:c01_s06_谈论鬼差9]
|
小胖孩: (台词设计)3...2...1... [#wait=3] [ID:c01_s06_谈论鬼差9]
|
||||||
=> END
|
=> END
|
||||||
|
43
asset/shader/cloud.gdshader
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
shader_type canvas_item;
|
||||||
|
|
||||||
|
// source: https://godotshaders.com/shader/smooth-2d-cloud/
|
||||||
|
// inspired by: https://www.youtube.com/watch?v=8OrvIQUFptA&t=2s
|
||||||
|
uniform sampler2D perlin_noise: repeat_enable;
|
||||||
|
uniform sampler2D cell_noise: repeat_enable;
|
||||||
|
|
||||||
|
#define pow2(x) (x * x)
|
||||||
|
//#define iResolution 1.0/SCREEN_PIXEL_SIZE
|
||||||
|
|
||||||
|
const int samples = 35;
|
||||||
|
const float sigma = float(samples) * 0.25;
|
||||||
|
|
||||||
|
float gaussian(vec2 i) {
|
||||||
|
return 1.0 / (2.0 * PI * pow2(sigma)) * exp(-((pow2(i.x) + pow2(i.y)) / (2.0 * pow2(sigma))));
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 blur(sampler2D sp, vec2 uv, vec2 scale) {
|
||||||
|
vec3 col = vec3(0.0);
|
||||||
|
float accum = 0.0;
|
||||||
|
float weight;
|
||||||
|
vec2 offset;
|
||||||
|
for (int x = - samples >> 1 ; x < samples >> 1; ++x) {
|
||||||
|
for (int y = -samples >> 1; y < samples >> 1; ++y) {
|
||||||
|
offset = vec2(float(x), float(y));
|
||||||
|
weight = gaussian(offset);
|
||||||
|
col += texture(sp, uv + scale * offset).rgb * weight;
|
||||||
|
accum += weight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return col / accum;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fragment() {
|
||||||
|
vec2 uv1 = vec2(UV.x + TIME * .02, UV.y + TIME * .005);
|
||||||
|
vec2 uv2 = vec2(UV.x + TIME * .03, UV.y + TIME * .005);
|
||||||
|
float noise1 = blur(perlin_noise, uv1, SCREEN_PIXEL_SIZE).r;
|
||||||
|
float noise2 = blur(cell_noise, uv2, SCREEN_PIXEL_SIZE).r;
|
||||||
|
|
||||||
|
float noise = smoothstep(noise1 * noise2 * 1.0, .0, .15);
|
||||||
|
|
||||||
|
COLOR.a *= noise;
|
||||||
|
}
|
6
asset/shader/cloud.tres
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://7wllwmfkfvsb"]
|
||||||
|
|
||||||
|
[ext_resource type="Shader" path="res://asset/shader/fog.gdshader" id="1_0axjk"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
shader = ExtResource("1_0axjk")
|
@ -1,6 +1,7 @@
|
|||||||
shader_type canvas_item;
|
shader_type canvas_item;
|
||||||
|
|
||||||
uniform vec4 base_color : source_color;
|
uniform sampler2D noise: repeat_enable;
|
||||||
|
//uniform vec4 base_color : source_color;
|
||||||
//uniform float location_fade;
|
//uniform float location_fade;
|
||||||
|
|
||||||
void fragment() {
|
void fragment() {
|
||||||
@ -8,11 +9,12 @@ void fragment() {
|
|||||||
//vec3 fog_color_2 = texture(TEXTURE, vec2(UV.x * 0.5 + 0.5 + TIME * 0.010, UV.y * 0.25 + 0.5 - TIME / 160.0)).rgb;
|
//vec3 fog_color_2 = texture(TEXTURE, vec2(UV.x * 0.5 + 0.5 + TIME * 0.010, UV.y * 0.25 + 0.5 - TIME / 160.0)).rgb;
|
||||||
//vec3 fog_color_3 = texture(TEXTURE, vec2(UV.x * 0.5 + 0.25 + TIME * 0.024, UV.y * 0.25 - 0.25 - TIME / 160.0)).rgb;
|
//vec3 fog_color_3 = texture(TEXTURE, vec2(UV.x * 0.5 + 0.25 + TIME * 0.024, UV.y * 0.25 - 0.25 - TIME / 160.0)).rgb;
|
||||||
//vec3 fog_color = mix(fog_color_3, mix(fog_color_1, fog_color_2, 0.5), 0.7);
|
//vec3 fog_color = mix(fog_color_3, mix(fog_color_1, fog_color_2, 0.5), 0.7);
|
||||||
vec3 fog_color_1 = texture(TEXTURE, vec2(UV.x / 2.0 + TIME /100.0, UV.y / 4.0 - TIME / 100.0)).rgb;
|
float fog_alpha_1 = texture(noise, vec2(UV.x / 2.0 + TIME /100.0, UV.y / 4.0 - TIME / 100.0)).r;
|
||||||
vec3 fog_color_2 = texture(TEXTURE, vec2(UV.x / 2.0 + 0.5 + TIME /50.0, UV.y / 4.0 + 0.5 - TIME / 160.0)).rgb;
|
float fog_alpha_2 = texture(noise, vec2(UV.x / 2.0 + 0.5 + TIME /50.0, UV.y / 4.0 + 0.5 - TIME / 160.0)).r;
|
||||||
vec3 fog_color_3 = texture(TEXTURE, vec2(UV.x / 2.0 + 0.25 + TIME /25.0, UV.y / 4.0 - 0.25 - TIME / 160.0)).rgb;
|
float fog_alpha_3 = texture(noise, vec2(UV.x / 2.0 + 0.25 + TIME /25.0, UV.y / 4.0 - 0.25 - TIME / 160.0)).r;
|
||||||
vec3 fog_color = mix(fog_color_3, mix(fog_color_1, fog_color_2, 0.5), 0.7);
|
float fog_alpha = mix(fog_alpha_3, mix(fog_alpha_1, fog_alpha_2, 0.5), 0.7);
|
||||||
COLOR.a *= base_color.a * fog_color.r * 1.5;
|
COLOR.a *= fog_alpha * 1.5;
|
||||||
COLOR.rgb = fog_color * base_color.rgb;
|
//COLOR.rgb = base_color.rgb;
|
||||||
|
//COLOR.rgb = fog_color * base_color.rgb;
|
||||||
//COLOR.rgb *= location_fade;
|
//COLOR.rgb *= location_fade;
|
||||||
}
|
}
|
@ -9,6 +9,9 @@ enum VIBE {
|
|||||||
|
|
||||||
@export var first_entered = true
|
@export var first_entered = true
|
||||||
|
|
||||||
|
# func _ready():
|
||||||
|
# get_tree().node_added.connect("_on_node_added")
|
||||||
|
|
||||||
#### Ground and Loader ####
|
#### Ground and Loader ####
|
||||||
|
|
||||||
|
|
||||||
@ -125,6 +128,13 @@ func pop_debug_dialog_info(character: String, content: String):
|
|||||||
DialogueManager.show_dialogue_balloon_scene(balloon_node, res, title)
|
DialogueManager.show_dialogue_balloon_scene(balloon_node, res, title)
|
||||||
|
|
||||||
|
|
||||||
|
#### Shader ####
|
||||||
|
|
||||||
|
|
||||||
|
func get_shading_layer() -> ShadingLayer:
|
||||||
|
return get_node_or_null("/root/Main/ShadingLayer") as ShadingLayer
|
||||||
|
|
||||||
|
|
||||||
#### Prop ####
|
#### Prop ####
|
||||||
|
|
||||||
|
|
||||||
@ -217,9 +227,3 @@ func show_bag():
|
|||||||
func quit_game():
|
func quit_game():
|
||||||
ArchiveManager.save_all()
|
ArchiveManager.save_all()
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
|
|
||||||
# func player_moved_delta_x(delta_x: float) -> void:
|
|
||||||
# # fog effect offset
|
|
||||||
# var fog = get_node_or_null("/root/Main/ShadingLayer/Fog")
|
|
||||||
# # if fog:
|
|
||||||
# # fog.texture.noise.offset.x += delta_x * 0.2
|
|
||||||
|
@ -6,17 +6,21 @@ class_name Ground2D extends Node2D
|
|||||||
@export_enum("left", "right", "1", "2", "3", "4", "5", "6", "7", "8", "9")
|
@export_enum("left", "right", "1", "2", "3", "4", "5", "6", "7", "8", "9")
|
||||||
var default_portal := "left"
|
var default_portal := "left"
|
||||||
@export_group("Player", "player_")
|
@export_group("Player", "player_")
|
||||||
@export var player_y_fixed := true
|
@export var player_y_fixed := true:
|
||||||
|
set(val):
|
||||||
|
player_y_fixed = val
|
||||||
|
if is_node_ready():
|
||||||
|
_reset_player_y()
|
||||||
@export var player_y := 70:
|
@export var player_y := 70:
|
||||||
set(val):
|
set(val):
|
||||||
player_y = val
|
player_y = val
|
||||||
if is_node_ready():
|
if is_node_ready():
|
||||||
_reset_player_positon()
|
_reset_player_y()
|
||||||
@export var reset_player_pos := false:
|
@export var reset_player_y := false:
|
||||||
set(val):
|
set(val):
|
||||||
reset_player_pos = false
|
reset_player_y = false
|
||||||
if is_node_ready():
|
if is_node_ready():
|
||||||
_reset_player_positon()
|
_reset_player_y()
|
||||||
@export_group("Sound")
|
@export_group("Sound")
|
||||||
@export_enum("none", "ghost", "walking", "running", "crawling", "concrete")
|
@export_enum("none", "ghost", "walking", "running", "crawling", "concrete")
|
||||||
var footstep_type: String = "concrete":
|
var footstep_type: String = "concrete":
|
||||||
@ -86,10 +90,10 @@ func _enter_tree() -> void:
|
|||||||
camera_focus_marker.enabled = true
|
camera_focus_marker.enabled = true
|
||||||
|
|
||||||
|
|
||||||
func _reset_player_positon():
|
func _reset_player_y():
|
||||||
move_player_to_portal(default_portal)
|
|
||||||
# 从屏幕下边缘算起
|
# 从屏幕下边缘算起
|
||||||
player.set_y_from_ground(158.0 - player_y)
|
if player_y_fixed:
|
||||||
|
player.set_y_from_ground(158.0 - player_y)
|
||||||
|
|
||||||
|
|
||||||
func _set_camera_and_player_boundary():
|
func _set_camera_and_player_boundary():
|
||||||
|
@ -102,6 +102,7 @@ func _game_counting_down(_res = null):
|
|||||||
get_tree().create_timer(2.5).timeout.connect(_kids_start_run)
|
get_tree().create_timer(2.5).timeout.connect(_kids_start_run)
|
||||||
cat.visible = true
|
cat.visible = true
|
||||||
cat.play("【墙上黑猫】跑步")
|
cat.play("【墙上黑猫】跑步")
|
||||||
|
SceneManager.get_shading_layer().show_default_fog(2.0)
|
||||||
|
|
||||||
|
|
||||||
func _kids_start_run():
|
func _kids_start_run():
|
||||||
@ -111,6 +112,7 @@ func _kids_start_run():
|
|||||||
standing_kid3.play("【站立小孩-3】走路")
|
standing_kid3.play("【站立小孩-3】走路")
|
||||||
# 小胖等待 2s 后开始奔跑
|
# 小胖等待 2s 后开始奔跑
|
||||||
get_tree().create_timer(2).timeout.connect(game_kid.play.bind("【胖小孩背着残疾小孩】奔跑"))
|
get_tree().create_timer(2).timeout.connect(game_kid.play.bind("【胖小孩背着残疾小孩】奔跑"))
|
||||||
|
# 猫鼠游戏开始,启用失败 ambush 检测
|
||||||
cat_rat_game_fail_ambush.enabled = true
|
cat_rat_game_fail_ambush.enabled = true
|
||||||
# 提示玩家按 shift 键奔跑
|
# 提示玩家按 shift 键奔跑
|
||||||
SceneManager.pop_center_notification(tr("ui_press_shift"))
|
SceneManager.pop_center_notification(tr("ui_press_shift"))
|
||||||
@ -118,7 +120,7 @@ func _kids_start_run():
|
|||||||
ArchiveManager.archive.player_running_locked = false
|
ArchiveManager.archive.player_running_locked = false
|
||||||
SceneManager.get_player().running_locked = false
|
SceneManager.get_player().running_locked = false
|
||||||
# debug 提示
|
# debug 提示
|
||||||
SceneManager.pop_debug_dialog_info("美术", "(2s倒计时)【胖小孩背着残疾小孩】奔跑")
|
SceneManager.pop_debug_dialog_info("音效", "猫鼠游戏追逐 BGM")
|
||||||
|
|
||||||
|
|
||||||
# 中途推桌椅
|
# 中途推桌椅
|
||||||
@ -146,10 +148,12 @@ func _on_cat_rat_game_obstacles_triggered():
|
|||||||
game_kid.sprite_frames.set_animation_loop("【胖小孩背着残疾小孩】摔倒", false)
|
game_kid.sprite_frames.set_animation_loop("【胖小孩背着残疾小孩】摔倒", false)
|
||||||
game_kid.animation_finished.connect(_on_kid_fall_finished, CONNECT_ONE_SHOT)
|
game_kid.animation_finished.connect(_on_kid_fall_finished, CONNECT_ONE_SHOT)
|
||||||
_on_mid_ambush_success()
|
_on_mid_ambush_success()
|
||||||
|
SceneManager.pop_debug_dialog_info("音效", "桌椅翻倒")
|
||||||
|
|
||||||
|
|
||||||
func _on_kid_fall_finished():
|
func _on_kid_fall_finished():
|
||||||
game_kid_limp.modulate.a = 1
|
game_kid_limp.modulate.a = 1
|
||||||
|
game_kid.play("【胖小孩背着残疾小孩】胖子独自呼吸")
|
||||||
game_kid_limp.play("【单残疾小孩】爬行")
|
game_kid_limp.play("【单残疾小孩】爬行")
|
||||||
cat_shadow.play("【墙上小孩猫影子】变身")
|
cat_shadow.play("【墙上小孩猫影子】变身")
|
||||||
|
|
||||||
@ -166,15 +170,78 @@ func game_succeed():
|
|||||||
else:
|
else:
|
||||||
game_kid_limp.pause()
|
game_kid_limp.pause()
|
||||||
cat_shadow.pause()
|
cat_shadow.pause()
|
||||||
print("game succeed")
|
|
||||||
SceneManager.pop_debug_dialog_info("美术", "猫鼠游戏成功")
|
|
||||||
SceneManager.freeze_player(0)
|
SceneManager.freeze_player(0)
|
||||||
|
transport_player_to_next_scene(true)
|
||||||
|
|
||||||
|
|
||||||
# 失败
|
# 失败
|
||||||
func game_failed():
|
func game_failed():
|
||||||
|
SceneManager.freeze_player(0)
|
||||||
if not obstacles_success:
|
if not obstacles_success:
|
||||||
game_kid.play_with_loop("【胖小孩背着残疾小孩】侧面呼吸")
|
game_kid.play_with_loop("【胖小孩背着残疾小孩】侧面呼吸")
|
||||||
print("game failed")
|
game_kid.play("【胖小孩背着残疾小孩】摔倒")
|
||||||
SceneManager.pop_debug_dialog_info("美术", "猫鼠游戏失败")
|
game_kid.sprite_frames.set_animation_loop("【胖小孩背着残疾小孩】摔倒", false)
|
||||||
SceneManager.freeze_player(0)
|
game_kid.animation_finished.connect(_crawling_kid_catch, CONNECT_ONE_SHOT)
|
||||||
|
else:
|
||||||
|
_crawling_kid_catch()
|
||||||
|
print("猫鼠游戏失败")
|
||||||
|
SceneManager.pop_debug_dialog_info("音效", "猫鼠游戏失败,玩家被抓住")
|
||||||
|
|
||||||
|
|
||||||
|
# 【单残疾小孩】 与玩家 x 距离 29px 时,播放「【单残疾小孩】抓住」
|
||||||
|
var crawling_distance = 29
|
||||||
|
|
||||||
|
|
||||||
|
# 【单残疾小孩】爬到玩家身边 29px 处,预备抓住
|
||||||
|
func _crawling_kid_catch():
|
||||||
|
game_kid.play("【胖小孩背着残疾小孩】胖子独自呼吸")
|
||||||
|
var player = SceneManager.get_player()
|
||||||
|
# 确保玩家朝向正确
|
||||||
|
player.set_facing_direction(Vector2.RIGHT)
|
||||||
|
var tween = create_tween()
|
||||||
|
tween.tween_property(cat_shadow, "modulate:a", 0.0, 0.5)
|
||||||
|
game_kid_limp.modulate.a = 1
|
||||||
|
# 小孩爬到玩家脚边的速度
|
||||||
|
var v_x = 30.0
|
||||||
|
var target_x = player.global_position.x - crawling_distance
|
||||||
|
var distance_x = target_x - game_kid_limp.global_position.x
|
||||||
|
if distance_x < 0:
|
||||||
|
game_kid_limp.flip_h = true
|
||||||
|
distance_x = -distance_x
|
||||||
|
var duration = distance_x / v_x
|
||||||
|
game_kid_limp.play_with_velocity("【单残疾小孩】爬行", Vector2(v_x, 0))
|
||||||
|
tween = create_tween()
|
||||||
|
tween.tween_property(game_kid_limp, "global_position:x", target_x, duration)
|
||||||
|
tween.tween_callback(_post_catch)
|
||||||
|
|
||||||
|
|
||||||
|
# 【单残疾小孩】已经到指定位置,播放抓住动画
|
||||||
|
func _post_catch():
|
||||||
|
game_kid_limp.global_position.x = (
|
||||||
|
SceneManager.get_player().global_position.x - crawling_distance
|
||||||
|
)
|
||||||
|
game_kid_limp.flip_h = false
|
||||||
|
game_kid_limp.play("【单残疾小孩】抓住")
|
||||||
|
game_kid_limp.animation_finished.connect(
|
||||||
|
transport_player_to_next_scene.bind(false), CONNECT_ONE_SHOT
|
||||||
|
)
|
||||||
|
SceneManager.get_player().visible = false
|
||||||
|
|
||||||
|
|
||||||
|
func transport_player_to_next_scene(win: bool):
|
||||||
|
SceneManager.get_shading_layer().tween_fog(
|
||||||
|
ShadingLayer.FOG_FRAME_MAX,
|
||||||
|
ShadingLayer.FOG_COLOR_DARK_GRAY,
|
||||||
|
ShadingLayer.FOG_OFFSET_DEFAULT,
|
||||||
|
1.0,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
get_tree().create_timer(0.7).timeout.connect(_show_next_scene)
|
||||||
|
if win:
|
||||||
|
SceneManager.pop_debug_dialog_info("音效", "猫鼠游戏胜利,传送下一场景")
|
||||||
|
else:
|
||||||
|
SceneManager.pop_debug_dialog_info("音效", "猫鼠游戏失败,传送下一场景")
|
||||||
|
|
||||||
|
|
||||||
|
func _show_next_scene():
|
||||||
|
SceneManager.get_ground_loader().transition_to_scene("c01_s07", "left", false)
|
||||||
|
@ -73,11 +73,11 @@ resource_local_to_scene = true
|
|||||||
size = Vector2(30, 70)
|
size = Vector2(30, 70)
|
||||||
|
|
||||||
[node name="S06" type="Node2D"]
|
[node name="S06" type="Node2D"]
|
||||||
metadata/_edit_horizontal_guides_ = [158.0, 88.0]
|
metadata/_edit_horizontal_guides_ = [158.0, 91.0]
|
||||||
|
|
||||||
[node name="Ground" parent="." instance=ExtResource("1_bitx7")]
|
[node name="Ground" parent="." instance=ExtResource("1_bitx7")]
|
||||||
scene_name = "c01_s06"
|
scene_name = "c01_s06"
|
||||||
player_y = 60
|
player_y = 67
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||||
libraries = {
|
libraries = {
|
||||||
@ -87,8 +87,9 @@ script = ExtResource("2_fkfhi")
|
|||||||
oneshot_animation = ""
|
oneshot_animation = ""
|
||||||
|
|
||||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||||
|
position = Vector2(0, -3)
|
||||||
texture = ExtResource("2_ow3ya")
|
texture = ExtResource("2_ow3ya")
|
||||||
offset = Vector2(0, -159)
|
offset = Vector2(0, -155)
|
||||||
|
|
||||||
[node name="院长凳子" type="Sprite2D" parent="Ground/BGSprite2D" index="0"]
|
[node name="院长凳子" type="Sprite2D" parent="Ground/BGSprite2D" index="0"]
|
||||||
position = Vector2(30, -6)
|
position = Vector2(30, -6)
|
||||||
@ -220,7 +221,7 @@ collision_mask = 64
|
|||||||
shape = SubResource("RectangleShape2D_ceat6")
|
shape = SubResource("RectangleShape2D_ceat6")
|
||||||
|
|
||||||
[node name="【站立小孩-1】" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_ouldg")]
|
[node name="【站立小孩-1】" parent="Ground/DeployLayer" index="12" instance=ExtResource("8_ouldg")]
|
||||||
position = Vector2(1488, -4)
|
position = Vector2(1490, -6.5)
|
||||||
sprite_frames = ExtResource("7_dsj2r")
|
sprite_frames = ExtResource("7_dsj2r")
|
||||||
animation = &"【站立小孩-1】侧面呼吸"
|
animation = &"【站立小孩-1】侧面呼吸"
|
||||||
action_configs = Array[Dictionary]([{
|
action_configs = Array[Dictionary]([{
|
||||||
@ -237,7 +238,7 @@ move_configs = Array[Dictionary]([{
|
|||||||
}])
|
}])
|
||||||
|
|
||||||
[node name="【站立小孩-3】" parent="Ground/DeployLayer" index="13" instance=ExtResource("8_ouldg")]
|
[node name="【站立小孩-3】" parent="Ground/DeployLayer" index="13" instance=ExtResource("8_ouldg")]
|
||||||
position = Vector2(1544, -3)
|
position = Vector2(1546, -5.5)
|
||||||
sprite_frames = ExtResource("7_dsj2r")
|
sprite_frames = ExtResource("7_dsj2r")
|
||||||
animation = &"【站立小孩-3】呼吸"
|
animation = &"【站立小孩-3】呼吸"
|
||||||
action_configs = Array[Dictionary]([{
|
action_configs = Array[Dictionary]([{
|
||||||
@ -277,9 +278,10 @@ move_configs = Array[Dictionary]([{
|
|||||||
position = Vector2(123, 43)
|
position = Vector2(123, 43)
|
||||||
|
|
||||||
[node name="【墙上黑猫】" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_ouldg")]
|
[node name="【墙上黑猫】" parent="Ground/DeployLayer" index="15" instance=ExtResource("8_ouldg")]
|
||||||
position = Vector2(1394, -4)
|
position = Vector2(1394, -1)
|
||||||
sprite_frames = ExtResource("7_dsj2r")
|
sprite_frames = ExtResource("7_dsj2r")
|
||||||
animation = &"【墙上黑猫】跑步"
|
animation = &"【墙上黑猫】跑步"
|
||||||
|
frame_progress = 0.142437
|
||||||
autostart = false
|
autostart = false
|
||||||
move_configs = Array[Dictionary]([{
|
move_configs = Array[Dictionary]([{
|
||||||
"animation": &"【墙上黑猫】跑步",
|
"animation": &"【墙上黑猫】跑步",
|
||||||
@ -287,14 +289,14 @@ move_configs = Array[Dictionary]([{
|
|||||||
}])
|
}])
|
||||||
|
|
||||||
[node name="猫鼠游戏开始ambush" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_tudob")]
|
[node name="猫鼠游戏开始ambush" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_tudob")]
|
||||||
position = Vector2(1804, 56)
|
position = Vector2(1809, 56)
|
||||||
freeze_time = 1.0
|
freeze_time = 1.0
|
||||||
hook_dialogue_title = "c01_s06_谈论鬼差与猫鼠游戏"
|
hook_dialogue_title = "c01_s06_谈论鬼差与猫鼠游戏"
|
||||||
hook_method = "game_intro"
|
hook_method = "game_intro"
|
||||||
|
|
||||||
[node name="【胖小孩背着残疾小孩】" parent="Ground/DeployLayer" index="17" instance=ExtResource("8_ouldg")]
|
[node name="【胖小孩背着残疾小孩】" parent="Ground/DeployLayer" index="17" instance=ExtResource("8_ouldg")]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(1731, 4)
|
position = Vector2(1733, 5)
|
||||||
sprite_frames = ExtResource("7_dsj2r")
|
sprite_frames = ExtResource("7_dsj2r")
|
||||||
animation = &"【胖小孩背着残疾小孩】呼吸"
|
animation = &"【胖小孩背着残疾小孩】呼吸"
|
||||||
action_configs = Array[Dictionary]([{
|
action_configs = Array[Dictionary]([{
|
||||||
@ -318,11 +320,11 @@ move_configs = Array[Dictionary]([{
|
|||||||
}])
|
}])
|
||||||
|
|
||||||
[node name="【单残疾小孩】" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("8_ouldg")]
|
[node name="【单残疾小孩】" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】" instance=ExtResource("8_ouldg")]
|
||||||
z_index = 2
|
z_index = 6
|
||||||
z_as_relative = false
|
z_as_relative = false
|
||||||
position = Vector2(-23, -1)
|
position = Vector2(-23, 1)
|
||||||
sprite_frames = ExtResource("7_dsj2r")
|
sprite_frames = ExtResource("7_dsj2r")
|
||||||
animation = &"【单残疾小孩】爬行"
|
animation = &"【单残疾小孩】抓住"
|
||||||
autostart = false
|
autostart = false
|
||||||
move_configs = Array[Dictionary]([{
|
move_configs = Array[Dictionary]([{
|
||||||
"animation": &"【单残疾小孩】爬行",
|
"animation": &"【单残疾小孩】爬行",
|
||||||
@ -347,7 +349,7 @@ action_configs = Array[Dictionary]([{
|
|||||||
light_energy = -0.7
|
light_energy = -0.7
|
||||||
|
|
||||||
[node name="中途Trigger" type="Area2D" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】"]
|
[node name="中途Trigger" type="Area2D" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】"]
|
||||||
position = Vector2(30, 12)
|
position = Vector2(29, 12)
|
||||||
collision_layer = 64
|
collision_layer = 64
|
||||||
collision_mask = 64
|
collision_mask = 64
|
||||||
monitoring = false
|
monitoring = false
|
||||||
@ -358,7 +360,7 @@ shape = SubResource("RectangleShape2D_1ojoa")
|
|||||||
debug_color = Color(0.519778, 0.447036, 0.929413, 0.42)
|
debug_color = Color(0.519778, 0.447036, 0.929413, 0.42)
|
||||||
|
|
||||||
[node name="猫鼠游戏失败ambush" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】" instance=ExtResource("11_tudob")]
|
[node name="猫鼠游戏失败ambush" parent="Ground/DeployLayer/【胖小孩背着残疾小孩】/【单残疾小孩】" instance=ExtResource("11_tudob")]
|
||||||
position = Vector2(26, 45)
|
position = Vector2(19, 49)
|
||||||
enabled = false
|
enabled = false
|
||||||
hook_method = "game_failed"
|
hook_method = "game_failed"
|
||||||
|
|
||||||
@ -380,7 +382,7 @@ texture = ExtResource("4_6ffae")
|
|||||||
offset = Vector2(601.5, -0.5)
|
offset = Vector2(601.5, -0.5)
|
||||||
|
|
||||||
[node name="MainPlayer" parent="Ground" index="5"]
|
[node name="MainPlayer" parent="Ground" index="5"]
|
||||||
position = Vector2(144, 98)
|
position = Vector2(1775, 91)
|
||||||
character = "小小蝶"
|
character = "小小蝶"
|
||||||
|
|
||||||
[node name="柱子" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
[node name="柱子" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
||||||
|
28
scene/ground/scene/c01/s07_书店长廊.tscn
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://ds2iyfndwamiy"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_kbldb"]
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_7adaf"]
|
||||||
|
font_size = 20
|
||||||
|
|
||||||
|
[node name="S07" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="Ground" parent="." instance=ExtResource("1_kbldb")]
|
||||||
|
scene_name = "c01_s07"
|
||||||
|
|
||||||
|
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||||
|
immediately = false
|
||||||
|
target_scene = "c02_s08"
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="Ground/DeployLayer" index="2"]
|
||||||
|
offset_left = 132.0
|
||||||
|
offset_top = -9.0
|
||||||
|
offset_right = 212.0
|
||||||
|
offset_bottom = 16.0
|
||||||
|
text = "书店长廊"
|
||||||
|
label_settings = SubResource("LabelSettings_7adaf")
|
||||||
|
|
||||||
|
[node name="MainPlayer" parent="Ground" index="5"]
|
||||||
|
character = "小小蝶"
|
||||||
|
|
||||||
|
[editable path="Ground"]
|
@ -1,104 +1,186 @@
|
|||||||
@tool
|
@tool
|
||||||
extends CanvasLayer
|
class_name ShadingLayer extends CanvasLayer
|
||||||
|
|
||||||
@export_enum("vignette", "fog", "glitch", "palette", "chromatic_abberation")
|
@export_enum("vignette", "fog", "glitch", "palette", "chromatic_abberation")
|
||||||
var mode: Array[String] = ["vignette"] as Array[String]:
|
var mode: Array[String] = ["vignette"] as Array[String]:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
mode = new_val
|
mode = new_val
|
||||||
if not is_node_ready():
|
|
||||||
return
|
|
||||||
_setup_visibility()
|
_setup_visibility()
|
||||||
@export_group("Vignette", "vignette_")
|
@export_group("Vignette", "vignette_")
|
||||||
@export var vignette_rgb := Color8(0x3f, 0x26, 0x31):
|
@export var vignette_rgb := Color8(0x3f, 0x26, 0x31):
|
||||||
set(new_val):
|
set(new_val):
|
||||||
vignette_rgb = new_val
|
vignette_rgb = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%Vignette.material.set("shader_parameter/vignette_rgb", new_val)
|
||||||
get_node("Vignette").material.set("shader_parameter/vignette_rgb", new_val)
|
|
||||||
@export_range(0, 5) var vignette_intensity := 0.3:
|
@export_range(0, 5) var vignette_intensity := 0.3:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
vignette_intensity = new_val
|
vignette_intensity = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%Vignette.material.set("shader_parameter/vignette_intensity", new_val)
|
||||||
get_node("Vignette").material.set("shader_parameter/vignette_intensity", new_val)
|
|
||||||
@export_group("Fog", "fog_")
|
@export_group("Fog", "fog_")
|
||||||
@export var fog_offset := Vector2(0.0, 0.0):
|
const fog_frame_count = 24 # 0-23
|
||||||
|
@export var fog_offset := FOG_OFFSET_DEFAULT:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
fog_offset = new_val
|
fog_offset = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%Fog.offset = new_val
|
||||||
get_node("Fog").texture.noise.set("offset", new_val)
|
@export var fog_frame := FOG_FRAME_DEFAULT:
|
||||||
@export var fog_base_color := Color8(0xff, 0xff, 0xff, 0x3d):
|
|
||||||
set(new_val):
|
set(new_val):
|
||||||
fog_base_color = new_val
|
fog_frame = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%Fog.frame = new_val
|
||||||
get_node("Fog").material.set("shader_parameter/base_color", new_val)
|
@export var fog_modulate := FOG_COLOR_DEFAULT:
|
||||||
|
set(new_val):
|
||||||
|
fog_modulate = new_val
|
||||||
|
if is_node_ready():
|
||||||
|
%Fog.self_modulate = new_val
|
||||||
|
# @export var fog_offset := Vector2(0.0, 0.0):
|
||||||
|
# set(new_val):
|
||||||
|
# fog_offset = new_val
|
||||||
|
# if not is_node_ready():
|
||||||
|
# return
|
||||||
|
# %Fog.texture.noise.set("offset", new_val)
|
||||||
|
# @export var fog_base_color := Color8(0xff, 0xff, 0xff, 0x3d):
|
||||||
|
# set(new_val):
|
||||||
|
# fog_base_color = new_val
|
||||||
|
# if not is_node_ready():
|
||||||
|
# return
|
||||||
|
# %Fog.material.set("shader_parameter/base_color", new_val)
|
||||||
@export_group("Glitch", "glitch_")
|
@export_group("Glitch", "glitch_")
|
||||||
@export var glitch_power := 0.001:
|
@export var glitch_power := 0.001:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
glitch_power = new_val
|
glitch_power = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%GlitchEffect.material.set("shader_parameter/shake_power", new_val)
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_power", new_val)
|
|
||||||
# rate
|
# rate
|
||||||
@export var glitch_rate := 0.2:
|
@export var glitch_rate := 0.2:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
glitch_rate = new_val
|
glitch_rate = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%GlitchEffect.material.set("shader_parameter/shake_rate", new_val)
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_rate", new_val)
|
|
||||||
# speed
|
# speed
|
||||||
@export var glitch_speed := 5.0:
|
@export var glitch_speed := 5.0:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
glitch_speed = new_val
|
glitch_speed = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%GlitchEffect.material.set("shader_parameter/shake_speed", new_val)
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_speed", new_val)
|
|
||||||
# block_size
|
# block_size
|
||||||
@export var glitch_block_size := 30.5:
|
@export var glitch_block_size := 30.5:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
glitch_block_size = new_val
|
glitch_block_size = new_val
|
||||||
if not is_node_ready():
|
if not is_node_ready():
|
||||||
return
|
return
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_block_size", new_val)
|
%GlitchEffect.material.set("shader_parameter/shake_block_size", new_val)
|
||||||
# color rate
|
# color rate
|
||||||
@export var glitch_color_rate := 0.01:
|
@export var glitch_color_rate := 0.01:
|
||||||
set(new_val):
|
set(new_val):
|
||||||
glitch_color_rate = new_val
|
glitch_color_rate = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%GlitchEffect.material.set("shader_parameter/shake_color_rate", new_val)
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_color_rate", new_val)
|
|
||||||
@export_group("Palette", "palette_")
|
@export_group("Palette", "palette_")
|
||||||
@export var palette_texture := preload("res://asset/shader/palette/bloodmoon21-1x.png"):
|
@export var palette_texture := preload("res://asset/shader/palette/bloodmoon21-1x.png"):
|
||||||
set(new_val):
|
set(new_val):
|
||||||
palette_texture = new_val
|
palette_texture = new_val
|
||||||
if not is_node_ready():
|
if is_node_ready():
|
||||||
return
|
%Palette.material.set("shader_parameter/palette", new_val)
|
||||||
get_node("Palette").material.set("shader_parameter/palette", new_val)
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
$Sprite2D.visible = false
|
%Sprite2D.visible = false
|
||||||
layer = GlobalConfig.CANVAS_LAYER_SHADING
|
layer = GlobalConfig.CANVAS_LAYER_SHADING
|
||||||
# set up other properties
|
# set up other properties
|
||||||
get_node("Vignette").material.set("shader_parameter/vignette_rgb", vignette_rgb)
|
%Vignette.material.set("shader_parameter/vignette_rgb", vignette_rgb)
|
||||||
get_node("Vignette").material.set("shader_parameter/vignette_intensity", vignette_intensity)
|
%Vignette.material.set("shader_parameter/vignette_intensity", vignette_intensity)
|
||||||
get_node("Fog").texture.noise.set("offset", fog_offset)
|
%Fog.frame = fog_frame
|
||||||
get_node("Fog").material.set("shader_parameter/base_color", fog_base_color)
|
%Fog.offset = fog_offset
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_power", glitch_power)
|
%Fog.self_modulate = fog_modulate
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_rate", glitch_rate)
|
# %Fog.texture.noise.set("offset", fog_offset)
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_speed", glitch_speed)
|
# %Fog.material.set("shader_parameter/base_color", fog_base_color)
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_block_size", glitch_block_size)
|
%GlitchEffect.material.set("shader_parameter/shake_power", glitch_power)
|
||||||
get_node("GlitchEffect").material.set("shader_parameter/shake_color_rate", glitch_color_rate)
|
%GlitchEffect.material.set("shader_parameter/shake_rate", glitch_rate)
|
||||||
get_node("Palette").material.set("shader_parameter/palette", palette_texture)
|
%GlitchEffect.material.set("shader_parameter/shake_speed", glitch_speed)
|
||||||
|
%GlitchEffect.material.set("shader_parameter/shake_block_size", glitch_block_size)
|
||||||
|
%GlitchEffect.material.set("shader_parameter/shake_color_rate", glitch_color_rate)
|
||||||
|
%Palette.material.set("shader_parameter/palette", palette_texture)
|
||||||
# set up visibility
|
# set up visibility
|
||||||
_setup_visibility()
|
_setup_visibility()
|
||||||
|
|
||||||
|
|
||||||
func _setup_visibility():
|
func _setup_visibility():
|
||||||
get_node("Vignette").visible = mode.has("vignette")
|
if not is_node_ready():
|
||||||
get_node("Fog").visible = mode.has("fog")
|
return
|
||||||
get_node("GlitchEffect").visible = mode.has("glitch")
|
%Vignette.visible = mode.has("vignette")
|
||||||
get_node("Palette").visible = mode.has("palette")
|
%Fog.visible = mode.has("fog")
|
||||||
get_node("ChromaticAbberation").visible = mode.has("chromatic_abberation")
|
%GlitchEffect.visible = mode.has("glitch")
|
||||||
|
%Palette.visible = mode.has("palette")
|
||||||
|
%ChromaticAbberation.visible = mode.has("chromatic_abberation")
|
||||||
|
|
||||||
|
|
||||||
|
func erase_mode(mode_name: String) -> void:
|
||||||
|
if mode.has(mode_name):
|
||||||
|
mode.erase(mode_name)
|
||||||
|
_setup_visibility()
|
||||||
|
|
||||||
|
|
||||||
|
func add_mode(mode_name: String) -> void:
|
||||||
|
if not mode.has(mode_name):
|
||||||
|
mode.append(mode_name)
|
||||||
|
_setup_visibility()
|
||||||
|
|
||||||
|
|
||||||
|
#### Tween fog ####
|
||||||
|
|
||||||
|
const FOG_COLOR_DEFAULT = Color(0.8, 0.8, 0.8, 0.8)
|
||||||
|
const FOG_COLOR_WHITE = Color(1, 1, 1, 1)
|
||||||
|
const FOG_COLOR_BLACK = Color(0, 0, 0, 1)
|
||||||
|
const FOG_COLOR_GRAY = Color(0.5, 0.5, 0.5, 1)
|
||||||
|
const FOG_COLOR_DARK_GRAY = Color(0.2, 0.2, 0.2, 1)
|
||||||
|
|
||||||
|
const FOG_FRAME_MIN = 0
|
||||||
|
const FOG_FRAME_DEFAULT = 15
|
||||||
|
const FOG_FRAME_MAX = 23
|
||||||
|
|
||||||
|
const FOG_OFFSET_DEFAULT = Vector2(0, 50)
|
||||||
|
|
||||||
|
var _fog_tween: Tween
|
||||||
|
|
||||||
|
|
||||||
|
func show_default_fog(duration := 0.8):
|
||||||
|
if not mode.has("fog"):
|
||||||
|
add_mode("fog")
|
||||||
|
fog_modulate = Color.TRANSPARENT
|
||||||
|
tween_fog(FOG_FRAME_DEFAULT, FOG_COLOR_DEFAULT, FOG_OFFSET_DEFAULT, duration)
|
||||||
|
|
||||||
|
|
||||||
|
func close_fog(duration := 0.8):
|
||||||
|
if mode.has("fog"):
|
||||||
|
tween_fog(fog_frame, Color.TRANSPARENT, fog_offset, duration, true)
|
||||||
|
|
||||||
|
|
||||||
|
func tween_fog(
|
||||||
|
end_frame := fog_frame,
|
||||||
|
end_modulate := fog_modulate,
|
||||||
|
end_offset := fog_offset,
|
||||||
|
duration := 0.8,
|
||||||
|
close_at_end := false
|
||||||
|
) -> void:
|
||||||
|
if not is_node_ready():
|
||||||
|
return
|
||||||
|
if GlobalConfig.DEBUG:
|
||||||
|
print(
|
||||||
|
"Tween fog to frame: ", end_frame, " modulate: ", end_modulate, " offset: ", end_offset
|
||||||
|
)
|
||||||
|
if not mode.has("fog"):
|
||||||
|
# 如果没有开启 fog,先开启,并且设置为透明
|
||||||
|
add_mode("fog")
|
||||||
|
fog_modulate = Color.TRANSPARENT
|
||||||
|
if _fog_tween and _fog_tween.is_valid():
|
||||||
|
_fog_tween.kill()
|
||||||
|
_fog_tween = create_tween()
|
||||||
|
_fog_tween.tween_property(%Fog, "frame", end_frame, duration)
|
||||||
|
if end_modulate != fog_modulate:
|
||||||
|
_fog_tween.parallel().tween_property(%Fog, "self_modulate", end_modulate, duration)
|
||||||
|
if end_offset != fog_offset:
|
||||||
|
_fog_tween.parallel().tween_property(%Fog, "offset", end_offset, duration)
|
||||||
|
if close_at_end:
|
||||||
|
_fog_tween.tween_callback(erase_mode.bind("fog"))
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://3gk1gxwanw24"]
|
[gd_scene load_steps=43 format=3 uid="uid://3gk1gxwanw24"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://scene/shading/shading_layer.gd" id="1_6w7er"]
|
[ext_resource type="Script" path="res://scene/shading/shading_layer.gd" id="1_6w7er"]
|
||||||
[ext_resource type="Shader" path="res://asset/shader/vignette.gdshader" id="1_akp6k"]
|
[ext_resource type="Shader" path="res://asset/shader/vignette.gdshader" id="1_akp6k"]
|
||||||
@ -7,7 +7,32 @@
|
|||||||
[ext_resource type="Shader" path="res://asset/shader/palette.gdshader" id="4_n5nu8"]
|
[ext_resource type="Shader" path="res://asset/shader/palette.gdshader" id="4_n5nu8"]
|
||||||
[ext_resource type="Shader" path="res://asset/shader/fog.gdshader" id="4_sglhm"]
|
[ext_resource type="Shader" path="res://asset/shader/fog.gdshader" id="4_sglhm"]
|
||||||
[ext_resource type="Texture2D" uid="uid://36k1j0qw66tm" path="res://asset/shader/palette/bloodmoon21-1x.png" id="5_ios50"]
|
[ext_resource type="Texture2D" uid="uid://36k1j0qw66tm" path="res://asset/shader/palette/bloodmoon21-1x.png" id="5_ios50"]
|
||||||
|
[ext_resource type="Material" uid="uid://7wllwmfkfvsb" path="res://asset/shader/cloud.tres" id="7_cmfij"]
|
||||||
[ext_resource type="Shader" path="res://asset/shader/chromatic_abberation.gdshader" id="8_b0unx"]
|
[ext_resource type="Shader" path="res://asset/shader/chromatic_abberation.gdshader" id="8_b0unx"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmlhwa80lywa3" path="res://asset/art/ui/inverted_point_light_masks/000.png" id="8_v5h2g"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://42trxuhnubhw" path="res://asset/art/ui/inverted_point_light_masks/001.png" id="9_l3wcl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cadj4kbscfani" path="res://asset/art/ui/inverted_point_light_masks/002.png" id="10_gxxjv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://3sml8l5k0wpe" path="res://asset/art/ui/inverted_point_light_masks/003.png" id="11_yxk17"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dxcdwhem7hp4m" path="res://asset/art/ui/inverted_point_light_masks/004.png" id="12_k6v1x"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://qtgxbebqaj1e" path="res://asset/art/ui/inverted_point_light_masks/005.png" id="13_kjyug"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cku06prhx2v36" path="res://asset/art/ui/inverted_point_light_masks/006.png" id="14_yy2gj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cy62xq8rhoj3f" path="res://asset/art/ui/inverted_point_light_masks/007.png" id="15_dp8m6"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b87hfcnkn05h4" path="res://asset/art/ui/inverted_point_light_masks/008.png" id="16_86yqr"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://r3dm28fc0e83" path="res://asset/art/ui/inverted_point_light_masks/009.png" id="17_5psqe"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b3supcynj63qx" path="res://asset/art/ui/inverted_point_light_masks/010.png" id="18_kqi2m"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://brfiay0goejgl" path="res://asset/art/ui/inverted_point_light_masks/011.png" id="19_0iov5"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bac4uqqp1ktki" path="res://asset/art/ui/inverted_point_light_masks/012.png" id="20_nuwxf"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://h1mdv3ygc6dd" path="res://asset/art/ui/inverted_point_light_masks/013.png" id="21_e2710"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://br4ry5glivh5g" path="res://asset/art/ui/inverted_point_light_masks/014.png" id="22_a2ogd"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://x7nvm37rxo62" path="res://asset/art/ui/inverted_point_light_masks/015.png" id="23_0fxxa"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cmhqnt63xsw27" path="res://asset/art/ui/inverted_point_light_masks/016.png" id="24_wh31r"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bpktur1e0dtb1" path="res://asset/art/ui/inverted_point_light_masks/017.png" id="25_ur5f1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b62a8q5e4foo" path="res://asset/art/ui/inverted_point_light_masks/018.png" id="26_scw75"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cdcgyjj1w3j8o" path="res://asset/art/ui/inverted_point_light_masks/019.png" id="27_kg4a3"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dqwvsbj2savhv" path="res://asset/art/ui/inverted_point_light_masks/020.png" id="28_1rgfo"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dy488fl2ijtb4" path="res://asset/art/ui/inverted_point_light_masks/021.png" id="29_aklg4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bo2ee2uhsp6l2" path="res://asset/art/ui/inverted_point_light_masks/022.png" id="30_3pvg6"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://gxl7kkkkq5vd" path="res://asset/art/ui/inverted_point_light_masks/023.png" id="31_53o1k"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_y8ah7"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_y8ah7"]
|
||||||
shader = ExtResource("8_b0unx")
|
shader = ExtResource("8_b0unx")
|
||||||
@ -26,18 +51,180 @@ shader_parameter/shake_speed = 5.0
|
|||||||
shader_parameter/shake_block_size = 30.5
|
shader_parameter/shake_block_size = 30.5
|
||||||
shader_parameter/shake_color_rate = 0.01
|
shader_parameter/shake_color_rate = 0.01
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pabt5"]
|
[sub_resource type="FastNoiseLite" id="FastNoiseLite_jw18h"]
|
||||||
shader = ExtResource("4_sglhm")
|
noise_type = 2
|
||||||
shader_parameter/base_color = Color(0.187711, 0.154306, 0.137603, 0.65098)
|
fractal_type = 2
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_els51"]
|
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_trttd"]
|
||||||
frequency = 0.015
|
width = 800
|
||||||
|
height = 800
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_oe2uy"]
|
|
||||||
width = 600
|
|
||||||
seamless = true
|
seamless = true
|
||||||
normalize = false
|
seamless_blend_skirt = 0.25
|
||||||
noise = SubResource("FastNoiseLite_els51")
|
noise = SubResource("FastNoiseLite_jw18h")
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fv2fx"]
|
||||||
|
shader = ExtResource("4_sglhm")
|
||||||
|
shader_parameter/noise = SubResource("NoiseTexture2D_trttd")
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_xeqgs"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("8_v5h2g")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("9_l3wcl")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("10_gxxjv")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("11_yxk17")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("12_k6v1x")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("13_kjyug")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("14_yy2gj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("15_dp8m6")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("16_86yqr")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("17_5psqe")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("18_kqi2m")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("19_0iov5")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("20_nuwxf")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("21_e2710")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("22_a2ogd")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("23_0fxxa")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("24_wh31r")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("25_ur5f1")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("26_scw75")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("27_kg4a3")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("28_1rgfo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("29_aklg4")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("30_3pvg6")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("31_53o1k")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"inverted_point_light_masks",
|
||||||
|
"speed": 12.0
|
||||||
|
}]
|
||||||
|
|
||||||
|
[sub_resource type="SpriteFrames" id="SpriteFrames_sypgq"]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("8_v5h2g")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("9_l3wcl")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("10_gxxjv")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("11_yxk17")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("12_k6v1x")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("13_kjyug")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("14_yy2gj")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("15_dp8m6")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("16_86yqr")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("17_5psqe")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("18_kqi2m")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("19_0iov5")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("20_nuwxf")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("21_e2710")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("22_a2ogd")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("23_0fxxa")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("24_wh31r")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("25_ur5f1")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("26_scw75")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("27_kg4a3")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("28_1rgfo")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("29_aklg4")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("30_3pvg6")
|
||||||
|
}, {
|
||||||
|
"duration": 1.0,
|
||||||
|
"texture": ExtResource("31_53o1k")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"inverted_point_light_masks",
|
||||||
|
"speed": 12.0
|
||||||
|
}]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_radis"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_radis"]
|
||||||
shader = ExtResource("1_akp6k")
|
shader = ExtResource("1_akp6k")
|
||||||
@ -48,14 +235,15 @@ shader_parameter/vignette_rgb = Color(0.247059, 0.14902, 0.192157, 1)
|
|||||||
layer = 10
|
layer = 10
|
||||||
script = ExtResource("1_6w7er")
|
script = ExtResource("1_6w7er")
|
||||||
mode = Array[String]([])
|
mode = Array[String]([])
|
||||||
fog_base_color = Color(0.187711, 0.154306, 0.137603, 0.65098)
|
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
position = Vector2(285, 142)
|
position = Vector2(285, 142)
|
||||||
texture = ExtResource("2_r3a31")
|
texture = ExtResource("2_r3a31")
|
||||||
|
|
||||||
[node name="ChromaticAbberation" type="ColorRect" parent="."]
|
[node name="ChromaticAbberation" type="ColorRect" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_y8ah7")
|
material = SubResource("ShaderMaterial_y8ah7")
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
@ -69,6 +257,7 @@ mouse_filter = 1
|
|||||||
copy_mode = 2
|
copy_mode = 2
|
||||||
|
|
||||||
[node name="Palette" type="Panel" parent="."]
|
[node name="Palette" type="Panel" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_iqikf")
|
material = SubResource("ShaderMaterial_iqikf")
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
@ -82,6 +271,7 @@ mouse_filter = 1
|
|||||||
copy_mode = 2
|
copy_mode = 2
|
||||||
|
|
||||||
[node name="GlitchEffect" type="ColorRect" parent="."]
|
[node name="GlitchEffect" type="ColorRect" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_fpg8r")
|
material = SubResource("ShaderMaterial_fpg8r")
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
@ -94,27 +284,35 @@ mouse_filter = 1
|
|||||||
[node name="BackBufferCopy" type="BackBufferCopy" parent="GlitchEffect"]
|
[node name="BackBufferCopy" type="BackBufferCopy" parent="GlitchEffect"]
|
||||||
copy_mode = 2
|
copy_mode = 2
|
||||||
|
|
||||||
[node name="Fog" type="TextureRect" parent="."]
|
[node name="Fog" type="AnimatedSprite2D" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_pabt5")
|
self_modulate = Color(0.8, 0.8, 0.8, 0.8)
|
||||||
anchors_preset = 8
|
material = SubResource("ShaderMaterial_fv2fx")
|
||||||
anchor_left = 0.5
|
position = Vector2(286, 161)
|
||||||
anchor_top = 0.5
|
sprite_frames = SubResource("SpriteFrames_xeqgs")
|
||||||
anchor_right = 0.5
|
animation = &"inverted_point_light_masks"
|
||||||
anchor_bottom = 0.5
|
frame = 15
|
||||||
offset_left = -300.0
|
offset = Vector2(0, 50)
|
||||||
offset_top = -256.0
|
|
||||||
offset_right = 300.0
|
|
||||||
offset_bottom = 256.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
texture = SubResource("NoiseTexture2D_oe2uy")
|
|
||||||
stretch_mode = 1
|
|
||||||
|
|
||||||
[node name="BackBufferCopy" type="BackBufferCopy" parent="Fog"]
|
[node name="BackBufferCopy" type="BackBufferCopy" parent="Fog"]
|
||||||
copy_mode = 2
|
copy_mode = 2
|
||||||
|
|
||||||
|
[node name="Cloud" type="AnimatedSprite2D" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
visible = false
|
||||||
|
material = ExtResource("7_cmfij")
|
||||||
|
position = Vector2(267, 171)
|
||||||
|
scale = Vector2(0.7, 0.7)
|
||||||
|
sprite_frames = SubResource("SpriteFrames_sypgq")
|
||||||
|
animation = &"inverted_point_light_masks"
|
||||||
|
frame = 15
|
||||||
|
|
||||||
|
[node name="BackBufferCopy" type="BackBufferCopy" parent="Cloud"]
|
||||||
|
copy_mode = 2
|
||||||
|
|
||||||
[node name="Vignette" type="ColorRect" parent="."]
|
[node name="Vignette" type="ColorRect" parent="."]
|
||||||
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
material = SubResource("ShaderMaterial_radis")
|
material = SubResource("ShaderMaterial_radis")
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|