feat: added running

This commit is contained in:
Sara 2024-12-04 16:15:40 +01:00
parent 95375eae4a
commit 32df02855b
25 changed files with 2170 additions and 71 deletions

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=29 format=3 uid="uid://1kr3qqan3trk"]
[gd_scene load_steps=39 format=3 uid="uid://1kr3qqan3trk"]
[ext_resource type="PackedScene" uid="uid://vub54xgk5n0h" path="res://models/character.glb" id="1_mi4co"]
@ -17,9 +17,33 @@ animation = &"Aim"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8rbkq"]
animation = &"Aim_Fire"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ugv1e"]
animation = &"RESET"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ds004"]
animation = &"RESET"
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_axx41"]
animation = &"Run_forward"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_aunq0"]
filter_enabled = true
filters = ["skeleton_character/Skeleton3D:Foot.L", "skeleton_character/Skeleton3D:Foot.R", "skeleton_character/Skeleton3D:IKTarget.Foot.L", "skeleton_character/Skeleton3D:IKTarget.Foot.R", "skeleton_character/Skeleton3D:Neck", "skeleton_character/Skeleton3D:PoleTarget.Foot.L", "skeleton_character/Skeleton3D:PoleTarget.Foot.R", "skeleton_character/Skeleton3D:hip", "skeleton_character/Skeleton3D:lowerleg.L", "skeleton_character/Skeleton3D:lowerleg.R", "skeleton_character/Skeleton3D:root", "skeleton_character/Skeleton3D:spine.001", "skeleton_character/Skeleton3D:spine.002", "skeleton_character/Skeleton3D:spine.003", "skeleton_character/Skeleton3D:upperleg.L", "skeleton_character/Skeleton3D:upperleg.R"]
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_hmklb"]
graph_offset = Vector2(-813.273, 105.409)
nodes/Rest/node = SubResource("AnimationNodeAnimation_ds004")
nodes/Rest/position = Vector2(-160, 160)
nodes/Run/node = SubResource("AnimationNodeAnimation_axx41")
nodes/Run/position = Vector2(-160, 380)
nodes/Speed/node = SubResource("AnimationNodeBlend2_aunq0")
nodes/Speed/position = Vector2(80, 140)
nodes/output/position = Vector2(320, 140)
node_connections = [&"Speed", 0, &"Rest", &"Speed", 1, &"Run", &"output", 0, &"Speed"]
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4hmb8"]
filter_enabled = true
filters = ["Character/Skeleton3D:Foot.L", "Character/Skeleton3D:Foot.R", "Character/Skeleton3D:IKTarget.Foot.L", "Character/Skeleton3D:IKTarget.Foot.R", "Character/Skeleton3D:Neck", "Character/Skeleton3D:PoleTarget.Foot.L", "Character/Skeleton3D:PoleTarget.Foot.R", "Character/Skeleton3D:hip", "Character/Skeleton3D:lowerleg.L", "Character/Skeleton3D:lowerleg.R", "Character/Skeleton3D:root", "Character/Skeleton3D:spine.001", "Character/Skeleton3D:spine.002", "Character/Skeleton3D:spine.003", "Character/Skeleton3D:upperleg.L", "Character/Skeleton3D:upperleg.R"]
filters = ["Character/Skeleton3D:Foot.L", "Character/Skeleton3D:Foot.R", "Character/Skeleton3D:IKTarget.Foot.L", "Character/Skeleton3D:IKTarget.Foot.R", "Character/Skeleton3D:Neck", "Character/Skeleton3D:PoleTarget.Foot.L", "Character/Skeleton3D:PoleTarget.Foot.R", "Character/Skeleton3D:hip", "Character/Skeleton3D:lowerleg.L", "Character/Skeleton3D:lowerleg.R", "Character/Skeleton3D:root", "Character/Skeleton3D:spine.003", "Character/Skeleton3D:upperleg.L", "Character/Skeleton3D:upperleg.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5n7ai"]
animation = &"RESET"
@ -42,7 +66,7 @@ blend_point_2/node = SubResource("AnimationNodeAnimation_6neek")
blend_point_2/pos = 0.0
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_p0hk7"]
graph_offset = Vector2(-599, 14)
graph_offset = Vector2(-480.5, 90)
nodes/BoneMask/node = SubResource("AnimationNodeBlend2_4hmb8")
nodes/BoneMask/position = Vector2(140, 140)
nodes/Rest/node = SubResource("AnimationNodeAnimation_5n7ai")
@ -57,25 +81,25 @@ animation = &"RESET"
[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_rb1jd"]
filter_enabled = true
filters = ["Character/Skeleton3D:Foot.L", "Character/Skeleton3D:Foot.R", "Character/Skeleton3D:IKTarget.Foot.L", "Character/Skeleton3D:IKTarget.Foot.R", "Character/Skeleton3D:hip", "Character/Skeleton3D:lowerleg.L", "Character/Skeleton3D:lowerleg.R", "Character/Skeleton3D:root", "Character/Skeleton3D:upperleg.L", "Character/Skeleton3D:upperleg.R"]
filters = ["Character/Skeleton3D:Foot.L", "Character/Skeleton3D:Foot.R", "Character/Skeleton3D:IKTarget.Foot.L", "Character/Skeleton3D:IKTarget.Foot.R", "Character/Skeleton3D:hip", "Character/Skeleton3D:lowerleg.L", "Character/Skeleton3D:lowerleg.R", "Character/Skeleton3D:root", "Character/Skeleton3D:upperleg.L", "Character/Skeleton3D:upperleg.R", "skeleton_character/Skeleton3D:Foot.L", "skeleton_character/Skeleton3D:Foot.R", "skeleton_character/Skeleton3D:IKTarget.Foot.L", "skeleton_character/Skeleton3D:IKTarget.Foot.R", "skeleton_character/Skeleton3D:Neck", "skeleton_character/Skeleton3D:PoleTarget.Foot.L", "skeleton_character/Skeleton3D:PoleTarget.Foot.R", "skeleton_character/Skeleton3D:hip", "skeleton_character/Skeleton3D:lowerleg.L", "skeleton_character/Skeleton3D:lowerleg.R", "skeleton_character/Skeleton3D:root", "skeleton_character/Skeleton3D:spine.001", "skeleton_character/Skeleton3D:spine.002", "skeleton_character/Skeleton3D:spine.003", "skeleton_character/Skeleton3D:upperleg.L", "skeleton_character/Skeleton3D:upperleg.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_psu0r"]
animation = &"Walk_forward"
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_2mbyh"]
graph_offset = Vector2(-703.5, -8.5)
graph_offset = Vector2(-724.58, 74.5681)
nodes/Base/node = SubResource("AnimationNodeAnimation_7ceai")
nodes/Base/position = Vector2(-120, 120)
nodes/Forward/node = SubResource("AnimationNodeBlend2_rb1jd")
nodes/Forward/position = Vector2(100, 120)
nodes/Speed/node = SubResource("AnimationNodeBlend2_rb1jd")
nodes/Speed/position = Vector2(100, 120)
nodes/Walk/node = SubResource("AnimationNodeAnimation_psu0r")
nodes/Walk/position = Vector2(-140, 300)
node_connections = [&"Forward", 0, &"Base", &"Forward", 1, &"Walk", &"output", 0, &"Forward"]
node_connections = [&"Speed", 0, &"Base", &"Speed", 1, &"Walk", &"output", 0, &"Speed"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4lybd"]
switch_mode = 2
advance_mode = 2
advance_expression = "get_input_directions().y >= -0.9"
advance_expression = "!aim_weapon"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_5aafd"]
xfade_time = 0.3
@ -87,7 +111,7 @@ advance_expression = "get_input_direction() > 0.f"
priority = 2
switch_mode = 2
advance_mode = 2
advance_expression = "get_input_fire()"
advance_expression = "get_fire_weapon()"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_xnat3"]
reset = false
@ -107,39 +131,71 @@ advance_mode = 2
xfade_time = 0.2
priority = 2
advance_mode = 2
advance_expression = "get_input_directions().y < 0.5"
advance_expression = "!is_walking"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_4hisb"]
xfade_time = 0.2
advance_mode = 2
advance_expression = "get_input_directions().y >= 0.5"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_333v8"]
advance_mode = 2
advance_expression = "get_input_directions().y < -0.9"
advance_expression = "is_walking"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmty6"]
advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_kyd6p"]
xfade_time = 0.05
advance_mode = 2
advance_expression = "aim_weapon"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_w5kob"]
switch_mode = 2
advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_g0i3x"]
xfade_time = 0.4
advance_mode = 2
advance_expression = "get_is_running()
"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ocffv"]
xfade_time = 0.3
advance_mode = 2
advance_expression = "get_is_running()
"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_h0my5"]
xfade_time = 0.4
advance_mode = 2
advance_expression = "!get_is_running()"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_nymcr"]
xfade_time = 0.3
advance_mode = 2
advance_expression = "!get_is_running()"
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_7smdg"]
"states/Aim Down [aim]/node" = SubResource("AnimationNodeAnimation_ukhqm")
"states/Aim Down [aim]/position" = Vector2(706.171, 191.767)
"states/Aim Down [aim]/position" = Vector2(666.26, 226.767)
"states/Aim [aim] [turn]/node" = SubResource("AnimationNodeAnimation_nhlru")
"states/Aim [aim] [turn]/position" = Vector2(705.26, 88.389)
"states/Aim [aim] [turn]/position" = Vector2(731.26, 94.3447)
states/End/position = Vector2(195.182, 94.3447)
"states/Fire [aim]/node" = SubResource("AnimationNodeAnimation_8rbkq")
"states/Fire [aim]/position" = Vector2(706.18, 14.9346)
"states/Fire [aim]/position" = Vector2(731.26, 14.954)
"states/RESET To Aim/node" = SubResource("AnimationNodeAnimation_ugv1e")
"states/RESET To Aim/position" = Vector2(566.993, 94.3447)
states/Run/node = SubResource("AnimationNodeBlendTree_hmklb")
states/Run/position = Vector2(297.422, 226.767)
states/Start/position = Vector2(383.995, 14.954)
"states/Stationary [turn]/node" = SubResource("AnimationNodeBlendTree_p0hk7")
"states/Stationary [turn]/position" = Vector2(383.995, 94.3447)
"states/Walk [turn]/node" = SubResource("AnimationNodeBlendTree_2mbyh")
"states/Walk [turn]/position" = Vector2(383.995, 191.767)
transitions = ["Aim [aim] [turn]", "Aim Down [aim]", SubResource("AnimationNodeStateMachineTransition_4lybd"), "Aim Down [aim]", "Walk [turn]", SubResource("AnimationNodeStateMachineTransition_5aafd"), "Aim [aim] [turn]", "Fire [aim]", SubResource("AnimationNodeStateMachineTransition_8f4gl"), "Fire [aim]", "Aim [aim] [turn]", SubResource("AnimationNodeStateMachineTransition_xnat3"), "Walk [turn]", "Aim [aim] [turn]", SubResource("AnimationNodeStateMachineTransition_12bos"), "Aim Down [aim]", "Stationary [turn]", SubResource("AnimationNodeStateMachineTransition_n0ndr"), "Walk [turn]", "Stationary [turn]", SubResource("AnimationNodeStateMachineTransition_0wc5e"), "Stationary [turn]", "Walk [turn]", SubResource("AnimationNodeStateMachineTransition_4hisb"), "Stationary [turn]", "Aim [aim] [turn]", SubResource("AnimationNodeStateMachineTransition_333v8"), "Start", "Stationary [turn]", SubResource("AnimationNodeStateMachineTransition_bmty6")]
graph_offset = Vector2(-98.007, -6.1553)
"states/Walk [turn]/position" = Vector2(477.995, 226.767)
transitions = ["Aim [aim] [turn]", "Aim Down [aim]", SubResource("AnimationNodeStateMachineTransition_4lybd"), "Aim Down [aim]", "Walk [turn]", SubResource("AnimationNodeStateMachineTransition_5aafd"), "Aim [aim] [turn]", "Fire [aim]", SubResource("AnimationNodeStateMachineTransition_8f4gl"), "Fire [aim]", "Aim [aim] [turn]", SubResource("AnimationNodeStateMachineTransition_xnat3"), "Walk [turn]", "Aim [aim] [turn]", SubResource("AnimationNodeStateMachineTransition_12bos"), "Aim Down [aim]", "Stationary [turn]", SubResource("AnimationNodeStateMachineTransition_n0ndr"), "Walk [turn]", "Stationary [turn]", SubResource("AnimationNodeStateMachineTransition_0wc5e"), "Stationary [turn]", "Walk [turn]", SubResource("AnimationNodeStateMachineTransition_4hisb"), "Start", "Stationary [turn]", SubResource("AnimationNodeStateMachineTransition_bmty6"), "Stationary [turn]", "RESET To Aim", SubResource("AnimationNodeStateMachineTransition_kyd6p"), "RESET To Aim", "Aim [aim] [turn]", SubResource("AnimationNodeStateMachineTransition_w5kob"), "Stationary [turn]", "Run", SubResource("AnimationNodeStateMachineTransition_g0i3x"), "Walk [turn]", "Run", SubResource("AnimationNodeStateMachineTransition_ocffv"), "Run", "Stationary [turn]", SubResource("AnimationNodeStateMachineTransition_h0my5"), "Run", "Walk [turn]", SubResource("AnimationNodeStateMachineTransition_nymcr")]
graph_offset = Vector2(-392.578, -45.655)
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_hiswf"]
graph_offset = Vector2(-155, 2)
nodes/Actions/node = SubResource("AnimationNodeStateMachine_7smdg")
nodes/Actions/position = Vector2(90.9091, 145.455)
nodes/Actions/position = Vector2(80, 140)
nodes/output/position = Vector2(327.273, 163.636)
node_connections = [&"output", 0, &"Actions"]
@ -149,15 +205,16 @@ radius = 0.370388
[node name="Player" type="Player"]
slide_on_ceiling = false
floor_constant_speed = true
safe_margin = 0.005
[node name="PlayerInput" type="PlayerInput" parent="."]
unique_name_in_owner = true
[node name="CharacterModel" parent="." instance=ExtResource("1_mi4co")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0337329, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0232956, 0)
[node name="Skeleton3D" parent="CharacterModel/Character" index="0"]
[node name="Skeleton3D" parent="CharacterModel/skeleton_character" index="0"]
bones/0/rotation = Quaternion(1.12928e-22, 1, 2.98023e-08, -1.94707e-07)
bones/1/position = Vector3(3.28472e-17, 0.826102, -2.26306e-09)
bones/1/rotation = Quaternion(-0.0189874, -6.30661e-09, -1.08732e-09, 0.99982)
@ -250,16 +307,16 @@ bones/60/rotation = Quaternion(-0.707107, 1.25097e-07, 1.25097e-07, 0.707107)
bones/61/rotation = Quaternion(-0.707107, 1.5189e-07, 1.5189e-07, 0.707107)
bones/62/rotation = Quaternion(-0.707107, 1.5189e-07, 1.5189e-07, 0.707107)
[node name="AnimationTree" type="AnimationTree" parent="CharacterModel"]
[node name="AnimationTree" type="PlayerAnimTree" parent="CharacterModel"]
unique_name_in_owner = true
root_node = NodePath("%AnimationTree/..")
root_motion_track = NodePath("Character/Skeleton3D:root")
root_motion_track = NodePath("skeleton_character/Skeleton3D:root")
tree_root = SubResource("AnimationNodeBlendTree_hiswf")
advance_expression_base_node = NodePath("../..")
anim_player = NodePath("../AnimationPlayer")
parameters/Actions/Run/Speed/blend_amount = 1.0
"parameters/Actions/Stationary [turn]/BoneMask/blend_amount" = 1.0
"parameters/Actions/Stationary [turn]/Turn/blend_position" = 0
"parameters/Actions/Walk [turn]/Forward/blend_amount" = 1.0
"parameters/Actions/Stationary [turn]/Turn/blend_position" = 0.0
"parameters/Actions/Walk [turn]/Speed/blend_amount" = 1.0
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
@ -270,7 +327,7 @@ unique_name_in_owner = true
top_level = true
[node name="Camera" type="Camera3D" parent="CameraParent"]
transform = Transform3D(-0.999748, 0.00680423, -0.0213691, 0.00384561, 0.990762, 0.135556, 0.0220941, 0.13544, -0.990539, -0.434839, 1.68404, -1.00653)
transform = Transform3D(-0.999749, 0.00680422, -0.0213691, 0.00384561, 0.990762, 0.135556, 0.0220941, 0.13544, -0.990539, -0.311477, 1.66006, -1.85354)
fov = 42.5804
far = 100.0