轻击技能帧数优化 龙尾脚

master
chendian 1 year ago
parent 143932e157
commit a2f725cb20

@ -9,7 +9,6 @@ break_level = 2
stun_attack = 10.0 stun_attack = 10.0
damage_type = 1 damage_type = 1
is_floating = true is_floating = true
is_hit_down = false
is_rebound = false is_rebound = false
is_stop_self = true is_stop_self = true
is_throw_check = false is_throw_check = false

@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://dqgmfpqv2vn3v"]
[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_n1nfk"]
[resource]
script = ExtResource("1_n1nfk")
damage_rate = 1.0
break_level = 2
stun_attack = 10.0
damage_type = 1
is_floating = true
is_rebound = false
is_stop_self = false
is_throw_check = false
is_throw_end = false
hit_back_speed = -6.0
hit_up_speed = -6.0
hit_back_duration = 0.05
hit_up_duration = 0.05
pause_time = 0.15
is_force_pause = true

@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://dqj07ilur5aa7"]
[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_qqcjv"]
[resource]
script = ExtResource("1_qqcjv")
damage_rate = 0.1
break_level = 1
stun_attack = 10.0
damage_type = 1
is_floating = true
is_rebound = false
is_stop_self = false
is_throw_check = false
is_throw_end = false
hit_back_speed = 2.0
hit_up_speed = 1.5
hit_back_duration = 0.05
hit_up_duration = 0.05
pause_time = 0.05
is_force_pause = true

@ -1,20 +1,20 @@
[gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://dfjtcdh13vohe"] [gd_resource type="Resource" script_class="AttackCfg" load_steps=2 format=3 uid="uid://dfjtcdh13vohe"]
[ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_wxmda"] [ext_resource type="Script" path="res://script/config/attack_cfg.gd" id="1_rahqi"]
[resource] [resource]
script = ExtResource("1_wxmda") script = ExtResource("1_rahqi")
damage_rate = 1.0 damage_rate = 1.0
break_level = 2 break_level = 1
stun_attack = 10.0 stun_attack = 10.0
damage_type = 1 damage_type = 1
is_floating = false is_floating = true
is_rebound = false is_rebound = false
is_stop_self = false is_stop_self = false
is_throw_check = false is_throw_check = false
is_throw_end = false is_throw_end = false
hit_back_speed = -4.0 hit_back_speed = -2.5
hit_up_speed = 4.0 hit_up_speed = 3.5
hit_back_duration = 0.05 hit_back_duration = 0.05
hit_up_duration = 0.05 hit_up_duration = 0.05
pause_time = 0.05 pause_time = 0.05

@ -2,12 +2,11 @@
[ext_resource type="Script" path="res://script/config/attack_box_cfg.gd" id="1_utw7p"] [ext_resource type="Script" path="res://script/config/attack_box_cfg.gd" id="1_utw7p"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_pmh6g"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_78ng8"]
height = 0.2 height = 0.4
radius = 0.25
[resource] [resource]
script = ExtResource("1_utw7p") script = ExtResource("1_utw7p")
shape = SubResource("CylinderShape3D_pmh6g") shape = SubResource("CylinderShape3D_78ng8")
offset = Vector2(0, 0) offset = Vector2(0, 0)
is_throw = false is_throw = false

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=7 format=3 uid="uid://cu73c3osx40k2"] [gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=7 format=3 uid="uid://cu73c3osx40k2"]
[ext_resource type="Resource" uid="uid://dfjtcdh13vohe" path="res://config/attack/blunt_mid_hit_up_back.tres" id="1_dw1kj"] [ext_resource type="Resource" uid="uid://dfjtcdh13vohe" path="res://config/attack/blunt_normal_hit_up_back.tres" id="1_f41cj"]
[ext_resource type="Resource" uid="uid://dq3pnbyfx4irr" path="res://config/attack_box/circle_foot.tres" id="2_bmi1a"] [ext_resource type="Resource" uid="uid://dq3pnbyfx4irr" path="res://config/attack_box/circle_foot.tres" id="2_bmi1a"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="5_j7ual"] [ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="5_j7ual"]
[ext_resource type="Animation" uid="uid://b73xq7qwltbo2" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="6_le53b"] [ext_resource type="Animation" uid="uid://b73xq7qwltbo2" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="6_le53b"]
@ -16,7 +16,7 @@ skill_animation = ExtResource("6_le53b")
range = 0.0 range = 0.0
free_lock = false free_lock = false
ignore_push = true ignore_push = true
attack1 = ExtResource("1_dw1kj") attack1 = ExtResource("1_f41cj")
attack1_box = ExtResource("2_bmi1a") attack1_box = ExtResource("2_bmi1a")
stance_from = 14 stance_from = 14
stance_to = 10 stance_to = 10
@ -24,6 +24,7 @@ break_level = 3
is_charging = false is_charging = false
mp_cost = 0 mp_cost = 0
warn_type = 0 warn_type = 0
with_stop = false
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("7_kay3f") sprite_frames = ExtResource("7_kay3f")
animation_name = "fist_air_skill02" animation_name = "fist_air_skill02"

@ -1,9 +1,8 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=9 format=3 uid="uid://pkbnyqbnygw5"] [gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=8 format=3 uid="uid://pkbnyqbnygw5"]
[ext_resource type="Resource" uid="uid://by6jd5xqjml2m" path="res://config/attack/blunt_starfall_1.tres" id="1_rd5q6"] [ext_resource type="Resource" uid="uid://dqj07ilur5aa7" path="res://config/attack/blunt_normal_hit_sweep.tres" id="1_4wig8"]
[ext_resource type="Resource" uid="uid://dq3pnbyfx4irr" path="res://config/attack_box/circle_foot.tres" id="2_e5i11"] [ext_resource type="Resource" uid="uid://bqejjllfy03h3" path="res://config/attack_box/box_normal.tres" id="2_bnqda"]
[ext_resource type="Resource" uid="uid://d26ok8as50xe5" path="res://config/attack/blunt_starfall_2.tres" id="3_m856r"] [ext_resource type="Resource" uid="uid://duu05cr8gk5v4" path="res://config/attack/blunt_mid_hit_blow.tres" id="3_foswg"]
[ext_resource type="Resource" uid="uid://decgfcx2xsj8i" path="res://config/attack_box/circle_mid.tres" id="4_73m7b"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="5_l5ryy"] [ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="5_l5ryy"]
[ext_resource type="Animation" uid="uid://dd1d51x51so2p" path="res://resource/skill_animation/hero01_fist_air_skill03.tres" id="6_e6804"] [ext_resource type="Animation" uid="uid://dd1d51x51so2p" path="res://resource/skill_animation/hero01_fist_air_skill03.tres" id="6_e6804"]
[ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="7_baqkp"] [ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="7_baqkp"]
@ -18,16 +17,17 @@ skill_animation = ExtResource("6_e6804")
range = 0.0 range = 0.0
free_lock = false free_lock = false
ignore_push = true ignore_push = true
attack1 = ExtResource("1_rd5q6") attack1 = ExtResource("1_4wig8")
attack1_box = ExtResource("2_e5i11") attack1_box = ExtResource("2_bnqda")
attack2 = ExtResource("3_m856r") attack2 = ExtResource("3_foswg")
attack2_box = ExtResource("4_73m7b") attack2_box = ExtResource("2_bnqda")
stance_from = 14 stance_from = 11
stance_to = 10 stance_to = 12
break_level = 3 break_level = 3
is_charging = false is_charging = false
mp_cost = 0 mp_cost = 0
warn_type = 0 warn_type = 0
with_stop = true
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("7_baqkp") sprite_frames = ExtResource("7_baqkp")
animation_name = "fist_air_skill03" animation_name = "fist_air_skill03"

@ -0,0 +1,30 @@
[gd_resource type="Resource" script_class="SkillWeaponCfg" load_steps=7 format=3 uid="uid://bclrd5ocxqtgj"]
[ext_resource type="Resource" uid="uid://dqgmfpqv2vn3v" path="res://config/attack/blunt_mid_hit_down_back.tres" id="1_re6l4"]
[ext_resource type="Resource" uid="uid://diedb7vw7eyxp" path="res://config/attack_box/box_mid.tres" id="2_anqor"]
[ext_resource type="Script" path="res://script/config/skill_weapon_cfg.gd" id="3_ty4r5"]
[ext_resource type="Animation" uid="uid://c2esjf8ouf22c" path="res://resource/skill_animation/hero01_fist_air_skill04.tres" id="4_p4vkr"]
[ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="5_xtg56"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="6_on1ob"]
[resource]
script = ExtResource("3_ty4r5")
weapon = ExtResource("6_on1ob")
action = "attack_heavy"
name = ""
skill_animation = ExtResource("4_p4vkr")
range = 0.0
free_lock = false
ignore_push = false
attack1 = ExtResource("1_re6l4")
attack1_box = ExtResource("2_anqor")
stance_from = 12
stance_to = 10
break_level = 3
is_charging = false
mp_cost = 0
warn_type = 0
with_stop = false
refresh_animation = false
sprite_frames = ExtResource("5_xtg56")
animation_name = "fist_air_skill04"

@ -24,6 +24,7 @@ break_level = 3
is_charging = false is_charging = false
mp_cost = 0 mp_cost = 0
warn_type = 0 warn_type = 0
with_stop = null
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("5_sjxkh") sprite_frames = ExtResource("5_sjxkh")
animation_name = "fist_skill03" animation_name = "fist_skill03"

@ -18,9 +18,11 @@ ignore_push = false
attack1 = ExtResource("1_5rgpl") attack1 = ExtResource("1_5rgpl")
attack1_box = ExtResource("2_rpr7r") attack1_box = ExtResource("2_rpr7r")
stance_from = 12 stance_from = 12
stance_to = 10 stance_to = 13
break_level = 3 break_level = 3
is_charging = false is_charging = false
mp_cost = 0 mp_cost = 0
warn_type = 0
with_stop = false
refresh_animation = false refresh_animation = false
animation_name = "" animation_name = ""

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 35 KiB

@ -4,6 +4,7 @@
[resource] [resource]
resource_name = "hero01_combo0101" resource_name = "hero01_combo0101"
length = 0.9
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -35,8 +36,8 @@ tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -4,6 +4,7 @@
[resource] [resource]
resource_name = "hero01_combo0102" resource_name = "hero01_combo0102"
length = 0.9
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -35,8 +36,8 @@ tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -4,6 +4,7 @@
[resource] [resource]
resource_name = "hero01_common_skill0101" resource_name = "hero01_common_skill0101"
length = 0.9
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -35,8 +36,8 @@ tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -4,6 +4,7 @@
[resource] [resource]
resource_name = "hero01_common_skill0102" resource_name = "hero01_common_skill0102"
length = 0.9
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -35,8 +36,8 @@ tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -4,6 +4,7 @@
[resource] [resource]
resource_name = "hero01_common_skill03" resource_name = "hero01_common_skill03"
length = 0.9
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -85,8 +86,8 @@ tracks/6/path = NodePath("View:frame")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -146,24 +146,24 @@ tracks/9/keys = {
tracks/10/type = "value" tracks/10/type = "value"
tracks/10/imported = false tracks/10/imported = false
tracks/10/enabled = true tracks/10/enabled = true
tracks/10/path = NodePath("View:frame") tracks/10/path = NodePath("%Status:stance")
tracks/10/interp = 1 tracks/10/interp = 1
tracks/10/loop_wrap = true tracks/10/loop_wrap = true
tracks/10/keys = { tracks/10/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8), "times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8] "values": [0]
} }
tracks/11/type = "value" tracks/11/type = "value"
tracks/11/imported = false tracks/11/imported = false
tracks/11/enabled = true tracks/11/enabled = true
tracks/11/path = NodePath("%Status:stance") tracks/11/path = NodePath("View:frame")
tracks/11/interp = 1 tracks/11/interp = 1
tracks/11/loop_wrap = true tracks/11/loop_wrap = true
tracks/11/keys = { tracks/11/keys = {
"times": PackedFloat32Array(0.4), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -33,67 +33,69 @@ tracks/1/keys = {
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("View:frame") tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1), "times": PackedFloat32Array(0, 0.2, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] "values": [0, 3, 4]
} }
tracks/3/type = "value" tracks/3/type = "value"
tracks/3/imported = false tracks/3/imported = false
tracks/3/enabled = true tracks/3/enabled = true
tracks/3/path = NodePath("Status:break_level") tracks/3/path = NodePath("Status:speed_up_rate")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0, 0.5, 0.6), "times": PackedFloat32Array(),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(),
"update": 1, "update": 1,
"values": [0, 3, 4] "values": []
} }
tracks/4/type = "value" tracks/4/type = "value"
tracks/4/imported = false tracks/4/imported = false
tracks/4/enabled = true tracks/4/enabled = true
tracks/4/path = NodePath("Status:speed_up_rate") tracks/4/path = NodePath("Status:skill_move_speed")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
"times": PackedFloat32Array(), "times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [] "values": [-3.0, 0.0]
} }
tracks/5/type = "value" tracks/5/type = "value"
tracks/5/imported = false tracks/5/imported = false
tracks/5/enabled = true tracks/5/enabled = true
tracks/5/path = NodePath("Status:skill_move_speed") tracks/5/path = NodePath("Status:skill_float_speed")
tracks/5/interp = 1 tracks/5/interp = 1
tracks/5/loop_wrap = true tracks/5/loop_wrap = true
tracks/5/keys = { tracks/5/keys = {
"times": PackedFloat32Array(0, 0.1), "times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [-4.0, 0.0] "values": [3.0, 0.0]
} }
tracks/6/type = "value" tracks/6/type = "method"
tracks/6/imported = false tracks/6/imported = false
tracks/6/enabled = true tracks/6/enabled = true
tracks/6/path = NodePath("Status:skill_float_speed") tracks/6/path = NodePath("Battle")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1),
"update": 1, "values": [{
"values": [4.0, 0.0] "args": [],
"method": &"attack1"
}]
} }
tracks/7/type = "method" tracks/7/type = "method"
tracks/7/imported = false tracks/7/imported = false
tracks/7/enabled = true tracks/7/enabled = true
tracks/7/path = NodePath("Battle") tracks/7/path = NodePath("Effect")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
@ -101,20 +103,18 @@ tracks/7/keys = {
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],
"method": &"attack1" "method": &"cast_attack_particle1"
}] }]
} }
tracks/8/type = "method" tracks/8/type = "value"
tracks/8/imported = false tracks/8/imported = false
tracks/8/enabled = true tracks/8/enabled = true
tracks/8/path = NodePath("Effect") tracks/8/path = NodePath("View:frame")
tracks/8/interp = 1 tracks/8/interp = 1
tracks/8/loop_wrap = true tracks/8/loop_wrap = true
tracks/8/keys = { tracks/8/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"values": [{ "update": 1,
"args": [], "values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
"method": &"cast_attack_particle1"
}]
} }

