通用冲刺特效 攻击优化

master
chendian 2 years ago
parent a3a6f1eb18
commit 8166850000

@ -11,7 +11,7 @@ damage_type = 1
is_floating = true is_floating = true
is_hit_down = false is_hit_down = false
is_rebound = false is_rebound = false
hit_back_speed = 4.0 hit_back_speed = 3.0
hit_up_speed = 3.0 hit_up_speed = 3.0
hit_back_duration = 0.05 hit_back_duration = 0.05
hit_up_duration = 0.05 hit_up_duration = 0.05

@ -12,7 +12,7 @@ is_floating = false
is_hit_down = false is_hit_down = false
is_rebound = false is_rebound = false
hit_back_speed = 2.0 hit_back_speed = 2.0
hit_up_speed = 1.0 hit_up_speed = 2.0
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

@ -11,8 +11,8 @@ damage_type = 1
is_floating = false is_floating = false
is_hit_down = false is_hit_down = false
is_rebound = false is_rebound = false
hit_back_speed = 4.0 hit_back_speed = 3.0
hit_up_speed = 2.0 hit_up_speed = 3.0
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

@ -8,7 +8,7 @@ damage_rate = 1.0
break_level = 3 break_level = 3
stun_attack = 10.0 stun_attack = 10.0
damage_type = 0 damage_type = 0
is_floating = false is_floating = true
is_hit_down = false is_hit_down = false
is_rebound = false is_rebound = false
hit_back_speed = 10.0 hit_back_speed = 10.0

@ -1,6 +1,7 @@
[gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=6 format=3 uid="uid://chuv8k5d44ln4"] [gd_resource type="Resource" script_class="SkillPlayerCfg" load_steps=7 format=3 uid="uid://chuv8k5d44ln4"]
[ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/sharp_heavy_hit_blow.tres" id="1_7tise"] [ext_resource type="Resource" uid="uid://dbs2wjw20s0hu" path="res://config/attack/sharp_heavy_hit_blow.tres" id="1_7tise"]
[ext_resource type="Resource" uid="uid://c87w2x5qfqdns" path="res://config/attack/blunt_normal_hit_back.tres" id="1_rvymn"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_xsxbs"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_xsxbs"]
[ext_resource type="Animation" uid="uid://dk1o3gqhjmuvh" path="res://resource/skill_animation/hero01_long_attack04.tres" id="2_sam6s"] [ext_resource type="Animation" uid="uid://dk1o3gqhjmuvh" path="res://resource/skill_animation/hero01_long_attack04.tres" id="2_sam6s"]
[ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="3_w7h1m"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="3_w7h1m"]
@ -15,7 +16,7 @@ break_level = 3
action = "attack_light" action = "attack_light"
name = "" name = ""
skill_animation = ExtResource("2_sam6s") skill_animation = ExtResource("2_sam6s")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_7tise")]) attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_rvymn"), ExtResource("1_7tise")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([]) sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false free_lock = false
refresh_animation = false refresh_animation = false

