diff --git a/scenes/characters/blue/dummy.tscn b/scenes/characters/blue/dummy.tscn index 4d4fff3..f3525ed 100644 --- a/scenes/characters/blue/dummy.tscn +++ b/scenes/characters/blue/dummy.tscn @@ -1419,12 +1419,12 @@ shape = SubResource("SphereShape3D_axep3") [node name="PhysicalBoneSimulator3D" type="PhysicalBoneSimulator3D" parent="Body/Armature/Skeleton3D"] [node name="Physical Bone mixamorig_Hips" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"] -transform = Transform3D(82.5044, -54.0559, -16.4615, 55.0482, 83.4649, 1.8195, 12.756, -10.5629, 98.619, 1.31498, 0.290624, -87.4646) +transform = Transform3D(82.5044, -54.0559, -16.4615, 55.0482, 83.4649, 1.8195, 12.756, -10.5629, 98.619, 1.31498, 0.290626, -87.4646) collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.28962e-08, -5.58794e-09, 0.0499956) -body_offset = Transform3D(100, -0.0695305, -0.00860786, -1.28746e-05, 12.2744, -99.2438, 0.0700493, 99.2438, 12.2744, 0.000439644, 4.96175, -0.613665) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1131e-07, -8.84756e-09, 0.0499956) +body_offset = Transform3D(100, -0.0695305, -0.00860918, -1.4782e-05, 12.2744, -99.2438, 0.0700493, 99.2438, 12.2744, 0.000441551, 4.96175, -0.613665) mass = 20.0 bone_name = "mixamorig_Hips" joint_constraints/bias = 0.3 @@ -1436,12 +1436,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1 shape = SubResource("CapsuleShape3D_0ptuo") [node name="Physical Bone mixamorig_Spine" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"] -transform = Transform3D(80.9412, -58.5461, -4.56913, 57.6046, 80.6695, -13.1964, 11.4119, 8.04929, 99.0201, 2.40599, 0.973749, -98.2036) +transform = Transform3D(80.9412, -58.546, -4.56913, 57.6046, 80.6695, -13.1964, 11.4119, 8.04929, 99.0201, 2.40599, 0.973749, -98.2036) collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.66276e-09, 1.11885e-09, 0.05866) -body_offset = Transform3D(100, 1.52588e-05, 1.00136e-05, 4.76837e-06, 0, -100, -1.52588e-05, 100, -1.90735e-06, -9.53674e-07, 5.866, 0) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.10335e-09, 5.59426e-10, 0.0586601) +body_offset = Transform3D(100, 7.62939e-06, 1.09673e-05, 4.76837e-06, 0, -100, -1.52588e-05, 100, -9.53674e-07, -9.53674e-07, 5.866, 0) mass = 20.0 bone_name = "mixamorig_Spine" joint_constraints/bias = 0.3 @@ -1453,12 +1453,12 @@ transform = Transform3D(0.0318071, 3.86358e-14, 4.9738e-14, -2.13163e-14, -1.629 shape = SubResource("CapsuleShape3D_126jt") [node name="Physical Bone mixamorig_Head" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"] -transform = Transform3D(-97.8019, 4.47329, 20.366, -15.8369, -79.4709, -58.5966, 13.5638, -60.5339, 78.4325, -13.8193, 23.4986, -143.635) +transform = Transform3D(-97.8019, 4.4733, 20.366, -15.8369, -79.4709, -58.5966, 13.5638, -60.5339, 78.4325, -13.8193, 23.4986, -143.635) collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.81035e-08, -1.39698e-07, 0.0981531) -body_offset = Transform3D(-100, -0.00220108, -0.000778198, -5.24521e-06, 33.8066, -94.1122, 0.00232792, -94.1122, -33.8066, 7.05719e-05, 9.23741, 3.31821) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.71773e-08, -1.37836e-07, 0.0981531) +body_offset = Transform3D(-100, -0.00220013, -0.000778198, -5.24521e-06, 33.8066, -94.1122, 0.00232792, -94.1122, -33.8066, 6.86646e-05, 9.23741, 3.31821) mass = 7.0 bone_name = "mixamorig_Head" joint_constraints/bias = 0.3 @@ -1474,8 +1474,8 @@ transform = Transform3D(86.1165, 14.0252, -48.8594, -45.4995, 64.1262, -61.787, collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5578e-09, 2.39336e-07, 0.137023) -body_offset = Transform3D(100, -3.43323e-05, -2.67029e-05, 2.47955e-05, 100, -7.62939e-06, 1.71661e-05, -3.8147e-06, 100, 3.8147e-06, -2.28882e-05, -13.7023) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.17129e-09, 2.34109e-07, 0.137023) +body_offset = Transform3D(100, -4.19617e-05, -2.47955e-05, 2.86102e-05, 100, -3.8147e-06, 1.71661e-05, -3.8147e-06, 100, 3.8147e-06, -2.28882e-05, -13.7023) mass = 3.0 bone_name = "mixamorig_LeftArm" joint_constraints/bias = 0.3 @@ -1487,12 +1487,12 @@ transform = Transform3D(0.01, 0, 0, 0, 0.00997432, -0.000716193, 0, 0.000716193, shape = SubResource("CapsuleShape3D_krlof") [node name="Physical Bone mixamorig_LeftForeArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"] -transform = Transform3D(-48.2566, -12.058, 86.752, -78.7312, -37.4258, -48.997, 38.3757, -91.9452, 8.56699, 1.36485, 46.9033, -104.66) +transform = Transform3D(-48.2566, -12.058, 86.752, -78.7312, -37.4258, -48.997, 38.3757, -91.9452, 8.56699, 1.36484, 46.9033, -104.66) collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.288e-07, 6.04928e-08, 0.138072) -body_offset = Transform3D(100, 3.05176e-05, -3.8147e-05, -3.8147e-05, 0, -100, -3.8147e-06, 100, 1.14441e-05, 3.8147e-05, 13.8072, -7.62939e-06) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.99826e-07, 6.04928e-08, 0.138072) +body_offset = Transform3D(100, 3.05176e-05, -4.19617e-05, -3.8147e-05, 0, -100, -3.8147e-06, 100, 1.14441e-05, 4.57764e-05, 13.8072, -7.62939e-06) mass = 3.0 bone_name = "mixamorig_LeftForeArm" joint_constraints/bias = 0.3 @@ -1504,11 +1504,11 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1 shape = SubResource("CapsuleShape3D_2k34c") [node name="Physical Bone mixamorig_LeftHand" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"] -transform = Transform3D(9.11563, -98.6768, 13.4089, 23.9481, -10.8976, -96.4766, 96.6612, 12.0056, 22.6379, -10.9685, 56.2242, -106.442) +transform = Transform3D(9.11563, -98.6768, 13.4089, 23.9481, -10.8976, -96.4766, 96.6612, 12.0056, 22.6379, -10.9684, 56.2242, -106.442) collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.24797e-07, -1.22003e-07, 0.0264902) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.19564e-08, -9.40636e-08, 0.0264903) body_offset = Transform3D(-58.5197, 57.9894, 56.6805, 1.62125e-05, 69.899, -71.5132, -81.0891, -41.8493, -40.9047, -1.50148, 1.89441, 1.08356) bone_name = "mixamorig_LeftHand" joint_constraints/bias = 0.3 @@ -1524,7 +1524,7 @@ transform = Transform3D(30.7246, 72.8896, 61.1809, 93.7855, -34.092, -6.48192, 1 collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.63344e-08, 1.16326e-07, 0.137023) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.63344e-08, 1.16325e-07, 0.137023) body_offset = Transform3D(100, -5.72205e-06, 1.19209e-05, 6.67572e-06, 1.07288e-05, -100, -1.90735e-06, 100, 2.64645e-05, 0, 13.7023, -1.52588e-05) mass = 3.0 bone_name = "mixamorig_RightArm" @@ -1541,8 +1541,8 @@ transform = Transform3D(24.3552, 37.4063, 89.4852, -25.0101, 91.5653, -31.4688, collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40737e-07, -4.23739e-08, 0.138072) -body_offset = Transform3D(100, -1.14441e-05, 8.58307e-06, -3.8147e-06, 100, 9.53674e-06, 5.72205e-06, -5.72205e-06, 100, -1.52588e-05, 2.92063e-06, -13.8072) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40737e-07, -5.19106e-08, 0.138072) +body_offset = Transform3D(100, -1.14441e-05, 8.58307e-06, -3.8147e-06, 100, 9.53674e-06, 5.72205e-06, -5.72205e-06, 100, -1.52588e-05, 3.8743e-06, -13.8072) mass = 3.0 bone_name = "mixamorig_RightForeArm" joint_constraints/bias = 0.3 @@ -1558,7 +1558,7 @@ transform = Transform3D(89.0767, -24.8074, -38.0781, 5.05123, 88.6726, -45.9527, collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.86265e-08, 2.30502e-07, 0.0264903) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.51926e-09, 2.77068e-07, 0.0264903) body_offset = Transform3D(-58.5197, -57.9893, -56.6805, -1.33514e-05, 69.8991, -71.5131, 81.0891, -41.8492, -40.9048, 1.5015, 1.89439, 1.08359) bone_name = "mixamorig_RightHand" joint_constraints/bias = 0.3 @@ -1574,8 +1574,8 @@ transform = Transform3D(-96.1774, -26.2683, 7.73901, -23.4203, 64.2554, -72.957, collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.39893e-08, -7.74374e-09, 0.202997) -body_offset = Transform3D(100, -3.8147e-05, 1.14441e-05, 7.62939e-06, 7.62939e-06, -100, 4.19617e-05, 100, 3.8147e-06, -5.72205e-06, 20.2997, 0) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.78612e-08, -7.74374e-09, 0.202997) +body_offset = Transform3D(100, -4.3869e-05, 9.53674e-06, 9.53674e-06, 7.62939e-06, -100, 4.673e-05, 100, 3.8147e-06, -5.72205e-06, 20.2997, 0) mass = 5.0 bone_name = "mixamorig_LeftUpLeg" joint_constraints/bias = 0.3 @@ -1591,8 +1591,8 @@ transform = Transform3D(-97.5216, -11.6193, -18.8291, -22.0483, 58.1427, 78.3154 collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.01576e-09, -2.10753e-08, 0.210495) -body_offset = Transform3D(100, 4.76837e-06, 1.14441e-05, 5.72205e-06, 0, -100, -9.53674e-07, 100, 1.90735e-05, -1.90735e-06, 21.0495, -1.90735e-06) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.03062e-09, -1.30455e-08, 0.210495) +body_offset = Transform3D(100, 4.76837e-06, 1.33514e-05, 5.72205e-06, 0, -100, -9.53674e-07, 100, 1.52588e-05, -1.90735e-06, 21.0495, -1.90735e-06) mass = 5.0 bone_name = "mixamorig_LeftLeg" joint_constraints/bias = 0.3 @@ -1604,12 +1604,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1 shape = SubResource("CapsuleShape3D_vwdij") [node name="Physical Bone mixamorig_LeftFoot" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"] -transform = Transform3D(-93.6712, -34.5296, 5.78095, -34.9451, 91.207, -21.4506, 2.13418, -22.1132, -97.501, 11.7385, 3.12728, -14.5678) +transform = Transform3D(-93.6712, -34.5296, 5.78095, -34.9451, 91.207, -21.4506, 2.13419, -22.1132, -97.501, 11.7385, 3.12728, -14.5678) collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.41225e-09, 6.36356e-08, 0.078608) -body_offset = Transform3D(100, 5.72205e-06, -1.43051e-06, -1.90735e-06, -1.52588e-05, -100, -5.72205e-06, 100, -3.24249e-05, 9.53674e-07, 7.8608, -3.8147e-06) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.41225e-09, 7.07881e-08, 0.078608) +body_offset = Transform3D(100, 5.72205e-06, -1.43051e-06, -9.53674e-07, -1.52588e-05, -100, -5.72205e-06, 100, -3.24249e-05, 9.53674e-07, 7.8608, -4.52995e-06) bone_name = "mixamorig_LeftFoot" joint_constraints/bias = 0.3 joint_constraints/damping = 1.0 @@ -1624,8 +1624,8 @@ transform = Transform3D(-83.6898, -51.5224, 18.4786, -50.5592, 59.8312, -62.161, collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.08665e-08, 7.74372e-09, 0.202997) -body_offset = Transform3D(100, -1.52588e-05, 3.8147e-06, 5.72205e-06, -3.8147e-06, -100, 1.14441e-05, 100, -3.8147e-06, -2.86102e-06, 20.2997, 0) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.31228e-08, 7.74372e-09, 0.202997) +body_offset = Transform3D(100, -1.52588e-05, 7.62939e-06, 5.72205e-06, -3.8147e-06, -100, 1.14441e-05, 100, -3.8147e-06, -2.86102e-06, 20.2997, 0) mass = 5.0 bone_name = "mixamorig_RightUpLeg" joint_constraints/bias = 0.3 @@ -1641,8 +1641,8 @@ transform = Transform3D(-91.8175, -23.5086, -31.8888, -36.0103, 83.0805, 42.437, collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40577e-08, -2.67006e-07, 0.210495) -body_offset = Transform3D(100, -1.71661e-05, 1.14441e-05, -9.53674e-07, 4.19617e-05, -100, 1.90735e-05, 100, 7.24792e-05, -3.8147e-06, 21.0495, 1.14441e-05) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.48112e-08, -2.68513e-07, 0.210495) +body_offset = Transform3D(100, -1.71661e-05, 1.33514e-05, -9.53674e-07, 4.19617e-05, -100, 1.90735e-05, 100, 6.86646e-05, -4.29153e-06, 21.0495, 1.23978e-05) mass = 5.0 bone_name = "mixamorig_RightLeg" joint_constraints/bias = 0.3 @@ -1658,7 +1658,7 @@ transform = Transform3D(-88.192, -17.3351, 43.8367, -46.8549, 42.4444, -77.4796, collision_layer = 4 collision_mask = 4 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.24153e-08, -2.70381e-09, 0.078608) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.24152e-08, -2.70387e-09, 0.078608) body_offset = Transform3D(100, 1.14441e-05, -7.62939e-06, -7.62939e-06, -1.90735e-05, -100, 0, 100, -5.72205e-05, 5.84126e-06, 7.8608, 4.76837e-06) bone_name = "mixamorig_RightFoot" joint_constraints/bias = 0.3 diff --git a/scenes/characters/placeholder.tscn b/scenes/characters/placeholder.tscn index 21d52dd..05178e6 100644 --- a/scenes/characters/placeholder.tscn +++ b/scenes/characters/placeholder.tscn @@ -137,6 +137,7 @@ libraries = { } [node name="HUD" type="Control" parent="FirstPersonCameraMount"] +visible = false layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 diff --git a/scenes/player/placeholder.gd b/scenes/player/placeholder.gd index f1b2cf3..bd9de2d 100644 --- a/scenes/player/placeholder.gd +++ b/scenes/player/placeholder.gd @@ -7,6 +7,9 @@ class_name PlayerPlaceholder @onready var client_node: CharacterBody3D = $PlayerControlledNode @onready var server_node: CharacterBody3D = $ServerControlledNode @export var character_speed: int = 5 + + + # Called when the node enters the scene tree for the first time. func _ready() -> void: set_multiplayer_authority(1) @@ -16,6 +19,7 @@ func _ready() -> void: client_node.global_position = server_node.global_position client_node.rotation.y = server_node.rotation.y client_node.rotation.x = server_node.rotation.x + if multiplayer.is_server(): $Timer.start() if owner_id != multiplayer.get_unique_id(): diff --git a/scenes/player/placeholder.tscn b/scenes/player/placeholder.tscn index 7953836..b38d9f9 100644 --- a/scenes/player/placeholder.tscn +++ b/scenes/player/placeholder.tscn @@ -1,13 +1,79 @@ -[gd_scene load_steps=6 format=3 uid="uid://bmm3brgvr4d86"] +[gd_scene load_steps=14 format=3 uid="uid://bmm3brgvr4d86"] [ext_resource type="Script" path="res://scenes/player/player_input_controller.gd" id="1_m6tul"] [ext_resource type="Script" path="res://scenes/player/placeholder.gd" id="1_ts455"] +[ext_resource type="Texture2D" uid="uid://oopj5mj1vdp0" path="res://assets/crosshairs/crosshair_default.png" id="3_8ulsx"] [ext_resource type="Script" path="res://scenes/player/server_player_controller.gd" id="3_f1bhn"] +[ext_resource type="PackedScene" uid="uid://dtvo21mk1webd" path="res://scenes/weapon/guns/ak/with_hands.tscn" id="3_xxv4y"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_taqso"] radius = 0.4 height = 1.6 +[sub_resource type="LabelSettings" id="LabelSettings_3bk8i"] +font_size = 70 + +[sub_resource type="LabelSettings" id="LabelSettings_adbcb"] +font_size = 100 +font_color = Color(0.756874, 0, 0.223924, 1) + +[sub_resource type="Animation" id="Animation_falg4"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0.125), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_mkk0p"] +resource_name = "move" +length = 0.5 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.125, 0.25, 0.375, 0.5), +"transitions": PackedFloat32Array(1, 2, 1, 2, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0.001, 0.001, -0.001), Vector3(0, 0, 0), Vector3(-0.001, 0.001, -0.001), Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_ah507"] +resource_name = "shooting" +length = 0.2 +loop_mode = 1 +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2), +"transitions": PackedFloat32Array(1, 0.233258, 8.57419), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.01, -0.01), Vector3(0, 0, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_u1b6p"] +_data = { +"RESET": SubResource("Animation_falg4"), +"move": SubResource("Animation_mkk0p"), +"shooting": SubResource("Animation_ah507") +} + [sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_7vlrn"] properties/0/path = NodePath("ServerControlledNode:position") properties/0/spawn = true @@ -34,9 +100,96 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.786919, 0) shape = SubResource("CapsuleShape3D_taqso") [node name="CameraMount" type="Node3D" parent="PlayerControlledNode"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.29568, -0.240438) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.29568, -0.128668) [node name="Camera3D" type="Camera3D" parent="PlayerControlledNode/CameraMount"] +cull_mask = 524287 + +[node name="HUD" type="Control" parent="PlayerControlledNode/CameraMount/Camera3D"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 8.0 +offset_right = 8.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 + +[node name="TextureRect" type="TextureRect" parent="PlayerControlledNode/CameraMount/Camera3D/HUD"] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -36.0 +offset_top = -36.0 +offset_right = 36.0 +offset_bottom = 36.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_8ulsx") + +[node name="HealthIndicator" type="Label" parent="PlayerControlledNode/CameraMount/Camera3D/HUD"] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -23.0 +offset_right = 40.0 +grow_vertical = 0 +text = "100" +label_settings = SubResource("LabelSettings_3bk8i") + +[node name="FPS" type="Label" parent="PlayerControlledNode/CameraMount/Camera3D/HUD" groups=["player_placeholder"]] +layout_mode = 1 +offset_right = 40.0 +offset_bottom = 23.0 +text = "0" +label_settings = SubResource("LabelSettings_adbcb") + +[node name="SubViewportContainer" type="SubViewportContainer" parent="PlayerControlledNode/CameraMount/Camera3D/HUD"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +stretch = true + +[node name="SubViewport" type="SubViewport" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer"] +transparent_bg = true +handle_input_locally = false +msaa_2d = 1 +msaa_3d = 1 +canvas_cull_mask = 4294443008 +size = Vector2i(1920, 1964) +render_target_update_mode = 4 + +[node name="Camera3D" type="Camera3D" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport"] +cull_mask = 524288 +fov = 40.0 + +[node name="WithHands" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D" instance=ExtResource("3_xxv4y")] +transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.423577, -0.565285, -1.76074) +visible = false + +[node name="BulletStartingPoint" type="Node3D" parent="PlayerControlledNode/CameraMount"] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -0.42185) + +[node name="AimRay" type="RayCast3D" parent="PlayerControlledNode/CameraMount/BulletStartingPoint"] +target_position = Vector3(0, 0, 1000) +hit_from_inside = true +collide_with_areas = true + +[node name="GunMount" type="Node3D" parent="PlayerControlledNode/CameraMount"] +visible = false + +[node name="AnimationPlayer" type="AnimationPlayer" parent="PlayerControlledNode/CameraMount/GunMount"] +libraries = { +"": SubResource("AnimationLibrary_u1b6p") +} [node name="Node3D" type="Node3D" parent="PlayerControlledNode"] @@ -48,9 +201,6 @@ script = ExtResource("3_f1bhn") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.786919, 0) shape = SubResource("CapsuleShape3D_taqso") -[node name="CSGBox3D" type="CSGBox3D" parent="ServerControlledNode"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.91303, 0) - [node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."] replication_config = SubResource("SceneReplicationConfig_7vlrn") diff --git a/scenes/player/player_input_controller.gd b/scenes/player/player_input_controller.gd index f79dc56..06e204d 100644 --- a/scenes/player/player_input_controller.gd +++ b/scenes/player/player_input_controller.gd @@ -13,14 +13,41 @@ extends CharacterBody3D @onready var camera = $CameraMount/Camera3D @onready var placeholder: Node3D = $'..' var paused := false +const JUMP_VELOCITY = 4.5 + #func _ready() -> void: - +var current_gun: String = "ak" +@onready var gun_mount: Node3D = $CameraMount/GunMount +@onready var gun_mount_anim: AnimationPlayer = $CameraMount/GunMount/AnimationPlayer +var gun_with_hands: Node3D = null +@onready var bullet_starting_point: Node3D = $CameraMount/BulletStartingPoint +@onready var aim_ray: RayCast3D = $CameraMount/BulletStartingPoint/AimRay +@onready var gun_camera: Camera3D = $CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D +var current_weapon_damage: int +var current_weapon_bullet_speed: int +var current_weapon_cooldown_interwal: float var look_dir: Vector2 func _ready() -> void: global_position = $"..".initial_position + # -- TODO: It should not be hardcoded + # Define a format string with placeholder '%s' + var path_tmpl := "res://scenes/weapon/guns/%s/with_hands.tscn" + var path := path_tmpl % current_gun + var scene: PackedScene = ResourceLoader.load(path) + var node: Node3D = scene.instantiate() + node.scale = Vector3(0.5,0.5,0.5) + node.position = Vector3(0.5, -0.5, -1.5) + current_weapon_bullet_speed = node.bullet_speed + current_weapon_cooldown_interwal = node.cooldown + current_weapon_damage = node.damage + gun_with_hands = node + gun_camera.add_child(node) + func _input(event): if multiplayer.get_unique_id() == get_multiplayer_authority(): + if Input.is_action_just_pressed("jump"): jumping = true + if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: look_dir = event.relative * 1 rotation.y -= look_dir.x * camera_sens * 1.0 @@ -37,12 +64,23 @@ func _process(delta: float) -> void: server_node.set_input_direction.rpc_id(1, input_direction) input_direction = Input.get_vector("move_left", "move_right", "move_forward", "move_backwards") if Input.is_action_just_pressed("jump"): + server_node.jump.rpc_id(1) jump.rpc_id(1) + if Input.is_action_pressed("shot"): _shoot() +var cant_shoot: bool = false +func _shoot(): + if not cant_shoot: + gun_with_hands.shoot() + cant_shoot = true + await get_tree().create_timer(current_weapon_cooldown_interwal).timeout + cant_shoot = false func _physics_process(delta: float) -> void: if not is_on_floor(): velocity += get_gravity() * delta - + if is_on_floor() && jumping: + velocity.y = JUMP_VELOCITY + jumping = false if multiplayer.get_unique_id() == get_multiplayer_authority(): var direction := (transform.basis * Vector3(input_direction.x, 0, input_direction.y)).normalized() if is_on_floor(): diff --git a/scenes/player/server_player_controller.gd b/scenes/player/server_player_controller.gd index 0065632..7274348 100644 --- a/scenes/player/server_player_controller.gd +++ b/scenes/player/server_player_controller.gd @@ -1,5 +1,6 @@ class_name ServerControlledPlayer extends CharacterBody3D +const JUMP_VELOCITY = 4.5 func _ready() -> void: global_position = $"..".initial_position @@ -20,11 +21,17 @@ func set_rotation_y(new_rotation_y: float): @rpc("call_local", "any_peer", "unreliable_ordered") func set_rotation_x(new_rotation_x: float): $"..".rotation.x = new_rotation_x +@rpc("call_local", "any_peer", "unreliable_ordered") +func jump(): + jumping = true - +var jumping := false func _physics_process(delta: float) -> void: if not is_on_floor(): velocity += get_gravity() * delta + if is_on_floor() && jumping: + velocity.y = JUMP_VELOCITY + jumping = false var direction := (transform.basis * Vector3(input_direction.x, 0, input_direction.y)).normalized() #if is_on_floor(): diff --git a/scenes/weapon/guns/ak/gun.tscn b/scenes/weapon/guns/ak/gun.tscn index 132032b..895d7dd 100644 --- a/scenes/weapon/guns/ak/gun.tscn +++ b/scenes/weapon/guns/ak/gun.tscn @@ -376,6 +376,7 @@ transform = Transform3D(1, 0, 0, 0, 2.22045e-16, -1, 0, 1, 2.22045e-16, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.357561, -0.95657, 0) [node name="Object_8" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/7_62x39 ak47 mag empty 30rnd (steel)_1"] +layers = 524288 mesh = SubResource("ArrayMesh_profl") skeleton = NodePath("") @@ -383,6 +384,7 @@ skeleton = NodePath("") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.29818, 0.183817, 0) [node name="Object_12" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 muzzle brake_3"] +layers = 524288 mesh = SubResource("ArrayMesh_ipt8e") skeleton = NodePath("") @@ -390,10 +392,12 @@ skeleton = NodePath("") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.172215, 0.322283, 0) [node name="Object_14" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 bolt carrier_4"] +layers = 524288 mesh = SubResource("ArrayMesh_8jual") skeleton = NodePath("") [node name="Object_15" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 bolt carrier_4"] +layers = 524288 mesh = SubResource("ArrayMesh_i82ui") skeleton = NodePath("") @@ -401,16 +405,19 @@ skeleton = NodePath("") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.41883, 0.422283, 0) [node name="Object_17" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 back spring_5"] +layers = 524288 mesh = SubResource("ArrayMesh_mrb8o") skeleton = NodePath("") [node name="ak-47_6" type="Node3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode"] [node name="Object_19" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak-47_6"] +layers = 524288 mesh = SubResource("ArrayMesh_lmas3") skeleton = NodePath("") [node name="Object_20" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak-47_6"] +layers = 524288 mesh = SubResource("ArrayMesh_pm8es") skeleton = NodePath("") @@ -418,6 +425,7 @@ skeleton = NodePath("") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.924381, -0.0946205, 0) [node name="Object_22" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 trigga_7"] +layers = 524288 mesh = SubResource("ArrayMesh_f3au2") skeleton = NodePath("") @@ -425,6 +433,7 @@ skeleton = NodePath("") transform = Transform3D(0.960364, 0.278749, 0, -0.278749, 0.960364, 0, 0, 0, 1, -1.14961, 0.0940101, 0) [node name="Object_24" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 selector_8"] +layers = 524288 mesh = SubResource("ArrayMesh_d4npm") skeleton = NodePath("") @@ -432,5 +441,6 @@ skeleton = NodePath("") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.424757, -0.317383, 0) [node name="Object_26" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 mag release_9"] +layers = 524288 mesh = SubResource("ArrayMesh_2fjfa") skeleton = NodePath("") diff --git a/scenes/weapon/guns/ak/with_hands.tscn b/scenes/weapon/guns/ak/with_hands.tscn index 0794fb9..4f63533 100644 --- a/scenes/weapon/guns/ak/with_hands.tscn +++ b/scenes/weapon/guns/ak/with_hands.tscn @@ -567,86 +567,103 @@ transform = Transform3D(-0.0937107, -0.388868, 0, 0.388868, -0.0937107, 0, 0, 0, [node name="hand" type="MeshInstance3D" parent="HandsMount/RightHand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.121467, -1.86265e-09, 0.916718) +layers = 524288 mesh = SubResource("ArrayMesh_10vpp") skeleton = NodePath("") [node name="arm_lower" type="MeshInstance3D" parent="HandsMount/RightHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.118854, 0.00119257) +layers = 524288 mesh = SubResource("ArrayMesh_6kcxh") skeleton = NodePath("") [node name="index_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"] transform = Transform3D(1, 0, 0, 0, 0.861576, -0.507629, 0, 0.507629, 0.861576, 0.635515, 0, -1.8433) +layers = 524288 mesh = SubResource("ArrayMesh_3xdyo") skeleton = NodePath("") [node name="index_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/index_0"] transform = Transform3D(1, 0, 0, 0, 0.906566, -0.422065, 0, 0.422065, 0.906566, 0, 0, -0.520542) +layers = 524288 mesh = SubResource("ArrayMesh_jwmbr") skeleton = NodePath("") [node name="index_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/index_0/index_1"] transform = Transform3D(1, 0, 0, 0, 0.750019, -0.661417, 0, 0.661417, 0.750019, 0.052901, 8.73137e-11, -0.496836) +layers = 524288 mesh = SubResource("ArrayMesh_nx17n") skeleton = NodePath("") [node name="middle_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.219422, 0, -1.96367) +layers = 524288 mesh = SubResource("ArrayMesh_j4m22") skeleton = NodePath("") [node name="middle_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/middle_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.595449) +layers = 524288 mesh = SubResource("ArrayMesh_p7r5c") skeleton = NodePath("") [node name="middle_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/middle_0/middle_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.576577) +layers = 524288 mesh = SubResource("ArrayMesh_nyf20") skeleton = NodePath("") [node name="pinky_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.636916, 0, -1.87594) +layers = 524288 mesh = SubResource("ArrayMesh_hv0ce") skeleton = NodePath("") [node name="pinky_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/pinky_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.508631) +layers = 524288 mesh = SubResource("ArrayMesh_c5ym1") skeleton = NodePath("") [node name="pinky_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/pinky_0/pinky_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.484157) +layers = 524288 mesh = SubResource("ArrayMesh_nbpkv") skeleton = NodePath("") [node name="ring_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22161, 0, -1.94957) +layers = 524288 mesh = SubResource("ArrayMesh_1xp3n") skeleton = NodePath("") [node name="ring_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/ring_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.578411) +layers = 524288 mesh = SubResource("ArrayMesh_pb3jm") skeleton = NodePath("") [node name="ring_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/ring_0/ring_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.558439) +layers = 524288 mesh = SubResource("ArrayMesh_a0fke") skeleton = NodePath("") [node name="thumb_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"] transform = Transform3D(-0.555855, -0.801665, -0.69654, 0.994684, -0.11756, -0.658478, 0.372074, -0.883359, 0.719756, 0.490087, 0.180478, -0.34376) +layers = 524288 mesh = SubResource("ArrayMesh_f34xf") skeleton = NodePath("") [node name="thumb_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/thumb_0"] transform = Transform3D(0.944646, 0, 0.328092, 0, 1, 0, -0.328092, 0, 0.944646, 0.418848, 0, -0.541475) +layers = 524288 mesh = SubResource("ArrayMesh_nwsdf") skeleton = NodePath("") [node name="thumb_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/thumb_0/thumb_1"] transform = Transform3D(0.566325, -0.514515, 0.643855, 0.815653, 0.461981, -0.348259, -0.118264, 0.72239, 0.681297, 0.286444, 0, -0.397435) +layers = 524288 mesh = SubResource("ArrayMesh_kj4i3") skeleton = NodePath("") @@ -655,86 +672,103 @@ transform = Transform3D(-0.293062, -0.141858, -0.232359, 0.152991, -0.368212, 0. [node name="hand" type="MeshInstance3D" parent="HandsMount/LeftHand"] transform = Transform3D(0.937392, -0.347, -0.0298069, 0.343986, 0.909048, 0.235173, -0.0545093, -0.230702, 0.971497, 0, 0, 0.916718) +layers = 524288 mesh = SubResource("ArrayMesh_10vpp") skeleton = NodePath("") [node name="arm_lower" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"] transform = Transform3D(0.961026, 0.0494308, -0.272003, -0.077176, 0.992739, -0.0922641, 0.265467, 0.10966, 0.957863, -2.38419e-07, -0.118854, 0.00119257) +layers = 524288 mesh = SubResource("ArrayMesh_6kcxh") skeleton = NodePath("") [node name="index_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.635515, 0, -1.8433) +layers = 524288 mesh = SubResource("ArrayMesh_3xdyo") skeleton = NodePath("") [node name="index_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/index_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.520542) +layers = 524288 mesh = SubResource("ArrayMesh_jwmbr") skeleton = NodePath("") [node name="index_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/index_0/index_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.496836) +layers = 524288 mesh = SubResource("ArrayMesh_nx17n") skeleton = NodePath("") [node name="middle_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.219422, 0, -1.96367) +layers = 524288 mesh = SubResource("ArrayMesh_j4m22") skeleton = NodePath("") [node name="middle_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/middle_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.595449) +layers = 524288 mesh = SubResource("ArrayMesh_p7r5c") skeleton = NodePath("") [node name="middle_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/middle_0/middle_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.576577) +layers = 524288 mesh = SubResource("ArrayMesh_nyf20") skeleton = NodePath("") [node name="pinky_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.636916, 0, -1.87594) +layers = 524288 mesh = SubResource("ArrayMesh_hv0ce") skeleton = NodePath("") [node name="pinky_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/pinky_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.508631) +layers = 524288 mesh = SubResource("ArrayMesh_c5ym1") skeleton = NodePath("") [node name="pinky_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/pinky_0/pinky_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.484157) +layers = 524288 mesh = SubResource("ArrayMesh_nbpkv") skeleton = NodePath("") [node name="ring_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22161, 0, -1.94957) +layers = 524288 mesh = SubResource("ArrayMesh_1xp3n") skeleton = NodePath("") [node name="ring_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/ring_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.578411) +layers = 524288 mesh = SubResource("ArrayMesh_pb3jm") skeleton = NodePath("") [node name="ring_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/ring_0/ring_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.558439) +layers = 524288 mesh = SubResource("ArrayMesh_a0fke") skeleton = NodePath("") [node name="thumb_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"] transform = Transform3D(0.456952, 1.05435, -0.341133, -1.08959, 0.360202, -0.346234, -0.202034, 0.442078, 1.09571, 0.624359, -0.289327, -0.480306) +layers = 524288 mesh = SubResource("ArrayMesh_f34xf") skeleton = NodePath("") [node name="thumb_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/thumb_0"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.418848, 0, -0.541475) +layers = 524288 mesh = SubResource("ArrayMesh_nwsdf") skeleton = NodePath("") [node name="thumb_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/thumb_0/thumb_1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.286444, 0, -0.397435) +layers = 524288 mesh = SubResource("ArrayMesh_kj4i3") skeleton = NodePath("") diff --git a/scenes/weapon/misc/bullet_trail_generic.tscn b/scenes/weapon/misc/bullet_trail_generic.tscn index b077075..186f0de 100644 --- a/scenes/weapon/misc/bullet_trail_generic.tscn +++ b/scenes/weapon/misc/bullet_trail_generic.tscn @@ -11,6 +11,7 @@ emission_energy_multiplier = 16.0 distance_fade_min_distance = 2.0 [node name="BulletTrailGeneric" type="MeshInstance3D"] +layers = 524288 material_override = SubResource("StandardMaterial3D_ybqvs") visibility_range_end = 1891.27 script = ExtResource("1_k8eg1")