@ -4,7 +4,8 @@
[resource] [resource]
resource_name = "hero01_fist_air_skill03" resource_name = "hero01_fist_air_skill03"
length = 2.7 length = 2.0
step = 0.1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -27,17 +28,99 @@ tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 1, "update": 1,
"values": ["fist_skill03"] "values": [&"fist_air_skill03"]
} }
tracks/2/type = "value" tracks/2/type = "value"
tracks/2/imported = false tracks/2/imported = false
tracks/2/enabled = true tracks/2/enabled = true
tracks/2/path = NodePath("View:frame") tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6), "times": PackedFloat32Array(0, 0.2, 0.5, 1.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] "values": [0, 1, 3, 4]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Status:skill_move_speed")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3, 0.5, 0.6, 1, 1.2),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [1.0, 2.0, 1.0, 2.0, 1.0, 2.0, 0.0]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Battle")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.2, 0.3, 0.5, 0.6, 1),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"values": [{
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack1"
}, {
"args": [],
"method": &"attack2"
}]
}
tracks/5/type = "method"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Effect")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.0999999, 0.4, 0.9),
"transitions": PackedFloat32Array(1, 1, 1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}, {
"args": [],
"method": &"cast_attack_particle1"
}, {
"args": [],
"method": &"cast_attack_particle2"
}]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("%Status:skill_float_speed")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.2, 0.3, 0.5, 0.6, 1, 1.1),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 0,
"values": [0.1, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("View:frame")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
} }

