Add a world model and refactor the controller

This commit is contained in:
2025-01-25 09:03:06 +01:00
parent 51842836ce
commit 4bfac86270
14 changed files with 1463 additions and 65 deletions

View File

@ -1,8 +1,4 @@
[gd_scene load_steps=10 format=4 uid="uid://1txob6jskn5s"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_e8avt"]
radius = 0.252578
height = 1.8094
[gd_scene load_steps=9 format=4 uid="uid://1txob6jskn5s"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gqjtb"]
resource_name = "Alpha_Joints_MAT"
@ -864,19 +860,14 @@ _data = {
}
[node name="Dummy" type="Node3D"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
[node name="Body" type="Node3D" parent="."]
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.897246, 0)
shape = SubResource("CapsuleShape3D_e8avt")
[node name="Armature" type="Node3D" parent="Body"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, -0.01, 0, 0.01, -4.37114e-10, 0, 0, 0)
[node name="Body" type="Node3D" parent="CharacterBody3D"]
[node name="Armature" type="Node3D" parent="CharacterBody3D/Body"]
transform = Transform3D(0.01, 0, 0, 0, 0, -0.01, 0, 0.01, 0, 0, 0, 0)
[node name="Skeleton3D" type="Skeleton3D" parent="CharacterBody3D/Body/Armature"]
[node name="Skeleton3D" type="Skeleton3D" parent="Body/Armature"]
bones/0/name = "mixamorig_Hips"
bones/0/parent = -1
bones/0/rest = Transform3D(1, -8.78096e-05, -2.78699e-06, 2.78699e-06, 0, 1, -8.78096e-05, -1, 0, -6.75701e-06, 4.84474e-05, -99.7919)
@ -1333,16 +1324,16 @@ bones/64/position = Vector3(-8.19564e-08, 10, 5.51343e-07)
bones/64/rotation = Quaternion(-8.44739e-09, 1.30531e-08, -2.55386e-09, 1)
bones/64/scale = Vector3(1, 1, 1)
[node name="Alpha_Joints" type="MeshInstance3D" parent="CharacterBody3D/Body/Armature/Skeleton3D"]
[node name="Alpha_Joints" type="MeshInstance3D" parent="Body/Armature/Skeleton3D"]
mesh = SubResource("ArrayMesh_kiui0")
skin = SubResource("Skin_hwx5g")
[node name="Alpha_Surface" type="MeshInstance3D" parent="CharacterBody3D/Body/Armature/Skeleton3D"]
[node name="Alpha_Surface" type="MeshInstance3D" parent="Body/Armature/Skeleton3D"]
mesh = SubResource("ArrayMesh_8h4ki")
skin = SubResource("Skin_hwx5g")
surface_material_override/0 = SubResource("StandardMaterial3D_j3emx")
[node name="AnimationPlayer" type="AnimationPlayer" parent="CharacterBody3D/Body"]
[node name="AnimationPlayer" type="AnimationPlayer" parent="Body"]
libraries = {
"": SubResource("AnimationLibrary_dbxeu")
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,39 @@
[gd_scene load_steps=4 format=3 uid="uid://b10lpwfjgxds4"]
[ext_resource type="Script" path="res://scripts/player/player_input_contrller.gd" id="1_q75ai"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jc50w"]
radius = 0.3
height = 1.6
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_tl74a"]
properties/0/path = NodePath(".:position")
properties/0/spawn = true
properties/0/replication_mode = 1
properties/1/path = NodePath(".:rotation")
properties/1/spawn = true
properties/1/replication_mode = 1
[node name="CharacterPlaceholder" type="CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.799455, 0)
collision_layer = 9
collision_mask = 9
script = ExtResource("1_q75ai")
[node name="MainCollision" type="CollisionShape3D" parent="."]
shape = SubResource("CapsuleShape3D_jc50w")
[node name="PlayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_tl74a")
[node name="FirstPersonCameraMount" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.609154, 0)
[node name="Camera" type="Camera3D" parent="FirstPersonCameraMount"]
fov = 40.0
[node name="BulletStartingPoint" type="Node3D" parent="FirstPersonCameraMount"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -0.343115)
[node name="ModelMount" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.790262, 0)

View File

@ -1049,7 +1049,7 @@ bones/24/name = "mixamorig_LeftHandRing2"
bones/24/parent = 23
bones/24/rest = Transform3D(1, 1.61871e-05, -9.45085e-08, -1.61871e-05, 1, 3.29224e-06, 9.45618e-08, -3.29224e-06, 1, 6.3543e-07, 3.60118, -1.47875e-05)
bones/24/enabled = true
bones/24/position = Vector3(-3.30613e-06, 3.60119, 1.50863e-07)
bones/24/position = Vector3(-3.30613e-06, 3.60119, 1.50864e-07)
bones/24/rotation = Quaternion(0.563924, -3.30111e-07, -0.0577891, 0.823803)
bones/24/scale = Vector3(1, 1, 1)
bones/25/name = "mixamorig_LeftHandRing3"
@ -1078,7 +1078,7 @@ bones/28/parent = 27
bones/28/rest = Transform3D(1, 0.000736602, -7.57697e-07, -0.000736602, 1, 9.24707e-06, 7.64508e-07, -9.24651e-06, 1, 1.0844e-06, 4.13666, 1.41886e-05)
bones/28/enabled = true
bones/28/position = Vector3(-9.08385e-06, 4.13665, 5.47372e-06)
bones/28/rotation = Quaternion(0.433129, -6.53828e-07, -0.0443853, 0.900239)
bones/28/rotation = Quaternion(0.433129, -6.53827e-07, -0.0443853, 0.900239)
bones/28/scale = Vector3(1, 1, 1)
bones/29/name = "mixamorig_LeftHandPinky3"
bones/29/parent = 28
@ -1127,7 +1127,7 @@ bones/35/parent = 34
bones/35/rest = Transform3D(0.894428, 0.447212, -8.12113e-07, -0.387297, 0.774597, -0.500001, -0.223606, 0.447215, 0.866025, 3.00297, 3.7888, 2.16716)
bones/35/enabled = true
bones/35/position = Vector3(3.00297, 3.7888, 2.16716)
bones/35/rotation = Quaternion(0.227577, -0.0598799, -0.162411, 0.958252)
bones/35/rotation = Quaternion(0.227577, -0.0598799, -0.162411, 0.958251)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "mixamorig_RightHandThumb2"
bones/36/parent = 35
@ -1211,14 +1211,14 @@ bones/47/parent = 34
bones/47/rest = Transform3D(1, 9.66599e-06, -1.40744e-07, -9.66599e-06, 1, -2.81994e-06, 1.40717e-07, 2.81994e-06, 1, -2.21663, 12.147, -0.00999829)
bones/47/enabled = true
bones/47/position = Vector3(-2.21664, 12.147, -0.00998812)
bones/47/rotation = Quaternion(0.0911117, 0.11369, 0.100504, 0.984211)
bones/47/rotation = Quaternion(0.0911117, 0.11369, 0.100504, 0.984212)
bones/47/scale = Vector3(1, 1, 1)
bones/48/name = "mixamorig_RightHandRing2"
bones/48/parent = 47
bones/48/rest = Transform3D(1, -1.60845e-05, 3.26056e-09, 1.60845e-05, 1, 1.32059e-06, -3.2818e-09, -1.32059e-06, 1, -2.50026e-07, 3.6012, -7.75122e-07)
bones/48/enabled = true
bones/48/position = Vector3(-2.50026e-07, 3.6012, -7.75122e-07)
bones/48/rotation = Quaternion(0.836665, 8.70473e-07, 0.068157, 0.543457)
bones/48/rotation = Quaternion(0.836665, 8.70474e-07, 0.068157, 0.543457)
bones/48/scale = Vector3(1, 1, 1)
bones/49/name = "mixamorig_RightHandRing3"
bones/49/parent = 48
@ -1302,14 +1302,14 @@ bones/60/parent = 0
bones/60/rest = Transform3D(-0.999981, -0.00611455, -7.52684e-05, 0.00611501, -0.999901, -0.0126672, 2.1931e-06, -0.0126674, 0.99992, -9.12503, -6.6556, -0.0553527)
bones/60/enabled = true
bones/60/position = Vector3(-9.12503, -6.6556, -0.0553527)
bones/60/rotation = Quaternion(-0.0339456, 0.334676, 0.92684, -0.166754)
bones/60/rotation = Quaternion(-0.0339455, 0.334676, 0.92684, -0.166754)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "mixamorig_RightLeg"
bones/61/parent = 60
bones/61/rest = Transform3D(0.99993, -0.0118315, -0.000580536, 0.0118448, 0.999271, 0.0362854, 0.000150802, -0.0362897, 0.999341, 3.28565e-07, 40.5995, 1.49012e-08)
bones/61/enabled = true
bones/61/position = Vector3(3.28565e-07, 40.5995, 1.49012e-08)
bones/61/rotation = Quaternion(-0.581827, -0.0846291, -0.0166473, 0.808727)
bones/61/rotation = Quaternion(-0.581827, -0.0846291, -0.0166473, 0.808726)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "mixamorig_RightFoot"
bones/62/parent = 61

View File

@ -7,6 +7,7 @@ var player_side: String
@onready var spawns = $Spawns
@onready var root = $'.'
@onready var players = $Players
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
var char : Node3D = null
@ -14,25 +15,17 @@ func _ready() -> void:
var position := red_spawn.global_position
if multiplayer.is_server():
for i in GameServerManager.players:
char = ResourceLoader.load("res://scenes/utils/character.tscn").instantiate()
char = ResourceLoader.load("res://scenes/characters/placeholder.tscn").instantiate()
char.name = str(GameServerManager.players[i].name)
char.global_position = position
var my_random_number = RandomNumberGenerator.new().randf_range(-2.0, 2.0)
var my_random_number = RandomNumberGenerator.new().randf_range(0.0, 5.0)
char.global_position = position
char.global_position.x += my_random_number
char.global_position.y += 300 + my_random_number
char.global_position.z += my_random_number
$MultiplayerSpawner.spawn(char)
players.add_child(char)
func spawn_player(id: int):
var red_spawn: Node3D = $Spawns/Blue/SpawnArea
var position := red_spawn.global_position
var char = ResourceLoader.load("res://scenes/utils/character.tscn").instantiate()
char.name = str(GameServerManager.players[id].name)
char.global_position = position
var my_random_number = RandomNumberGenerator.new().randf_range(-2.0, 2.0)
char.global_position = position
char.global_position.x += my_random_number
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:

View File

@ -26,8 +26,9 @@ transform = Transform3D(5.70162, 0, 0, 0, 1, 0, 0, 0, 7.97817, 21.2099, 1.78438,
size = Vector3(0.484497, 1, 5.99213)
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."]
_spawnable_scenes = PackedStringArray("res://scenes/utils/character.tscn")
_spawnable_scenes = PackedStringArray("res://scenes/characters/placeholder.tscn")
spawn_path = NodePath("../Players")
spawn_limit = 4
[node name="Players" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.72051, 0)

View File

@ -0,0 +1,14 @@
[gd_scene load_steps=2 format=3 uid="uid://7ypb23b3pugx"]
[ext_resource type="PackedScene" uid="uid://drkp6lgdexdwd" path="res://scenes/characters/first_person_view.tscn" id="1_pw4gm"]
[node name="FirstPersonCamera" type="Node3D"]
[node name="ViewModelCamera" type="Camera3D" parent="."]
transform = Transform3D(0.787899, 0, 0, 0, 0.787899, 0, 0, 0, 0.787899, -0.00122696, 5.96046e-08, -0.00121003)
fov = 40.0
[node name="FirstPersonView" parent="ViewModelCamera" instance=ExtResource("1_pw4gm")]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -0.0288114, 0.999585, 0, -0.999585, -0.0288114, 0, 2.05115, 0)

View File

@ -11,11 +11,14 @@ height = 1.8
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_csl3n"]
properties/0/path = NodePath(".:position")
properties/0/spawn = true
properties/0/spawn = false
properties/0/replication_mode = 1
properties/1/path = NodePath("CharacterBody3D:position")
properties/1/spawn = true
properties/1/replication_mode = 1
properties/2/path = NodePath("CharacterBody3D:rotation")
properties/2/spawn = true
properties/2/replication_mode = 1
[node name="Character" type="Node3D"]
@ -31,11 +34,12 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.71312, 0)
radius = 0.001
[node name="ViewModelCamera" parent="CharacterBody3D/UpperTorso" instance=ExtResource("4_al83x")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00122696, 0.093623, -0.463804)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00122696, 0.093623, -0.213943)
script = ExtResource("4_uwcjh")
[node name="Pistol" parent="CharacterBody3D/UpperTorso/ViewModelCamera" instance=ExtResource("5_6k7rq")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.0287516, -0.136104, -0.276055)
visible = false
script = null
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]

View File

@ -1,19 +0,0 @@
[gd_scene format=3 uid="uid://cf4pgjll6xhoh"]
[node name="ChooseSide" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Blue" type="Button" parent="."]
layout_mode = 0
offset_right = 8.0
offset_bottom = 8.0
[node name="Red" type="Button" parent="Blue"]
layout_mode = 0
offset_right = 8.0
offset_bottom = 8.0

View File

@ -13,7 +13,8 @@ func _ready() -> void:
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
position += transform.basis * Vector3(0, 0, SPEED) * delta
print("bullet:")
position += transform.basis * Vector3(0, 0, SPEED) * delta
ray.collision_mask = 1
ray.enabled = 1
if ray.is_colliding():