[gd_scene load_steps=32 format=3 uid="uid://br57yle5ldjmr"] [ext_resource type="Script" path="res://Common/CameraController/CharacterCameraController.cs" id="1_8tlkf"] [ext_resource type="Script" path="res://Entities/Player/Player.cs" id="1_38iga"] [ext_resource type="Script" path="res://Common/CharacterMovement/CharacterMovementController.cs" id="1_trsp8"] [ext_resource type="Script" path="res://Common/CharacterMovement/CharacterMovementMode.cs" id="2_bpavf"] [ext_resource type="CameraAttributesPractical" uid="uid://r5d50o2xokon" path="res://Resources/Misc/CameraAttributes.tres" id="2_cps54"] [ext_resource type="PackedScene" uid="uid://cb7dybtexd7ct" path="res://Content/Scenes/Characters/XBot.tscn" id="2_mdp28"] [ext_resource type="Script" path="res://Common/AnimNotifies/AnimNotify.cs" id="2_s6gd6"] [ext_resource type="Script" path="res://Entities/Player/PlayerStateMachine.cs" id="3_qdcd8"] [ext_resource type="Script" path="res://Entities/Player/States/IdleState.cs" id="4_0y3wl"] [ext_resource type="Script" path="res://Entities/Player/States/WalkState.cs" id="5_l6jgd"] [ext_resource type="Script" path="res://Entities/Player/States/RollState.cs" id="7_ye038"] [sub_resource type="Resource" id="Resource_h2cpj"] script = ExtResource("2_bpavf") Name = "" speed = 2.0 ignoreUpDirection = true acceleration = 1.0 deceleration = 1.0 gravityScale = 1.0 rotationRate = 720.0 [sub_resource type="Resource" id="Resource_gjtqv"] script = ExtResource("2_bpavf") Name = "" speed = 4.0 ignoreUpDirection = true acceleration = 1.0 deceleration = 1.0 gravityScale = 1.0 rotationRate = 360.0 [sub_resource type="Resource" id="Resource_rjvy2"] script = ExtResource("2_bpavf") Name = "" speed = 4.0 ignoreUpDirection = true acceleration = 1.0 deceleration = 1.0 gravityScale = 1.0 rotationRate = 360.0 [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_inwpe"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dj5mk"] animation = &"Stand To Roll" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_a85v2"] animation = &"Idle" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_fngip"] animation = &"Running" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_fx22w"] animation = &"Right Strafe" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_xkc2e"] animation = &"Left Strafe" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_74w08"] animation = &"Running Backward" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_k2v8r"] animation = &"Left Strafe Walk" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ngtvm"] animation = &"Right Strafe Walk" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gxvjv"] animation = &"Walking" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_dktww"] animation = &"Walking Backwards" [sub_resource type="AnimationNodeBlendSpace2D" id="AnimationNodeBlendSpace2D_4j2fv"] blend_point_0/node = SubResource("AnimationNodeAnimation_a85v2") blend_point_0/pos = Vector2(0, 0) blend_point_1/node = SubResource("AnimationNodeAnimation_fngip") blend_point_1/pos = Vector2(0, 4) blend_point_2/node = SubResource("AnimationNodeAnimation_fx22w") blend_point_2/pos = Vector2(4, 0) blend_point_3/node = SubResource("AnimationNodeAnimation_xkc2e") blend_point_3/pos = Vector2(-4, 0) blend_point_4/node = SubResource("AnimationNodeAnimation_74w08") blend_point_4/pos = Vector2(0, -4) blend_point_5/node = SubResource("AnimationNodeAnimation_k2v8r") blend_point_5/pos = Vector2(-2, 0) blend_point_6/node = SubResource("AnimationNodeAnimation_ngtvm") blend_point_6/pos = Vector2(2, 0) blend_point_7/node = SubResource("AnimationNodeAnimation_gxvjv") blend_point_7/pos = Vector2(0, 2) blend_point_8/node = SubResource("AnimationNodeAnimation_dktww") blend_point_8/pos = Vector2(0, -2) min_space = Vector2(-4, -4) max_space = Vector2(4, 4) snap = Vector2(1, 1) sync = true [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_er75r"] animation = &"Stand To Roll" [sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_durg8"] [sub_resource type="AnimationNodeTimeScale" id="AnimationNodeTimeScale_3il3w"] [sub_resource type="AnimationNodeTransition" id="AnimationNodeTransition_mfg0f"] sync = true xfade_time = 0.3 input_0/name = "locomotion" input_0/auto_advance = false input_0/break_loop_at_end = false input_0/reset = true input_1/name = "roll" input_1/auto_advance = false input_1/break_loop_at_end = false input_1/reset = true input_2/name = "doubleRoll" input_2/auto_advance = false input_2/break_loop_at_end = false input_2/reset = true [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_jjrq4"] "nodes/Animation 2/node" = SubResource("AnimationNodeAnimation_dj5mk") "nodes/Animation 2/position" = Vector2(-508.316, 402.128) nodes/LocomotionBlendspace/node = SubResource("AnimationNodeBlendSpace2D_4j2fv") nodes/LocomotionBlendspace/position = Vector2(-1000, -220) "nodes/Roll anim/node" = SubResource("AnimationNodeAnimation_er75r") "nodes/Roll anim/position" = Vector2(-520, 200) nodes/TimeScale/node = SubResource("AnimationNodeTimeScale_3il3w") nodes/TimeScale/position = Vector2(-320, 180) "nodes/TimeScale 2/node" = SubResource("AnimationNodeTimeScale_durg8") "nodes/TimeScale 2/position" = Vector2(-300, 380) nodes/Transition/node = SubResource("AnimationNodeTransition_mfg0f") nodes/Transition/position = Vector2(-100, -160) nodes/output/position = Vector2(140, 0) node_connections = [&"TimeScale", 0, &"Roll anim", &"TimeScale 2", 0, &"Animation 2", &"Transition", 0, &"LocomotionBlendspace", &"Transition", 1, &"TimeScale", &"Transition", 2, &"TimeScale 2", &"output", 0, &"Transition"] [node name="Player" type="CharacterBody3D"] script = ExtResource("1_38iga") [node name="AnimNotify" type="Node" parent="." node_paths=PackedStringArray("animationPlayer", "animationTree")] script = ExtResource("2_s6gd6") animationPlayer = NodePath("../XBot2/AnimationPlayer") animationTree = NodePath("../AnimationTree") [node name="PlayerStateMachine" type="Node" parent="." node_paths=PackedStringArray("animationTree", "animationNotify", "characterMovement", "cameraController", "owner", "defaultState")] unique_name_in_owner = true script = ExtResource("3_qdcd8") animationTree = NodePath("../AnimationTree") animationNotify = NodePath("../AnimNotify") characterMovement = NodePath("../MovementController") cameraController = NodePath("../CameraController") owner = NodePath("..") defaultState = NodePath("IdleState") activateOnReady = true [node name="IdleState" type="Node" parent="PlayerStateMachine"] script = ExtResource("4_0y3wl") transitionName = "locomotion" id = "Idle" [node name="WalkState" type="Node" parent="PlayerStateMachine"] script = ExtResource("5_l6jgd") movementMode = SubResource("Resource_h2cpj") transitionName = "locomotion" id = "Walk" [node name="RunState" type="Node" parent="PlayerStateMachine"] script = ExtResource("5_l6jgd") movementMode = SubResource("Resource_gjtqv") transitionName = "locomotion" id = "Run" [node name="RollState" type="Node" parent="PlayerStateMachine"] script = ExtResource("7_ye038") noInputDirectionTypeFallback = 0 transitionName = "roll" id = "Roll" canTransitionToSelf = true [node name="DoubleRollState" type="Node" parent="PlayerStateMachine"] script = ExtResource("7_ye038") transitionName = "doubleRoll" id = "DoubleRoll" canTransitionToSelf = true [node name="MovementController" type="Node" parent="." node_paths=PackedStringArray("animationTree")] unique_name_in_owner = true script = ExtResource("1_trsp8") defaultMovementMode = SubResource("Resource_rjvy2") animationTree = NodePath("../AnimationTree") [node name="CameraController" type="Node3D" parent="." node_paths=PackedStringArray("characterToFollow")] unique_name_in_owner = true top_level = true script = ExtResource("1_8tlkf") characterToFollow = NodePath("..") inputType = 1 rotatePlayer = false [node name="SpringArm3D" type="SpringArm3D" parent="CameraController"] transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -0.5, 0.5, 0, 0.9, 0) collision_mask = 0 spring_length = 15.0 [node name="Camera3D" type="Camera3D" parent="CameraController/SpringArm3D"] attributes = ExtResource("2_cps54") fov = 25.0 [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) shape = SubResource("CapsuleShape3D_inwpe") [node name="XBot2" parent="." instance=ExtResource("2_mdp28")] [node name="Skeleton3D" parent="XBot2/XBot" index="0"] bones/0/position = Vector3(-0.0094865, 1.25185e-09, 0.0105013) bones/1/position = Vector3(-6.41927e-08, 1.01631, 0.0152016) bones/1/rotation = Quaternion(-0.00247957, 0.0129864, -0.0472108, 0.998798) bones/1/scale = Vector3(1, 1, 1) bones/2/rotation = Quaternion(-0.0698184, -0.0129161, 0.0256771, 0.997146) bones/3/rotation = Quaternion(0.00547454, -0.00584693, 0.0515948, 0.998636) bones/4/rotation = Quaternion(0.0184056, -0.000504125, 0.051505, 0.998503) bones/5/rotation = Quaternion(0.00914212, -0.000186271, -0.0190842, 0.999776) bones/6/rotation = Quaternion(0.0126122, 0.0143696, -0.0704965, 0.997329) bones/8/rotation = Quaternion(-0.531587, 0.566702, -0.504636, -0.376306) bones/8/scale = Vector3(1, 1, 1) bones/9/rotation = Quaternion(0.501431, -0.0460958, -0.100924, 0.858054) bones/9/scale = Vector3(1, 1, 1) bones/10/rotation = Quaternion(1.8569e-07, 0.0161147, -0.153321, 0.988045) bones/11/rotation = Quaternion(0.095522, 0.0923463, 0.0744244, 0.988336) bones/12/rotation = Quaternion(0.201931, -0.119959, -0.227735, 0.944971) bones/13/rotation = Quaternion(-0.0353345, 0.118021, 0.260359, 0.95762) bones/14/rotation = Quaternion(0.0048986, 0.0101232, 0.0807254, 0.996673) bones/15/rotation = Quaternion(0.00577591, -0.11751, -0.0487442, 0.991858) bones/16/rotation = Quaternion(0.0690583, 0.000604117, 0.0405904, 0.996786) bones/17/rotation = Quaternion(0.179214, 0.00112804, 0.0251818, 0.983487) bones/18/rotation = Quaternion(0.121384, 0.00189872, 0.00167228, 0.992603) bones/19/rotation = Quaternion(-4.38752e-06, 0.00100281, 8.70747e-05, 0.999999) bones/19/scale = Vector3(1, 1, 1) bones/20/rotation = Quaternion(0.137738, 0.000212801, 0.0759617, 0.987551) bones/21/rotation = Quaternion(0.287733, 0.00258121, 0.0365516, 0.95701) bones/22/rotation = Quaternion(0.139102, 0.000123025, 0.014624, 0.99017) bones/23/rotation = Quaternion(-4.20033e-06, 0.000929157, 0.000166562, 1) bones/24/rotation = Quaternion(0.227202, -0.00122331, 0.103183, 0.968365) bones/25/rotation = Quaternion(0.340889, -0.0024133, 0.0365495, 0.93939) bones/25/scale = Vector3(1, 1, 1) bones/26/rotation = Quaternion(0.152564, 0.00128253, -0.000861315, 0.988292) bones/27/rotation = Quaternion(1.16963e-07, 0.000146031, -0.000799608, 1) bones/27/scale = Vector3(1, 1, 1) bones/28/rotation = Quaternion(0.305339, -0.00917991, 0.145624, 0.940998) bones/29/rotation = Quaternion(0.385084, 0.00302773, 0.0380203, 0.922093) bones/30/rotation = Quaternion(0.189615, 0.00649094, 0.000176252, 0.981837) bones/31/rotation = Quaternion(-5.56963e-06, 0.00156976, -4.12096e-05, 0.999999) bones/31/scale = Vector3(1, 1, 1) bones/32/rotation = Quaternion(0.57964, 0.518301, -0.463976, 0.42439) bones/32/scale = Vector3(1, 1, 1) bones/33/rotation = Quaternion(0.616365, 0.0723652, 0.0344348, 0.783372) bones/34/rotation = Quaternion(7.64858e-07, -0.0131976, 0.125566, 0.991998) bones/35/rotation = Quaternion(0.0884655, -0.234723, -0.0298803, 0.967567) bones/36/rotation = Quaternion(0.201898, 0.120302, 0.226847, 0.945148) bones/37/rotation = Quaternion(-0.0349368, -0.118116, -0.259351, 0.957896) bones/37/scale = Vector3(1, 1, 1) bones/38/rotation = Quaternion(-0.00224559, -0.00931581, -0.0869592, 0.996166) bones/39/rotation = Quaternion(0.00515115, 0.122683, 0.0416519, 0.991558) bones/39/scale = Vector3(1, 1, 1) bones/40/rotation = Quaternion(0.0690592, -0.000618582, -0.0407974, 0.996778) bones/41/rotation = Quaternion(0.179221, -0.00106319, -0.0248258, 0.983495) bones/42/rotation = Quaternion(0.0894853, -0.000338478, -0.00727971, 0.995961) bones/43/rotation = Quaternion(-4.301e-06, -0.000377563, -1.30879e-05, 1) bones/44/rotation = Quaternion(0.137738, -0.000286394, -0.0764874, 0.987511) bones/45/rotation = Quaternion(0.287741, -0.00233063, -0.0357161, 0.957039) bones/46/rotation = Quaternion(0.107645, 9.41972e-05, -0.0131421, 0.994103) bones/47/rotation = Quaternion(2.8699e-08, -0.00102401, 2.80073e-05, 0.999999) bones/48/rotation = Quaternion(0.227193, 0.00125991, -0.103024, 0.968384) bones/49/rotation = Quaternion(0.340904, 0.00233736, -0.036756, 0.939377) bones/50/rotation = Quaternion(0.165632, 0.00197345, -0.0163592, 0.98605) bones/52/rotation = Quaternion(0.305307, 0.00996131, -0.143208, 0.941371) bones/53/rotation = Quaternion(0.385083, -0.00278365, -0.0374319, 0.922118) bones/54/rotation = Quaternion(0.175725, -0.000267522, -0.0250954, 0.984119) bones/55/scale = Vector3(1, 1, 1) bones/56/rotation = Quaternion(-0.0412592, 0.0247158, 0.994295, -0.0952081) bones/57/rotation = Quaternion(-0.140992, 0.046549, 0.0250575, 0.988598) bones/58/rotation = Quaternion(0.532883, -0.0307157, -0.063444, 0.843248) bones/58/scale = Vector3(1, 1, 1) bones/59/rotation = Quaternion(0.340057, 5.86679e-08, -2.64737e-07, 0.940405) bones/60/rotation = Quaternion(3.66699e-08, 0.0116081, 4.25779e-10, 0.999933) bones/61/rotation = Quaternion(0.114678, 0.173256, 0.970346, -0.12353) bones/61/scale = Vector3(1, 1, 1) bones/62/rotation = Quaternion(-0.249285, -0.0774856, 0.0350244, 0.96469) bones/63/rotation = Quaternion(0.485928, -0.0641199, -0.0783549, 0.868115) bones/64/rotation = Quaternion(0.339131, 1.59574e-07, -4.75502e-07, 0.940739) bones/65/rotation = Quaternion(4.9911e-08, -0.0118692, -5.92394e-10, 0.99993) [node name="AnimationTree" type="AnimationTree" parent="."] unique_name_in_owner = true root_node = NodePath("%AnimationTree/../XBot2") root_motion_track = NodePath("XBot/Skeleton3D:mixamorig_Root") tree_root = SubResource("AnimationNodeBlendTree_jjrq4") anim_player = NodePath("../XBot2/AnimationPlayer") parameters/LocomotionBlendspace/blend_position = Vector2(0, 0) parameters/TimeScale/scale = 2.0 "parameters/TimeScale 2/scale" = 2.0 parameters/Transition/current_state = "locomotion" parameters/Transition/transition_request = "" parameters/Transition/current_index = 0 [node name="RootMotionView" type="RootMotionView" parent="."] animation_path = NodePath("../AnimationTree") [editable path="XBot2"]