@ -0,0 +1,120 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://c2esjf8ouf22c"]
[ext_resource type="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="1_osyfp"]
[resource]
resource_name = "hero01_fist_air_skill04"
length = 0.9
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("View:sprite_frames")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_osyfp")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("View:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": ["fist_air_skill04"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Status:break_level")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.4, 0.5),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 3, 4]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("Status:speed_up_rate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-0.5, -1.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("Status:skill_move_speed")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [1.0, 0.0]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("Status:skill_float_speed")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.2, 0.4),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0.1, 1.0, 0.0]
}
tracks/7/type = "method"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Battle")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"attack1"
}]
}
tracks/8/type = "method"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("Effect")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle1"
}]
}

@ -4,7 +4,7 @@
[resource] [resource]
resource_name = "hero01_fist_attack01" resource_name = "hero01_fist_attack01"
length = 0.8 length = 0.7
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -36,7 +36,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3, 0.5), "times": PackedFloat32Array(0, 0.2, 0.4),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [0, 3, 4] "values": [0, 3, 4]
@ -48,7 +48,7 @@ tracks/3/path = NodePath("Status:speed_up_rate")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0.1, 0.2), "times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [-0.5, -1.0] "values": [-0.5, -1.0]
@ -60,7 +60,7 @@ tracks/4/path = NodePath("Status:skill_move_speed")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
"times": PackedFloat32Array(0.1, 0.2), "times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [2.0, 0.0]
@ -72,7 +72,7 @@ tracks/5/path = NodePath("Battle")
tracks/5/interp = 1 tracks/5/interp = 1
tracks/5/loop_wrap = true tracks/5/loop_wrap = true
tracks/5/keys = { tracks/5/keys = {
"times": PackedFloat32Array(0.2), "times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],
@ -86,7 +86,7 @@ tracks/6/path = NodePath("Effect")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0.1), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],
@ -100,8 +100,8 @@ tracks/7/path = NodePath("View:frame")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7] "values": [0, 1, 2, 3, 4, 5, 6]
} }