@ -1,13 +0,0 @@
[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://bkbuvtya3uk3x"]
[ext_resource type="Shader" path="res://render/shader/effect_skew1.gdshader" id="1_dcuof"]
[ext_resource type="Texture2D" uid="uid://csjm7d1tg6b50" path="res://render/texture/particle/mask/mask6.png" id="3_p44lv"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="4_vjpnf"]
[resource]
render_priority = 0
shader = ExtResource("1_dcuof")
shader_parameter/distortionView = 0.06
shader_parameter/speedView = 0.5
shader_parameter/noise = ExtResource("4_vjpnf")
shader_parameter/tex_mask = ExtResource("3_p44lv")

@ -1,13 +0,0 @@
[gd_resource type="ShaderMaterial" load_steps=5 format=3 uid="uid://dtyosukxpf33d"]
[ext_resource type="Shader" path="res://render/shader/effect_slash.gdshader" id="1_s5fvm"]
[ext_resource type="Texture2D" uid="uid://dd3e7ol8qa5eq" path="res://render/texture/particle/noise/noise2.png" id="2_gu3jv"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="3_p66ui"]
[ext_resource type="Texture2D" uid="uid://cksxjvafx2skm" path="res://render/texture/particle/mask/mask5.png" id="3_r0nln"]
[resource]
render_priority = 0
shader = ExtResource("1_s5fvm")
shader_parameter/tex_main = ExtResource("2_gu3jv")
shader_parameter/tex_noise = ExtResource("3_p66ui")
shader_parameter/tex_mask = ExtResource("3_r0nln")

File diff suppressed because it is too large Load Diff

@ -0,0 +1,22 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://c56sknyl34eas"
path="res://.godot/imported/dash.obj-f50e04222858882752d7c9a7684827d6.mesh"
[deps]
files=["res://.godot/imported/dash.obj-f50e04222858882752d7c9a7684827d6.mesh"]
source_file="res://render/mesh/dash.obj"
dest_files=["res://.godot/imported/dash.obj-f50e04222858882752d7c9a7684827d6.mesh", "res://.godot/imported/dash.obj-f50e04222858882752d7c9a7684827d6.mesh"]
[params]
generate_tangents=true
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
optimize_mesh=true
force_disable_mesh_compression=false

@ -0,0 +1,17 @@
shader_type spatial;
render_mode blend_add,unshaded,depth_test_disabled,cull_disabled;
uniform sampler2D tex_main : source_color;
uniform sampler2D tex_noise : source_color;
uniform sampler2D tex_mask : source_color;
void fragment() {
vec2 uv = clamp(UV,vec2(0.01,0.01),vec2(0.99,0.99));
vec2 uv_noise = uv - 0.5 * vec2(mod(TIME, 2.0) - 1.0, 0);
vec4 col_main = texture(tex_main, uv);
vec4 col_noise = texture(tex_noise, uv_noise);
vec4 col_mask = texture(tex_mask, uv);
vec4 col = col_mask * COLOR * 1.0 + (col_noise + col_main) * COLOR;
ALBEDO = col.rgb;
ALPHA = col_mask.r * COLOR.a;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbwhs56fum5o0"
path="res://.godot/imported/mask7.png-b1230d4b578ec6c4ba31eebc8cdc4efc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://render/texture/particle/mask/mask7.png"
dest_files=["res://.godot/imported/mask7.png-b1230d4b578ec6c4ba31eebc8cdc4efc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://n5eob6sceoxj"
path="res://.godot/imported/mask8.png-c372cdcce0e458be6646c28aa88e47f9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://render/texture/particle/mask/mask8.png"
dest_files=["res://.godot/imported/mask8.png-c372cdcce0e458be6646c28aa88e47f9.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

@ -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.4, 0.7), "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 +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.2, 0.4), "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 +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.4), "times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [2.0, 0.0]

@ -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.4, 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]
@ -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.2, 0.4), "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 +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.4), "times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [2.0, 0.0]

@ -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.4, 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]
@ -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.2, 0.4), "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,10 +60,10 @@ 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.4), "times": PackedFloat32Array(0.1, 0.2),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [4.0, 0.0]
} }
tracks/5/type = "method" tracks/5/type = "method"
tracks/5/imported = false tracks/5/imported = false

@ -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.4, 0.7), "times": PackedFloat32Array(0, 0.8, 1),
"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.2, 0.4), "times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [-0.5, -1.0] "values": [-0.5, -1.0]
@ -60,10 +60,10 @@ 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.4), "times": PackedFloat32Array(0.1, 0.3),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [4.0, 0.0]
} }
tracks/5/type = "method" tracks/5/type = "method"
tracks/5/imported = false tracks/5/imported = false
@ -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.3),
"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.2),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"values": [{ "values": [{
"args": [], "args": [],

