diff --git a/render/process_material/hit_normal.tres b/render/process_material/hit_normal.tres deleted file mode 100644 index 4e9e32c..0000000 --- a/render/process_material/hit_normal.tres +++ /dev/null @@ -1,22 +0,0 @@ -[gd_resource type="ParticleProcessMaterial" load_steps=5 format=3 uid="uid://bns2vfyf2qy6u"] - -[sub_resource type="Gradient" id="Gradient_fjosh"] -offsets = PackedFloat32Array(0, 0.0894942, 0.684825, 1) -colors = PackedColorArray(0.278431, 0.65098, 1, 0, 0.278431, 0.65098, 1, 1, 0.278431, 0.65098, 1, 0.941176, 0.278431, 0.65098, 1, 0) - -[sub_resource type="GradientTexture1D" id="GradientTexture1D_cypke"] -gradient = SubResource("Gradient_fjosh") - -[sub_resource type="Curve" id="Curve_igjlk"] -min_value = 2.0 -max_value = 4.0 -_data = [Vector2(0, 4), 0.0, 0.0, 0, 0, Vector2(1, 2), 0.0, 0.0, 0, 0] -point_count = 2 - -[sub_resource type="CurveTexture" id="CurveTexture_5xayb"] -curve = SubResource("Curve_igjlk") - -[resource] -gravity = Vector3(0, 0, 0) -scale_curve = SubResource("CurveTexture_5xayb") -color_ramp = SubResource("GradientTexture1D_cypke") diff --git a/render/shader/post_process.gdshader b/render/shader/post_process.gdshader index 23ce410..771a9b3 100644 --- a/render/shader/post_process.gdshader +++ b/render/shader/post_process.gdshader @@ -2,9 +2,13 @@ shader_type canvas_item; uniform float shift_strength : hint_range(0.0, 1.0); uniform float blur_strength : hint_range(0.0, 1.0); +uniform float speed_line_strength : hint_range(0.0, 1.0); uniform float vignette_alpha : hint_range(0.0, 1.0); uniform float vignette_inner : hint_range(0.0, 1.0) = 0.5; uniform float vignette_outer : hint_range(0.0, 2.0) = 1.0; +uniform sampler2D speed_line_tex1; +uniform sampler2D speed_line_tex2; +uniform sampler2D speed_line_tex3; void fragment() { vec3 color = vec3(0); @@ -30,5 +34,21 @@ void fragment() { float q = 1.0-(1.0-sqrt(x*x+y*y)/vignette_outer)/(1.0-vignette_inner); q = clamp(q*vignette_alpha,0.0,1.1); color *= (1.0-q); + + //速度线 + if(speed_line_strength>0.0){ + float speed_line_color = 0.0; + float select_value = mod(TIME/10.0, 3.0); + if(select_value<1.0){ + speed_line_color = texture(speed_line_tex1, UV).r; + }else if(select_value<2.0){ + speed_line_color = texture(speed_line_tex2, UV).r; + }else{ + speed_line_color = texture(speed_line_tex3, UV).r; + } + speed_line_color *= speed_line_strength; + color *= (1.0-speed_line_color); + } + COLOR.rgb = color; } \ No newline at end of file diff --git a/render/texture/post_process/speed_line1.png b/render/texture/post_process/speed_line1.png new file mode 100644 index 0000000..b161e92 Binary files /dev/null and b/render/texture/post_process/speed_line1.png differ diff --git a/render/texture/post_process/speed_line1.png.import b/render/texture/post_process/speed_line1.png.import new file mode 100644 index 0000000..990001a --- /dev/null +++ b/render/texture/post_process/speed_line1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvv3ctakvo8oc" +path="res://.godot/imported/speed_line1.png-b08e6bbdf18e6d0744fc031a0a6a607f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://render/texture/post_process/speed_line1.png" +dest_files=["res://.godot/imported/speed_line1.png-b08e6bbdf18e6d0744fc031a0a6a607f.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 diff --git a/render/texture/post_process/speed_line2.png b/render/texture/post_process/speed_line2.png new file mode 100644 index 0000000..5f638eb Binary files /dev/null and b/render/texture/post_process/speed_line2.png differ diff --git a/render/texture/post_process/speed_line2.png.import b/render/texture/post_process/speed_line2.png.import new file mode 100644 index 0000000..f12f626 --- /dev/null +++ b/render/texture/post_process/speed_line2.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2w4aq7twu2p4" +path="res://.godot/imported/speed_line2.png-0599b09acf29c9ac37607b52f9f9cb8c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://render/texture/post_process/speed_line2.png" +dest_files=["res://.godot/imported/speed_line2.png-0599b09acf29c9ac37607b52f9f9cb8c.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 diff --git a/render/texture/post_process/speed_line3.png b/render/texture/post_process/speed_line3.png new file mode 100644 index 0000000..cdaeac5 Binary files /dev/null and b/render/texture/post_process/speed_line3.png differ diff --git a/render/texture/post_process/speed_line3.png.import b/render/texture/post_process/speed_line3.png.import new file mode 100644 index 0000000..030f8d1 --- /dev/null +++ b/render/texture/post_process/speed_line3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://xxcnffhhhbwf" +path="res://.godot/imported/speed_line3.png-113148b8ca5543bf810f2d63e61cfe34.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://render/texture/post_process/speed_line3.png" +dest_files=["res://.godot/imported/speed_line3.png-113148b8ca5543bf810f2d63e61cfe34.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 diff --git a/resource/skill_animation/hero01_fist_attack05.tres b/resource/skill_animation/hero01_fist_attack05.tres index c152662..5dd5892 100644 --- a/resource/skill_animation/hero01_fist_attack05.tres +++ b/resource/skill_animation/hero01_fist_attack05.tres @@ -105,3 +105,26 @@ tracks/7/keys = { "update": 1, "values": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] } +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, 0.1, 0.2, 0.3), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"values": [{ +"args": [], +"method": &"cast_after_image" +}, { +"args": [], +"method": &"cast_after_image" +}, { +"args": [], +"method": &"cast_after_image" +}, { +"args": [], +"method": &"cast_after_image" +}] +} diff --git a/scene/character/player.tscn b/scene/character/player.tscn index 34b5653..9cd0bd1 100644 --- a/scene/character/player.tscn +++ b/scene/character/player.tscn @@ -1,19 +1,30 @@ -[gd_scene load_steps=8 format=3 uid="uid://ba7pkdaq5y8nl"] +[gd_scene load_steps=10 format=3 uid="uid://ba7pkdaq5y8nl"] [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="SpriteFrames" uid="uid://cajgs8smbkjan" path="res://resource/animation/character/hero01_fist_skill01.aseprite" id="2_rubkv"] +[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/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_action.gd" id="5_gum7v"] [node name="Character" instance=ExtResource("1_pot50")] +[node name="Status" parent="." index="1"] +speed_up_rate = 0.0 + [node name="View" parent="." index="2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.693056, 0) -sprite_frames = ExtResource("2_rubkv") -animation = &"fist_air_skill01" +sprite_frames = ExtResource("2_kqo4a") +animation = &"fist_attack05" + +[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"] unique_name_in_owner = true @@ -33,3 +44,5 @@ script = ExtResource("5_gum7v") [node name="PlayerInfo" type="Node3D" parent="." index="12"] script = ExtResource("4_mi1lk") + +[connection signal="animation_finished" from="Skill/Skill" to="Skill/Skill" method="_on_animation_finished"] diff --git a/scene/launcher.tscn b/scene/launcher.tscn index a94fcbd..5774484 100644 --- a/scene/launcher.tscn +++ b/scene/launcher.tscn @@ -1,11 +1,14 @@ -[gd_scene load_steps=17 format=3 uid="uid://eoydwrunmm5n"] +[gd_scene load_steps=20 format=3 uid="uid://eoydwrunmm5n"] [ext_resource type="Script" path="res://script/manager/game_manager.gd" id="1_q2t80"] [ext_resource type="Script" path="res://script/manager/level_manager.gd" id="2_ewhkj"] [ext_resource type="Shader" path="res://render/shader/post_process.gdshader" id="2_iwyj8"] [ext_resource type="Script" path="res://script/_global/stage.gd" id="2_lxgiw"] +[ext_resource type="Texture2D" uid="uid://cvv3ctakvo8oc" path="res://render/texture/post_process/speed_line1.png" id="3_7ve12"] +[ext_resource type="Texture2D" uid="uid://b2w4aq7twu2p4" path="res://render/texture/post_process/speed_line2.png" id="4_l4kqm"] [ext_resource type="Script" path="res://script/manager/character_manager.gd" id="4_oonkb"] [ext_resource type="Script" path="res://script/manager/camera_manager.gd" id="4_yqiun"] +[ext_resource type="Texture2D" uid="uid://xxcnffhhhbwf" path="res://render/texture/post_process/speed_line3.png" id="5_id75t"] [ext_resource type="Script" path="res://script/editor_tool/editor_tool.gd" id="5_n3qhi"] [ext_resource type="PackedScene" uid="uid://cc525u8auypjf" path="res://scene/ui/profile_screen.tscn" id="6_u1fxn"] [ext_resource type="PackedScene" uid="uid://126wph4owvoy" path="res://scene/ui/hud_screen.tscn" id="7_gx646"] @@ -19,9 +22,13 @@ shader = ExtResource("2_iwyj8") shader_parameter/shift_strength = 0.0 shader_parameter/blur_strength = 0.0 +shader_parameter/speed_line_strength = 0.0 shader_parameter/vignette_alpha = 0.347 shader_parameter/vignette_inner = 0.633 shader_parameter/vignette_outer = 1.339 +shader_parameter/speed_line_tex1 = ExtResource("3_7ve12") +shader_parameter/speed_line_tex2 = ExtResource("4_l4kqm") +shader_parameter/speed_line_tex3 = ExtResource("5_id75t") [sub_resource type="Curve" id="Curve_f8hvs"] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(0.501961, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] diff --git a/script/_global/enum.gd b/script/_global/enum.gd index 4ef4f07..0482aac 100644 --- a/script/_global/enum.gd +++ b/script/_global/enum.gd @@ -13,4 +13,4 @@ enum EStance { } enum EBreakLevel {None, Cancel, Jump, Break, Walk} #不可打断 取消技打断 跳跃打断 连招打断 行走打断 enum ECoreType {Free ,Lock, Passive} -enum EGlobalEffect {CameraSize,CameraShake,ColorShift,Blur} +enum EGlobalEffect {CameraSize,CameraShake,ColorShift,Blur,SpeedLine} diff --git a/script/manager/camera_manager.gd b/script/manager/camera_manager.gd index 3b74799..bd3ea1c 100644 --- a/script/manager/camera_manager.gd +++ b/script/manager/camera_manager.gd @@ -57,6 +57,7 @@ func update_global_effect(delta): Enum.EGlobalEffect.CameraShake: shake_offset_x = (sin(rate * PI * 10) - 0.5)*0.04*value Enum.EGlobalEffect.ColorShift:Global.view_mgr.set_post_processing("shift_strength",value) Enum.EGlobalEffect.Blur:Global.view_mgr.set_post_processing("blur_strength",value) + Enum.EGlobalEffect.SpeedLine:Global.view_mgr.set_post_processing("speed_line_strength",value) for global_effect : GlobalEffect in remove_list: global_effect_list.erase(global_effect) @@ -144,22 +145,5 @@ func effect(pause_time): add_global_effect(Enum.EGlobalEffect.CameraSize,effect_time,0.4 * rate) add_global_effect(Enum.EGlobalEffect.ColorShift,effect_time,0.8 * rate) add_global_effect(Enum.EGlobalEffect.Blur,effect_time,0.8 * rate) - - -func effect_normal(): - add_global_effect(Enum.EGlobalEffect.CameraShake,0.2,0.2) - add_global_effect(Enum.EGlobalEffect.CameraSize,0.2,0.02) - add_global_effect(Enum.EGlobalEffect.ColorShift,0.2,0.2) - add_global_effect(Enum.EGlobalEffect.Blur,0.2,0.1) - -func effect_mid(): - add_global_effect(Enum.EGlobalEffect.CameraShake,0.3,0.4) - add_global_effect(Enum.EGlobalEffect.CameraSize,0.3,0.2) - add_global_effect(Enum.EGlobalEffect.ColorShift,0.3,0.4) - add_global_effect(Enum.EGlobalEffect.Blur,0.3,0.4) + #add_global_effect(Enum.EGlobalEffect.SpeedLine,effect_time,0.2* rate) -func effect_strong(): - add_global_effect(Enum.EGlobalEffect.CameraShake,0.4,0.8) - add_global_effect(Enum.EGlobalEffect.CameraSize,0.4,0.4) - add_global_effect(Enum.EGlobalEffect.ColorShift,0.4,0.8) - add_global_effect(Enum.EGlobalEffect.Blur,0.4,0.8)