编写 ProAnimatedSprite2D 与其插件
18
README.md
@ -11,6 +11,24 @@
|
||||
- [DialogueManager 使用与维护说明](https://docs.qq.com/doc/DWG5vaEZ1Qk9EdVVw)
|
||||
- [GIF 插件](https://godotengine.org/asset-library/asset/2255)
|
||||
|
||||
### ProAnimatedSprite2D
|
||||
|
||||
插件路径:addons/property-inspector/pro_animation_sprite2d
|
||||
|
||||

|
||||
|
||||
ProAnimatedSprite2D,增强 AnimatedSprite2D 的表现,在其基础上增加:
|
||||
|
||||
1. 播放+移动:播放特定动画时自动移动,可配置移速
|
||||
2. 播放某动画后自动跳转:播放一个动画结束后,自动播放另一个
|
||||
3. 自动跳转可以设置循环播放次数,若干次后再跳转
|
||||
4. 跳转前可以等待 wait_time 时长
|
||||
|
||||
其中:
|
||||
|
||||
1. action configs 配置动画跳转逻辑
|
||||
2. move configs 配置播放特定动画时的移动速度
|
||||
|
||||
## Ground 与 GroundLoader
|
||||
|
||||
- 正常游戏:Main -> GroundLoader -> Ground
|
||||
|
@ -58,6 +58,7 @@ static var MUTEX = Mutex.new()
|
||||
|
||||
const gif_dir = "res://asset/art/gif/"
|
||||
|
||||
|
||||
func _import(source_file, save_path, options, platform_variants, gen_files):
|
||||
if GifManager == null:
|
||||
printerr("GifManager is not available!")
|
||||
@ -101,6 +102,8 @@ func _import(source_file, save_path, options, platform_variants, gen_files):
|
||||
texture = ImageTexture.create_from_image(image)
|
||||
texture.take_over_path(image_path)
|
||||
var duration = frames.get_frame_duration("gif", i)
|
||||
# 去除导入 sprite_frames 的动画名中的特殊符号 「-」
|
||||
animation_name = animation_name.replace("-", "")
|
||||
sprite_frames.add_frame(animation_name, texture, duration)
|
||||
print_debug("Created images and added to SpriteFrames: ", animation_name)
|
||||
ResourceSaver.save(sprite_frames)
|
||||
|
@ -2,7 +2,6 @@
|
||||
extends EditorPlugin
|
||||
|
||||
var import_sprite_frames_plugin
|
||||
# var post_import_plugin
|
||||
|
||||
|
||||
func _enter_tree():
|
||||
|
21
addons/property-inspector/inspector.gd
Normal file
@ -0,0 +1,21 @@
|
||||
extends EditorInspectorPlugin
|
||||
|
||||
var move_editor = preload("pro_animation_sprite2d/pro_animation_move_editor.gd")
|
||||
var action_editor = preload("pro_animation_sprite2d/pro_animation_action_editor.gd")
|
||||
|
||||
|
||||
func _can_handle(object):
|
||||
return object is ProAnimatedSprite2D
|
||||
|
||||
|
||||
func _parse_property(object, type, name, hint_type, hint_string, usage_flags, wide):
|
||||
# var properties: PackedStringArray = ["action_configs", "move_configs"]
|
||||
# add_property_editor_for_multiple_properties("配置", properties, action_editor.instantiate())
|
||||
if name == "move_configs":
|
||||
add_property_editor(name, move_editor.new())
|
||||
return true
|
||||
elif name == "action_configs":
|
||||
add_property_editor(name, action_editor.new())
|
||||
return true
|
||||
else:
|
||||
return false
|
7
addons/property-inspector/plugin.cfg
Normal file
@ -0,0 +1,7 @@
|
||||
[plugin]
|
||||
|
||||
name="Property Inspector"
|
||||
description="项目自定义资源检视器"
|
||||
author="cakipaul"
|
||||
version="1.0"
|
||||
script="plugin.gd"
|
13
addons/property-inspector/plugin.gd
Normal file
@ -0,0 +1,13 @@
|
||||
@tool
|
||||
extends EditorPlugin
|
||||
|
||||
var inspector
|
||||
|
||||
|
||||
func _enter_tree():
|
||||
inspector = preload("inspector.gd").new()
|
||||
add_inspector_plugin(inspector)
|
||||
|
||||
|
||||
func _exit_tree():
|
||||
remove_inspector_plugin(inspector)
|
@ -0,0 +1,101 @@
|
||||
@tool
|
||||
class_name ProAnimatedSprite2D extends AnimatedSprite2D
|
||||
|
||||
@export var autostart := true
|
||||
# 从 intro 到 next 的配置信息
|
||||
# {
|
||||
# "animation_intro": "",
|
||||
# "intro_loop": 1,
|
||||
# "animation_wait_time": 0.0,
|
||||
# "animation_next": ""
|
||||
# }
|
||||
@export var action_configs: Array[Dictionary] = []
|
||||
# {
|
||||
# "animation": "",
|
||||
# "velocity": Vector2(0, 0)
|
||||
# }
|
||||
@export var move_configs: Array[Dictionary] = []
|
||||
|
||||
# 从 intro 到 next 的配置信息
|
||||
var auto_checkout_dict = {
|
||||
# intro -> {state_config instance}
|
||||
}
|
||||
# 播放 animation 的同时,进行移动
|
||||
var animation_velocity = {
|
||||
# animation -> velocity
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
_load_config()
|
||||
if autostart and animation:
|
||||
# 制造一点错差
|
||||
frame = randi() % sprite_frames.get_frame_count(animation)
|
||||
play()
|
||||
animation_finished.connect(_on_animation_finished)
|
||||
animation_changed.connect(_on_animation_start)
|
||||
animation_looped.connect(_on_animation_start)
|
||||
|
||||
|
||||
func _load_config():
|
||||
# load auto_checkout_dict
|
||||
for i in range(action_configs.size()):
|
||||
var state_config = action_configs[i]
|
||||
if sprite_frames and sprite_frames.has_animation(state_config.animation_intro):
|
||||
# intro 的 animation 关闭循环
|
||||
sprite_frames.set_animation_loop(state_config.animation_intro, false)
|
||||
auto_checkout_dict[state_config.animation_intro] = action_configs[i]
|
||||
# load animation_frame_offsets
|
||||
for i in range(move_configs.size()):
|
||||
var move_config = move_configs[i]
|
||||
if sprite_frames and sprite_frames.has_animation(move_config.animation):
|
||||
animation_velocity[move_config.animation] = move_config.velocity
|
||||
|
||||
|
||||
func _reset_loop(intro: String):
|
||||
for c in action_configs:
|
||||
if c.animation_intro == intro:
|
||||
auto_checkout_dict[intro].intro_loop = max(1, c.intro_loop)
|
||||
|
||||
|
||||
func _on_animation_finished() -> void:
|
||||
var intro = animation
|
||||
if auto_checkout_dict.has(intro):
|
||||
auto_checkout_dict[intro].intro_loop -= 1
|
||||
if auto_checkout_dict[intro].intro_loop <= 0:
|
||||
# reset loop
|
||||
_reset_loop(intro)
|
||||
var wait_time = auto_checkout_dict[intro].animation_wait_time
|
||||
var next = auto_checkout_dict[intro].animation_next
|
||||
if wait_time > 0:
|
||||
pause()
|
||||
get_tree().create_timer(wait_time).timeout.connect(play.bind(next))
|
||||
else:
|
||||
play(next)
|
||||
|
||||
|
||||
var velocity := Vector2.ZERO
|
||||
|
||||
|
||||
func _on_animation_start():
|
||||
if not animation or not animation_velocity.has(animation):
|
||||
velocity = Vector2.ZERO
|
||||
return
|
||||
velocity = animation_velocity[animation] * speed_scale
|
||||
if GlobalConfig.DEBUG:
|
||||
print("animation ", animation, " velocity=", velocity)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if Engine.is_editor_hint() or not animation or not velocity:
|
||||
return
|
||||
position += velocity * delta
|
||||
|
||||
|
||||
# temporary set velocity
|
||||
func set_animation_velocity(anim: String, v: Vector2) -> void:
|
||||
animation_velocity[anim] = v
|
||||
if GlobalConfig.DEBUG:
|
||||
print("set_animation_velocity:", anim, v)
|
@ -0,0 +1,7 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://b50n0hvs4yh75"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/property-inspector/pro_animation_sprite2d/autoplay_animated_sprite.gd" id="1_21eda"]
|
||||
|
||||
[node name="AutoplayAnimatedSprite" type="AnimatedSprite2D"]
|
||||
position = Vector2(-1, -1)
|
||||
script = ExtResource("1_21eda")
|
@ -0,0 +1,160 @@
|
||||
extends EditorProperty
|
||||
|
||||
# The main control for editing the property.
|
||||
var v_box := VBoxContainer.new()
|
||||
var line_nodes := []
|
||||
# An internal value of the property.
|
||||
# A guard against internal changes when the property is updated.
|
||||
var updating = false
|
||||
|
||||
var property_name = "action_configs"
|
||||
|
||||
|
||||
func _init():
|
||||
# Add a button to add a new element.
|
||||
var button = Button.new()
|
||||
button.text = "Add"
|
||||
button.icon = EditorInterface.get_editor_theme().get_icon("Add", "EditorIcons")
|
||||
button.pressed.connect(_add_line.bind(true))
|
||||
add_child(button)
|
||||
add_child(v_box)
|
||||
set_bottom_editor(v_box)
|
||||
# Make sure the control is able to retain the focus.
|
||||
add_focusable(v_box)
|
||||
|
||||
func _add_line(check_updating := false):
|
||||
if check_updating and updating:
|
||||
return
|
||||
var updated := false
|
||||
# 最后一个是 add button,所以 -1
|
||||
var id = line_nodes.size()
|
||||
if id >= _get_property().size():
|
||||
_get_property().append(_new_res())
|
||||
updated = true
|
||||
if _get_property()[id].is_empty():
|
||||
_get_property()[id] = _new_res()
|
||||
updated = true
|
||||
var line_box = VBoxContainer.new()
|
||||
line_box.add_child(HSeparator.new())
|
||||
var h_box = HBoxContainer.new()
|
||||
# add label
|
||||
var label = Label.new()
|
||||
label.text = "intro"
|
||||
h_box.add_child(label)
|
||||
# add animation intro line edit
|
||||
var line_edit = LineEdit.new()
|
||||
line_edit.text = str(_get_property()[id].animation_intro)
|
||||
h_box.add_child(line_edit)
|
||||
# line_edit.custom_minimum_size.x = 50
|
||||
line_edit.expand_to_text_length = true
|
||||
line_edit.focus_exited.connect(_on_line_edit_text_submitted.bind(line_edit, id, "animation_intro"))
|
||||
line_edit.text_submitted.connect(_on_line_edit_text_submitted.bind(id, "animation_intro"))
|
||||
# next row
|
||||
line_box.add_child(h_box)
|
||||
h_box = HBoxContainer.new()
|
||||
# add label
|
||||
label = Label.new()
|
||||
label.text = "loop:"
|
||||
h_box.add_child(label)
|
||||
# add line edit
|
||||
line_edit = LineEdit.new()
|
||||
line_edit.text = str(_get_property()[id].intro_loop)
|
||||
h_box.add_child(line_edit)
|
||||
line_edit.focus_exited.connect(_on_line_edit_text_submitted.bind(line_edit, id, "intro_loop"))
|
||||
line_edit.text_submitted.connect(_on_line_edit_text_submitted.bind(id, "intro_loop"))
|
||||
# add label
|
||||
label = Label.new()
|
||||
label.text = "wait_time:"
|
||||
h_box.add_child(label)
|
||||
# add line edit
|
||||
line_edit = LineEdit.new()
|
||||
line_edit.text = str(_get_property()[id].animation_wait_time)
|
||||
h_box.add_child(line_edit)
|
||||
line_edit.focus_exited.connect(_on_line_edit_text_submitted.bind(line_edit, id, "animation_wait_time"))
|
||||
line_edit.text_submitted.connect(_on_line_edit_text_submitted.bind(id, "animation_wait_time"))
|
||||
# next row
|
||||
line_box.add_child(h_box)
|
||||
h_box = HBoxContainer.new()
|
||||
# add label
|
||||
label = Label.new()
|
||||
label.text = "next:"
|
||||
h_box.add_child(label)
|
||||
# add animation next edit
|
||||
line_edit = LineEdit.new()
|
||||
line_edit.text = str(_get_property()[id].animation_next)
|
||||
h_box.add_child(line_edit)
|
||||
line_edit.expand_to_text_length = true
|
||||
line_edit.focus_exited.connect(_on_line_edit_text_submitted.bind(line_edit, id, "animation_next"))
|
||||
line_edit.text_submitted.connect(_on_line_edit_text_submitted.bind(id, "animation_next"))
|
||||
# add delete button
|
||||
var button = Button.new()
|
||||
button.icon = EditorInterface.get_editor_theme().get_icon("Remove", "EditorIcons")
|
||||
button.pressed.connect(_on_delete_button_pressed.bind(id))
|
||||
h_box.add_child(button)
|
||||
line_box.add_child(h_box)
|
||||
v_box.add_child(line_box)
|
||||
line_nodes.append(line_box)
|
||||
if updated:
|
||||
emit_changed(property_name, _get_property())
|
||||
|
||||
|
||||
func _new_res() -> Dictionary:
|
||||
var res = {
|
||||
"animation_intro": "",
|
||||
"intro_loop": 1,
|
||||
"animation_wait_time": 0.0,
|
||||
"animation_next": ""
|
||||
}
|
||||
if get_edited_object().animation:
|
||||
res.animation_intro = get_edited_object().animation
|
||||
return res
|
||||
|
||||
|
||||
func _get_property() -> Array[Dictionary]:
|
||||
return get_edited_object()[property_name]
|
||||
|
||||
|
||||
func _on_line_edit_text_submitted(text, id, property):
|
||||
if updating:
|
||||
return
|
||||
if text is LineEdit:
|
||||
text = text.text
|
||||
# update the property by id
|
||||
if property == "animation_intro":
|
||||
_get_property()[id].animation_intro = text
|
||||
elif property == "intro_loop":
|
||||
_get_property()[id].intro_loop = max(1, int(text))
|
||||
elif property == "animation_wait_time":
|
||||
_get_property()[id].animation_wait_time = max(0, float(text))
|
||||
elif property == "animation_next":
|
||||
_get_property()[id].animation_next = text
|
||||
emit_changed(property_name, _get_property())
|
||||
|
||||
|
||||
func _on_delete_button_pressed(id):
|
||||
if updating:
|
||||
return
|
||||
# delete the line by id
|
||||
line_nodes[id].queue_free()
|
||||
_get_property().remove_at(id)
|
||||
refresh_controls()
|
||||
emit_changed(property_name, _get_property())
|
||||
|
||||
|
||||
func _update_property():
|
||||
# Read the current value from the property.
|
||||
var new_value = get_edited_object()[property_name]
|
||||
# Update the control with the new value.
|
||||
updating = true
|
||||
refresh_controls()
|
||||
updating = false
|
||||
|
||||
|
||||
func refresh_controls():
|
||||
# Clear the control.
|
||||
for l in line_nodes:
|
||||
l.queue_free()
|
||||
line_nodes.clear()
|
||||
# Add a line for each element in the property.
|
||||
for i in range(_get_property().size()):
|
||||
_add_line()
|
@ -0,0 +1,143 @@
|
||||
extends EditorProperty
|
||||
|
||||
# The main control for editing the property.
|
||||
var v_box := VBoxContainer.new()
|
||||
var line_nodes := []
|
||||
# An internal value of the property.
|
||||
# A guard against internal changes when the property is updated.
|
||||
var updating = false
|
||||
|
||||
var property_name = "move_configs"
|
||||
|
||||
|
||||
func _init():
|
||||
# Add a button to add a new element.
|
||||
var button = Button.new()
|
||||
button.text = "Add"
|
||||
button.icon = EditorInterface.get_editor_theme().get_icon("Add", "EditorIcons")
|
||||
button.pressed.connect(_add_line.bind(true))
|
||||
add_child(button)
|
||||
# Add the control as a direct child of EditorProperty node.
|
||||
add_child(v_box)
|
||||
set_bottom_editor(v_box)
|
||||
# Make sure the control is able to retain the focus.
|
||||
add_focusable(v_box)
|
||||
|
||||
|
||||
func _add_line(check_updating := false):
|
||||
if check_updating and updating:
|
||||
return
|
||||
var updated := false
|
||||
# 最后一个是 add button,所以 -1
|
||||
var id = line_nodes.size()
|
||||
if id >= _get_property().size():
|
||||
_get_property().append(_new_res())
|
||||
updated = true
|
||||
if _get_property()[id].is_empty():
|
||||
_get_property()[id] = _new_res()
|
||||
updated = true
|
||||
var line_box = VBoxContainer.new()
|
||||
line_box.add_child(HSeparator.new())
|
||||
var h_box = HBoxContainer.new()
|
||||
# add label
|
||||
var label = Label.new()
|
||||
label.text = "anim"
|
||||
h_box.add_child(label)
|
||||
# add animation line edit
|
||||
var line_edit = LineEdit.new()
|
||||
line_edit.text = str(_get_property()[id].animation)
|
||||
h_box.add_child(line_edit)
|
||||
# line_edit.custom_minimum_size.x = 50
|
||||
line_edit.expand_to_text_length = true
|
||||
line_edit.focus_exited.connect(_on_line_edit_text_submitted.bind(line_edit, id, "animation"))
|
||||
line_edit.text_submitted.connect(_on_line_edit_text_submitted.bind(id, "animation"))
|
||||
line_box.add_child(h_box)
|
||||
h_box = HBoxContainer.new()
|
||||
# add label
|
||||
label = Label.new()
|
||||
label.text = "velocity x"
|
||||
h_box.add_child(label)
|
||||
# add velocity.x line edit
|
||||
line_edit = LineEdit.new()
|
||||
line_edit.text = str(_get_property()[id].velocity.x)
|
||||
h_box.add_child(line_edit)
|
||||
line_edit.focus_exited.connect(_on_line_edit_text_submitted.bind(line_edit, id, "velocity:x"))
|
||||
line_edit.text_submitted.connect(_on_line_edit_text_submitted.bind(id, "velocity:x"))
|
||||
# add label
|
||||
label = Label.new()
|
||||
label.text = "y"
|
||||
h_box.add_child(label)
|
||||
# add velocity.y line edit
|
||||
line_edit = LineEdit.new()
|
||||
line_edit.text = str(_get_property()[id].velocity.y)
|
||||
h_box.add_child(line_edit)
|
||||
line_edit.focus_exited.connect(_on_line_edit_text_submitted.bind(line_edit, id, "velocity:y"))
|
||||
line_edit.text_submitted.connect(_on_line_edit_text_submitted.bind(id, "velocity:y"))
|
||||
# add delete button
|
||||
var button = Button.new()
|
||||
button.icon = EditorInterface.get_editor_theme().get_icon("Remove", "EditorIcons")
|
||||
button.pressed.connect(_on_delete_button_pressed.bind(id))
|
||||
h_box.add_child(button)
|
||||
line_box.add_child(h_box)
|
||||
v_box.add_child(line_box)
|
||||
line_nodes.append(line_box)
|
||||
if updated:
|
||||
emit_changed(property_name, _get_property())
|
||||
|
||||
|
||||
func _new_res() -> Dictionary:
|
||||
var res = {
|
||||
"animation": "",
|
||||
"velocity": Vector2(0, 0)
|
||||
}
|
||||
if get_edited_object().animation:
|
||||
res.animation = get_edited_object().animation
|
||||
return res
|
||||
|
||||
|
||||
func _get_property() -> Array[Dictionary]:
|
||||
return get_edited_object()[property_name]
|
||||
|
||||
|
||||
func _on_line_edit_text_submitted(text, id, property):
|
||||
if updating:
|
||||
return
|
||||
if text is LineEdit:
|
||||
text = text.text
|
||||
# update the property by id
|
||||
if property == "animation":
|
||||
_get_property()[id].animation = text
|
||||
elif property == "velocity:x":
|
||||
_get_property()[id].velocity.x = float(text)
|
||||
elif property == "velocity:y":
|
||||
_get_property()[id].velocity.y = float(text)
|
||||
emit_changed(property_name, _get_property())
|
||||
|
||||
|
||||
func _on_delete_button_pressed(id):
|
||||
if updating:
|
||||
return
|
||||
# delete the line by id
|
||||
line_nodes[id].queue_free()
|
||||
_get_property().remove_at(id)
|
||||
refresh_controls()
|
||||
emit_changed(property_name, _get_property())
|
||||
|
||||
|
||||
func _update_property():
|
||||
# Read the current value from the property.
|
||||
var new_value = get_edited_object()[property_name]
|
||||
# Update the control with the new value.
|
||||
updating = true
|
||||
refresh_controls()
|
||||
updating = false
|
||||
|
||||
|
||||
func refresh_controls():
|
||||
# Clear the control.
|
||||
for l in line_nodes:
|
||||
l.queue_free()
|
||||
line_nodes.clear()
|
||||
# Add a line for each element in the property.
|
||||
for i in range(_get_property().size()):
|
||||
_add_line()
|
@ -0,0 +1,4 @@
|
||||
class_name StateMoveConfigResource extends Resource
|
||||
|
||||
@export var animation := ""
|
||||
@export var velocity := Vector2(0, 0)
|
@ -3,29 +3,22 @@
|
||||
[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://cmytg1u3kdc6c" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-2】呼吸/0.png" id="1_4b3ec"]
|
||||
[ext_resource type="Texture2D" uid="uid://bl62sfnedwjy8" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/0.png" id="1_4vplq"]
|
||||
[ext_resource type="Texture2D" uid="uid://duwwu5rnhutvk" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-侧面呼吸/0.png" id="1_77bb6"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgghnwtl1v7a" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/0.png" id="1_85ax1"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7dvlp7s1ncvo" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/0.png" id="1_bpqhs"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3qabg8euxurs" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-1】画画/0.png" id="1_ce2kb"]
|
||||
[ext_resource type="Texture2D" uid="uid://bjpipjewo7odc" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-呼吸/0.png" id="1_emhxq"]
|
||||
[ext_resource type="Texture2D" uid="uid://8fjdofq2iqee" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】侧面呼吸/0.png" id="1_erwxy"]
|
||||
[ext_resource type="Texture2D" uid="uid://3l14us7miv7w" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】呼吸/0.png" id="1_ethui"]
|
||||
[ext_resource type="Texture2D" uid="uid://bcy17cx5x8xis" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-1】呼吸/0.png" id="1_h88pt"]
|
||||
[ext_resource type="Texture2D" uid="uid://daxaq4nafjhoy" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】侧面呼吸/0.png" id="1_kul8c"]
|
||||
[ext_resource type="Texture2D" uid="uid://ln5ne85pwgyg" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】转身/0.png" id="1_lgncd"]
|
||||
[ext_resource type="Texture2D" uid="uid://ckch7g7cw2bdh" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面呼吸/0.png" id="1_mo286"]
|
||||
[ext_resource type="Texture2D" uid="uid://23i4l8ss2ua4" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】转身/0.png" id="1_nmddb"]
|
||||
[ext_resource type="Texture2D" uid="uid://thyfxc0n287w" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】呼吸/0.png" id="1_nqakl"]
|
||||
[ext_resource type="Texture2D" uid="uid://vvbcpjwagqwo" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】画画/0.png" id="1_p0te0"]
|
||||
[ext_resource type="Texture2D" uid="uid://wimhgx3c7yu0" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】呼吸/0.png" id="1_qh04w"]
|
||||
[ext_resource type="Texture2D" uid="uid://dqes07nl0cpme" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/0.png" id="1_qo83r"]
|
||||
[ext_resource type="Texture2D" uid="uid://cp3wrc6vm42np" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】侧面呼吸/0.png" id="1_s4rfr"]
|
||||
[ext_resource type="Texture2D" uid="uid://c0kjvl5d7aex3" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/0.png" id="1_t07xp"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3o5yp8l63sab" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】走路/0.png" id="1_yvvhl"]
|
||||
[ext_resource type="Texture2D" uid="uid://cag2ms3mnx3nj" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】呼吸/1.png" id="2_1hhev"]
|
||||
[ext_resource type="Texture2D" uid="uid://daxewbhvtjfff" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-2】画画/1.png" id="2_5i5of"]
|
||||
[ext_resource type="Texture2D" uid="uid://dpqrcyjh7xy7o" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/1.png" id="2_7vqsn"]
|
||||
[ext_resource type="Texture2D" uid="uid://dn1qh6edtq0ir" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-2】呼吸/1.png" id="2_8b3yn"]
|
||||
[ext_resource type="Texture2D" uid="uid://w3y5pcq1kert" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】呼吸/1.png" id="2_85obh"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3s44frsq7g6f" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】转身/1.png" id="2_b2ha5"]
|
||||
@ -34,24 +27,16 @@
|
||||
[ext_resource type="Texture2D" uid="uid://o6jr1qlnuubi" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】回头/1.png" id="2_gc6kb"]
|
||||
[ext_resource type="Texture2D" uid="uid://q0rjhq5alio2" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】侧面呼吸/1.png" id="2_ir4mj"]
|
||||
[ext_resource type="Texture2D" uid="uid://d2tlelc52io0c" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】走路/1.png" id="2_kp77c"]
|
||||
[ext_resource type="Texture2D" uid="uid://bs4mc2aspt0jx" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/1.png" id="2_lbw4p"]
|
||||
[ext_resource type="Texture2D" uid="uid://5g7h7yrbd2tp" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/1.png" id="2_o8feq"]
|
||||
[ext_resource type="Texture2D" uid="uid://by3cduy6cnll5" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-呼吸/1.png" id="2_ormam"]
|
||||
[ext_resource type="Texture2D" uid="uid://bna3mk142wj61" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/1.png" id="2_sepw4"]
|
||||
[ext_resource type="Texture2D" uid="uid://cyk0pd7xro2cg" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-1】呼吸/1.png" id="2_stfxp"]
|
||||
[ext_resource type="Texture2D" uid="uid://cusyrg8vexeex" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】侧面呼吸/1.png" id="2_u4bbj"]
|
||||
[ext_resource type="Texture2D" uid="uid://vrerqr5cbcr5" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】侧面呼吸/1.png" id="2_udev2"]
|
||||
[ext_resource type="Texture2D" uid="uid://du5x413ptu6nj" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】转身/1.png" id="2_uyy6n"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdtorkjx8her2" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】画画/1.png" id="2_v2ujn"]
|
||||
[ext_resource type="Texture2D" uid="uid://csxtfj3656v6c" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/1.png" id="2_vi1r2"]
|
||||
[ext_resource type="Texture2D" uid="uid://cvp42uca34x7l" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面呼吸/1.png" id="2_xhcqf"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3xh4fyube6t7" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-侧面呼吸/1.png" id="2_yyhn6"]
|
||||
[ext_resource type="Texture2D" uid="uid://1tlm1xvnniq0" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-1】画画/2.png" id="3_3nmj5"]
|
||||
[ext_resource type="Texture2D" uid="uid://byvjdjmgjwdag" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/2.png" id="3_5bq38"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcj8l33cwacay" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/2.png" id="3_b53vp"]
|
||||
[ext_resource type="Texture2D" uid="uid://dmomrke34h21e" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/2.png" id="3_c8gk4"]
|
||||
[ext_resource type="Texture2D" uid="uid://bgqqdt7obaovc" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】转身/2.png" id="3_cqqvg"]
|
||||
[ext_resource type="Texture2D" uid="uid://dkxmfjjcrh15n" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/2.png" id="3_fb5fw"]
|
||||
[ext_resource type="Texture2D" uid="uid://cumtftlp2b81a" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】转身/2.png" id="3_h4yrv"]
|
||||
[ext_resource type="Texture2D" uid="uid://cw63xfo1n4jsb" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/2.png" id="3_na40s"]
|
||||
[ext_resource type="Texture2D" uid="uid://74t3hg04bwrp" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-2】画画/2.png" id="3_p6ip8"]
|
||||
@ -59,38 +44,53 @@
|
||||
[ext_resource type="Texture2D" uid="uid://e67jy64iaxdd" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】画画/2.png" id="3_v0mng"]
|
||||
[ext_resource type="Texture2D" uid="uid://cw4n25m4bp6qr" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/3.png" id="4_6jrvx"]
|
||||
[ext_resource type="Texture2D" uid="uid://ckawg273vkwf4" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】走路/3.png" id="4_cl47v"]
|
||||
[ext_resource type="Texture2D" uid="uid://bvhv757upma3y" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/3.png" id="4_fuqul"]
|
||||
[ext_resource type="Texture2D" uid="uid://b6sxa2775bht0" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/3.png" id="4_ht2db"]
|
||||
[ext_resource type="Texture2D" uid="uid://dwaou37m674kx" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-2】画画/3.png" id="4_kmcg6"]
|
||||
[ext_resource type="Texture2D" uid="uid://b5pj34dnsfw55" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/3.png" id="4_kof4k"]
|
||||
[ext_resource type="Texture2D" uid="uid://bv70m2btjanhn" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/3.png" id="4_l3aqm"]
|
||||
[ext_resource type="Texture2D" uid="uid://w8gsp8q1doa4" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-1】画画/3.png" id="4_pb2wv"]
|
||||
[ext_resource type="Texture2D" uid="uid://d2bhhosj71swm" path="res://asset/art/gif/c01_孤儿院围墙/【画画小女孩】画画/3.png" id="4_td1ff"]
|
||||
[ext_resource type="Texture2D" uid="uid://c1m6b6a0fla0x" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-1】画画/4.png" id="5_3gppe"]
|
||||
[ext_resource type="Texture2D" uid="uid://dix1078do1ruy" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/4.png" id="5_fljfp"]
|
||||
[ext_resource type="Texture2D" uid="uid://cvp6h26l50nok" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】走路/4.png" id="5_gdjhv"]
|
||||
[ext_resource type="Texture2D" uid="uid://ogfwcyix7pte" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/4.png" id="5_kw7qo"]
|
||||
[ext_resource type="Texture2D" uid="uid://bpslw76bboek4" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/4.png" id="5_l7d88"]
|
||||
[ext_resource type="Texture2D" uid="uid://dc8xxkr0kanfc" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/4.png" id="5_n7kne"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1klwki8rtqko" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/4.png" id="5_o4tx6"]
|
||||
[ext_resource type="Texture2D" uid="uid://ll3lmrsm46qu" path="res://asset/art/gif/c01_孤儿院围墙/【画画男孩-1】画画/5.png" id="6_b6u7x"]
|
||||
[ext_resource type="Texture2D" uid="uid://cwvnr5kpry44k" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/5.png" id="6_bets1"]
|
||||
[ext_resource type="Texture2D" uid="uid://cwnr7kfb6m3t1" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/5.png" id="6_buun0"]
|
||||
[ext_resource type="Texture2D" uid="uid://unt2hpw3j5k4" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/5.png" id="6_chmbr"]
|
||||
[ext_resource type="Texture2D" uid="uid://dsg47jdsyaaem" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】走路/5.png" id="6_mfo52"]
|
||||
[ext_resource type="Texture2D" uid="uid://ds4f3eqrrhxgo" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/5.png" id="6_skctu"]
|
||||
[ext_resource type="Texture2D" uid="uid://dldhs3kweissi" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】走路/6.png" id="7_8jm5p"]
|
||||
[ext_resource type="Texture2D" uid="uid://cr0lfjyilyv0h" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/6.png" id="7_e6xmt"]
|
||||
[ext_resource type="Texture2D" uid="uid://8l0swi37h7jh" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/6.png" id="7_iqnta"]
|
||||
[ext_resource type="Texture2D" uid="uid://ca2i3sp73td6c" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/6.png" id="7_joe58"]
|
||||
[ext_resource type="Texture2D" uid="uid://s8tmd231xclj" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/6.png" id="7_tvyu2"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7qtfebqtvuj" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/7.png" id="8_1cp4h"]
|
||||
[ext_resource type="Texture2D" uid="uid://dk8wcyuwd7ono" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-3】走路/7.png" id="8_ejnhh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bhi4ljqhtfsn0" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】走路/7.png" id="8_l10wd"]
|
||||
[ext_resource type="Texture2D" uid="uid://ch20u0ixu0dxk" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/7.png" id="8_p0u3l"]
|
||||
[ext_resource type="Texture2D" uid="uid://dac2467h21n8j" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/7.png" id="8_u6p3q"]
|
||||
[ext_resource type="Texture2D" uid="uid://enakmx10tyj" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-1】挠痒呼吸/8.png" id="9_hj6s2"]
|
||||
[ext_resource type="Texture2D" uid="uid://dhemjx6imeo6e" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/8.png" id="9_q3o8p"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7dvlp7s1ncvo" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/0.png" id="46_p2m02"]
|
||||
[ext_resource type="Texture2D" uid="uid://dpqrcyjh7xy7o" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/1.png" id="47_dom4o"]
|
||||
[ext_resource type="Texture2D" uid="uid://byvjdjmgjwdag" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/2.png" id="48_1rjcw"]
|
||||
[ext_resource type="Texture2D" uid="uid://bv70m2btjanhn" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/3.png" id="49_sqbi1"]
|
||||
[ext_resource type="Texture2D" uid="uid://dc8xxkr0kanfc" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/4.png" id="50_pf370"]
|
||||
[ext_resource type="Texture2D" uid="uid://unt2hpw3j5k4" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/5.png" id="51_w5kkt"]
|
||||
[ext_resource type="Texture2D" uid="uid://cr0lfjyilyv0h" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/6.png" id="52_u5lmn"]
|
||||
[ext_resource type="Texture2D" uid="uid://ch20u0ixu0dxk" path="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/7.png" id="53_neo6x"]
|
||||
[ext_resource type="Texture2D" uid="uid://duwwu5rnhutvk" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】侧面呼吸/0.png" id="72_2ac2n"]
|
||||
[ext_resource type="Texture2D" uid="uid://c3xh4fyube6t7" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】侧面呼吸/1.png" id="73_gu752"]
|
||||
[ext_resource type="Texture2D" uid="uid://bjpipjewo7odc" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】呼吸/0.png" id="74_kmntn"]
|
||||
[ext_resource type="Texture2D" uid="uid://by3cduy6cnll5" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】呼吸/1.png" id="75_aqe07"]
|
||||
[ext_resource type="Texture2D" uid="uid://ckch7g7cw2bdh" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面呼吸/0.png" id="76_ksjfk"]
|
||||
[ext_resource type="Texture2D" uid="uid://cvp42uca34x7l" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面呼吸/1.png" id="77_pac87"]
|
||||
[ext_resource type="Texture2D" uid="uid://c0kjvl5d7aex3" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/0.png" id="78_wny6u"]
|
||||
[ext_resource type="Texture2D" uid="uid://bs4mc2aspt0jx" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/1.png" id="79_1rofp"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcj8l33cwacay" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/2.png" id="80_r66qh"]
|
||||
[ext_resource type="Texture2D" uid="uid://b6sxa2775bht0" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/3.png" id="81_3sh20"]
|
||||
[ext_resource type="Texture2D" uid="uid://bpslw76bboek4" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/4.png" id="82_3ch1m"]
|
||||
[ext_resource type="Texture2D" uid="uid://bl62sfnedwjy8" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/0.png" id="83_qm1pv"]
|
||||
[ext_resource type="Texture2D" uid="uid://bna3mk142wj61" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/1.png" id="84_hodev"]
|
||||
[ext_resource type="Texture2D" uid="uid://dkxmfjjcrh15n" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/2.png" id="85_br80e"]
|
||||
[ext_resource type="Texture2D" uid="uid://bvhv757upma3y" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/3.png" id="86_84780"]
|
||||
[ext_resource type="Texture2D" uid="uid://b1klwki8rtqko" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/4.png" id="87_wb7lj"]
|
||||
[ext_resource type="Texture2D" uid="uid://cwnr7kfb6m3t1" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/5.png" id="88_iasis"]
|
||||
[ext_resource type="Texture2D" uid="uid://8l0swi37h7jh" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/6.png" id="89_kkuwn"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7qtfebqtvuj" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/7.png" id="90_vjtvq"]
|
||||
[ext_resource type="Texture2D" uid="uid://dhemjx6imeo6e" path="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/8.png" id="91_0iojk"]
|
||||
|
||||
[resource]
|
||||
animations = [{
|
||||
@ -112,7 +112,7 @@ animations = [{
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("2_gc6kb")
|
||||
}],
|
||||
"loop": false,
|
||||
"loop": true,
|
||||
"name": &"【画画小女孩】回头",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
@ -129,7 +129,7 @@ animations = [{
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("4_td1ff")
|
||||
}],
|
||||
"loop": false,
|
||||
"loop": true,
|
||||
"name": &"【画画小女孩】画画",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
@ -268,35 +268,6 @@ animations = [{
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("1_bpqhs")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("2_7vqsn")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("3_5bq38")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("4_l3aqm")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("5_n7kne")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("6_chmbr")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("7_e6xmt")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("8_p0u3l")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"【站立小孩-2】-走路",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("1_s4rfr")
|
||||
}, {
|
||||
@ -319,6 +290,35 @@ animations = [{
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("46_p2m02")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("47_dom4o")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("48_1rjcw")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("49_sqbi1")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("50_pf370")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("51_w5kkt")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("52_u5lmn")
|
||||
}, {
|
||||
"duration": 4.5,
|
||||
"texture": ExtResource("53_neo6x")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"【站立小孩-2】走路",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("1_lgncd")
|
||||
}, {
|
||||
@ -399,86 +399,86 @@ animations = [{
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("1_77bb6")
|
||||
"texture": ExtResource("72_2ac2n")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("2_yyhn6")
|
||||
"texture": ExtResource("73_gu752")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"【胖小孩背着残疾小孩】-侧面呼吸",
|
||||
"name": &"【胖小孩背着残疾小孩】侧面呼吸",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("1_emhxq")
|
||||
"texture": ExtResource("74_kmntn")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("2_ormam")
|
||||
"texture": ExtResource("75_aqe07")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"【胖小孩背着残疾小孩】-呼吸",
|
||||
"name": &"【胖小孩背着残疾小孩】呼吸",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("1_mo286")
|
||||
"texture": ExtResource("76_ksjfk")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("2_xhcqf")
|
||||
"texture": ExtResource("77_pac87")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"【胖小孩背着残疾小孩】-正面呼吸",
|
||||
"name": &"【胖小孩背着残疾小孩】正面呼吸",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("1_t07xp")
|
||||
"texture": ExtResource("78_wny6u")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("2_lbw4p")
|
||||
"texture": ExtResource("79_1rofp")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("3_b53vp")
|
||||
"texture": ExtResource("80_r66qh")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("4_ht2db")
|
||||
"texture": ExtResource("81_3sh20")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("5_l7d88")
|
||||
"texture": ExtResource("82_3ch1m")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"【胖小孩背着残疾小孩】-正面抖肩",
|
||||
"name": &"【胖小孩背着残疾小孩】正面抖肩",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 15.0,
|
||||
"texture": ExtResource("1_4vplq")
|
||||
"texture": ExtResource("83_qm1pv")
|
||||
}, {
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("2_sepw4")
|
||||
"texture": ExtResource("84_hodev")
|
||||
}, {
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("3_fb5fw")
|
||||
"texture": ExtResource("85_br80e")
|
||||
}, {
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("4_fuqul")
|
||||
"texture": ExtResource("86_84780")
|
||||
}, {
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("5_o4tx6")
|
||||
"texture": ExtResource("87_wb7lj")
|
||||
}, {
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("6_buun0")
|
||||
"texture": ExtResource("88_iasis")
|
||||
}, {
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("7_iqnta")
|
||||
"texture": ExtResource("89_kkuwn")
|
||||
}, {
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("8_1cp4h")
|
||||
"texture": ExtResource("90_vjtvq")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("9_q3o8p")
|
||||
"texture": ExtResource("91_0iojk")
|
||||
}],
|
||||
"loop": true,
|
||||
"name": &"【胖小孩背着残疾小孩】-画画",
|
||||
"name": &"【胖小孩背着残疾小孩】画画",
|
||||
"speed": 30.0
|
||||
}]
|
||||
|
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 8.3 KiB |
14
asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路.gif.import
Normal file
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="gif.animated.texture.plugin"
|
||||
type="SpriteFrames"
|
||||
uid="uid://oyox3arodtif"
|
||||
path="res://.godot/imported/【站立小孩-2】走路.gif-5c624d41fec4f03a0a6f210a5be40598.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路.gif"
|
||||
dest_files=["res://.godot/imported/【站立小孩-2】走路.gif-5c624d41fec4f03a0a6f210a5be40598.tres"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7dvlp7s1ncvo"
|
||||
path="res://.godot/imported/0.png-38088b526399808fdddeb0beef20d597.ctex"
|
||||
path="res://.godot/imported/0.png-4680a21677f2c33677cd944b97cf0249.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-38088b526399808fdddeb0beef20d597.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-4680a21677f2c33677cd944b97cf0249.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dpqrcyjh7xy7o"
|
||||
path="res://.godot/imported/1.png-03d962a3ba16d182680792cdf589f9e7.ctex"
|
||||
path="res://.godot/imported/1.png-69418e4961b2db1756e3cf73dce1c979.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-03d962a3ba16d182680792cdf589f9e7.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-69418e4961b2db1756e3cf73dce1c979.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://byvjdjmgjwdag"
|
||||
path="res://.godot/imported/2.png-5c274dc8bb0874754505c26daf6ecdf0.ctex"
|
||||
path="res://.godot/imported/2.png-fcc880aaedb5aaa3345d9b7171b3ed11.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/2.png"
|
||||
dest_files=["res://.godot/imported/2.png-5c274dc8bb0874754505c26daf6ecdf0.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/2.png"
|
||||
dest_files=["res://.godot/imported/2.png-fcc880aaedb5aaa3345d9b7171b3ed11.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bv70m2btjanhn"
|
||||
path="res://.godot/imported/3.png-ecd1be9bc8b17d633e6d48017b0cc119.ctex"
|
||||
path="res://.godot/imported/3.png-3ce34814835d7ed52b76cf5118776487.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/3.png"
|
||||
dest_files=["res://.godot/imported/3.png-ecd1be9bc8b17d633e6d48017b0cc119.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/3.png"
|
||||
dest_files=["res://.godot/imported/3.png-3ce34814835d7ed52b76cf5118776487.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dc8xxkr0kanfc"
|
||||
path="res://.godot/imported/4.png-0e81f18376fb91753ac2b4d4b21f5913.ctex"
|
||||
path="res://.godot/imported/4.png-b58d55c543e7288ef796f607fbcd77b7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/4.png"
|
||||
dest_files=["res://.godot/imported/4.png-0e81f18376fb91753ac2b4d4b21f5913.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/4.png"
|
||||
dest_files=["res://.godot/imported/4.png-b58d55c543e7288ef796f607fbcd77b7.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://unt2hpw3j5k4"
|
||||
path="res://.godot/imported/5.png-d0d0c79f0f7cb249e24ebe2b4704a100.ctex"
|
||||
path="res://.godot/imported/5.png-d230f05926b126c0f79b4517ae30bd13.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/5.png"
|
||||
dest_files=["res://.godot/imported/5.png-d0d0c79f0f7cb249e24ebe2b4704a100.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/5.png"
|
||||
dest_files=["res://.godot/imported/5.png-d230f05926b126c0f79b4517ae30bd13.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cr0lfjyilyv0h"
|
||||
path="res://.godot/imported/6.png-089cd772157d2982e4a429b4a04e6632.ctex"
|
||||
path="res://.godot/imported/6.png-c8132254fa5cb4d6f91b3457db24c357.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/6.png"
|
||||
dest_files=["res://.godot/imported/6.png-089cd772157d2982e4a429b4a04e6632.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/6.png"
|
||||
dest_files=["res://.godot/imported/6.png-c8132254fa5cb4d6f91b3457db24c357.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ch20u0ixu0dxk"
|
||||
path="res://.godot/imported/7.png-78f9a5e3b638337179ee6b025a08d8b4.ctex"
|
||||
path="res://.godot/imported/7.png-313259ffc87ebda15174516d2e250fa2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】-走路/7.png"
|
||||
dest_files=["res://.godot/imported/7.png-78f9a5e3b638337179ee6b025a08d8b4.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【站立小孩-2】走路/7.png"
|
||||
dest_files=["res://.godot/imported/7.png-313259ffc87ebda15174516d2e250fa2.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
14
asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】侧面呼吸.gif.import
Normal file
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="gif.animated.texture.plugin"
|
||||
type="SpriteFrames"
|
||||
uid="uid://cacxgcspw5x74"
|
||||
path="res://.godot/imported/【胖小孩背着残疾小孩】侧面呼吸.gif-e5d671a64dde85a09a78244deb0048b0.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】侧面呼吸.gif"
|
||||
dest_files=["res://.godot/imported/【胖小孩背着残疾小孩】侧面呼吸.gif-e5d671a64dde85a09a78244deb0048b0.tres"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://duwwu5rnhutvk"
|
||||
path="res://.godot/imported/0.png-b1302796a9ecf17d0fc4c4a7c9be2088.ctex"
|
||||
path="res://.godot/imported/0.png-0fed3e2cbf9e89a83b8565eba3af4f30.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-侧面呼吸/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-b1302796a9ecf17d0fc4c4a7c9be2088.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】侧面呼吸/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-0fed3e2cbf9e89a83b8565eba3af4f30.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c3xh4fyube6t7"
|
||||
path="res://.godot/imported/1.png-efaeecc32a7aba6b835aa9e20065ab81.ctex"
|
||||
path="res://.godot/imported/1.png-a3f198f7079dfe449c649b5f8a0c7865.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-侧面呼吸/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-efaeecc32a7aba6b835aa9e20065ab81.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】侧面呼吸/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-a3f198f7079dfe449c649b5f8a0c7865.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.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://c2vqbykjhclse"
|
||||
path="res://.godot/imported/【胖小孩背着残疾小孩】呼吸.gif-ad9e5f3b713e78196eba8574d070ea97.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】呼吸.gif"
|
||||
dest_files=["res://.godot/imported/【胖小孩背着残疾小孩】呼吸.gif-ad9e5f3b713e78196eba8574d070ea97.tres"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bjpipjewo7odc"
|
||||
path="res://.godot/imported/0.png-573c0701b53feef8c7b90aaf124bfbe1.ctex"
|
||||
path="res://.godot/imported/0.png-8d93370bff20763efb83c61f9a2c2e67.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-呼吸/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-573c0701b53feef8c7b90aaf124bfbe1.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】呼吸/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-8d93370bff20763efb83c61f9a2c2e67.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://by3cduy6cnll5"
|
||||
path="res://.godot/imported/1.png-1fbe28f6d585ed57b193401186f834b7.ctex"
|
||||
path="res://.godot/imported/1.png-e2adc841a7b32c99a14595ed885d5ed6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-呼吸/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-1fbe28f6d585ed57b193401186f834b7.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】呼吸/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-e2adc841a7b32c99a14595ed885d5ed6.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
14
asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面呼吸.gif.import
Normal file
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="gif.animated.texture.plugin"
|
||||
type="SpriteFrames"
|
||||
uid="uid://rcuhe666qpr"
|
||||
path="res://.godot/imported/【胖小孩背着残疾小孩】正面呼吸.gif-52dddd274c9686cd73856151ec11270f.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面呼吸.gif"
|
||||
dest_files=["res://.godot/imported/【胖小孩背着残疾小孩】正面呼吸.gif-52dddd274c9686cd73856151ec11270f.tres"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ckch7g7cw2bdh"
|
||||
path="res://.godot/imported/0.png-2a06aaa70b1d72d16533b77ebddac371.ctex"
|
||||
path="res://.godot/imported/0.png-3a94fda88a92115cbadc6a006717c821.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面呼吸/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-2a06aaa70b1d72d16533b77ebddac371.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面呼吸/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-3a94fda88a92115cbadc6a006717c821.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cvp42uca34x7l"
|
||||
path="res://.godot/imported/1.png-f1511a8060456b63829cd5285d968e5b.ctex"
|
||||
path="res://.godot/imported/1.png-8c0af262870dae235d0a11e030958a55.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面呼吸/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-f1511a8060456b63829cd5285d968e5b.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面呼吸/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-8c0af262870dae235d0a11e030958a55.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.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://hd0wov2cmbv"
|
||||
path="res://.godot/imported/【胖小孩背着残疾小孩】正面抖肩.gif-6e49e8b9b2afff0634442fabd9a8bd7b.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩.gif"
|
||||
dest_files=["res://.godot/imported/【胖小孩背着残疾小孩】正面抖肩.gif-6e49e8b9b2afff0634442fabd9a8bd7b.tres"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c0kjvl5d7aex3"
|
||||
path="res://.godot/imported/0.png-4045d1daf4832f9fb015b7f24d4fe270.ctex"
|
||||
path="res://.godot/imported/0.png-7b2fcabdeb1d828fc74d3666b2700a19.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-4045d1daf4832f9fb015b7f24d4fe270.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-7b2fcabdeb1d828fc74d3666b2700a19.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bs4mc2aspt0jx"
|
||||
path="res://.godot/imported/1.png-02606a48c1959a656a3361d0635eef43.ctex"
|
||||
path="res://.godot/imported/1.png-66205b8d3ec345ad5171f33301fa8f7e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-02606a48c1959a656a3361d0635eef43.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-66205b8d3ec345ad5171f33301fa8f7e.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dcj8l33cwacay"
|
||||
path="res://.godot/imported/2.png-b1f68822fd42a67bf30bfc4bcf00227c.ctex"
|
||||
path="res://.godot/imported/2.png-ffcfbf898f89fe3d0628d0668719c2eb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/2.png"
|
||||
dest_files=["res://.godot/imported/2.png-b1f68822fd42a67bf30bfc4bcf00227c.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/2.png"
|
||||
dest_files=["res://.godot/imported/2.png-ffcfbf898f89fe3d0628d0668719c2eb.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b6sxa2775bht0"
|
||||
path="res://.godot/imported/3.png-90664dbc809fb7f5badd20608aff35c1.ctex"
|
||||
path="res://.godot/imported/3.png-c7658df68c8b65d7a1834dffcf384009.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/3.png"
|
||||
dest_files=["res://.godot/imported/3.png-90664dbc809fb7f5badd20608aff35c1.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/3.png"
|
||||
dest_files=["res://.godot/imported/3.png-c7658df68c8b65d7a1834dffcf384009.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bpslw76bboek4"
|
||||
path="res://.godot/imported/4.png-c48845dd8b95025cea8e64cb6750bc8e.ctex"
|
||||
path="res://.godot/imported/4.png-0742b3ee354873e83c2cf8f020b184e7.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-正面抖肩/4.png"
|
||||
dest_files=["res://.godot/imported/4.png-c48845dd8b95025cea8e64cb6750bc8e.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】正面抖肩/4.png"
|
||||
dest_files=["res://.godot/imported/4.png-0742b3ee354873e83c2cf8f020b184e7.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
14
asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画.gif.import
Normal file
@ -0,0 +1,14 @@
|
||||
[remap]
|
||||
|
||||
importer="gif.animated.texture.plugin"
|
||||
type="SpriteFrames"
|
||||
uid="uid://bl3iv85m3i1sb"
|
||||
path="res://.godot/imported/【胖小孩背着残疾小孩】画画.gif-defc0cd255f9d1d9f8a7e6d1d898c309.tres"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画.gif"
|
||||
dest_files=["res://.godot/imported/【胖小孩背着残疾小孩】画画.gif-defc0cd255f9d1d9f8a7e6d1d898c309.tres"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bl62sfnedwjy8"
|
||||
path="res://.godot/imported/0.png-5ccd247d64662297900f208f1545eb46.ctex"
|
||||
path="res://.godot/imported/0.png-68534cca3b9fcd832e63b90f2538dfdb.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-5ccd247d64662297900f208f1545eb46.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/0.png"
|
||||
dest_files=["res://.godot/imported/0.png-68534cca3b9fcd832e63b90f2538dfdb.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bna3mk142wj61"
|
||||
path="res://.godot/imported/1.png-a641c65cc90f465516b6c977c89e85d4.ctex"
|
||||
path="res://.godot/imported/1.png-01f9b2c8af8e0ff29434a93ca280ae7b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-a641c65cc90f465516b6c977c89e85d4.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/1.png"
|
||||
dest_files=["res://.godot/imported/1.png-01f9b2c8af8e0ff29434a93ca280ae7b.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dkxmfjjcrh15n"
|
||||
path="res://.godot/imported/2.png-5fb0e86f70616365a8531f44006a2a31.ctex"
|
||||
path="res://.godot/imported/2.png-3ad26687bdef409423a7229e1d45113b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/2.png"
|
||||
dest_files=["res://.godot/imported/2.png-5fb0e86f70616365a8531f44006a2a31.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/2.png"
|
||||
dest_files=["res://.godot/imported/2.png-3ad26687bdef409423a7229e1d45113b.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bvhv757upma3y"
|
||||
path="res://.godot/imported/3.png-9f1fcb92009e3a6c7618421e75c95ca5.ctex"
|
||||
path="res://.godot/imported/3.png-53cb8c80f1a924816f3c4384bfcbe998.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/3.png"
|
||||
dest_files=["res://.godot/imported/3.png-9f1fcb92009e3a6c7618421e75c95ca5.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/3.png"
|
||||
dest_files=["res://.godot/imported/3.png-53cb8c80f1a924816f3c4384bfcbe998.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7qtfebqtvuj"
|
||||
path="res://.godot/imported/7.png-204e227c9b6cd3c9286a51b1de931b0c.ctex"
|
||||
uid="uid://b1klwki8rtqko"
|
||||
path="res://.godot/imported/4.png-93443f79e4b3339d3a5ad1a07ea6bb58.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/7.png"
|
||||
dest_files=["res://.godot/imported/7.png-204e227c9b6cd3c9286a51b1de931b0c.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/4.png"
|
||||
dest_files=["res://.godot/imported/4.png-93443f79e4b3339d3a5ad1a07ea6bb58.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cwnr7kfb6m3t1"
|
||||
path="res://.godot/imported/5.png-f88554922a775d87114d5118c6824049.ctex"
|
||||
path="res://.godot/imported/5.png-f58a17dd6bca9d1b294f43f403c544ec.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/5.png"
|
||||
dest_files=["res://.godot/imported/5.png-f88554922a775d87114d5118c6824049.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/5.png"
|
||||
dest_files=["res://.godot/imported/5.png-f58a17dd6bca9d1b294f43f403c544ec.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://8l0swi37h7jh"
|
||||
path="res://.godot/imported/6.png-d744d4b86367b81e60317a026846fce0.ctex"
|
||||
path="res://.godot/imported/6.png-f760246de00768cc886919bdad705865.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/6.png"
|
||||
dest_files=["res://.godot/imported/6.png-d744d4b86367b81e60317a026846fce0.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/6.png"
|
||||
dest_files=["res://.godot/imported/6.png-f760246de00768cc886919bdad705865.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -2,16 +2,16 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b1klwki8rtqko"
|
||||
path="res://.godot/imported/4.png-eb31b420f2dee818c3045afbb245c8d6.ctex"
|
||||
uid="uid://b7qtfebqtvuj"
|
||||
path="res://.godot/imported/7.png-bddec3f758ad976129f735d01e5eb7f3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/4.png"
|
||||
dest_files=["res://.godot/imported/4.png-eb31b420f2dee818c3045afbb245c8d6.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/7.png"
|
||||
dest_files=["res://.godot/imported/7.png-bddec3f758ad976129f735d01e5eb7f3.ctex"]
|
||||
|
||||
[params]
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dhemjx6imeo6e"
|
||||
path="res://.godot/imported/8.png-eb50fcdf71689fc6f1de5636486b86ed.ctex"
|
||||
path="res://.godot/imported/8.png-74733dff9ec2570cdb46c9f78b7621c2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】-画画/8.png"
|
||||
dest_files=["res://.godot/imported/8.png-eb50fcdf71689fc6f1de5636486b86ed.ctex"]
|
||||
source_file="res://asset/art/gif/c01_孤儿院围墙/【胖小孩背着残疾小孩】画画/8.png"
|
||||
dest_files=["res://.godot/imported/8.png-74733dff9ec2570cdb46c9f78b7621c2.ctex"]
|
||||
|
||||
[params]
|
||||
|
@ -223,30 +223,30 @@ animations = [{
|
||||
"duration": 3.0,
|
||||
"texture": ExtResource("37_u6xcr")
|
||||
}],
|
||||
"loop": false,
|
||||
"loop": true,
|
||||
"name": &"男孩跑动停球",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 6.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("38_vmpr4")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("39_bkomk")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("40_y2al4")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("41_iuide")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("42_7yjpa")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("43_ctekv")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("44_f2e71")
|
||||
}],
|
||||
"loop": true,
|
||||
@ -274,16 +274,16 @@ animations = [{
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("49_5qald")
|
||||
}, {
|
||||
"duration": 50.0,
|
||||
"duration": 30.0,
|
||||
"texture": ExtResource("50_ndrgc")
|
||||
}, {
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("51_rtpby")
|
||||
}, {
|
||||
"duration": 10.0,
|
||||
"duration": 10.5,
|
||||
"texture": ExtResource("52_yncgy")
|
||||
}],
|
||||
"loop": false,
|
||||
"loop": true,
|
||||
"name": &"红衣姑娘抬头",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
@ -311,13 +311,13 @@ animations = [{
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 6.0,
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("59_tgtdw")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("60_kgk0o")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("61_g7a6o")
|
||||
}],
|
||||
"loop": true,
|
||||
@ -334,7 +334,7 @@ animations = [{
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("64_6j8gg")
|
||||
}, {
|
||||
"duration": 30.0,
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("65_5sckl")
|
||||
}, {
|
||||
"duration": 6.0,
|
||||
@ -346,7 +346,7 @@ animations = [{
|
||||
"duration": 12.0,
|
||||
"texture": ExtResource("68_548o5")
|
||||
}],
|
||||
"loop": false,
|
||||
"loop": true,
|
||||
"name": &"院长抬头",
|
||||
"speed": 30.0
|
||||
}, {
|
||||
@ -366,7 +366,7 @@ animations = [{
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("73_8tjai")
|
||||
}],
|
||||
"loop": false,
|
||||
"loop": true,
|
||||
"name": &"院长翻书",
|
||||
"speed": 30.0
|
||||
}]
|
||||
|
@ -2,4 +2,4 @@ extends Resource
|
||||
|
||||
class_name AudioStreamCollection
|
||||
|
||||
@export var audios := [] as Array[AudioStream]
|
||||
@export var audios : Array[AudioStream] = []
|
||||
|
@ -2,16 +2,18 @@ extends AudioStreamPlayer
|
||||
|
||||
class_name RandomAudioStreamPlayer
|
||||
|
||||
@export var audio_collections := [] as Array[AudioStreamCollection]
|
||||
@export var audio_collections: Array[AudioStreamCollection] = []
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
bus = "game_sfx"
|
||||
|
||||
|
||||
func play_random():
|
||||
if audio_collections == null:
|
||||
push_warning("empty audio_collections")
|
||||
return
|
||||
var audio_collection:=audio_collections.pick_random() as AudioStreamCollection
|
||||
var audio_collection := audio_collections.pick_random() as AudioStreamCollection
|
||||
stream = audio_collection.audios.pick_random()
|
||||
if stream == null:
|
||||
push_error("empty stream in audio_collection", audio_collection)
|
||||
|
@ -11,7 +11,7 @@ class_name EntityConfig extends Resource
|
||||
|
||||
@export var entity_name: String = ""
|
||||
@export var entity_title: String = ""
|
||||
# @export var entity_notes := [] as Array[String]
|
||||
# @export var entity_notes : Array[String] = []
|
||||
# @export var hud_texture: Texture2D
|
||||
# @export var pickable := false
|
||||
@export var inspection_texture: Texture2D
|
||||
|
@ -67,7 +67,7 @@ window/stretch/mode="canvas_items"
|
||||
|
||||
[editor_plugins]
|
||||
|
||||
enabled=PackedStringArray("res://addons/debug_menu/plugin.cfg", "res://addons/dialogue_manager/plugin.cfg", "res://addons/gif-importer/plugin.cfg", "res://addons/project-statistics/plugin.cfg")
|
||||
enabled=PackedStringArray("res://addons/debug_menu/plugin.cfg", "res://addons/dialogue_manager/plugin.cfg", "res://addons/gif-importer/plugin.cfg", "res://addons/project-statistics/plugin.cfg", "res://addons/property-inspector/plugin.cfg")
|
||||
|
||||
[gui]
|
||||
|
||||
|
BIN
readme_image/image.png
Normal file
After Width: | Height: | Size: 392 KiB |
34
readme_image/image.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://x0vsq06qilpe"
|
||||
path="res://.godot/imported/image.png-0227d840b12d08f54c8037d1b460252b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://readme_image/image.png"
|
||||
dest_files=["res://.godot/imported/image.png-0227d840b12d08f54c8037d1b460252b.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,84 +0,0 @@
|
||||
@tool
|
||||
extends AnimatedSprite2D
|
||||
|
||||
@export var autostart := true
|
||||
@export var state_configs := [] as Array[StateActionConfigResource]
|
||||
var auto_checkout_dict = {
|
||||
# intro -> {state_config instance}
|
||||
}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_load_config()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
if autostart and animation:
|
||||
# 制造一点错差
|
||||
frame = randi() % sprite_frames.get_frame_count(animation)
|
||||
play()
|
||||
animation_finished.connect(_on_animation_finished)
|
||||
|
||||
|
||||
func _load_config():
|
||||
for i in range(state_configs.size()):
|
||||
var state_config = state_configs[i]
|
||||
if sprite_frames and sprite_frames.has_animation(state_config.animation_intro):
|
||||
# intro 的 animation 关闭循环
|
||||
sprite_frames.set_animation_loop(state_config.animation_intro, false)
|
||||
auto_checkout_dict[state_config.animation_intro] = {
|
||||
"animation_next": state_config.animation_next,
|
||||
"animation_wait_time": state_config.animation_wait_time,
|
||||
"intro_loop": max(1, state_config.intro_loop)
|
||||
}
|
||||
|
||||
|
||||
func _on_animation_finished() -> void:
|
||||
if auto_checkout_dict.has(animation):
|
||||
auto_checkout_dict[animation].intro_loop -= 1
|
||||
if auto_checkout_dict[animation].intro_loop <= 0:
|
||||
var wait_time = auto_checkout_dict[animation].animation_wait_time
|
||||
var next = auto_checkout_dict[animation].animation_next
|
||||
if wait_time > 0:
|
||||
pause()
|
||||
get_tree().create_timer(wait_time).timeout.connect(play.bind(next))
|
||||
else:
|
||||
play(next)
|
||||
|
||||
|
||||
# const gif_root_dir = "res://asset/art/gif/"
|
||||
# var gif_dir:
|
||||
# set(val):
|
||||
# gif_dir = val
|
||||
# # 只在编辑器模式下加载配置
|
||||
# if Engine.is_editor_hint() and gif_dir:
|
||||
# sprite_frames = load(gif_root_dir + gif_dir + "/frames.tres")
|
||||
|
||||
|
||||
# func _get(property: StringName) -> Variant:
|
||||
# if property == "gif_dir":
|
||||
# return gif_dir
|
||||
# return null
|
||||
|
||||
|
||||
# func _set(property: StringName, value: Variant) -> bool:
|
||||
# if property == "gif_dir":
|
||||
# gif_dir = value
|
||||
# return true
|
||||
# return false
|
||||
|
||||
|
||||
# func _get_property_list() -> Array[Dictionary]:
|
||||
# # 只在编辑器模式下加载配置
|
||||
# var hint_str = ""
|
||||
# if Engine.is_editor_hint():
|
||||
# var dir_access = DirAccess.open(gif_root_dir) as DirAccess
|
||||
# var dirs = dir_access.get_directories()
|
||||
# hint_str = ",".join(dirs)
|
||||
# return [
|
||||
# {
|
||||
# "name": "gif_dir",
|
||||
# "type": TYPE_STRING,
|
||||
# "hint": PROPERTY_HINT_ENUM_SUGGESTION,
|
||||
# "hint_string": hint_str
|
||||
# }
|
||||
# ]
|
@ -1,9 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://b50n0hvs4yh75"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/general/autoplay_animated_sprite.gd" id="1_21eda"]
|
||||
[ext_resource type="Script" path="res://scene/entity/general/state_action_res.gd" id="2_pvtjh"]
|
||||
|
||||
[node name="AutoplayAnimatedSprite" type="AnimatedSprite2D"]
|
||||
script = ExtResource("1_21eda")
|
||||
state_configs = Array[ExtResource("2_pvtjh")]([])
|
||||
gif_dir = ""
|
@ -1,15 +1,11 @@
|
||||
@tool
|
||||
class_name Sfx extends AudioStreamPlayer
|
||||
|
||||
# @export var volume_db := 0.0
|
||||
@export_enum("child", "game/八音盒", "game/旋转锁", "ghost", "lvping", "ui", "c01", "c02") var dir := "ui":
|
||||
set(value):
|
||||
dir = value
|
||||
_update_files()
|
||||
#@export var file: String = "":
|
||||
#set(val):
|
||||
#if val and current_files.has(val):
|
||||
#file = val
|
||||
|
||||
var sfx: AudioStream
|
||||
|
||||
var file: String
|
||||
@ -18,15 +14,17 @@ var current_files := PackedStringArray()
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if Engine.is_editor_hint():
|
||||
_update_files()
|
||||
_reload_sfx()
|
||||
bus = &"game_sfx"
|
||||
_update_files()
|
||||
_reload_sfx()
|
||||
|
||||
|
||||
func _reload_sfx():
|
||||
if file and dir:
|
||||
# print("reload sfx", sfx_root_path + dir + "/" + file)
|
||||
# 仅在编辑器模式下加载音频 stream
|
||||
if not Engine.is_editor_hint():
|
||||
return
|
||||
var path = sfx_root_path + dir + "/" + file
|
||||
if file and dir and FileAccess.file_exists(path):
|
||||
sfx = load(sfx_root_path + dir + "/" + file) as AudioStream
|
||||
else:
|
||||
sfx = null
|
||||
@ -35,17 +33,12 @@ func _reload_sfx():
|
||||
|
||||
func _update_files():
|
||||
current_files.clear()
|
||||
if not dir:
|
||||
if not dir or not Engine.is_editor_hint():
|
||||
return
|
||||
var dir_access := DirAccess.open(sfx_root_path + dir) as DirAccess
|
||||
for f in dir_access.get_files():
|
||||
if f.ends_with(".wav") or f.ends_with(".ogg") or f.ends_with(".mp3"):
|
||||
current_files.push_back(f)
|
||||
#for d in dir_access.get_directories():
|
||||
#var sub_dir_access := DirAccess.open(sfx_root_path + dir + "/" + d) as DirAccess
|
||||
#for f in sub_dir_access.get_files():
|
||||
#if f.ends_with(".wav") or f.ends_with(".ogg") or f.ends_with(".mp3"):
|
||||
#current_files.push_back(d + "/" + f)
|
||||
if current_files.is_empty():
|
||||
file = ""
|
||||
elif not file or not current_files.has(file):
|
||||
@ -54,17 +47,6 @@ func _update_files():
|
||||
notify_property_list_changed()
|
||||
|
||||
|
||||
#func _property_can_revert(property: StringName) -> bool:
|
||||
#if property == &"file":
|
||||
#return true
|
||||
#return false
|
||||
#
|
||||
#func _property_get_revert(property: StringName) -> Variant:
|
||||
#if property == &"file":
|
||||
#return ""
|
||||
#return null
|
||||
|
||||
|
||||
func _get_property_list():
|
||||
return [
|
||||
{
|
||||
@ -91,12 +73,7 @@ func _set(property: StringName, value: Variant) -> bool:
|
||||
return false
|
||||
|
||||
|
||||
# func play() -> void:
|
||||
# if sfx:
|
||||
# AudioManager.play_sfx(sfx, volume_db)
|
||||
|
||||
|
||||
# queue free 导致 sfx 无法播放,使用全局声源
|
||||
func global_play() -> void:
|
||||
if sfx:
|
||||
AudioManager.play_sfx(sfx)
|
||||
if stream:
|
||||
AudioManager.play_sfx(stream)
|
@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://c85t6stvytvjn"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/ux/sfx.gd" id="1_ng32y"]
|
||||
[ext_resource type="Script" path="res://scene/entity/general/sfx.gd" id="1_ng32y"]
|
||||
[ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/ui/click.wav" id="1_xj6dy"]
|
||||
|
||||
[node name="Sfx" type="AudioStreamPlayer"]
|
10
scene/entity/general/sfx2d.tscn
Normal file
@ -0,0 +1,10 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cyobva6ppmapr"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/general/sfx_2d.gd" id="1_k1qpr"]
|
||||
[ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/ui/click.wav" id="1_k48eu"]
|
||||
|
||||
[node name="Sfx2d" type="AudioStreamPlayer2D"]
|
||||
stream = ExtResource("1_k48eu")
|
||||
bus = &"game_sfx"
|
||||
script = ExtResource("1_k1qpr")
|
||||
file = "click.wav"
|
78
scene/entity/general/sfx_2d.gd
Normal file
@ -0,0 +1,78 @@
|
||||
@tool
|
||||
class_name Sfx2D extends AudioStreamPlayer2D
|
||||
|
||||
const sfx_root_path = "res://asset/audio/sfx/"
|
||||
@export_enum("child", "ghost", "lvping", "ui", "c01", "c02") var dir := "ui":
|
||||
set(value):
|
||||
dir = value
|
||||
_update_files()
|
||||
|
||||
var sfx: AudioStream
|
||||
|
||||
var file: String
|
||||
var current_files := PackedStringArray()
|
||||
|
||||
func _ready() -> void:
|
||||
bus = &"game_sfx"
|
||||
_update_files()
|
||||
_reload_sfx()
|
||||
|
||||
|
||||
func _reload_sfx():
|
||||
# 仅在编辑器模式下加载音频 stream
|
||||
if not Engine.is_editor_hint():
|
||||
return
|
||||
var path = sfx_root_path + dir + "/" + file
|
||||
if file and dir and FileAccess.file_exists(path):
|
||||
sfx = load(sfx_root_path + dir + "/" + file) as AudioStream
|
||||
else:
|
||||
sfx = null
|
||||
stream = sfx
|
||||
|
||||
|
||||
func _update_files():
|
||||
current_files.clear()
|
||||
if not dir or not Engine.is_editor_hint():
|
||||
return
|
||||
var dir_access := DirAccess.open(sfx_root_path + dir) as DirAccess
|
||||
for f in dir_access.get_files():
|
||||
if f.ends_with(".wav") or f.ends_with(".ogg") or f.ends_with(".mp3"):
|
||||
current_files.push_back(f)
|
||||
if current_files.is_empty():
|
||||
file = ""
|
||||
elif not file or not current_files.has(file):
|
||||
file = current_files[0]
|
||||
_reload_sfx()
|
||||
notify_property_list_changed()
|
||||
|
||||
|
||||
func _get_property_list():
|
||||
return [
|
||||
{
|
||||
"name": &"file",
|
||||
"type": TYPE_STRING,
|
||||
"hint": PROPERTY_HINT_ENUM_SUGGESTION,
|
||||
"hint_string": ",".join(current_files),
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
func _get(property: StringName) -> Variant:
|
||||
if property == &"file":
|
||||
return file
|
||||
return null
|
||||
|
||||
|
||||
func _set(property: StringName, value: Variant) -> bool:
|
||||
if property == &"file":
|
||||
file = value
|
||||
_reload_sfx()
|
||||
# notify_property_list_changed()
|
||||
return true
|
||||
return false
|
||||
|
||||
|
||||
# queue free 导致 sfx 无法播放,使用全局声源
|
||||
func global_play() -> void:
|
||||
if stream:
|
||||
AudioManager.play_sfx(stream)
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bj4ufua0b0k34"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/hd_entity.gd" id="1_fp2a8"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/ux/sfx.tscn" id="2_jmpkt"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="2_jmpkt"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="3_jupnr"]
|
||||
[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_oxpta"]
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://cw3q5pvciumil"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/interactable.gd" id="1_6nrd3"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/ux/sfx.tscn" id="2_bvj74"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="2_bvj74"]
|
||||
[ext_resource type="Texture2D" uid="uid://b343nvvbtpglb" path="res://asset/art/ui/互动提示符/ui 像素版_纯白.png" id="2_tvf5d"]
|
||||
[ext_resource type="AudioStream" uid="uid://ccng5y2fip6mc" path="res://asset/audio/sfx/ui/开锁声.mp3" id="3_o5jv1"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="3_qsms8"]
|
||||
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://ci5anaxsa1apl"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/local_inspectable.gd" id="1_85el0"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/ux/sfx.tscn" id="2_h0c2s"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="2_h0c2s"]
|
||||
[ext_resource type="AudioStream" uid="uid://byjcmxy5crce5" path="res://asset/audio/sfx/ui/纸条.mp3" id="3_3ldx7"]
|
||||
[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_o562w"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_do8tr"]
|
||||
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://jr1yd46wm5je"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/note.gd" id="1_3igk8"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/ux/sfx.tscn" id="2_qocmg"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="2_qocmg"]
|
||||
[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_xb81s"]
|
||||
[ext_resource type="AudioStream" uid="uid://byjcmxy5crce5" path="res://asset/audio/sfx/ui/纸条.mp3" id="3_y3pwa"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="5_dhwp5"]
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/npc.gd" id="1_jegr2"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://b7fhheih1hbvf" path="res://config/animation/entity_sprite_frames.tres" id="3_1e8sl"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/ux/sfx.tscn" id="3_4d53s"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_4d53s"]
|
||||
[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="4_jrmg5"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_nokx4"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwt5nxyncfuqu" path="res://asset/art/ui/action_mark/说话标识1.png" id="5_foitt"]
|
||||
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://wyj4qdjyn4ql"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/old/inspectable.gd" id="1_0pc4s"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/ux/sfx.tscn" id="2_wrnix"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="2_wrnix"]
|
||||
[ext_resource type="AudioStream" uid="uid://dky3j8lwcy5sk" path="res://asset/audio/sfx/ui/物品查看.mp3" id="3_kilnm"]
|
||||
[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_vbivp"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_1yty8"]
|
||||
|