@ -4,7 +4,8 @@
[resource] [resource]
resource_name = "hero01_fist_attack02" resource_name = "hero01_fist_attack02"
length = 0.8 length = 0.7
step = 0.1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -36,7 +37,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.4, 0.6), "times": PackedFloat32Array(0, 0.3, 0.5),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [0, 3, 4] "values": [0, 3, 4]
@ -48,7 +49,7 @@ tracks/3/path = NodePath("Status:speed_up_rate")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0.1, 0.2), "times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [-0.5, -1.0] "values": [-0.5, -1.0]
@ -60,7 +61,7 @@ tracks/4/path = NodePath("Status:skill_move_speed")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
"times": PackedFloat32Array(0.1, 0.2), "times": PackedFloat32Array(0, 0.1),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [2.0, 0.0]
@ -72,7 +73,7 @@ tracks/5/path = NodePath("Battle")
tracks/5/interp = 1 tracks/5/interp = 1
tracks/5/loop_wrap = true tracks/5/loop_wrap = true
tracks/5/keys = { tracks/5/keys = {
"times": PackedFloat32Array(0.2), "times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],
@ -86,7 +87,7 @@ tracks/6/path = NodePath("Effect")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0.1), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],
@ -100,8 +101,8 @@ tracks/7/path = NodePath("View:frame")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7] "values": [0, 1, 2, 3, 4, 5, 6]
} }