@ -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.8, 1), "times": PackedFloat32Array(0, 0.9, 1.1),
"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.3, 0.7), "times": PackedFloat32Array(0.3, 0.6),
"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.2, 0.7), "times": PackedFloat32Array(0.2, 0.6),
"transitions": PackedFloat32Array(1, 1), "transitions": PackedFloat32Array(1, 1),
"update": 1, "update": 1,
"values": [2.0, 0.0] "values": [2.0, 0.0]

@ -72,11 +72,14 @@ 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.5), "times": PackedFloat32Array(0.3, 0.5),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1, 1),
"values": [{ "values": [{
"args": [], "args": [],
"method": &"attack" "method": &"attack"
}, {
"args": [],
"method": &"attack"
}] }]
} }
tracks/6/type = "method" tracks/6/type = "method"

@ -101,3 +101,17 @@ tracks/6/keys = {
"update": 1, "update": 1,
"values": [0, 1, 2, 3, 4] "values": [0, 1, 2, 3, 4]
} }
tracks/7/type = "method"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("Effect")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.1),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"cast_attack_particle"
}]
}

@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://8rcvw1vnjcf7"] [gd_scene load_steps=16 format=3 uid="uid://8rcvw1vnjcf7"]
[ext_resource type="Script" path="res://script/character/character.gd" id="1_tonbs"] [ext_resource type="Script" path="res://script/character/character.gd" id="1_tonbs"]
[ext_resource type="Script" path="res://script/character/status.gd" id="2_txdip"] [ext_resource type="Script" path="res://script/character/status.gd" id="2_txdip"]
@ -6,7 +6,7 @@
[ext_resource type="Script" path="res://script/character/move.gd" id="4_66r53"] [ext_resource type="Script" path="res://script/character/move.gd" id="4_66r53"]
[ext_resource type="Texture2D" uid="uid://daqn6aqfp1hva" path="res://resource/animation/character/hero01_long_attack.png" id="4_fcd8a"] [ext_resource type="Texture2D" uid="uid://daqn6aqfp1hva" path="res://resource/animation/character/hero01_long_attack.png" id="4_fcd8a"]
[ext_resource type="Script" path="res://script/character/view.gd" id="4_vijjv"] [ext_resource type="Script" path="res://script/character/view.gd" id="4_vijjv"]
[ext_resource type="SpriteFrames" uid="uid://cwe8setoi6bd" path="res://resource/animation/character/hero01_move.aseprite" id="5_2ikpt"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="5_oukeb"]
[ext_resource type="Script" path="res://script/character/skill.gd" id="6_h4xqy"] [ext_resource type="Script" path="res://script/character/skill.gd" id="6_h4xqy"]
[ext_resource type="AnimationLibrary" uid="uid://croik07a1qko5" path="res://resource/skill_animation_library/animation_library.tres" id="6_pakq5"] [ext_resource type="AnimationLibrary" uid="uid://croik07a1qko5" path="res://resource/skill_animation_library/animation_library.tres" id="6_pakq5"]
[ext_resource type="Script" path="res://script/character/battle.gd" id="8_w84sf"] [ext_resource type="Script" path="res://script/character/battle.gd" id="8_w84sf"]
@ -23,6 +23,11 @@ shader_parameter/deformation_dir = Vector2(0, 0)
shader_parameter/deformation_rate = 0.0 shader_parameter/deformation_rate = 0.0
shader_parameter/tex = ExtResource("4_fcd8a") shader_parameter/tex = ExtResource("4_fcd8a")
[sub_resource type="Curve" id="Curve_e7j3f"]
max_value = 6.0
_data = [Vector2(0, 6), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 2
[node name="Character" type="CharacterBody3D"] [node name="Character" type="CharacterBody3D"]
collision_layer = 512 collision_layer = 512
script = ExtResource("1_tonbs") script = ExtResource("1_tonbs")
@ -49,8 +54,8 @@ pixel_size = 0.02
double_sided = false double_sided = false
alpha_cut = 2 alpha_cut = 2
texture_filter = 0 texture_filter = 0
sprite_frames = ExtResource("5_2ikpt") sprite_frames = ExtResource("5_oukeb")
animation = &"idle_loop" animation = &"fist_attack05"
script = ExtResource("4_vijjv") script = ExtResource("4_vijjv")
[node name="Move" type="Node3D" parent="."] [node name="Move" type="Node3D" parent="."]
@ -71,6 +76,7 @@ script = ExtResource("9_jlnhy")
[node name="Battle" type="Node3D" parent="."] [node name="Battle" type="Node3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
script = ExtResource("8_w84sf") script = ExtResource("8_w84sf")
hit_back_limit_curve = SubResource("Curve_e7j3f")
[node name="Effect" type="Node3D" parent="."] [node name="Effect" type="Node3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true

@ -1,12 +1,10 @@
[gd_scene load_steps=10 format=3 uid="uid://ba7pkdaq5y8nl"] [gd_scene load_steps=8 format=3 uid="uid://ba7pkdaq5y8nl"]
[ext_resource type="PackedScene" uid="uid://8rcvw1vnjcf7" path="res://scene/character/character.tscn" id="1_pot50"] [ext_resource type="PackedScene" uid="uid://8rcvw1vnjcf7" path="res://scene/character/character.tscn" id="1_pot50"]
[ext_resource type="Script" path="res://script/character/player/combo.gd" id="2_i44w8"] [ext_resource type="Script" path="res://script/character/player/combo.gd" id="2_i44w8"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="2_kqo4a"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="2_kqo4a"]
[ext_resource type="AnimationLibrary" uid="uid://croik07a1qko5" path="res://resource/skill_animation_library/animation_library.tres" id="3_io1si"]
[ext_resource type="Script" path="res://script/character/player/player_input.gd" id="3_n07go"] [ext_resource type="Script" path="res://script/character/player/player_input.gd" id="3_n07go"]
[ext_resource type="Script" path="res://script/character/player/core.gd" id="3_rxdse"] [ext_resource type="Script" path="res://script/character/player/core.gd" id="3_rxdse"]
[ext_resource type="Script" path="res://script/character/skill.gd" id="4_j6kp0"]
[ext_resource type="Script" path="res://script/character/player/player_info.gd" id="4_mi1lk"] [ext_resource type="Script" path="res://script/character/player/player_info.gd" id="4_mi1lk"]
[ext_resource type="Script" path="res://script/character/player/player_action.gd" id="5_gum7v"] [ext_resource type="Script" path="res://script/character/player/player_action.gd" id="5_gum7v"]
@ -18,13 +16,7 @@ speed_up_rate = 0.0
[node name="View" parent="." index="2"] [node name="View" parent="." index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.693056, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.693056, 0)
sprite_frames = ExtResource("2_kqo4a") sprite_frames = ExtResource("2_kqo4a")
animation = &"fist_attack05" animation = &"fist_attack01"
[node name="Skill" type="AnimationPlayer" parent="Skill" index="0"]
libraries = {
"animation_library": ExtResource("3_io1si")
}
script = ExtResource("4_j6kp0")
[node name="Combo" type="Node3D" parent="." index="8"] [node name="Combo" type="Node3D" parent="." index="8"]
unique_name_in_owner = true unique_name_in_owner = true
@ -44,5 +36,3 @@ script = ExtResource("5_gum7v")
[node name="PlayerInfo" type="Node3D" parent="." index="12"] [node name="PlayerInfo" type="Node3D" parent="." index="12"]
script = ExtResource("4_mi1lk") script = ExtResource("4_mi1lk")
[connection signal="animation_finished" from="Skill/Skill" to="Skill/Skill" method="_on_animation_finished"]

@ -0,0 +1,58 @@
[gd_scene load_steps=13 format=3 uid="uid://cxopc3y11lwg1"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_2qqsc"]
[ext_resource type="Shader" path="res://render/shader/effect_dash.gdshader" id="2_b7c5p"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="3_srlkl"]
[ext_resource type="Texture2D" uid="uid://n5eob6sceoxj" path="res://render/texture/particle/mask/mask8.png" id="4_stgto"]
[ext_resource type="Texture2D" uid="uid://dd3e7ol8qa5eq" path="res://render/texture/particle/noise/noise2.png" id="5_yrr1g"]
[ext_resource type="ArrayMesh" uid="uid://c56sknyl34eas" path="res://render/mesh/dash.obj" id="6_5h1mv"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hupcc"]
render_priority = 0
shader = ExtResource("2_b7c5p")
shader_parameter/tex_main = ExtResource("3_srlkl")
shader_parameter/tex_noise = ExtResource("5_yrr1g")
shader_parameter/tex_mask = ExtResource("4_stgto")
[sub_resource type="Curve" id="Curve_xch7k"]
_data = [Vector2(0, 0.428571), 0.0, 0.0, 0, 0, Vector2(0.0669643, 0.516483), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
point_count = 3
[sub_resource type="CurveTexture" id="CurveTexture_gfymj"]
curve = SubResource("Curve_xch7k")
[sub_resource type="Gradient" id="Gradient_ny7rk"]
offsets = PackedFloat32Array(0, 0.346939)
colors = PackedColorArray(1, 0.992157, 1, 1, 0.54902, 0.905882, 1, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_acoej"]
gradient = SubResource("Gradient_ny7rk")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_f5m0v"]
particle_flag_rotate_y = true
emission_shape_offset = Vector3(0.5, 0, 0)
angle_min = 90.0
angle_max = 90.0
gravity = Vector3(0, 0, 0)
scale_min = 2.0
scale_max = 2.0
color_ramp = SubResource("GradientTexture1D_acoej")
alpha_curve = SubResource("CurveTexture_gfymj")
[node name="Particle" type="Node3D"]
script = ExtResource("1_2qqsc")
[node name="Dash" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_hupcc")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = SubResource("ParticleProcessMaterial_f5m0v")
draw_pass_1 = ExtResource("6_5h1mv")

@ -1,41 +0,0 @@
[gd_scene load_steps=6 format=3 uid="uid://b2h4pcmlii7dg"]
[ext_resource type="Material" uid="uid://dtyosukxpf33d" path="res://render/material/effect_slash.tres" id="1_6c80n"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_fx8ev"]
[ext_resource type="Material" uid="uid://dubkkji6sm8on" path="res://render/process_material/slash_normal.tres" id="2_eq67i"]
[ext_resource type="ArrayMesh" uid="uid://dq207a0waxk0j" path="res://render/mesh/slash1.obj" id="3_idjnm"]
[ext_resource type="Material" uid="uid://bkbuvtya3uk3x" path="res://render/material/effect_skew1.tres" id="5_qg8g8"]
[node name="Particle" type="Node3D"]
script = ExtResource("1_fx8ev")
[node name="Slash" type="GPUParticles3D" parent="."]
layers = 512
material_override = ExtResource("1_6c80n")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = ExtResource("2_eq67i")
draw_pass_1 = ExtResource("3_idjnm")
[node name="Skew1" type="GPUParticles3D" parent="."]
transform = Transform3D(0.99, 0, 0, 0, 0.99, 0, 0, 0, 0.99, 0, 0, 0)
layers = 512
material_override = ExtResource("5_qg8g8")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = ExtResource("2_eq67i")
draw_pass_1 = ExtResource("3_idjnm")

@ -0,0 +1,59 @@
[gd_scene load_steps=11 format=3 uid="uid://b2h4pcmlii7dg"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_fx8ev"]
[ext_resource type="Shader" path="res://render/shader/effect_slash.gdshader" id="2_a0jwb"]
[ext_resource type="Material" uid="uid://dubkkji6sm8on" path="res://render/process_material/slash_normal.tres" id="2_eq67i"]
[ext_resource type="Texture2D" uid="uid://c4byf37he3mjt" path="res://render/texture/particle/noise/noise1.png" id="3_fvsr3"]
[ext_resource type="ArrayMesh" uid="uid://dq207a0waxk0j" path="res://render/mesh/slash1.obj" id="3_idjnm"]
[ext_resource type="Texture2D" uid="uid://csjm7d1tg6b50" path="res://render/texture/particle/mask/mask6.png" id="4_wvohg"]
[ext_resource type="Texture2D" uid="uid://dd3e7ol8qa5eq" path="res://render/texture/particle/noise/noise2.png" id="5_ymh7m"]
[ext_resource type="Shader" path="res://render/shader/effect_skew1.gdshader" id="8_gng47"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hupcc"]
render_priority = 0
shader = ExtResource("2_a0jwb")
shader_parameter/tex_main = ExtResource("3_fvsr3")
shader_parameter/tex_noise = ExtResource("5_ymh7m")
shader_parameter/tex_mask = ExtResource("4_wvohg")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ntvqm"]
render_priority = 0
shader = ExtResource("8_gng47")
shader_parameter/distortionView = 0.03
shader_parameter/speedView = 0.5
shader_parameter/noise = ExtResource("3_fvsr3")
shader_parameter/tex_mask = ExtResource("4_wvohg")
[node name="Particle" type="Node3D"]
script = ExtResource("1_fx8ev")
[node name="Slash" type="GPUParticles3D" parent="."]
layers = 512
material_override = SubResource("ShaderMaterial_hupcc")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = ExtResource("2_eq67i")
draw_pass_1 = ExtResource("3_idjnm")
[node name="Skew1" type="GPUParticles3D" parent="."]
transform = Transform3D(0.99, 0, 0, 0, 0.99, 0, 0, 0, 0.99, 0, 0, 0)
layers = 512
material_override = SubResource("ShaderMaterial_ntvqm")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = ExtResource("2_eq67i")
draw_pass_1 = ExtResource("3_idjnm")

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://cswp0rj0gep6c"] [gd_scene load_steps=2 format=3 uid="uid://cswp0rj0gep6c"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_qyqjx"] [ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_qyqjx"]
[node name="Particle" instance=ExtResource("1_qyqjx")] [node name="Particle" instance=ExtResource("1_qyqjx")]
transform = Transform3D(1.5, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 0, 0) transform = Transform3D(1.5, 0, 0, 0, 1, 0, 0, 0, 1.2, 0, 0, 0)

@ -1,5 +1,9 @@
[gd_scene load_steps=2 format=3 uid="uid://dfdt6u2dbig3e"] [gd_scene load_steps=2 format=3 uid="uid://dcsls0bn14i04"]
[ext_resource type="PackedScene" uid="uid://me2heq5v1c5q" path="res://scene/effect/particle/particle_dash.tscn" id="1_1r02f"] [ext_resource type="PackedScene" uid="uid://cxopc3y11lwg1" path="res://scene/effect/particle/_particle_dash1.tscn" id="1_eappe"]
[node name="Particle" instance=ExtResource("1_1r02f")] [node name="Particle" instance=ExtResource("1_eappe")]
rotation_order = 4
[node name="Dash" parent="." index="0"]
transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, 0, 0, 0)

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://c101pt8hqvmbk"] [gd_scene load_steps=2 format=3 uid="uid://c101pt8hqvmbk"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_glj7d"] [ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_glj7d"]
[node name="Particle" instance=ExtResource("1_glj7d")] [node name="Particle" instance=ExtResource("1_glj7d")]
transform = Transform3D(1, 0, 0, 0, 0.707107, -0.353553, 0, 0.707107, 0.353553, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 0.707107, -0.353553, 0, 0.707107, 0.353553, 0, 0, 0)

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://ns84g1jmmm56"] [gd_scene load_steps=2 format=3 uid="uid://ns84g1jmmm56"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_hciuf"] [ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_hciuf"]
[node name="Particle" instance=ExtResource("1_hciuf")] [node name="Particle" instance=ExtResource("1_hciuf")]
transform = Transform3D(1, 0, 0, 0, -0.707107, 0.353553, 0, -0.707107, -0.353553, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, -0.707107, 0.353553, 0, -0.707107, -0.353553, 0, 0, 0)

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bn2ktr7iynt5"] [gd_scene load_steps=2 format=3 uid="uid://bn2ktr7iynt5"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_p44mg"] [ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_p44mg"]
[node name="Particle" instance=ExtResource("1_p44mg")] [node name="Particle" instance=ExtResource("1_p44mg")]
transform = Transform3D(1, 0, 0, 0, -0.707107, 0.353553, 0, -0.707107, -0.353553, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, -0.707107, 0.353553, 0, -0.707107, -0.353553, 0, 0, 0)

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dj04l4oge27f0"] [gd_scene load_steps=2 format=3 uid="uid://dj04l4oge27f0"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_078jk"] [ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_078jk"]
[node name="Particle" instance=ExtResource("1_078jk")] [node name="Particle" instance=ExtResource("1_078jk")]
transform = Transform3D(1, 0, 0, 0, 0.5, 0.433012, 0, -0.866026, 0.25, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 0.5, 0.433012, 0, -0.866026, 0.25, 0, 0, 0)

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://c5srkd0js0bwc"] [gd_scene load_steps=2 format=3 uid="uid://c5srkd0js0bwc"]
[ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash.tscn" id="1_5b0hk"] [ext_resource type="PackedScene" uid="uid://b2h4pcmlii7dg" path="res://scene/effect/particle/_particle_slash1.tscn" id="1_5b0hk"]
[node name="Particle" instance=ExtResource("1_5b0hk")] [node name="Particle" instance=ExtResource("1_5b0hk")]
transform = Transform3D(1.2, 0, 0, 0, 0.707107, -0.353553, 0, 0.707107, 0.353553, 0, 0, 0) transform = Transform3D(1.2, 0, 0, 0, 0.707107, -0.353553, 0, 0.707107, 0.353553, 0, 0, 0)

@ -0,0 +1,5 @@
[gd_scene load_steps=2 format=3 uid="uid://cafvtgn54mpkk"]
[ext_resource type="PackedScene" uid="uid://cxopc3y11lwg1" path="res://scene/effect/particle/_particle_dash1.tscn" id="1_4w7de"]
[node name="Particle" instance=ExtResource("1_4w7de")]

@ -1,41 +0,0 @@
[gd_scene load_steps=6 format=3 uid="uid://me2heq5v1c5q"]
[ext_resource type="Script" path="res://script/effect/particle.gd" id="1_5usbn"]
[ext_resource type="Material" uid="uid://dtyosukxpf33d" path="res://render/material/effect_slash.tres" id="2_w7v70"]
[ext_resource type="Material" uid="uid://dubkkji6sm8on" path="res://render/process_material/slash_normal.tres" id="3_uy3s2"]
[ext_resource type="ArrayMesh" uid="uid://dq207a0waxk0j" path="res://render/mesh/slash1.obj" id="4_1ed4g"]
[ext_resource type="Material" uid="uid://bkbuvtya3uk3x" path="res://render/material/effect_skew1.tres" id="5_uwxv5"]
[node name="Particle" type="Node3D"]
script = ExtResource("1_5usbn")
[node name="Slash" type="GPUParticles3D" parent="."]
layers = 512
material_override = ExtResource("2_w7v70")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = ExtResource("3_uy3s2")
draw_pass_1 = ExtResource("4_1ed4g")
[node name="Skew1" type="GPUParticles3D" parent="."]
transform = Transform3D(0.99, 0, 0, 0, 0.99, 0, 0, 0, 0.99, 0, 0, 0)
layers = 512
material_override = ExtResource("5_uwxv5")
cast_shadow = 0
gi_mode = 0
emitting = false
amount = 1
lifetime = 0.25
one_shot = true
speed_scale = 1.5
fixed_fps = 60
local_coords = true
process_material = ExtResource("3_uy3s2")
draw_pass_1 = ExtResource("4_1ed4g")

@ -74,9 +74,6 @@ script = ExtResource("4_oonkb")
[node name="EffectManager" type="Node3D" parent="GameManager/Stage/SubViewport"] [node name="EffectManager" type="Node3D" parent="GameManager/Stage/SubViewport"]
script = ExtResource("8_0jv87") script = ExtResource("8_0jv87")
[node name="CSGBox3D" type="CSGBox3D" parent="GameManager/Stage/SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.36529, 0)
[node name="UIManager" type="Node3D" parent="GameManager"] [node name="UIManager" type="Node3D" parent="GameManager"]
process_mode = 3 process_mode = 3
script = ExtResource("7_wa6ef") script = ExtResource("7_wa6ef")
@ -91,7 +88,6 @@ visible = false
visible = false visible = false
[node name="ProfileScreen" parent="GameManager/UIManager" instance=ExtResource("6_u1fxn")] [node name="ProfileScreen" parent="GameManager/UIManager" instance=ExtResource("6_u1fxn")]
visible = false
[node name="InputManager" type="Node3D" parent="GameManager"] [node name="InputManager" type="Node3D" parent="GameManager"]
process_mode = 3 process_mode = 3

@ -1,6 +1,8 @@
extends Node3D extends Node3D
class_name Battle class_name Battle
@export var hit_back_limit_curve : Curve
@onready var character = (get_owner() as Character) @onready var character = (get_owner() as Character)
@onready var status = (%Status as Status) @onready var status = (%Status as Status)
@onready var skill = (%Skill as Skill) @onready var skill = (%Skill as Skill)
@ -146,6 +148,7 @@ func settle(hit_info:HitInfo) -> bool:
#浮空 击落 强制位移 #浮空 击落 强制位移
var hit_up_speed = attack.hit_up_speed var hit_up_speed = attack.hit_up_speed
var hit_back_speed = attack.hit_back_speed
if is_floating: if is_floating:
character_to.add_buff("stagger",-1) character_to.add_buff("stagger",-1)
character_to.add_buff("floating",-1) character_to.add_buff("floating",-1)
@ -156,7 +159,11 @@ func settle(hit_info:HitInfo) -> bool:
hit_up_speed = 0 hit_up_speed = 0
if is_hit_down: if is_hit_down:
character_to.add_buff("hit_down",-1) character_to.add_buff("hit_down",-1)
character_to.set_hit_move(hit_info.dir,attack.hit_back_speed,hit_up_speed) if hit_back_limit_curve:
var dir = character_from.pos2D() - character_to.pos2D()
var dist = clamp(dir.length(),0,1)
hit_back_speed = max(hit_back_limit_curve.sample(dist),hit_back_speed)
character_to.set_hit_move(hit_info.dir,hit_back_speed,hit_up_speed)
character_to.add_buff("hit_back",attack.hit_back_duration) character_to.add_buff("hit_back",attack.hit_back_duration)
character_to.add_buff("hit_up",attack.hit_up_duration) character_to.add_buff("hit_up",attack.hit_up_duration)
@ -186,7 +193,7 @@ func settle(hit_info:HitInfo) -> bool:
elif is_break_stun:character_to.show_hit_text("Stun") elif is_break_stun:character_to.show_hit_text("Stun")
elif not is_break_skill:character_to.show_hit_text("Block") elif not is_break_skill:character_to.show_hit_text("Block")
return !is_break_skill return true
func add_mp(value:float): func add_mp(value:float):
var mp = character.get_status("mp") var mp = character.get_status("mp")

@ -3,7 +3,6 @@ extends Node3D
class_name UIManager class_name UIManager
@onready var ui_map = { @onready var ui_map = {
"profile" : $ProfileScreen,
"hud" : $HudScreen, "hud" : $HudScreen,
"status" : $StatusScreen, "status" : $StatusScreen,
"menu" : $MenuScreen "menu" : $MenuScreen

Loading…
Cancel
Save