demo 0.1.2.5 优化
20
README.md
@ -43,9 +43,8 @@ GroundLoader 加载/切换 Ground 时,分为上下两段转场:
|
|||||||
- 下半段(新场景出现):先暂停,在完全出现后再运行
|
- 下半段(新场景出现):先暂停,在完全出现后再运行
|
||||||
【特殊注意⚠️】
|
【特殊注意⚠️】
|
||||||
- AnimationPlayer 的 process_mode 并非 inderited,而是 pausable。这意味着 AnimationPlayer 的 _on_ground_ready 在转场时仍旧可以直接运行。
|
- AnimationPlayer 的 process_mode 并非 inderited,而是 pausable。这意味着 AnimationPlayer 的 _on_ground_ready 在转场时仍旧可以直接运行。
|
||||||
- 同样独立设置的还有 Sfx/Sfx2D,它们仍旧可以播放音频直到上半段转场结束
|
|
||||||
- CameraFocusMarker 也需要如此,以确保镜头快速拉到指定位置
|
- CameraFocusMarker 也需要如此,以确保镜头快速拉到指定位置
|
||||||
- 盒子 canvas layer
|
- 盒子猫游戏中的 canvas layer
|
||||||
- 一些 npc、player 大运行脚本会被中断。如果想让它们仍旧运行,需设置为 pausable。
|
- 一些 npc、player 大运行脚本会被中断。如果想让它们仍旧运行,需设置为 pausable。
|
||||||
|
|
||||||
|
|
||||||
@ -148,14 +147,25 @@ current_scene 是通过 GroundLoader 加载的,在 ground loader 加载 ground
|
|||||||
|
|
||||||
# 重大更新日志(功能)
|
# 重大更新日志(功能)
|
||||||
|
|
||||||
- Sign 触发机制,图标位置管理
|
- Sign 触发机制
|
||||||
- GroundArchive:场景内 namespace 隔离,内部需要保证节点名 unique
|
- 唯一触发器,关注各节点唯一占有 occupied 状态,与全局 hold/unhold (禁止操作)状态
|
||||||
|
- 管理图标贴图(unrevealed / matched / ...)与位置
|
||||||
|
- GroundArchive:场景内 namespace 隔离
|
||||||
|
- 内部需要保证节点名 unique
|
||||||
- 基础节点:Inspectable,Ambush,Note,Interactable,Closeup,Npc
|
- 基础节点:Inspectable,Ambush,Note,Interactable,Closeup,Npc
|
||||||
- [#ban_skip] 与 IGNORE_INPUT : 前者 debug 可跳过,后者总不可跳过
|
- [#ban_skip] 与 IGNORE_INPUT : 前者 debug 可跳过,后者总不可跳过
|
||||||
- PropHud 切换与点击展示
|
- PropHud 切换与点击展示
|
||||||
|
- 左键点击展开 Hud
|
||||||
|
- 右键点击检阅道具
|
||||||
- SignSnapper 拉动机制
|
- SignSnapper 拉动机制
|
||||||
|
- 自动锁定玩家操作,调用 walk_to 指定位置
|
||||||
|
- 自动优化范围:忽略小范围移动以防抽动,最低活动距离
|
||||||
- ReenterLock 机制
|
- ReenterLock 机制
|
||||||
|
- 可重入锁
|
||||||
|
- Editor 中运行可 Debug 输出调用位置(调用 lock 的代码文件&代码行)
|
||||||
- Vibe Sfx & Manager
|
- Vibe Sfx & Manager
|
||||||
- 转场 process 机制优化:暂停 & sfx 等保持运行
|
- 全局音效控制
|
||||||
|
- 影响 SignSnapper 的等待时长(如 Boss 战时加快节奏)
|
||||||
|
- 转场 process 机制优化:暂停 & AnimationPlayer 保持运行
|
||||||
- EventManager 控制事件,使用 Event2D 控制绑定关系
|
- EventManager 控制事件,使用 Event2D 控制绑定关系
|
||||||
- Vibe Control 控制氛围情绪音乐
|
- Vibe Control 控制氛围情绪音乐
|
||||||
|
@ -16,6 +16,14 @@ class_name ProAnimatedSprite2D extends AnimatedSprite2D
|
|||||||
light_energy = val * modulate.a
|
light_energy = val * modulate.a
|
||||||
@export var debug_mov_animation := ""
|
@export var debug_mov_animation := ""
|
||||||
@export_tool_button("debug 刷新 mov 目标") var debug_mov_projection := _debug_mov_projection
|
@export_tool_button("debug 刷新 mov 目标") var debug_mov_projection := _debug_mov_projection
|
||||||
|
@export var debug_playing := false:
|
||||||
|
set(val):
|
||||||
|
if debug_playing != val:
|
||||||
|
debug_playing = val
|
||||||
|
if not val:
|
||||||
|
position = debug_play_start_position
|
||||||
|
|
||||||
|
@export_tool_button("debug play") var debug_play := _debug_play
|
||||||
|
|
||||||
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": ""
|
||||||
@ -58,12 +66,13 @@ func _ready() -> void:
|
|||||||
frame_changed.connect(_on_frame_changed)
|
frame_changed.connect(_on_frame_changed)
|
||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
_debug_mov_projection()
|
_debug_mov_projection()
|
||||||
return
|
else:
|
||||||
_load_config()
|
|
||||||
debug_mov_onion_sprite2d.queue_free()
|
debug_mov_onion_sprite2d.queue_free()
|
||||||
|
_load_config()
|
||||||
if autostart and animation:
|
if autostart and animation:
|
||||||
# 制造一点错差
|
# 制造一点错差
|
||||||
frame = randi() % sprite_frames.get_frame_count(animation)
|
frame = randi() % sprite_frames.get_frame_count(animation)
|
||||||
|
if not Engine.is_editor_hint() or debug_playing:
|
||||||
play()
|
play()
|
||||||
animation_changed.connect(_on_animation_start)
|
animation_changed.connect(_on_animation_start)
|
||||||
animation_looped.connect(_on_animation_start)
|
animation_looped.connect(_on_animation_start)
|
||||||
@ -76,7 +85,9 @@ func _debug_mov_projection():
|
|||||||
if debug_mov_animation and animation_mov_dict.has(debug_mov_animation):
|
if debug_mov_animation and animation_mov_dict.has(debug_mov_animation):
|
||||||
var mov_config = animation_mov_dict[debug_mov_animation]
|
var mov_config = animation_mov_dict[debug_mov_animation]
|
||||||
# 展示 accumulated animation 的目标位置
|
# 展示 accumulated animation 的目标位置
|
||||||
debug_mov_onion_sprite2d.position.x = mov_config.movement_x * (-1 if flip_h else 1) / scale.x
|
debug_mov_onion_sprite2d.position.x = (
|
||||||
|
mov_config.movement_x * (-1 if flip_h else 1) / scale.x
|
||||||
|
)
|
||||||
debug_mov_onion_sprite2d.texture = sprite_frames.get_frame_texture(debug_mov_animation, 0)
|
debug_mov_onion_sprite2d.texture = sprite_frames.get_frame_texture(debug_mov_animation, 0)
|
||||||
debug_mov_onion_sprite2d.flip_h = flip_h
|
debug_mov_onion_sprite2d.flip_h = flip_h
|
||||||
elif debug_mov_animation:
|
elif debug_mov_animation:
|
||||||
@ -158,7 +169,7 @@ 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 (not debug_playing and Engine.is_editor_hint()) or not velocity or not is_playing():
|
||||||
return
|
return
|
||||||
var diff_x = velocity.x * delta
|
var diff_x = velocity.x * delta
|
||||||
if flip_h:
|
if flip_h:
|
||||||
@ -212,3 +223,13 @@ func play_with_loop(anim: String, loop := -1, wait := 0.0, next := "") -> void:
|
|||||||
}
|
}
|
||||||
# 设置完配置后播放
|
# 设置完配置后播放
|
||||||
play(anim)
|
play(anim)
|
||||||
|
|
||||||
|
|
||||||
|
##### TOOL BUTTON
|
||||||
|
var debug_play_start_position: Vector2
|
||||||
|
|
||||||
|
|
||||||
|
func _debug_play():
|
||||||
|
debug_play_start_position = position
|
||||||
|
debug_playing = true
|
||||||
|
play()
|
||||||
|
Before Width: | Height: | Size: 178 KiB |
59
asset/art/gif/c03_三楼/c03_三楼_frames.tres
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
[gd_resource type="SpriteFrames" load_steps=12 format=3 uid="uid://cljrkkmy2pwdp"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/0.png" id="1_638l7"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/1.png" id="2_nl5dv"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/2.png" id="3_fneuh"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/3.png" id="4_fmw1k"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/4.png" id="5_2o31u"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/5.png" id="6_texvw"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/6.png" id="7_cr48g"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/7.png" id="8_v8byt"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/8.png" id="9_o63c7"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/9.png" id="10_jhtld"]
|
||||||
|
[ext_resource type="Texture2D" path="res://asset/art/gif/c03_三楼/三楼窗户动画/10.png" id="11_6lgaf"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
animations = [{
|
||||||
|
"frames": [],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"default",
|
||||||
|
"speed": 5.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 3.9,
|
||||||
|
"texture": ExtResource("1_638l7")
|
||||||
|
}, {
|
||||||
|
"duration": 15.9,
|
||||||
|
"texture": ExtResource("2_nl5dv")
|
||||||
|
}, {
|
||||||
|
"duration": 2.1,
|
||||||
|
"texture": ExtResource("3_fneuh")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("4_fmw1k")
|
||||||
|
}, {
|
||||||
|
"duration": 17.1,
|
||||||
|
"texture": ExtResource("5_2o31u")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("6_texvw")
|
||||||
|
}, {
|
||||||
|
"duration": 3.0,
|
||||||
|
"texture": ExtResource("7_cr48g")
|
||||||
|
}, {
|
||||||
|
"duration": 15.9,
|
||||||
|
"texture": ExtResource("8_v8byt")
|
||||||
|
}, {
|
||||||
|
"duration": 2.1,
|
||||||
|
"texture": ExtResource("9_o63c7")
|
||||||
|
}, {
|
||||||
|
"duration": 5.1,
|
||||||
|
"texture": ExtResource("10_jhtld")
|
||||||
|
}, {
|
||||||
|
"duration": 18.0,
|
||||||
|
"texture": ExtResource("11_6lgaf")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"三楼窗户动画",
|
||||||
|
"speed": 30.0
|
||||||
|
}]
|
BIN
asset/art/gif/c03_三楼/三楼窗户动画.gif
Normal file
After Width: | Height: | Size: 6.3 KiB |
14
asset/art/gif/c03_三楼/三楼窗户动画.gif.import
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="gif.animated.texture.plugin"
|
||||||
|
type="SpriteFrames"
|
||||||
|
uid="uid://cgdfidynpm3gp"
|
||||||
|
path="res://.godot/imported/三楼窗户动画.gif-4eb4230112d176a2b61268cba9a404ea.tres"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画.gif"
|
||||||
|
dest_files=["res://.godot/imported/三楼窗户动画.gif-4eb4230112d176a2b61268cba9a404ea.tres"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
BIN
asset/art/gif/c03_三楼/三楼窗户动画/0.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dcnbfdgbsyeey"
|
uid="uid://wmi5qfusoc6r"
|
||||||
path="res://.godot/imported/f_序章标题.png-a6d601409d9fd3b97cff6b0086d359be.ctex"
|
path="res://.godot/imported/0.png-de2175bd6e3b9b6d3b0849e0425a8ab0.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/scene/c01/s02_旧版序章/f_序章标题.png"
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/0.png"
|
||||||
dest_files=["res://.godot/imported/f_序章标题.png-a6d601409d9fd3b97cff6b0086d359be.ctex"]
|
dest_files=["res://.godot/imported/0.png-de2175bd6e3b9b6d3b0849e0425a8ab0.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
asset/art/gif/c03_三楼/三楼窗户动画/1.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/1.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bj3mpwu8ocpma"
|
||||||
|
path="res://.godot/imported/1.png-ebea6dd14afaa8de40ca72684e50b62a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/1.png"
|
||||||
|
dest_files=["res://.godot/imported/1.png-ebea6dd14afaa8de40ca72684e50b62a.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/c03_三楼/三楼窗户动画/10.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/10.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bkujjii8fgdl4"
|
||||||
|
path="res://.godot/imported/10.png-f57031390169fa8f66b8a841142bfa3f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/10.png"
|
||||||
|
dest_files=["res://.godot/imported/10.png-f57031390169fa8f66b8a841142bfa3f.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/c03_三楼/三楼窗户动画/2.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/2.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bf5ioldgjjl3o"
|
||||||
|
path="res://.godot/imported/2.png-a2ac750ddd1b069f276063e6cdf3d281.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/2.png"
|
||||||
|
dest_files=["res://.godot/imported/2.png-a2ac750ddd1b069f276063e6cdf3d281.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/c03_三楼/三楼窗户动画/3.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/3.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c38cl6nof6myf"
|
||||||
|
path="res://.godot/imported/3.png-946268593ce92b844452b4f03491cf4c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/3.png"
|
||||||
|
dest_files=["res://.godot/imported/3.png-946268593ce92b844452b4f03491cf4c.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/c03_三楼/三楼窗户动画/4.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/4.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://buevhcobtv5ya"
|
||||||
|
path="res://.godot/imported/4.png-e4263b6ad463d2418924c365ab8cb20e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/4.png"
|
||||||
|
dest_files=["res://.godot/imported/4.png-e4263b6ad463d2418924c365ab8cb20e.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/c03_三楼/三楼窗户动画/5.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/5.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bkrbcsbnxdy2r"
|
||||||
|
path="res://.godot/imported/5.png-a7ea88d1220c1dc32f8891344a156f8f.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/5.png"
|
||||||
|
dest_files=["res://.godot/imported/5.png-a7ea88d1220c1dc32f8891344a156f8f.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/c03_三楼/三楼窗户动画/6.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/6.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bdp7rd8sn23jh"
|
||||||
|
path="res://.godot/imported/6.png-88612ef73f91204c92988a291c49f1fe.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/6.png"
|
||||||
|
dest_files=["res://.godot/imported/6.png-88612ef73f91204c92988a291c49f1fe.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/c03_三楼/三楼窗户动画/7.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/7.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dptgag6ns51lj"
|
||||||
|
path="res://.godot/imported/7.png-2cb7e36faac5a875904c5287a9e2d667.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/7.png"
|
||||||
|
dest_files=["res://.godot/imported/7.png-2cb7e36faac5a875904c5287a9e2d667.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/c03_三楼/三楼窗户动画/8.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/8.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cnvk3wsupxluq"
|
||||||
|
path="res://.godot/imported/8.png-11a4e36f4ba4dcec9b95643c661c8d2d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/8.png"
|
||||||
|
dest_files=["res://.godot/imported/8.png-11a4e36f4ba4dcec9b95643c661c8d2d.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/c03_三楼/三楼窗户动画/9.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
34
asset/art/gif/c03_三楼/三楼窗户动画/9.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://6cur72juq0ag"
|
||||||
|
path="res://.godot/imported/9.png-403ed15f30c461f8ea915063667e622c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/gif/c03_三楼/三楼窗户动画/9.png"
|
||||||
|
dest_files=["res://.godot/imported/9.png-403ed15f30c461f8ea915063667e622c.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
|
@ -1,85 +0,0 @@
|
|||||||
[gd_resource type="SpriteFrames" load_steps=16 format=3 uid="uid://by3207ou8ph7"]
|
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ctk8sh3rhvmi5" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/0.png" id="1_ctqo0"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bwykxtvdujimd" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/0.png" id="1_fcnvy"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://djwxl1tebi5x" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(往前走)/0.png" id="1_o1csg"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://1uk6oj7c1pc0" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(往前走)/1.png" id="2_brixb"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ddf3kd4kukuga" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/1.png" id="2_ctqo0"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://c35poyn3mxvtt" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/1.png" id="2_w48pf"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://cahlj0u5mot6v" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/2.png" id="3_cfyr2"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://qn51u1b00n2v" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/2.png" id="3_w48pf"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://n30xu12f6pcw" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/3.png" id="4_cfyr2"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d2ecwhkld8u2d" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/3.png" id="4_j51jw"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bf6wfuhcejrv1" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/4.png" id="5_w7h7c"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bsclq0o3gtr3i" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/0.png" id="10_l0u5u"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://c6rdik24wvgw5" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/1.png" id="11_dy5ih"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://c5a5lj527f0kp" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/2.png" id="12_33ryh"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://cwq8t3q80x0du" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/3.png" id="13_86osl"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
animations = [{
|
|
||||||
"frames": [{
|
|
||||||
"duration": 6.0,
|
|
||||||
"texture": ExtResource("1_ctqo0")
|
|
||||||
}, {
|
|
||||||
"duration": 6.0,
|
|
||||||
"texture": ExtResource("2_w48pf")
|
|
||||||
}, {
|
|
||||||
"duration": 6.0,
|
|
||||||
"texture": ExtResource("3_cfyr2")
|
|
||||||
}, {
|
|
||||||
"duration": 6.0,
|
|
||||||
"texture": ExtResource("4_j51jw")
|
|
||||||
}, {
|
|
||||||
"duration": 6.0,
|
|
||||||
"texture": ExtResource("5_w7h7c")
|
|
||||||
}],
|
|
||||||
"loop": false,
|
|
||||||
"name": &"小小小蝶动画(上楼梯)",
|
|
||||||
"speed": 30.0
|
|
||||||
}, {
|
|
||||||
"frames": [{
|
|
||||||
"duration": 20.1,
|
|
||||||
"texture": ExtResource("1_fcnvy")
|
|
||||||
}, {
|
|
||||||
"duration": 20.1,
|
|
||||||
"texture": ExtResource("2_ctqo0")
|
|
||||||
}, {
|
|
||||||
"duration": 20.1,
|
|
||||||
"texture": ExtResource("3_w48pf")
|
|
||||||
}, {
|
|
||||||
"duration": 20.1,
|
|
||||||
"texture": ExtResource("4_cfyr2")
|
|
||||||
}],
|
|
||||||
"loop": true,
|
|
||||||
"name": &"小小小蝶动画(呼吸)",
|
|
||||||
"speed": 30.0
|
|
||||||
}, {
|
|
||||||
"frames": [{
|
|
||||||
"duration": 6.0,
|
|
||||||
"texture": ExtResource("1_o1csg")
|
|
||||||
}, {
|
|
||||||
"duration": 6.0,
|
|
||||||
"texture": ExtResource("2_brixb")
|
|
||||||
}],
|
|
||||||
"loop": true,
|
|
||||||
"name": &"小小小蝶动画(往前走)",
|
|
||||||
"speed": 30.0
|
|
||||||
}, {
|
|
||||||
"frames": [{
|
|
||||||
"duration": 9.9,
|
|
||||||
"texture": ExtResource("10_l0u5u")
|
|
||||||
}, {
|
|
||||||
"duration": 9.9,
|
|
||||||
"texture": ExtResource("11_dy5ih")
|
|
||||||
}, {
|
|
||||||
"duration": 9.9,
|
|
||||||
"texture": ExtResource("12_33ryh")
|
|
||||||
}, {
|
|
||||||
"duration": 9.9,
|
|
||||||
"texture": ExtResource("13_86osl")
|
|
||||||
}],
|
|
||||||
"loop": true,
|
|
||||||
"name": &"小小小蝶动画(跑)",
|
|
||||||
"speed": 30.0
|
|
||||||
}]
|
|
85
asset/art/gif/c03_小小小蝶上楼道/c03_小小小蝶上楼道_frames.tres
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
[gd_resource type="SpriteFrames" load_steps=16 format=3 uid="uid://c218xrr85jdc7"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bjwb6rk72hmtu" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(往前走)/0.png" id="1_1yj0y"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://gaykdctnuduf" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/0.png" id="1_5cr6n"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://djr8lkcp2l4tu" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/0.png" id="1_s2oio"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bdo4lmuvt54hg" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(往前走)/1.png" id="2_822rv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bhesoxpj573c4" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/1.png" id="2_ishlv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://nj363mpsgxog" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/1.png" id="2_s2oio"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dtabi2q5ditbc" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/2.png" id="3_8s01c"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bop42kxymgyln" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/2.png" id="3_ishlv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cib8d20s4qufa" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(呼吸)/3.png" id="4_8s01c"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://b45bu6n0wd0ka" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/3.png" id="4_t57xm"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bw4rstnjgk1iv" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(上楼梯)/4.png" id="5_jt3iw"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://caco171n5354h" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/0.png" id="12_id3wp"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://crdlq30w7mj63" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/1.png" id="13_hpyv1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dppqhi78a57es" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/2.png" id="14_re1a4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bu056wsa2jjv" path="res://asset/art/gif/c03_小小小蝶上楼道/小小小蝶动画(跑)/3.png" id="15_vpvlk"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
animations = [{
|
||||||
|
"frames": [{
|
||||||
|
"duration": 6.0,
|
||||||
|
"texture": ExtResource("1_s2oio")
|
||||||
|
}, {
|
||||||
|
"duration": 6.0,
|
||||||
|
"texture": ExtResource("2_ishlv")
|
||||||
|
}, {
|
||||||
|
"duration": 6.0,
|
||||||
|
"texture": ExtResource("3_8s01c")
|
||||||
|
}, {
|
||||||
|
"duration": 6.0,
|
||||||
|
"texture": ExtResource("4_t57xm")
|
||||||
|
}, {
|
||||||
|
"duration": 6.0,
|
||||||
|
"texture": ExtResource("5_jt3iw")
|
||||||
|
}],
|
||||||
|
"loop": false,
|
||||||
|
"name": &"小小小蝶动画(上楼梯)",
|
||||||
|
"speed": 30.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 20.1,
|
||||||
|
"texture": ExtResource("1_5cr6n")
|
||||||
|
}, {
|
||||||
|
"duration": 20.1,
|
||||||
|
"texture": ExtResource("2_s2oio")
|
||||||
|
}, {
|
||||||
|
"duration": 20.1,
|
||||||
|
"texture": ExtResource("3_ishlv")
|
||||||
|
}, {
|
||||||
|
"duration": 20.1,
|
||||||
|
"texture": ExtResource("4_8s01c")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"小小小蝶动画(呼吸)",
|
||||||
|
"speed": 30.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 6.0,
|
||||||
|
"texture": ExtResource("1_1yj0y")
|
||||||
|
}, {
|
||||||
|
"duration": 6.0,
|
||||||
|
"texture": ExtResource("2_822rv")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"小小小蝶动画(往前走)",
|
||||||
|
"speed": 30.0
|
||||||
|
}, {
|
||||||
|
"frames": [{
|
||||||
|
"duration": 9.9,
|
||||||
|
"texture": ExtResource("12_id3wp")
|
||||||
|
}, {
|
||||||
|
"duration": 9.9,
|
||||||
|
"texture": ExtResource("13_hpyv1")
|
||||||
|
}, {
|
||||||
|
"duration": 9.9,
|
||||||
|
"texture": ExtResource("14_re1a4")
|
||||||
|
}, {
|
||||||
|
"duration": 9.9,
|
||||||
|
"texture": ExtResource("15_vpvlk")
|
||||||
|
}],
|
||||||
|
"loop": true,
|
||||||
|
"name": &"小小小蝶动画(跑)",
|
||||||
|
"speed": 30.0
|
||||||
|
}]
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="gif.animated.texture.plugin"
|
importer="gif.animated.texture.plugin"
|
||||||
type="SpriteFrames"
|
type="SpriteFrames"
|
||||||
uid="uid://nqsdsjdsfdab"
|
uid="uid://5hep6a8gdkbo"
|
||||||
path="res://.godot/imported/小小小蝶动画(上楼梯).gif-7c54830d3c0e0c66b29238348f4df7a1.tres"
|
path="res://.godot/imported/小小小蝶动画(上楼梯).gif-7c54830d3c0e0c66b29238348f4df7a1.tres"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://ctk8sh3rhvmi5"
|
uid="uid://djr8lkcp2l4tu"
|
||||||
path="res://.godot/imported/0.png-78a8d4d71fbf5571b704b881066a9461.ctex"
|
path="res://.godot/imported/0.png-78a8d4d71fbf5571b704b881066a9461.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://c35poyn3mxvtt"
|
uid="uid://bhesoxpj573c4"
|
||||||
path="res://.godot/imported/1.png-5dea8510fa6a5d57e027d80c256a265d.ctex"
|
path="res://.godot/imported/1.png-5dea8510fa6a5d57e027d80c256a265d.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cahlj0u5mot6v"
|
uid="uid://dtabi2q5ditbc"
|
||||||
path="res://.godot/imported/2.png-a6dbc1682dc09a621e7b6502e7ede6b7.ctex"
|
path="res://.godot/imported/2.png-a6dbc1682dc09a621e7b6502e7ede6b7.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://d2ecwhkld8u2d"
|
uid="uid://b45bu6n0wd0ka"
|
||||||
path="res://.godot/imported/3.png-ba593b00fc362c726db2074dc8480b8e.ctex"
|
path="res://.godot/imported/3.png-ba593b00fc362c726db2074dc8480b8e.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bf6wfuhcejrv1"
|
uid="uid://bw4rstnjgk1iv"
|
||||||
path="res://.godot/imported/4.png-924871c7e42a548c3c255e57ec9793e3.ctex"
|
path="res://.godot/imported/4.png-924871c7e42a548c3c255e57ec9793e3.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="gif.animated.texture.plugin"
|
importer="gif.animated.texture.plugin"
|
||||||
type="SpriteFrames"
|
type="SpriteFrames"
|
||||||
uid="uid://c8pjtla0qebwg"
|
uid="uid://d0qjnrslvybpx"
|
||||||
path="res://.godot/imported/小小小蝶动画(呼吸).gif-91af45452014e2c866580755b40c9d46.tres"
|
path="res://.godot/imported/小小小蝶动画(呼吸).gif-91af45452014e2c866580755b40c9d46.tres"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bwykxtvdujimd"
|
uid="uid://gaykdctnuduf"
|
||||||
path="res://.godot/imported/0.png-ce4f73e5fc3d7138c070a7fd3fdc58dd.ctex"
|
path="res://.godot/imported/0.png-ce4f73e5fc3d7138c070a7fd3fdc58dd.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://ddf3kd4kukuga"
|
uid="uid://nj363mpsgxog"
|
||||||
path="res://.godot/imported/1.png-922973505b3ee75b3c06a2737ab742b6.ctex"
|
path="res://.godot/imported/1.png-922973505b3ee75b3c06a2737ab742b6.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://qn51u1b00n2v"
|
uid="uid://bop42kxymgyln"
|
||||||
path="res://.godot/imported/2.png-77da9ed3eee1ae3b92eafe91b404bdab.ctex"
|
path="res://.godot/imported/2.png-77da9ed3eee1ae3b92eafe91b404bdab.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://n30xu12f6pcw"
|
uid="uid://cib8d20s4qufa"
|
||||||
path="res://.godot/imported/3.png-78b50785190630462b5c83bcee1ebf43.ctex"
|
path="res://.godot/imported/3.png-78b50785190630462b5c83bcee1ebf43.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="gif.animated.texture.plugin"
|
importer="gif.animated.texture.plugin"
|
||||||
type="SpriteFrames"
|
type="SpriteFrames"
|
||||||
uid="uid://b3y8bhdt3flfb"
|
uid="uid://c67uyeedm4eie"
|
||||||
path="res://.godot/imported/小小小蝶动画(往前走).gif-52f373bd454008ca93aeabe897321504.tres"
|
path="res://.godot/imported/小小小蝶动画(往前走).gif-52f373bd454008ca93aeabe897321504.tres"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://djwxl1tebi5x"
|
uid="uid://bjwb6rk72hmtu"
|
||||||
path="res://.godot/imported/0.png-724d8608d9000f7b9f0048d54eab217a.ctex"
|
path="res://.godot/imported/0.png-724d8608d9000f7b9f0048d54eab217a.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://1uk6oj7c1pc0"
|
uid="uid://bdo4lmuvt54hg"
|
||||||
path="res://.godot/imported/1.png-dfbf3a73dd48e58138834c0bd419a378.ctex"
|
path="res://.godot/imported/1.png-dfbf3a73dd48e58138834c0bd419a378.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="gif.animated.texture.plugin"
|
importer="gif.animated.texture.plugin"
|
||||||
type="SpriteFrames"
|
type="SpriteFrames"
|
||||||
uid="uid://kqlt5uewnedw"
|
uid="uid://ba730fsv024su"
|
||||||
path="res://.godot/imported/小小小蝶动画(跑).gif-1dd387a332e9d39dc933f234758b5e53.tres"
|
path="res://.godot/imported/小小小蝶动画(跑).gif-1dd387a332e9d39dc933f234758b5e53.tres"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://bsclq0o3gtr3i"
|
uid="uid://caco171n5354h"
|
||||||
path="res://.godot/imported/0.png-60280c8fd45952e7df9b96e291860ffe.ctex"
|
path="res://.godot/imported/0.png-60280c8fd45952e7df9b96e291860ffe.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://c6rdik24wvgw5"
|
uid="uid://crdlq30w7mj63"
|
||||||
path="res://.godot/imported/1.png-d01feb083416d9768ff23ec7d63ba562.ctex"
|
path="res://.godot/imported/1.png-d01feb083416d9768ff23ec7d63ba562.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://c5a5lj527f0kp"
|
uid="uid://dppqhi78a57es"
|
||||||
path="res://.godot/imported/2.png-b6372c9fb49112edff670bf4484c2373.ctex"
|
path="res://.godot/imported/2.png-b6372c9fb49112edff670bf4484c2373.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cwq8t3q80x0du"
|
uid="uid://bu056wsa2jjv"
|
||||||
path="res://.godot/imported/3.png-8ffb7363131c44fd5f1a8e2d740ec584.ctex"
|
path="res://.godot/imported/3.png-8ffb7363131c44fd5f1a8e2d740ec584.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
Before Width: | Height: | Size: 154 KiB |
Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 665 B |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://o5uouajglukh"
|
uid="uid://o5uouajglukh"
|
||||||
path="res://.godot/imported/e_小蝉头套.png-501b12996fd43e963ac65bc84fe4c4e2.ctex"
|
path="res://.godot/imported/e_小蝉头套.png-ea99dce944a5765b69439bed52c2f9f4.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/gif/c02_空房间/e_小蝉头套.png"
|
source_file="res://asset/art/scene/c02/s10_空房间/e_小蝉头套.png"
|
||||||
dest_files=["res://.godot/imported/e_小蝉头套.png-501b12996fd43e963ac65bc84fe4c4e2.ctex"]
|
dest_files=["res://.godot/imported/e_小蝉头套.png-ea99dce944a5765b69439bed52c2f9f4.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
asset/art/scene/c02/s10_空房间/ux_小蝉头套特写.png
Normal file
After Width: | Height: | Size: 120 KiB |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://b0arnhnvdn0ew"
|
uid="uid://b0arnhnvdn0ew"
|
||||||
path="res://.godot/imported/ux_小蝉头套特写.png-0f19dde023c331772c53a4c886853ec4.ctex"
|
path="res://.godot/imported/ux_小蝉头套特写.png-8b449bdb257ff56259e1eb4834ace6bc.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/gif/c02_空房间/ux_小蝉头套特写.png"
|
source_file="res://asset/art/scene/c02/s10_空房间/ux_小蝉头套特写.png"
|
||||||
dest_files=["res://.godot/imported/ux_小蝉头套特写.png-0f19dde023c331772c53a4c886853ec4.ctex"]
|
dest_files=["res://.godot/imported/ux_小蝉头套特写.png-8b449bdb257ff56259e1eb4834ace6bc.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://88l4i6ywvjqm"
|
uid="uid://88l4i6ywvjqm"
|
||||||
path="res://.godot/imported/人偶.png-f4dfc90993e694feddc1ec221f95be0b.ctex"
|
path="res://.godot/imported/人偶.png-ff3d7fb8dc118510c3cbbe0b241eb5a4.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/gif/c02_空房间/人偶.png"
|
source_file="res://asset/art/scene/c02/s10_空房间/人偶.png"
|
||||||
dest_files=["res://.godot/imported/人偶.png-f4dfc90993e694feddc1ec221f95be0b.ctex"]
|
dest_files=["res://.godot/imported/人偶.png-ff3d7fb8dc118510c3cbbe0b241eb5a4.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
@ -3,15 +3,15 @@
|
|||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://cpj7goyf6nqiw"
|
uid="uid://cpj7goyf6nqiw"
|
||||||
path="res://.godot/imported/全身.png-9be7e1586ed418f01e5c654d32e9d920.ctex"
|
path="res://.godot/imported/全身.png-da5955e334b019a4ae1e3b5978db6946.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://asset/art/gif/c02_空房间/全身.png"
|
source_file="res://asset/art/scene/c02/s10_空房间/全身.png"
|
||||||
dest_files=["res://.godot/imported/全身.png-9be7e1586ed418f01e5c654d32e9d920.ctex"]
|
dest_files=["res://.godot/imported/全身.png-da5955e334b019a4ae1e3b5978db6946.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
BIN
asset/art/scene/c03/s01_三楼/bg_三楼走廊.png
Normal file
After Width: | Height: | Size: 82 KiB |
34
asset/art/scene/c03/s01_三楼/bg_三楼走廊.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cpjd3dqri51fq"
|
||||||
|
path="res://.godot/imported/bg_三楼走廊.png-d91aa66d3616ed8ddffcfd778f57922d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s01_三楼/bg_三楼走廊.png"
|
||||||
|
dest_files=["res://.godot/imported/bg_三楼走廊.png-d91aa66d3616ed8ddffcfd778f57922d.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/scene/c03/s01_三楼/e_治病木牌.png
Normal file
After Width: | Height: | Size: 673 B |
34
asset/art/scene/c03/s01_三楼/e_治病木牌.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dagy852q0fduh"
|
||||||
|
path="res://.godot/imported/e_治病木牌.png-18fb72ff92acf1bc109e9293ec34e1f5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s01_三楼/e_治病木牌.png"
|
||||||
|
dest_files=["res://.godot/imported/e_治病木牌.png-18fb72ff92acf1bc109e9293ec34e1f5.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/scene/c03/s01_三楼/fg_前景.png
Normal file
After Width: | Height: | Size: 18 KiB |
34
asset/art/scene/c03/s01_三楼/fg_前景.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://djoft6600kly6"
|
||||||
|
path="res://.godot/imported/fg_前景.png-b011f420a650cfc1843989c608d5b33c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s01_三楼/fg_前景.png"
|
||||||
|
dest_files=["res://.godot/imported/fg_前景.png-b011f420a650cfc1843989c608d5b33c.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/scene/c03/s03_瞎子理发店/理发店前景.png
Normal file
After Width: | Height: | Size: 18 KiB |
34
asset/art/scene/c03/s03_瞎子理发店/理发店前景.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b45bpylquulrt"
|
||||||
|
path="res://.godot/imported/理发店前景.png-77d90d6f4031d5275b798cf1684586d8.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s03_瞎子理发店/理发店前景.png"
|
||||||
|
dest_files=["res://.godot/imported/理发店前景.png-77d90d6f4031d5275b798cf1684586d8.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/scene/c03/s03_瞎子理发店/理发店剪贴画报.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
34
asset/art/scene/c03/s03_瞎子理发店/理发店剪贴画报.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://0p78wjtm30rm"
|
||||||
|
path="res://.godot/imported/理发店剪贴画报.png-f1c9f5ebcf15538ef9c9a5303e912cad.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s03_瞎子理发店/理发店剪贴画报.png"
|
||||||
|
dest_files=["res://.godot/imported/理发店剪贴画报.png-f1c9f5ebcf15538ef9c9a5303e912cad.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/scene/c03/s03_瞎子理发店/癞子纸人.png
Normal file
After Width: | Height: | Size: 861 B |
34
asset/art/scene/c03/s03_瞎子理发店/癞子纸人.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bv5vcrdqwtlm3"
|
||||||
|
path="res://.godot/imported/癞子纸人.png-17dc3e4adfce7f29a4ef01e3b4300862.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子纸人.png"
|
||||||
|
dest_files=["res://.godot/imported/癞子纸人.png-17dc3e4adfce7f29a4ef01e3b4300862.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/scene/c03/s03_瞎子理发店/癞子纸人头套.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
34
asset/art/scene/c03/s03_瞎子理发店/癞子纸人头套.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ckboywu6sjcpc"
|
||||||
|
path="res://.godot/imported/癞子纸人头套.png-c1bab6941acc0a7d734481c5540b5fdd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子纸人头套.png"
|
||||||
|
dest_files=["res://.godot/imported/癞子纸人头套.png-c1bab6941acc0a7d734481c5540b5fdd.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/scene/c03/s03_瞎子理发店/癞子纸人纸钱.png
Normal file
After Width: | Height: | Size: 168 B |
34
asset/art/scene/c03/s03_瞎子理发店/癞子纸人纸钱.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c5qlahkemlsnt"
|
||||||
|
path="res://.godot/imported/癞子纸人纸钱.png-9110c19d0795253447aa88cf755f1174.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子纸人纸钱.png"
|
||||||
|
dest_files=["res://.godot/imported/癞子纸人纸钱.png-9110c19d0795253447aa88cf755f1174.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/scene/c03/s03_瞎子理发店/瞎子理发店.png
Normal file
After Width: | Height: | Size: 88 KiB |
34
asset/art/scene/c03/s03_瞎子理发店/瞎子理发店.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cjgkit00lt3tr"
|
||||||
|
path="res://.godot/imported/瞎子理发店.png-dc9ffb92eb739d530a86cc41684351e3.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s03_瞎子理发店/瞎子理发店.png"
|
||||||
|
dest_files=["res://.godot/imported/瞎子理发店.png-dc9ffb92eb739d530a86cc41684351e3.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/scene/c03/s03_瞎子理发店/纸人-蓝.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
34
asset/art/scene/c03/s03_瞎子理发店/纸人-蓝.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bwe6onvjp8lmo"
|
||||||
|
path="res://.godot/imported/纸人-蓝.png-ce43c595f35b7c5b00e2a5d326dec5a1.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/c03/s03_瞎子理发店/纸人-蓝.png"
|
||||||
|
dest_files=["res://.godot/imported/纸人-蓝.png-ce43c595f35b7c5b00e2a5d326dec5a1.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/scene/demo额外/demo感谢告示.png
Normal file
After Width: | Height: | Size: 188 KiB |
34
asset/art/scene/demo额外/demo感谢告示.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://0quk16rj31cm"
|
||||||
|
path="res://.godot/imported/demo感谢告示.png-06729018a222a69c8997cb68bd5e8173.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/demo额外/demo感谢告示.png"
|
||||||
|
dest_files=["res://.godot/imported/demo感谢告示.png-06729018a222a69c8997cb68bd5e8173.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/scene/demo额外/demo感谢告示(场景).png
Normal file
After Width: | Height: | Size: 513 B |
34
asset/art/scene/demo额外/demo感谢告示(场景).png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://brsrkwf0k0bpn"
|
||||||
|
path="res://.godot/imported/demo感谢告示(场景).png-705d27d1d23e9d8a8240a47d66131987.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://asset/art/scene/demo额外/demo感谢告示(场景).png"
|
||||||
|
dest_files=["res://.godot/imported/demo感谢告示(场景).png-705d27d1d23e9d8a8240a47d66131987.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
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 24 KiB |
@ -193,3 +193,5 @@ c02_小蝉恨他们,我恨他们!,,,,,
|
|||||||
c02_火灾等待准备,还没准备好点火呢,,,,,
|
c02_火灾等待准备,还没准备好点火呢,,,,,
|
||||||
c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,
|
c02_霸凌救小蝉开始,啊!我得想办法帮帮她...,,,,,
|
||||||
c02_点火前阻止右移,没时间浪费了!想想办法救出小蝉...,,,,,
|
c02_点火前阻止右移,没时间浪费了!想想办法救出小蝉...,,,,,
|
||||||
|
c02_看到小蝉上楼,?!,,,,,
|
||||||
|
c02_看到杂物堆消失,楼梯口的杂物消失了...,,,,,
|
||||||
|
|
@ -257,6 +257,9 @@
|
|||||||
还没准备好点火呢 [ID:c02_火灾等待准备]
|
还没准备好点火呢 [ID:c02_火灾等待准备]
|
||||||
啊!我得想办法帮帮她... [ID:c02_霸凌救小蝉开始]
|
啊!我得想办法帮帮她... [ID:c02_霸凌救小蝉开始]
|
||||||
没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移]
|
没时间浪费了!想想办法救出小蝉... [ID:c02_点火前阻止右移]
|
||||||
|
# 结尾
|
||||||
|
?! [ID:c02_看到小蝉上楼]
|
||||||
|
楼梯口的杂物消失了... [ID:c02_看到杂物堆消失]
|
||||||
=> END
|
=> END
|
||||||
|
|
||||||
~ Notes_c03
|
~ Notes_c03
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
@export var path = "res://asset/art/scene/"
|
@export var path = "res://asset/art/scene/"
|
||||||
@export var static_frames = preload("res://config/art/static_sprite_frames.tres")
|
@export var static_frames = preload("uid://ccrfw5wsbxvq4")
|
||||||
|
|
||||||
@onready var load_btn = %LoadButton as Button
|
@onready var load_btn = %LoadButton as Button
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ func _find_group_by_name(group_name: StringName) -> VibeGroup:
|
|||||||
|
|
||||||
|
|
||||||
## 核心方法:播放一个指定的 VibeGroup
|
## 核心方法:播放一个指定的 VibeGroup
|
||||||
func play_group(group_name: StringName):
|
func play_group(group_name: StringName, ease_in := 1.0):
|
||||||
var group = _find_group_by_name(group_name)
|
var group = _find_group_by_name(group_name)
|
||||||
if not is_instance_valid(group):
|
if not is_instance_valid(group):
|
||||||
printerr("VibeManager: VibeGroup is not valid. group_name:", group_name)
|
printerr("VibeManager: VibeGroup is not valid. group_name:", group_name)
|
||||||
@ -101,17 +101,23 @@ func play_group(group_name: StringName):
|
|||||||
return
|
return
|
||||||
var vibe_player = VibeGroupPlayer.new(group)
|
var vibe_player = VibeGroupPlayer.new(group)
|
||||||
vibe_player.name = group_name
|
vibe_player.name = group_name
|
||||||
add_child(vibe_player)
|
|
||||||
vibe_player_dict[group_name] = vibe_player
|
vibe_player_dict[group_name] = vibe_player
|
||||||
|
var tween = create_tween()
|
||||||
|
vibe_player._base_db = -100
|
||||||
|
add_child(vibe_player)
|
||||||
|
tween.tween_method(vibe_player.set_volume_linear, 0.0, 1.0, ease_in)
|
||||||
vibe_player.play()
|
vibe_player.play()
|
||||||
|
|
||||||
|
|
||||||
func stop_group(group_name: StringName):
|
func stop_group(group_name: StringName, ease_out := 1.0):
|
||||||
if is_queued_for_deletion():
|
|
||||||
return
|
|
||||||
if not vibe_player_dict.has(group_name):
|
if not vibe_player_dict.has(group_name):
|
||||||
return
|
return
|
||||||
var vibe_player = vibe_player_dict[group_name]
|
var vibe_player = vibe_player_dict[group_name]
|
||||||
vibe_player_dict.erase(group_name)
|
vibe_player_dict.erase(group_name)
|
||||||
remove_child(vibe_player)
|
var tween = create_tween()
|
||||||
vibe_player.stop_and_free()
|
tween.tween_method(vibe_player.set_volume_linear, 1.0, 0.0, ease_out)
|
||||||
|
tween.tween_callback(vibe_player.stop_and_free)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,6 +7,10 @@ var vibe_group: VibeGroup
|
|||||||
var _base_player: AudioStreamPlayer
|
var _base_player: AudioStreamPlayer
|
||||||
var _embellishment_players = [] as Array[AudioStreamPlayer]
|
var _embellishment_players = [] as Array[AudioStreamPlayer]
|
||||||
var _embellishment_timers = [] as Array[Timer]
|
var _embellishment_timers = [] as Array[Timer]
|
||||||
|
var _base_db := 0.0:
|
||||||
|
set(val):
|
||||||
|
_base_db = val
|
||||||
|
_base_player.volume_db = val
|
||||||
|
|
||||||
|
|
||||||
func _init(group: VibeGroup):
|
func _init(group: VibeGroup):
|
||||||
@ -16,7 +20,7 @@ func _init(group: VibeGroup):
|
|||||||
_base_player.name = "BasePlayer"
|
_base_player.name = "BasePlayer"
|
||||||
_base_player.bus = "game_sfx"
|
_base_player.bus = "game_sfx"
|
||||||
_base_player.stream = group.base_sound
|
_base_player.stream = group.base_sound
|
||||||
_base_player.volume_db = group.group_db + group.base_sound_db
|
_refresh_base_player_db()
|
||||||
# 循环播放
|
# 循环播放
|
||||||
if vibe_group.base_sound.get_length() > 0:
|
if vibe_group.base_sound.get_length() > 0:
|
||||||
_base_player.finished.connect(_base_player.play)
|
_base_player.finished.connect(_base_player.play)
|
||||||
@ -51,14 +55,28 @@ func _on_embellishment_timer_timeout(id: int):
|
|||||||
# 增加随机性
|
# 增加随机性
|
||||||
timer.wait_time = randf_range(embellishment.min_interval, embellishment.max_interval)
|
timer.wait_time = randf_range(embellishment.min_interval, embellishment.max_interval)
|
||||||
timer.start()
|
timer.start()
|
||||||
player.volume_db = (vibe_group.group_db + embellishment.db) * randf_range(0.8, 1.2)
|
player.volume_db = _base_db + (vibe_group.group_db + embellishment.db) * randf_range(0.8, 1.2)
|
||||||
player.pitch_scale = randf_range(0.8, 1.2)
|
player.pitch_scale = randf_range(0.8, 1.2)
|
||||||
player.play()
|
player.play()
|
||||||
|
|
||||||
|
|
||||||
func _ready():
|
func _refresh_base_player_db() -> void:
|
||||||
if Engine.is_editor_hint():
|
_base_player.volume_db = _base_db + vibe_group.group_db + vibe_group.base_sound_db
|
||||||
|
|
||||||
|
|
||||||
|
func _refresh_embellishment_player_db(id: int) -> void:
|
||||||
|
if _embellishment_players[id] == null:
|
||||||
return
|
return
|
||||||
|
_embellishment_players[id].volume_db = (
|
||||||
|
_base_db + vibe_group.group_db + vibe_group.embellishments[id].db
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func set_volume_linear(volume: float):
|
||||||
|
_base_db = linear_to_db(volume)
|
||||||
|
for i in range(vibe_group.embellishments.size()):
|
||||||
|
_refresh_embellishment_player_db(i)
|
||||||
|
_refresh_base_player_db()
|
||||||
|
|
||||||
|
|
||||||
func play():
|
func play():
|
||||||
@ -72,7 +90,7 @@ func play():
|
|||||||
# 如果 loop,则 min_interval 与 max_interval 无效
|
# 如果 loop,则 min_interval 与 max_interval 无效
|
||||||
if embellishment.loop:
|
if embellishment.loop:
|
||||||
var player = _embellishment_players[i]
|
var player = _embellishment_players[i]
|
||||||
player.volume_db = vibe_group.group_db + embellishment.db
|
_refresh_embellishment_player_db(i)
|
||||||
if player.stream:
|
if player.stream:
|
||||||
player.play()
|
player.play()
|
||||||
player.finished.connect(player.play)
|
player.finished.connect(player.play)
|
||||||
|
@ -19,6 +19,14 @@ func _ready():
|
|||||||
return
|
return
|
||||||
if autoplay_group:
|
if autoplay_group:
|
||||||
switch_to(autoplay_group)
|
switch_to(autoplay_group)
|
||||||
|
# ground 退出时,process mode 切换为 always,ease out
|
||||||
|
SceneManager.ground_transition_pre_paused.connect(_on_ground_transition_pre_paused)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ground_transition_pre_paused():
|
||||||
|
if current_group:
|
||||||
|
print("[GroundTransition] VibeSfx %s ease killing group %s" % [name, current_group])
|
||||||
|
AudioManager.stop_group(current_group)
|
||||||
|
|
||||||
|
|
||||||
# var debug_audio_manager: AudioManager
|
# var debug_audio_manager: AudioManager
|
||||||
|
@ -21,10 +21,12 @@ func set_stage(event_name: StringName, stage := 1) -> void:
|
|||||||
print("[EventManager] Stage updated: %s, stage: %s" % [event_name, stage])
|
print("[EventManager] Stage updated: %s, stage: %s" % [event_name, stage])
|
||||||
stage_updated.emit(event_name, stage)
|
stage_updated.emit(event_name, stage)
|
||||||
# 如果是 handnote_ 事件,玩家进行记笔记动作
|
# 如果是 handnote_ 事件,玩家进行记笔记动作
|
||||||
if (
|
if SceneManager.get_player().character.begins_with("吕萍"):
|
||||||
event_name.begins_with("handnote_")
|
if event_name == &"handnote_chapter_stage":
|
||||||
and SceneManager.get_player().character.begins_with("吕萍")
|
# 章节更新
|
||||||
):
|
pass
|
||||||
|
elif event_name.begins_with("handnote_"):
|
||||||
|
# 笔记条目更新
|
||||||
# 0 初始化隐藏,1 开始显示,2 划掉,3 结束隐藏
|
# 0 初始化隐藏,1 开始显示,2 划掉,3 结束隐藏
|
||||||
if stage == 1:
|
if stage == 1:
|
||||||
SceneManager.lock_player(3.0, 16, true)
|
SceneManager.lock_player(3.0, 16, true)
|
||||||
|
@ -10,6 +10,7 @@ enum VIBE {
|
|||||||
# 从 ground loader 控制该信号
|
# 从 ground loader 控制该信号
|
||||||
signal ground_ready(ground: Ground2D)
|
signal ground_ready(ground: Ground2D)
|
||||||
signal ground_start
|
signal ground_start
|
||||||
|
signal ground_transition_pre_paused
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
@ -236,6 +237,13 @@ func pop_os_with_str(translation_key: String) -> void:
|
|||||||
printerr("Player node not found")
|
printerr("Player node not found")
|
||||||
|
|
||||||
|
|
||||||
|
func get_inspector() -> PropInspector:
|
||||||
|
return get_node_or_null("/root/Main/PropInspector") as PropInspector
|
||||||
|
|
||||||
|
|
||||||
|
### Notification
|
||||||
|
|
||||||
|
|
||||||
func pop_notification(translation_key: String, number := 1) -> void:
|
func pop_notification(translation_key: String, number := 1) -> void:
|
||||||
var notification_node = get_node_or_null("/root/Main/UILayer/Notification")
|
var notification_node = get_node_or_null("/root/Main/UILayer/Notification")
|
||||||
if notification_node:
|
if notification_node:
|
||||||
@ -260,30 +268,32 @@ func pop_center_texture(texture: Texture2D, duration := 3.5) -> void:
|
|||||||
printerr("pop_center_texture: Notification node not found")
|
printerr("pop_center_texture: Notification node not found")
|
||||||
|
|
||||||
|
|
||||||
func pop_dialog(
|
var chapter_sfx = preload("uid://qku3yk82g364")
|
||||||
character: String,
|
|
||||||
content: String,
|
func pop_chapter_notification(id: int) -> void:
|
||||||
character_color := "orange",
|
AudioManager.play_sfx(chapter_sfx)
|
||||||
content_color := "white",
|
var texture
|
||||||
duration := 2.5
|
match id:
|
||||||
) -> void:
|
1:
|
||||||
var dialog_node = get_node_or_null("/root/Main/UILayer/Dialog")
|
texture = preload("uid://dq1tfv3vkghpa")
|
||||||
if dialog_node:
|
2:
|
||||||
dialog_node.append_dialog(character, content, character_color, content_color, duration)
|
texture = preload("uid://bvjt8iyliunfs")
|
||||||
else:
|
3:
|
||||||
printerr("Dialog node not found")
|
texture = preload("uid://b0koe7cw0ow5h")
|
||||||
|
4:
|
||||||
|
texture = preload("uid://c42jwf1xl5rf4")
|
||||||
|
5:
|
||||||
|
texture = preload("uid://two1l5i22l4i")
|
||||||
|
6:
|
||||||
|
texture = preload("uid://d084tnd1gp4en")
|
||||||
|
_:
|
||||||
|
printerr("Invalid chapter ID: " + str(id))
|
||||||
|
return
|
||||||
|
SceneManager.pop_center_texture(texture, 5.0)
|
||||||
|
await Util.wait(5.0)
|
||||||
|
|
||||||
|
|
||||||
# func pop_note(note: String, note_color := "white", duration := 2.5) -> void:
|
### 切换场景
|
||||||
# var dialog_node = get_node_or_null("/root/Main/UILayer/Dialog")
|
|
||||||
# if dialog_node:
|
|
||||||
# dialog_node.append_note(note, note_color, duration)
|
|
||||||
# else:
|
|
||||||
# printerr("Dialog node not found")
|
|
||||||
|
|
||||||
|
|
||||||
func get_inspector() -> PropInspector:
|
|
||||||
return get_node_or_null("/root/Main/PropInspector") as PropInspector
|
|
||||||
|
|
||||||
|
|
||||||
func checkout_index_page(transition := true) -> void:
|
func checkout_index_page(transition := true) -> void:
|
||||||
|
@ -24,6 +24,15 @@ func _ready() -> void:
|
|||||||
if Engine.is_editor_hint():
|
if Engine.is_editor_hint():
|
||||||
return
|
return
|
||||||
finished.connect(_on_finished)
|
finished.connect(_on_finished)
|
||||||
|
# ground 退出时,process mode 切换为 always,ease out
|
||||||
|
SceneManager.ground_transition_pre_paused.connect(_on_ground_transition_pre_paused)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ground_transition_pre_paused():
|
||||||
|
if not playing:
|
||||||
|
return
|
||||||
|
print("[GroundTransition] Sfx %s ease killing..." % name)
|
||||||
|
easing_kill(1.0)
|
||||||
|
|
||||||
|
|
||||||
func _on_finished() -> void:
|
func _on_finished() -> void:
|
||||||
@ -45,6 +54,7 @@ func global_play() -> void:
|
|||||||
func easing_kill(duration: float = 2.0) -> Tween:
|
func easing_kill(duration: float = 2.0) -> Tween:
|
||||||
# stop with easing
|
# stop with easing
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
|
tween.bind_node(self)
|
||||||
if playing:
|
if playing:
|
||||||
tween.tween_property(self, "volume_linear", 0.0, duration)
|
tween.tween_property(self, "volume_linear", 0.0, duration)
|
||||||
tween.tween_callback(stop)
|
tween.tween_callback(stop)
|
||||||
|
@ -22,13 +22,25 @@ var timer: Timer
|
|||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
bus = &"game_sfx"
|
bus = &"game_sfx"
|
||||||
process_mode = Node.PROCESS_MODE_PAUSABLE
|
process_mode = Node.PROCESS_MODE_PAUSABLE
|
||||||
finished.connect(_on_finished)
|
if Engine.is_editor_hint():
|
||||||
|
return
|
||||||
timer = Timer.new()
|
timer = Timer.new()
|
||||||
timer.autostart = autoplay and loop and loop_round_time > 0.0 and not Engine.is_editor_hint()
|
timer.autostart = autoplay and loop and loop_round_time > 0.0 and not Engine.is_editor_hint()
|
||||||
timer.one_shot = false
|
timer.one_shot = false
|
||||||
timer.wait_time = max(0.1, loop_round_time)
|
timer.wait_time = max(0.1, loop_round_time)
|
||||||
timer.timeout.connect(_on_timer_timeout)
|
timer.timeout.connect(_on_timer_timeout)
|
||||||
add_child(timer)
|
add_child(timer)
|
||||||
|
finished.connect(_on_finished)
|
||||||
|
# ground 退出时,process mode 切换为 always,ease out
|
||||||
|
SceneManager.ground_transition_pre_paused.connect(_on_ground_transition_pre_paused)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ground_transition_pre_paused():
|
||||||
|
if not playing:
|
||||||
|
return
|
||||||
|
print("[GroundTransition] Sfx2D %s ease killing..." % name)
|
||||||
|
easing_kill(1.0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _on_timer_timeout() -> void:
|
func _on_timer_timeout() -> void:
|
||||||
@ -60,5 +72,6 @@ func easing_kill(duration: float = 2.0) -> void:
|
|||||||
# stop with easing
|
# stop with easing
|
||||||
if playing:
|
if playing:
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
|
tween.bind_node(self)
|
||||||
tween.tween_property(self, "volume_linear", 0.0, duration)
|
tween.tween_property(self, "volume_linear", 0.0, duration)
|
||||||
tween.tween_callback(stop)
|
tween.tween_callback(stop)
|
||||||
|
@ -47,7 +47,9 @@ static var GROUND_SCENE_PATH_DICT = {
|
|||||||
"c02_s16": "uid://22hc3oe8t0id",
|
"c02_s16": "uid://22hc3oe8t0id",
|
||||||
"c02_s17": "uid://cbr6gbgrl2wb1",
|
"c02_s17": "uid://cbr6gbgrl2wb1",
|
||||||
"c02_s18": "uid://d27gv3pbkn4b8",
|
"c02_s18": "uid://d27gv3pbkn4b8",
|
||||||
"c03_s01": "uid://dlrbhfvnd3cs0", # 瞎子理发店
|
"c03_s01": "uid://dlrbhfvnd3cs0", # 三楼
|
||||||
|
"c03_s02": "uid://rkro7u5wd3t1", # 三楼内侧
|
||||||
|
"c03_s03": "uid://bsqt2c061fmin", # 瞎子理发店
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -117,6 +119,8 @@ func _load_save():
|
|||||||
func transition_to_scene(scene_name: String, portal: String, wait_time := 1.4) -> void:
|
func transition_to_scene(scene_name: String, portal: String, wait_time := 1.4) -> void:
|
||||||
if ground:
|
if ground:
|
||||||
print("GroundLoader transition_to_scene: pause prev ground.")
|
print("GroundLoader transition_to_scene: pause prev ground.")
|
||||||
|
# 先发送,再暂停,允许 sfx 等节点执行 ease out
|
||||||
|
SceneManager.ground_transition_pre_paused.emit()
|
||||||
ground.process_mode = Node.PROCESS_MODE_DISABLED
|
ground.process_mode = Node.PROCESS_MODE_DISABLED
|
||||||
if GlobalConfig.DEBUG:
|
if GlobalConfig.DEBUG:
|
||||||
# print reenter lock status
|
# print reenter lock status
|
||||||
|