@ -99,7 +99,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0.1), "times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],

@ -99,7 +99,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0.1), "times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],

@ -37,7 +37,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.5, 0.7), "times": PackedFloat32Array(0, 0.4, 0.6),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [0, 3, 4] "values": [0, 3, 4]
@ -99,7 +99,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0.1), "times": PackedFloat32Array(0.2),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],

@ -4,6 +4,7 @@
[resource] [resource]
resource_name = "hero01_long_attack01" resource_name = "hero01_long_attack01"
length = 0.9
step = 0.1 step = 0.1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
@ -36,7 +37,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.3, 0.7), "times": PackedFloat32Array(0, 0.2, 0.6),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [0, 3, 4] "values": [0, 3, 4]
@ -48,7 +49,7 @@ tracks/3/path = NodePath("Status:speed_up_rate")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0.2, 0.3), "times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [-0.5, -1.0] "values": [-0.5, -1.0]
@ -60,7 +61,7 @@ tracks/4/path = NodePath("Status:skill_move_speed")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
"times": PackedFloat32Array(0.1, 0.3), "times": PackedFloat32Array(-7.45058e-09, 0.2),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [2.0, 0.0]
@ -72,7 +73,7 @@ tracks/5/path = NodePath("Battle")
tracks/5/interp = 1 tracks/5/interp = 1
tracks/5/loop_wrap = true tracks/5/loop_wrap = true
tracks/5/keys = { tracks/5/keys = {
"times": PackedFloat32Array(0.2), "times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],
@ -100,8 +101,8 @@ tracks/7/path = NodePath("View:frame")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -4,6 +4,8 @@
[resource] [resource]
resource_name = "hero01_long_attack02" resource_name = "hero01_long_attack02"
length = 0.9
step = 0.1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -35,7 +37,7 @@ tracks/2/path = NodePath("Status:break_level")
tracks/2/interp = 1 tracks/2/interp = 1
tracks/2/loop_wrap = true tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.4, 0.6), "times": PackedFloat32Array(0, 0.3, 0.5),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [0, 3, 4] "values": [0, 3, 4]
@ -47,7 +49,7 @@ tracks/3/path = NodePath("Status:speed_up_rate")
tracks/3/interp = 1 tracks/3/interp = 1
tracks/3/loop_wrap = true tracks/3/loop_wrap = true
tracks/3/keys = { tracks/3/keys = {
"times": PackedFloat32Array(0.2, 0.3), "times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [-0.5, -1.0] "values": [-0.5, -1.0]
@ -59,7 +61,7 @@ tracks/4/path = NodePath("Status:skill_move_speed")
tracks/4/interp = 1 tracks/4/interp = 1
tracks/4/loop_wrap = true tracks/4/loop_wrap = true
tracks/4/keys = { tracks/4/keys = {
"times": PackedFloat32Array(0.1, 0.3), "times": PackedFloat32Array(-7.45058e-09, 0.2),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [2.0, 0.0]
@ -71,7 +73,7 @@ tracks/5/path = NodePath("Battle")
tracks/5/interp = 1 tracks/5/interp = 1
tracks/5/loop_wrap = true tracks/5/loop_wrap = true
tracks/5/keys = { tracks/5/keys = {
"times": PackedFloat32Array(0.2), "times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],
@ -99,8 +101,8 @@ tracks/7/path = NodePath("View:frame")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -5,6 +5,7 @@
[resource] [resource]
resource_name = "hero01_long_attack03" resource_name = "hero01_long_attack03"
length = 1.4 length = 1.4
step = 0.1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -89,7 +90,7 @@ tracks/6/path = NodePath("Effect")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0.1, 0.5), "times": PackedFloat32Array(0.2, 0.6),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"values": [{ "values": [{
"args": [], "args": [],

@ -5,6 +5,7 @@
[resource] [resource]
resource_name = "hero01_long_attack04" resource_name = "hero01_long_attack04"
length = 1.2 length = 1.2
step = 0.1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
tracks/0/enabled = true tracks/0/enabled = true
@ -89,7 +90,7 @@ tracks/6/path = NodePath("Effect")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0.4), "times": PackedFloat32Array(0.5),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],

@ -87,7 +87,7 @@ tracks/6/path = NodePath("Effect")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0.3), "times": PackedFloat32Array(0.4),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],

@ -99,7 +99,7 @@ tracks/7/path = NodePath("Effect")
tracks/7/interp = 1 tracks/7/interp = 1
tracks/7/loop_wrap = true tracks/7/loop_wrap = true
tracks/7/keys = { tracks/7/keys = {
"times": PackedFloat32Array(0.2), "times": PackedFloat32Array(0.3),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],

@ -4,6 +4,7 @@
[resource] [resource]
resource_name = "hero01_remote01" resource_name = "hero01_remote01"
length = 0.9
step = 0.1 step = 0.1
tracks/0/type = "value" tracks/0/type = "value"
tracks/0/imported = false tracks/0/imported = false
@ -86,8 +87,8 @@ tracks/6/path = NodePath("View:frame")
tracks/6/interp = 1 tracks/6/interp = 1
tracks/6/loop_wrap = true tracks/6/loop_wrap = true
tracks/6/keys = { tracks/6/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1),
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] "values": [0, 1, 2, 3, 4, 5, 6, 7, 8]
} }

@ -1,4 +1,4 @@
[gd_resource type="AnimationLibrary" load_steps=48 format=3 uid="uid://croik07a1qko5"] [gd_resource type="AnimationLibrary" load_steps=49 format=3 uid="uid://croik07a1qko5"]
[ext_resource type="Animation" uid="uid://t01a4jvp8srr" path="res://resource/skill_animation/hero01_fist_attack01.tres" id="1_4bwwm"] [ext_resource type="Animation" uid="uid://t01a4jvp8srr" path="res://resource/skill_animation/hero01_fist_attack01.tres" id="1_4bwwm"]
[ext_resource type="Animation" uid="uid://cfapnjkj5dkws" path="res://resource/skill_animation/hero01_basic_flash.tres" id="1_46f01"] [ext_resource type="Animation" uid="uid://cfapnjkj5dkws" path="res://resource/skill_animation/hero01_basic_flash.tres" id="1_46f01"]
@ -35,6 +35,7 @@
[ext_resource type="Animation" uid="uid://bkre61dn64j2f" path="res://resource/skill_animation/hero01_short_attack01.tres" id="11_n0dhn"] [ext_resource type="Animation" uid="uid://bkre61dn64j2f" path="res://resource/skill_animation/hero01_short_attack01.tres" id="11_n0dhn"]
[ext_resource type="Animation" uid="uid://b73xq7qwltbo2" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="16_ssfs1"] [ext_resource type="Animation" uid="uid://b73xq7qwltbo2" path="res://resource/skill_animation/hero01_fist_air_skill02.tres" id="16_ssfs1"]
[ext_resource type="Animation" uid="uid://dd1d51x51so2p" path="res://resource/skill_animation/hero01_fist_air_skill03.tres" id="16_tsiw4"] [ext_resource type="Animation" uid="uid://dd1d51x51so2p" path="res://resource/skill_animation/hero01_fist_air_skill03.tres" id="16_tsiw4"]
[ext_resource type="Animation" uid="uid://c2esjf8ouf22c" path="res://resource/skill_animation/hero01_fist_air_skill04.tres" id="18_2ajwh"]
[ext_resource type="Animation" uid="uid://uxuayi0qf3b7" path="res://resource/skill_animation/hero01_long_air_skill01.tres" id="20_0ey8y"] [ext_resource type="Animation" uid="uid://uxuayi0qf3b7" path="res://resource/skill_animation/hero01_long_air_skill01.tres" id="20_0ey8y"]
[ext_resource type="Animation" uid="uid://cjc6sis2xn1yy" path="res://resource/skill_animation/hero01_long_air_skill02.tres" id="21_ks43l"] [ext_resource type="Animation" uid="uid://cjc6sis2xn1yy" path="res://resource/skill_animation/hero01_long_air_skill02.tres" id="21_ks43l"]
[ext_resource type="Animation" uid="uid://b0a1nnw2e13sg" path="res://resource/skill_animation/hero01_fist_skill_charging01.tres" id="23_12bpf"] [ext_resource type="Animation" uid="uid://b0a1nnw2e13sg" path="res://resource/skill_animation/hero01_fist_skill_charging01.tres" id="23_12bpf"]
@ -66,6 +67,7 @@ _data = {
"hero01_fist_air_skill01": ExtResource("5_df32u"), "hero01_fist_air_skill01": ExtResource("5_df32u"),
"hero01_fist_air_skill02": ExtResource("16_ssfs1"), "hero01_fist_air_skill02": ExtResource("16_ssfs1"),
"hero01_fist_air_skill03": ExtResource("16_tsiw4"), "hero01_fist_air_skill03": ExtResource("16_tsiw4"),
"hero01_fist_air_skill04": ExtResource("18_2ajwh"),
"hero01_fist_attack01": ExtResource("1_4bwwm"), "hero01_fist_attack01": ExtResource("1_4bwwm"),
"hero01_fist_attack02": ExtResource("2_vx7p1"), "hero01_fist_attack02": ExtResource("2_vx7p1"),
"hero01_fist_attack03": ExtResource("3_lo6yb"), "hero01_fist_attack03": ExtResource("3_lo6yb"),

@ -151,6 +151,30 @@ tracks/8/keys = {
"update": 1, "update": 1,
"values": [0] "values": [0]
} }
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("Status:skill_float_speed")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("%Status:skill_float_speed")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_avnjy"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_avnjy"]
_data = { _data = {
@ -254,7 +278,7 @@ frame = 8
[node name="Throw" type="AnimatedSprite3D" parent="EditorTool/Character"] [node name="Throw" type="AnimatedSprite3D" parent="EditorTool/Character"]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(-1, 0, 0, 0, -1, 1.50996e-07, 0, -1.50996e-07, -1, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, -1.50996e-07, 0, 1.50996e-07, 1, 0, 0, 0)
pixel_size = 0.02 pixel_size = 0.02
sprite_frames = ExtResource("20_4ni1a") sprite_frames = ExtResource("20_4ni1a")
animation = &"idle_loop" animation = &"idle_loop"

@ -59,6 +59,8 @@ func add_attack(attack: AttackCfg, attack_box: AttackBoxCfg, hit_self: bool = fa
var offset_y: float = attack_box.offset.y var offset_y: float = attack_box.offset.y
var offset: Vector3 = Vector3(offset_xz.x, offset_y, offset_xz.y) var offset: Vector3 = Vector3(offset_xz.x, offset_y, offset_xz.y)
var shape: Shape3D = attack_box.shape var shape: Shape3D = attack_box.shape
if not shape:
print("无效形状:",attack_box.get_res_name())
_debug_draw_attack_box(shape, offset) _debug_draw_attack_box(shape, offset)
result = Util.raycast_character(shape, pos+offset, attack_dir) result = Util.raycast_character(shape, pos+offset, attack_dir)
var is_hit: bool = false var is_hit: bool = false

@ -42,7 +42,7 @@ func update_on_floor(delta) -> bool:
status.is_on_floor = is_on_floor status.is_on_floor = is_on_floor
if status.is_on_floor and not status.is_jumping: if status.is_on_floor and not status.is_jumping:
status.is_jumped = false status.is_jumped = false
var is_skill_running: bool = status.is_skill_running and status.break_level == 0 var is_skill_running: bool = status.is_skill_running and status.break_level != Enum.EBreakLevel.Walk
if is_hit and not status.is_stagger and not is_skill_running: if is_hit and not status.is_stagger and not is_skill_running:
Global.effect_mgr.cast_particle(ResourceManager.particle_move_hit_ground, character.pos()) Global.effect_mgr.cast_particle(ResourceManager.particle_move_hit_ground, character.pos())
return is_hit return is_hit

@ -6,6 +6,7 @@ class_name Skill
@onready var status: Status = (%Status as Status) @onready var status: Status = (%Status as Status)
@onready var effect: Effect = (%Effect as Effect) @onready var effect: Effect = (%Effect as Effect)
@onready var buff: Buff = (%Buff as Buff) @onready var buff: Buff = (%Buff as Buff)
@onready var move: Move = (%Move as Move)
var skill_dict: Dictionary = {} #name -> skill var skill_dict: Dictionary = {} #name -> skill
var skill_map: Dictionary = {} #input -> skillCfg[] var skill_map: Dictionary = {} #input -> skillCfg[]
@ -108,7 +109,8 @@ func cast_skill(cfg: SkillCfg, cast_dir: Vector2, action_key: String = ""):
if cfg.is_charging: if cfg.is_charging:
buff.add_buff("charging", -1) buff.add_buff("charging", -1)
if cast_dir.x != 0: status.is_right = cast_dir.x > 0 if cast_dir.x != 0: status.is_right = cast_dir.x > 0
if cfg.with_stop:
move.stop()
#预警特效 #预警特效
match cfg.warn_type: match cfg.warn_type:
Enum.ESkillWarnType.Normal: character.cast_particle(ResourceManager.particle_warn_normal, true) Enum.ESkillWarnType.Normal: character.cast_particle(ResourceManager.particle_warn_normal, true)
@ -119,7 +121,6 @@ func cast_skill(cfg: SkillCfg, cast_dir: Vector2, action_key: String = ""):
var animation_name: String = "animation_library/%s" % cfg.get_res_name() var animation_name: String = "animation_library/%s" % cfg.get_res_name()
play(animation_name, -1, Setting.animation_speed_scale) play(animation_name, -1, Setting.animation_speed_scale)
seek(0, true, true) seek(0, true, true)
print("cast_skill",cfg.get_res_name())
func break_skill(): func break_skill():

@ -54,7 +54,7 @@ var is_free_turn: bool = true #是否允许转向
var is_right: bool = true #是否向右 var is_right: bool = true #是否向右
var is_jumping: bool #是否正在跳跃 var is_jumping: bool #是否正在跳跃
var is_jumped: bool #是否已跳跃 var is_jumped: bool #是否已跳跃
var is_speed_y_freeze: bool #是否冻结竖直速度 @export var is_speed_y_freeze: bool #是否冻结竖直速度
#buff状态 #buff状态
var is_stagger: bool #是否硬直 var is_stagger: bool #是否硬直
var is_stun: bool #是否眩晕 var is_stun: bool #是否眩晕

@ -1,4 +1,4 @@
extends Resource extends Resource
class_name Cfg class_name Cfg
var res_name: String var res_name: String

@ -18,6 +18,7 @@ class_name SkillCfg
@export var is_charging: bool @export var is_charging: bool
@export var mp_cost: int @export var mp_cost: int
@export var warn_type: Enum.ESkillWarnType = Enum.ESkillWarnType.None @export var warn_type: Enum.ESkillWarnType = Enum.ESkillWarnType.None
@export var with_stop: bool = false
@export var refresh_animation: bool: @export var refresh_animation: bool:
get: return false get: return false

Loading…
Cancel
Save