[gd_scene load_steps=16 format=3 uid="uid://mkccbig41bqb"] [ext_resource type="Script" uid="uid://bk618uyhghswx" path="res://logic-scenes/player_controller/player_controller.gd" id="1_0b4mi"] [sub_resource type="PhysicsMaterial" id="10"] friction = 0.0 [sub_resource type="SeparationRayShape3D" id="SeparationRayShape3D_hpoj0"] length = 1.5 [sub_resource type="Gradient" id="Gradient_hpoj0"] interpolation_mode = 2 interpolation_color_space = 1 offsets = PackedFloat32Array(0.17551, 0.408163, 0.57551, 0.832653) colors = PackedColorArray(0.26784, 0.10556, 0.211286, 0, 0.15224, 0.0352, 0.22, 0.529412, 0.0288, 0.0616, 0.16, 0.901961, 0.00243532, 0.0191495, 0.101523, 1) [sub_resource type="GradientTexture2D" id="GradientTexture2D_x6v75"] gradient = SubResource("Gradient_hpoj0") width = 1024 height = 1024 fill = 1 fill_from = Vector2(0.5, 0.5) [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_hpoj0"] radius = 0.3 height = 1.2 [sub_resource type="Animation" id="11"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Yaw:position") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 1.22534, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("PlayerCollision:shape:height") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [1.2] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PlayerCollision:position") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0.6, 0)] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".:max_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [3.0] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D:rotation") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector3(0, 0, 0)] } tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:visible") tracks/5/interp = 1 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, "values": [false] } tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:modulate") tracks/6/interp = 1 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Color(1, 1, 1, 0)] } tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:scale") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(1.5, 1.5)] } tracks/8/type = "value" tracks/8/imported = false tracks/8/enabled = true tracks/8/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:pivot_offset") tracks/8/interp = 1 tracks/8/loop_wrap = true tracks/8/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(960, 960)] } [sub_resource type="Animation" id="12"] resource_name = "crouch" length = 2.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Yaw:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.8, 1.5, 1.83333), "transitions": PackedFloat32Array(1.36604, 1, 1, 1), "update": 0, "values": [Vector3(0, 1.22534, 0), Vector3(0, 0.5, 0), Vector3(0, 0.27, 0), Vector3(0, 0.327816, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("PlayerCollision:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.6, 0), Vector3(0, 0.3, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PlayerCollision:shape:height") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [1.2, 0.6] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".:max_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 0.69), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [3.0, 1.5] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D:rotation") tracks/4/interp = 2 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.666667, 1.3, 1.73333, 2), "transitions": PackedFloat32Array(1, 1, 1, 1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(-0.261799, 0, -0.0872665), Vector3(-0.174533, 0, 0.0523599), Vector3(0, 0, 0), Vector3(0, 0, 0)] } [sub_resource type="Animation" id="Animation_d8nww"] resource_name = "fast_crouch" tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Yaw:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.333333, 1), "transitions": PackedFloat32Array(1.36604, 1, 1), "update": 0, "values": [Vector3(0, 1.22534, 0), Vector3(0, 0.5, 0), Vector3(0, 0.327816, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("PlayerCollision:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.6, 0), Vector3(0, 0.3, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PlayerCollision:shape:height") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [1.2, 0.6] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".:max_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 0.69), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [3.0, 1.5] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D:rotation") tracks/4/interp = 2 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.2, 0.833333, 1), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(0.174533, 0, 0), Vector3(0, 0, 0), Vector3(0, 0, 0)] } [sub_resource type="Animation" id="Animation_x6v75"] resource_name = "fast_stand_up" length = 1.2 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Yaw:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1.51572, 1), "update": 0, "values": [Vector3(0, 0.327816, 0), Vector3(0, 1.22534, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("PlayerCollision:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.3, 0), Vector3(0, 0.6, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PlayerCollision:shape:height") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1.03333), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.6, 1.2] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".:max_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0.233333, 0.5), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [1.5, 3.0] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D:rotation") tracks/4/interp = 2 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.333333, 0.866667, 1.2), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(-0.174533, 0, 0), Vector3(0, 0, 0), Vector3(0, 0, 0)] } [sub_resource type="Animation" id="Animation_b3jgb"] resource_name = "reduced_crouch" length = 2.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Yaw:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0.233333, 0.933333, 1.73333), "transitions": PackedFloat32Array(1.36604, 1, 1), "update": 0, "values": [Vector3(0, 1.22534, 0), Vector3(0, 0.5, 0), Vector3(0, 0.327816, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("PlayerCollision:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.6, 0), Vector3(0, 0.3, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PlayerCollision:shape:height") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [1.2, 0.6] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".:max_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 0.69), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [3.0, 1.5] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 2), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] } tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:modulate") tracks/5/interp = 2 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(0, 0.5, 1.53333, 2), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] } tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:scale") tracks/6/interp = 2 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0, 0.966667, 2), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(1.5, 1.5), Vector2(1, 1), Vector2(1.5, 1.5)] } tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:pivot_offset") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(960, 960)] } [sub_resource type="Animation" id="Animation_hpoj0"] resource_name = "reduced_stand_up" length = 2.0 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Yaw:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0.433333, 1.6), "transitions": PackedFloat32Array(0.554785, 0.63728), "update": 0, "values": [Vector3(0, 0.327816, 0), Vector3(0, 1.22534, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("PlayerCollision:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.23333), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.3, 0), Vector3(0, 0.6, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PlayerCollision:shape:height") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1.23333), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.6, 1.2] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".:max_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0, 1), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [1.5, 3.0] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:visible") tracks/4/interp = 1 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 2), "transitions": PackedFloat32Array(1, 1), "update": 1, "values": [true, false] } tracks/5/type = "value" tracks/5/imported = false tracks/5/enabled = true tracks/5/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:modulate") tracks/5/interp = 2 tracks/5/loop_wrap = true tracks/5/keys = { "times": PackedFloat32Array(0, 0.5, 1.53333, 2), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] } tracks/6/type = "value" tracks/6/imported = false tracks/6/enabled = true tracks/6/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:scale") tracks/6/interp = 2 tracks/6/loop_wrap = true tracks/6/keys = { "times": PackedFloat32Array(0, 0.966667, 2), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [Vector2(1.5, 1.5), Vector2(1, 1), Vector2(1.5, 1.5)] } tracks/7/type = "value" tracks/7/imported = false tracks/7/enabled = true tracks/7/path = NodePath("Yaw/Pitch/Mount/Camera3D/TextureRect:pivot_offset") tracks/7/interp = 1 tracks/7/loop_wrap = true tracks/7/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, "values": [Vector2(960, 960)] } [sub_resource type="Animation" id="14"] resource_name = "stand_up" length = 2.5 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true tracks/0/path = NodePath("Yaw:position") tracks/0/interp = 2 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.9, 1.8, 2.26667), "transitions": PackedFloat32Array(1, 1, 1, 1), "update": 0, "values": [Vector3(0, 0.327816, 0), Vector3(0, 0.331, 0), Vector3(0, 1, 0), Vector3(0, 1.22534, 0)] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true tracks/1/path = NodePath("PlayerCollision:position") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.01), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [Vector3(0, 0.3, 0), Vector3(0, 0.6, 0)] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true tracks/2/path = NodePath("PlayerCollision:shape:height") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0, 1.03333), "transitions": PackedFloat32Array(1, 1), "update": 0, "values": [0.6, 1.2] } tracks/3/type = "value" tracks/3/imported = false tracks/3/enabled = true tracks/3/path = NodePath(".:max_speed") tracks/3/interp = 1 tracks/3/loop_wrap = true tracks/3/keys = { "times": PackedFloat32Array(0.366667, 1.55, 2.5), "transitions": PackedFloat32Array(1, 1, 1), "update": 0, "values": [1.5, 1.0, 3.0] } tracks/4/type = "value" tracks/4/imported = false tracks/4/enabled = true tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D:rotation") tracks/4/interp = 2 tracks/4/loop_wrap = true tracks/4/keys = { "times": PackedFloat32Array(0, 0.733333, 1.5, 2.14, 2.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1), "update": 0, "values": [Vector3(0, 0, 0), Vector3(-0.0872665, 0.0523599, -0.0872665), Vector3(0.261799, -0.0872665, -0.0872665), Vector3(0, 0, 0), Vector3(0, 0, 0)] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_xbx3w"] _data = { &"RESET": SubResource("11"), &"crouch": SubResource("12"), &"fast_crouch": SubResource("Animation_d8nww"), &"fast_stand_up": SubResource("Animation_x6v75"), &"reduced_crouch": SubResource("Animation_b3jgb"), &"reduced_stand_up": SubResource("Animation_hpoj0"), &"stand_up": SubResource("14") } [sub_resource type="SphereShape3D" id="SphereShape3D_hpoj0"] radius = 0.3 [node name="PlayerController" type="RigidBody3D"] collision_layer = 3 collision_mask = 3 axis_lock_angular_x = true axis_lock_angular_y = true axis_lock_angular_z = true physics_material_override = SubResource("10") can_sleep = false script = ExtResource("1_0b4mi") [node name="Yaw" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.22534, 0) [node name="Pitch" type="Node3D" parent="Yaw"] transform = Transform3D(1, 0, 0, 0, 0.642787, -0.766044, 0, 0.766044, 0.642787, 0, 0.256493, 0) [node name="Mount" type="Node3D" parent="Yaw/Pitch"] [node name="Camera3D" type="Camera3D" parent="Yaw/Pitch/Mount"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.202, 0.157) cull_mask = 3 current = true [node name="RayCast3D" type="RayCast3D" parent="Yaw/Pitch/Mount/Camera3D"] target_position = Vector3(0, 0, -1.5) collision_mask = 17 collide_with_areas = true [node name="UiProber" type="Area3D" parent="Yaw/Pitch/Mount/Camera3D"] transform = Transform3D(1, 0, 0, 0, 1, 2.98023e-08, 0, -2.98023e-08, 1, 0, 0, 0) collision_layer = 0 collision_mask = 16 [node name="CollisionShape3D" type="CollisionShape3D" parent="Yaw/Pitch/Mount/Camera3D/UiProber"] transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0) shape = SubResource("SeparationRayShape3D_hpoj0") [node name="TextureRect" type="TextureRect" parent="Yaw/Pitch/Mount/Camera3D"] visible = false modulate = Color(1, 1, 1, 0) anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 scale = Vector2(1.5, 1.5) pivot_offset = Vector2(960, 960) mouse_filter = 2 texture = SubResource("GradientTexture2D_x6v75") expand_mode = 4 [node name="PlayerCollision" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, -1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0.6, 0) shape = SubResource("CapsuleShape3D_hpoj0") [node name="PlayerAnimationPlayer" type="AnimationPlayer" parent="."] libraries = { &"": SubResource("AnimationLibrary_xbx3w") } autoplay = "RESET" [node name="CrouchDetector" type="Area3D" parent="."] collision_layer = 3 collision_mask = 3 [node name="CollisionShape3D" type="CollisionShape3D" parent="CrouchDetector"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.35, 0) shape = SubResource("SphereShape3D_hpoj0")