WIP: Start working on the frag/damage system

This commit is contained in:
Nikolai Rodionov 2025-02-02 17:56:39 +01:00
parent 0cb2089191
commit dbc6a79182
Signed by: allanger
GPG Key ID: 09F8B434D0FDD99B
25 changed files with 3295 additions and 211 deletions

BIN
assets/models/character/y-bot/Y-Bot.glb (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/models/character/y-bot/Y-Bot.glb.import (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -39,6 +39,7 @@ import/blender/enabled=false
body=""
target=""
player_placeholder=""
ghost=""
[input]
@ -92,6 +93,21 @@ crouch={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
weapon_slot_1={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":49,"key_label":0,"unicode":49,"location":0,"echo":false,"script":null)
]
}
weapon_slot_2={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":50,"key_label":0,"unicode":50,"location":0,"echo":false,"script":null)
]
}
weapon_slot_3={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":51,"key_label":0,"unicode":51,"location":0,"echo":false,"script":null)
]
}
[layer_names]

View File

@ -105,8 +105,8 @@ impl PlayerServerNode {
};
let args = &[
casted_bullet_node.to_variant(),
10.to_variant(),
10.to_variant(),
200.to_variant(),
50.to_variant(),
];
map.call("spawn_bullet", args);
}

View File

@ -4,7 +4,7 @@ extends Node3D
var owner_placeholder: CharacterBody3D = null
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
$Body/Armature/Skeleton3D.physical_bones_start_simulation()
#$Body/Armature/Skeleton3D.physical_bones_start_simulation()
owner_placeholder = _get_owner()
pass # Replace with function body.
@ -21,9 +21,11 @@ func _on_head_collision_body_part_hit(dam: Variant) -> void:
pass # Replace with function body.
func _hit_detected(dam: Variant) -> void:
print("hit detected")
if owner_placeholder:
owner_placeholder.take_damage(dam)
if owner_placeholder.has_method("take_damage"):
owner_placeholder.take_damage(dam)
else:
print("Don't know how to hit")
func _get_owner() -> CharacterBody3D:
var owner_placeholder := find_parent("PlayerPlaceholder*")

View File

@ -267,8 +267,8 @@ radius = 3.944
height = 12.926
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1gw5y"]
radius = 10.779
height = 24.58
radius = 10.7
height = 24.6
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_krlof"]
radius = 2.74047
@ -935,11 +935,13 @@ script = ExtResource("1_cyeub")
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, -0.01, 0, 0.01, -4.37114e-10, 0, 0, 0)
[node name="Skeleton3D" type="Skeleton3D" parent="Body/Armature" groups=["target"]]
modifier_callback_mode_process = 0
animate_physical_bones = false
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)
bones/0/enabled = true
bones/0/position = Vector3(0.491975, 0.381586, -82.5341)
bones/0/position = Vector3(0.491984, 0.381591, -82.5342)
bones/0/rotation = Quaternion(-0.656646, -0.246297, 0.163159, 0.693926)
bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "mixamorig_Spine"
@ -947,35 +949,35 @@ bones/1/parent = 0
bones/1/rest = Transform3D(1, -1.22161e-05, -7.43263e-07, 1.22161e-05, 0.992624, 0.121236, -7.43257e-07, -0.121236, 0.992624, 0.000859786, 9.92346, -1.22733)
bones/1/enabled = true
bones/1/position = Vector3(0.000859786, 9.92346, -1.22733)
bones/1/rotation = Quaternion(0.0341866, -0.0149626, 0.00750204, 0.999275)
bones/1/rotation = Quaternion(0.034224, -0.0149729, 0.00749797, 0.999274)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "mixamorig_Spine1"
bones/2/parent = 1
bones/2/rest = Transform3D(1, 1.86323e-05, -7.30208e-09, -1.86323e-05, 1, -0.000392269, -6.79989e-12, 0.000392269, 1, -1.13096e-09, 11.732, 1.20875e-06)
bones/2/enabled = true
bones/2/position = Vector3(-1.13096e-09, 11.732, 1.20875e-06)
bones/2/rotation = Quaternion(0.125114, -0.0184178, 0.0542074, 0.990489)
bones/2/rotation = Quaternion(0.12507, -0.0184348, 0.0542054, 0.990495)
bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "mixamorig_Spine2"
bones/3/parent = 2
bones/3/rest = Transform3D(1, -6.30587e-06, 4.7635e-06, 6.81277e-06, 0.993339, -0.115231, -4.00514e-06, 0.115231, 0.993339, -4.47471e-10, 13.4588, 9.85582e-07)
bones/3/enabled = true
bones/3/position = Vector3(-4.47471e-10, 13.4588, 9.85582e-07)
bones/3/rotation = Quaternion(0.182929, -0.00345339, 0.0505595, 0.981819)
bones/3/rotation = Quaternion(0.182886, -0.00347211, 0.0505617, 0.981827)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "mixamorig_Neck"
bones/4/parent = 3
bones/4/rest = Transform3D(1, 6.23025e-11, 3.44099e-12, -6.2282e-11, 0.999984, -0.0056553, -3.79327e-12, 0.0056553, 0.999984, 2.54808e-05, 15.0277, 0.877905)
bones/4/enabled = true
bones/4/position = Vector3(2.54808e-05, 15.0277, 0.877905)
bones/4/rotation = Quaternion(-0.145638, 0.0325141, -0.0330159, 0.988252)
bones/4/rotation = Quaternion(-0.145632, 0.0325123, -0.0330231, 0.988253)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "mixamorig_Head"
bones/5/parent = 4
bones/5/rest = Transform3D(1, -2.18268e-11, 3.38872e-13, 2.18268e-11, 1, 1.21453e-08, -3.38872e-13, -1.21453e-08, 1, 2.55988e-06, 10.3218, 3.14243)
bones/5/enabled = true
bones/5/position = Vector3(2.55988e-06, 10.3218, 3.14243)
bones/5/rotation = Quaternion(-0.0210257, 0.237777, -0.0423074, 0.97017)
bones/5/rotation = Quaternion(-0.0210308, 0.237778, -0.0423015, 0.97017)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "mixamorig_HeadTop_End"
bones/6/parent = 5
@ -989,28 +991,28 @@ bones/7/parent = 3
bones/7/rest = Transform3D(-0.20123, 0.979319, -0.0210089, 0.00976801, -0.0194404, -0.999763, -0.979495, -0.201387, -0.00565398, 6.10582, 9.10625, 0.75706)
bones/7/enabled = true
bones/7/position = Vector3(6.10582, 9.10625, 0.75706)
bones/7/rotation = Quaternion(-0.541247, -0.520049, 0.463313, -0.471107)
bones/7/rotation = Quaternion(-0.541246, -0.520049, 0.463313, -0.471107)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "mixamorig_LeftArm"
bones/8/parent = 7
bones/8/rest = Transform3D(0.979535, -0.20123, -0.00422908, 0.201275, 0.979318, 0.0205813, 2.98023e-08, -0.0210113, 0.999779, 1.2517e-06, 12.9223, 2.02477e-05)
bones/8/enabled = true
bones/8/position = Vector3(9.33429e-06, 12.9223, -7.56018e-06)
bones/8/rotation = Quaternion(0.33598, -0.378796, 0.365236, 0.781174)
bones/8/rotation = Quaternion(0.336008, -0.378768, 0.36516, 0.781212)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "mixamorig_LeftForeArm"
bones/9/parent = 8
bones/9/rest = Transform3D(1, 2.3344e-08, 1.63133e-08, -2.3344e-08, 1, -1.23929e-06, -1.63133e-08, 1.23929e-06, 1, 1.34292e-05, 27.4047, 1.27254e-05)
bones/9/enabled = true
bones/9/position = Vector3(3.76439e-06, 27.4047, 1.46218e-05)
bones/9/rotation = Quaternion(0.54268, -0.586202, 0.376231, 0.469379)
bones/9/rotation = Quaternion(0.5427, -0.586184, 0.376246, 0.469366)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "mixamorig_LeftHand"
bones/10/parent = 9
bones/10/rest = Transform3D(1, 1.28733e-07, -1.28721e-07, -1.28733e-07, 1, -1.41334e-06, 1.28721e-07, 1.41334e-06, 1, -8.88504e-08, 27.6145, 1.39405e-06)
bones/10/enabled = true
bones/10/position = Vector3(-8.88504e-08, 27.6145, 1.39405e-06)
bones/10/rotation = Quaternion(-0.00450489, -0.370333, 0.0741756, 0.925922)
bones/10/rotation = Quaternion(-0.00451409, -0.370335, 0.0741844, 0.92592)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "mixamorig_LeftHandThumb1"
bones/11/parent = 10
@ -1157,28 +1159,28 @@ bones/31/parent = 3
bones/31/rest = Transform3D(-0.201228, -0.979319, 0.0210167, -0.00976938, -0.0194482, -0.999763, 0.979496, -0.201385, -0.00565398, -6.1057, 9.10635, 0.757074)
bones/31/enabled = true
bones/31/position = Vector3(-6.1057, 9.10635, 0.757074)
bones/31/rotation = Quaternion(0.564823, -0.510705, 0.433008, 0.482347)
bones/31/rotation = Quaternion(0.564829, -0.510698, 0.433, 0.482355)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "mixamorig_RightArm"
bones/32/parent = 31
bones/32/rest = Transform3D(0.979535, 0.201228, 0.00423029, -0.201272, 0.979319, 0.020588, 6.65896e-08, -0.0210181, 0.999779, -3.57628e-07, 12.9223, 1.30742e-05)
bones/32/enabled = true
bones/32/position = Vector3(1.38714e-05, 12.9223, 9.93985e-06)
bones/32/rotation = Quaternion(0.121459, 0.0686106, -0.457335, 0.878285)
bones/32/rotation = Quaternion(0.121488, 0.0685437, -0.457339, 0.878284)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "mixamorig_RightForeArm"
bones/33/parent = 32
bones/33/rest = Transform3D(1, -5.84677e-08, 3.90717e-08, 5.84677e-08, 1, -4.48963e-07, -3.90717e-08, 4.48963e-07, 1, -7.61224e-07, 27.4047, -2.11461e-06)
bones/33/enabled = true
bones/33/position = Vector3(-7.61224e-07, 27.4047, -2.11461e-06)
bones/33/rotation = Quaternion(0.0823482, 0.139563, -0.797482, 0.581175)
bones/33/rotation = Quaternion(0.0823296, 0.139543, -0.797481, 0.581183)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "mixamorig_RightHand"
bones/34/parent = 33
bones/34/rest = Transform3D(1, -4.75946e-09, 4.7599e-09, 4.75946e-09, 1, 5.92689e-07, -4.7599e-09, -5.92689e-07, 1, 1.32686e-05, 27.6144, -7.82493e-06)
bones/34/enabled = true
bones/34/position = Vector3(1.72122e-05, 27.6145, 1.36209e-05)
bones/34/rotation = Quaternion(-0.144791, 0.192789, -0.0644966, 0.968353)
bones/34/rotation = Quaternion(-0.144782, 0.19281, -0.064513, 0.968349)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "mixamorig_RightHandThumb1"
bones/35/parent = 34
@ -1332,21 +1334,21 @@ bones/56/parent = 55
bones/56/rest = Transform3D(0.99993, 0.0118315, 0.000579731, -0.0118447, 0.999273, 0.0362199, -0.000150774, -0.0362242, 0.999344, -8.63573e-07, 40.5994, -7.20611e-08)
bones/56/enabled = true
bones/56/position = Vector3(-8.63573e-07, 40.5994, -7.20611e-08)
bones/56/rotation = Quaternion(-0.766639, -0.00443562, -0.0623043, 0.639033)
bones/56/rotation = Quaternion(-0.766637, -0.00443554, -0.0623044, 0.639036)
bones/56/scale = Vector3(1, 1, 1)
bones/57/name = "mixamorig_LeftFoot"
bones/57/parent = 56
bones/57/rest = Transform3D(0.998342, -0.0264272, 0.0511338, 0.0574903, 0.414367, -0.908292, 0.00281544, 0.909726, 0.415199, -4.32148e-07, 42.099, -4.07919e-07)
bones/57/enabled = true
bones/57/position = Vector3(-4.32148e-07, 42.099, -4.07919e-07)
bones/57/rotation = Quaternion(0.547639, 0.0625631, 0.0248342, 0.834003)
bones/57/rotation = Quaternion(0.547634, 0.0625633, 0.0248344, 0.834006)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "mixamorig_LeftToeBase"
bones/58/parent = 57
bones/58/rest = Transform3D(0.997412, 0.0150935, -0.0702888, -0.0447132, 0.89584, -0.442121, 0.0562943, 0.444119, 0.894197, 1.14934e-06, 15.7216, 8.9407e-07)
bones/58/enabled = true
bones/58/position = Vector3(1.14934e-06, 15.7216, 8.9407e-07)
bones/58/rotation = Quaternion(0.442825, -0.0259829, -0.0121608, 0.896149)
bones/58/rotation = Quaternion(0.442835, -0.0259829, -0.0121603, 0.896144)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "mixamorig_LeftToe_End"
bones/59/parent = 58
@ -1360,28 +1362,28 @@ 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.0339455, 0.334676, 0.92684, -0.166754)
bones/60/rotation = Quaternion(-0.0339464, 0.334675, 0.92684, -0.166755)
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.808726)
bones/61/rotation = Quaternion(-0.581827, -0.0846288, -0.016647, 0.808726)
bones/61/scale = Vector3(1, 1, 1)
bones/62/name = "mixamorig_RightFoot"
bones/62/parent = 61
bones/62/rest = Transform3D(0.998342, 0.0264271, -0.0511337, -0.0574901, 0.414337, -0.908306, -0.0028173, 0.90974, 0.415169, 2.71709e-07, 42.099, -1.01514e-07)
bones/62/enabled = true
bones/62/position = Vector3(2.71709e-07, 42.099, -1.01514e-07)
bones/62/rotation = Quaternion(0.725845, 0.0249646, -0.120038, 0.676843)
bones/62/rotation = Quaternion(0.725848, 0.0249634, -0.120039, 0.67684)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "mixamorig_RightToeBase"
bones/63/parent = 62
bones/63/rest = Transform3D(0.997471, -0.0150664, 0.0694586, 0.044322, 0.895832, -0.442177, -0.0555612, 0.444137, 0.894234, 1.55898e-07, 15.7216, 3.8445e-06)
bones/63/enabled = true
bones/63/position = Vector3(1.55898e-07, 15.7216, 3.8445e-06)
bones/63/rotation = Quaternion(0.245405, 0.0480429, 0.0189423, 0.968044)
bones/63/rotation = Quaternion(0.245405, 0.0480431, 0.0189418, 0.968044)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "mixamorig_RightToe_End"
bones/64/parent = 63
@ -1403,64 +1405,72 @@ surface_material_override/0 = SubResource("StandardMaterial3D_j3emx")
[node name="PhysicalBoneSimulator3D" type="PhysicalBoneSimulator3D" parent="Body/Armature/Skeleton3D" groups=["target"]]
[node name="Physical Bone mixamorig_Hips" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D" groups=["target"]]
transform = Transform3D(82.5044, -54.0559, -16.4615, 55.0482, 83.4649, 1.81949, 12.756, -10.5629, 98.619, 1.315, 0.290637, -87.4646)
transform = Transform3D(82.5044, -54.0559, -16.4615, 55.0482, 83.4649, 1.8195, 12.756, -10.5629, 98.619, 1.31501, 0.290643, -87.4647)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.87147e-07, -2.00234e-08, 0.0499957)
body_offset = Transform3D(100, -0.0695229, -0.0086199, -2.6226e-05, 12.2744, -99.2438, 0.0700493, 99.2438, 12.2744, 0.000459671, 4.96176, -0.613665)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.10511e-07, -1.76951e-08, 0.0499957)
body_offset = Transform3D(100, -0.0695229, -0.00863039, -2.57492e-05, 12.2744, -99.2438, 0.0700531, 99.2438, 12.2744, 0.000462532, 4.96176, -0.613665)
mass = 20.0
bone_name = "mixamorig_Hips"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
script = ExtResource("2_jsfjb")
damage_multiplexer = 1.5
body_part = "hips"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_Hips"]
transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-10, 0.0161502, -2.32831e-11, 1.01774e-18)
shape = SubResource("CapsuleShape3D_0ptuo")
[node name="Physical Bone mixamorig_Spine" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(80.9412, -58.546, -4.56915, 57.6046, 80.6695, -13.1964, 11.4119, 8.04927, 99.0201, 2.40599, 0.973749, -98.2036)
transform = Transform3D(80.9399, -58.5481, -4.56548, 57.6062, 80.6673, -13.2029, 11.4129, 8.0564, 99.0194, 2.40579, 0.974135, -98.2037)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.32957e-08, 4.52838e-09, 0.0586602)
body_offset = Transform3D(100, 1.14441e-05, 9.05991e-06, 4.76837e-06, 2.67029e-05, -100, -1.52588e-05, 100, 2.47955e-05, -2.86102e-06, 5.86602, -1.90735e-06)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.79713e-09, -8.36489e-09, 0.05866)
body_offset = Transform3D(100, 2.28882e-05, -4.76837e-06, 9.53674e-07, 3.24249e-05, -100, -2.28882e-05, 100, 3.05176e-05, 0, 5.866, -9.53674e-07)
mass = 20.0
bone_name = "mixamorig_Spine"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
script = ExtResource("2_jsfjb")
damage_multiplexer = 1.5
body_part = "spine"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_Spine"]
transform = Transform3D(0.0318071, 3.86358e-14, 4.9738e-14, -2.13163e-14, -1.62981e-09, 0.0318071, -4.26326e-14, -0.0318071, -1.62981e-09, -0.00245133, -5.91656e-09, -0.223859)
shape = SubResource("CapsuleShape3D_126jt")
[node name="Physical Bone mixamorig_Head" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D" groups=["target"]]
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.8018, 4.48619, 20.364, -15.845, -79.4738, -58.5905, 13.5555, -60.5292, 78.4376, -13.8186, 23.4966, -143.637)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.79326e-07, 7.82311e-08, 0.0981532)
body_offset = Transform3D(-100, -0.00219822, -0.000780106, -5.24521e-06, 33.8066, -94.1122, 0.00232792, -94.1122, -33.8067, 4.86374e-05, 9.23741, 3.31824)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.0589e-07, 7.45058e-08, 0.0981534)
body_offset = Transform3D(-100, -0.00221062, -0.000787735, -1.19209e-05, 33.8066, -94.1122, 0.00233173, -94.1122, -33.8066, 4.673e-05, 9.23743, 3.31824)
mass = 7.0
bone_name = "mixamorig_Head"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
joint_constraints/impulse_clamp = 0.0
script = ExtResource("2_jsfjb")
damage_multiplexer = 2.0
body_part = "head"
[node name="CollisionShape3D" type="CollisionShape3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D/Physical Bone mixamorig_Head" groups=["target"]]
transform = Transform3D(0.0099, 2.91038e-10, 0, -3.49246e-10, 9.31323e-10, 0.0099, 1.16415e-10, -0.0099, 4.65661e-10, 0, 0, 0)
transform = Transform3D(0.0099, 0, 0, 0, 0.0099, 0, 0, 0, 0.0099, 0, 0, 0)
shape = SubResource("CapsuleShape3D_1gw5y")
[node name="Physical Bone mixamorig_LeftArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(86.1165, 14.0252, -48.8594, -45.4995, 64.1262, -61.787, 22.6659, 75.4396, 61.6046, 16.1942, 31.0309, -132.592)
transform = Transform3D(86.116, 14.0289, -48.8593, -45.502, 64.1247, -61.7867, 22.6629, 75.4402, 61.605, 16.193, 31.0319, -132.592)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.78517e-08, 1.63042e-07, 0.137023)
body_offset = Transform3D(100, -6.67572e-05, -2.67029e-05, 5.91278e-05, 100, -7.62939e-06, 2.28882e-05, 7.62939e-06, 100, 1.14441e-05, -1.52588e-05, -13.7023)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.07897e-08, 1.8395e-07, 0.137023)
body_offset = Transform3D(100, -6.10352e-05, -4.57764e-05, 7.05719e-05, 100, -2.28882e-05, 1.90735e-05, 3.8147e-06, 100, 1.33514e-05, -1.52588e-05, -13.7023)
mass = 3.0
bone_name = "mixamorig_LeftArm"
joint_constraints/bias = 0.3
@ -1472,12 +1482,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.36483, 46.9033, -104.66)
transform = Transform3D(-48.2559, -12.0561, 86.7526, -78.7314, -37.4274, -48.9954, 38.3762, -91.9448, 8.56898, 1.36465, 46.9037, -104.66)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.52414e-07, -1.05341e-08, 0.138072)
body_offset = Transform3D(100, 3.05176e-05, -4.19617e-05, -3.8147e-05, 0, -100, -3.8147e-06, 100, 7.62939e-06, 6.10352e-05, 13.8072, 0)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.36614e-07, -2.63348e-09, 0.138072)
body_offset = Transform3D(100, 7.62939e-06, -5.34058e-05, -3.05176e-05, 0, -100, 7.62939e-06, 100, 1.90735e-06, 6.10352e-05, 13.8072, 0)
mass = 3.0
bone_name = "mixamorig_LeftForeArm"
joint_constraints/bias = 0.3
@ -1489,12 +1499,12 @@ 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.9684, 56.2242, -106.442)
transform = Transform3D(9.1154, -98.6768, 13.4087, 23.9481, -10.8975, -96.4766, 96.6613, 12.0054, 22.6379, -10.9687, 56.2244, -106.443)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.86265e-09, -4.19095e-09, 0.0264902)
body_offset = Transform3D(-58.5197, 57.9894, 56.6805, 2.28882e-05, 69.899, -71.5132, -81.0891, -41.8493, -40.9047, -1.50148, 1.8944, 1.08357)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.58325e-08, -8.61473e-08, 0.0264902)
body_offset = Transform3D(-58.5197, 57.9894, 56.6805, 1.52588e-05, 69.899, -71.5131, -81.0891, -41.8493, -40.9047, -1.50147, 1.8944, 1.08357)
bone_name = "mixamorig_LeftHand"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
@ -1505,12 +1515,12 @@ transform = Transform3D(0.01, 0, 0, 0, 0.00697578, 0.00716509, 0, -0.00716509, 0
shape = SubResource("CapsuleShape3D_5fgdh")
[node name="Physical Bone mixamorig_RightArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(30.7246, 72.8896, 61.1809, 93.7855, -34.092, -6.48191, 16.1331, 59.3704, -78.8345, -27.5296, -1.29566, -110.13)
transform = Transform3D(30.7225, 72.891, 61.1803, 93.7858, -34.0919, -6.4783, 16.1354, 59.3687, -78.8353, -27.5288, -1.29731, -110.131)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.43743e-08, 1.22206e-07, 0.137023)
body_offset = Transform3D(100, -5.72205e-06, 1.04904e-05, 6.67572e-06, 6.67572e-06, -100, -1.90735e-06, 100, 2.21729e-05, 0, 13.7023, -1.52588e-05)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5515e-08, 2.72834e-07, 0.137023)
body_offset = Transform3D(100, 0, 1.33514e-05, 1.00136e-05, 8.10623e-06, -100, 3.8147e-06, 100, 2.36034e-05, 5.72205e-06, 13.7023, -3.05176e-05)
mass = 3.0
bone_name = "mixamorig_RightArm"
joint_constraints/bias = 0.3
@ -1522,12 +1532,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CapsuleShape3D_8vkyv")
[node name="Physical Bone mixamorig_RightForeArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(24.3552, 37.4063, 89.4851, -25.0101, 91.5653, -31.4688, -93.7087, -14.716, 31.6563, -48.2682, 3.9375, -103.698)
transform = Transform3D(24.3602, 37.4045, 89.4846, -25.0076, 91.5666, -31.467, -93.7081, -14.7125, 31.6598, -48.2673, 3.93511, -103.7)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.64439e-07, -1.82153e-07, 0.138072)
body_offset = Transform3D(100, 1.71661e-05, -8.58307e-06, -3.24249e-05, 100, 2.09808e-05, 3.00407e-05, -2.28882e-05, 100, -1.52588e-05, 1.53184e-05, -13.8072)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.66977e-07, -2.58653e-07, 0.138072)
body_offset = Transform3D(100, 2.47955e-05, -2.38419e-05, -3.24249e-05, 100, 3.62396e-05, 4.24385e-05, -2.86102e-05, 100, -5.34058e-05, 2.08616e-05, -13.8072)
mass = 3.0
bone_name = "mixamorig_RightForeArm"
joint_constraints/bias = 0.3
@ -1539,12 +1549,12 @@ transform = Transform3D(0.01, 0, 0, 0, 0.00999714, -0.000239087, 0, 0.000239087,
shape = SubResource("CapsuleShape3D_fh1k4")
[node name="Physical Bone mixamorig_RightHand" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(89.0767, -24.8074, -38.0781, 5.05123, 88.6726, -45.9527, 45.1645, 39.0097, 80.2397, -24.5745, 26.0951, -105.517)
transform = Transform3D(89.0766, -24.8072, -38.0785, 5.05096, 88.6727, -45.9525, 45.1647, 39.0096, 80.2396, -24.5741, 26.0933, -105.517)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.0396e-07, 3.1013e-07, 0.0264904)
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.08361)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.3935e-07, 3.21772e-07, 0.0264905)
body_offset = Transform3D(-58.5197, -57.9893, -56.6806, -7.62939e-06, 69.8991, -71.513, 81.0891, -41.8492, -40.9048, 1.5015, 1.89439, 1.08362)
bone_name = "mixamorig_RightHand"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
@ -1555,12 +1565,12 @@ transform = Transform3D(0.01, 0, 0, 0, 0.00693402, 0.00720551, 0, -0.00720551, 0
shape = SubResource("CapsuleShape3D_1m8r5")
[node name="Physical Bone mixamorig_LeftUpLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-96.1774, -26.2683, 7.73899, -23.4202, 64.2555, -72.957, 14.1919, -71.9806, -67.9513, 5.83709, 19.601, -60.9754)
transform = Transform3D(-96.1774, -26.2683, 7.73898, -23.4202, 64.2555, -72.957, 14.1919, -71.9806, -67.9513, 5.83709, 19.601, -60.9755)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40401e-07, 1.12726e-07, 0.202997)
body_offset = Transform3D(100, -7.34329e-05, 2.47955e-05, 2.09808e-05, 6.10352e-05, -100, 7.53403e-05, 100, 5.72205e-05, -1.90735e-05, 20.2997, -2.28882e-05)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.70518e-08, 2.19423e-07, 0.202997)
body_offset = Transform3D(100, -7.82013e-05, 2.28882e-05, 2.86102e-05, 5.72205e-05, -100, 7.62939e-05, 100, 6.10352e-05, -1.33514e-05, 20.2997, -3.43323e-05)
mass = 5.0
bone_name = "mixamorig_LeftUpLeg"
joint_constraints/bias = 0.3
@ -1572,12 +1582,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CapsuleShape3D_3cygo")
[node name="Physical Bone mixamorig_LeftLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-97.5216, -11.6193, -18.8291, -22.0483, 58.1427, 78.3154, 1.84805, 80.5259, -59.2635, 8.22949, 17.9261, -34.7068)
transform = Transform3D(-97.5216, -11.6195, -18.829, -22.0484, 58.1432, 78.315, 1.84803, 80.5255, -59.2641, 8.22949, 17.9262, -34.7068)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.01575e-09, -1.30455e-08, 0.210495)
body_offset = Transform3D(100, 2.86102e-06, 1.14441e-05, 5.72205e-06, 0, -100, -9.53674e-07, 100, 1.52588e-05, -1.90735e-06, 21.0495, -1.90735e-06)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.01487e-09, -5.92223e-08, 0.210495)
body_offset = Transform3D(100, -2.86102e-06, -1.90735e-06, 3.8147e-06, 1.14441e-05, -100, 3.8147e-06, 100, 1.90735e-05, 0, 21.0495, 1.90735e-06)
mass = 5.0
bone_name = "mixamorig_LeftLeg"
joint_constraints/bias = 0.3
@ -1589,12 +1599,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.1342, -22.1132, -97.501, 11.7385, 3.12728, -14.5678)
transform = Transform3D(-93.6711, -34.5298, 5.7808, -34.9452, 91.207, -21.4502, 2.13422, -22.1128, -97.5011, 11.7385, 3.12743, -14.5676)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.45754e-08, 1.53424e-07, 0.0786083)
body_offset = Transform3D(100, 3.05176e-05, 5.72205e-06, 6.67572e-06, -3.05176e-05, -100, -2.28882e-05, 100, -4.95911e-05, -1.90735e-06, 7.86083, -1.14441e-05)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.32068e-08, 1.41355e-07, 0.0786084)
body_offset = Transform3D(100, 2.28882e-05, 3.33786e-06, 8.10623e-06, -3.62396e-05, -100, -3.24249e-05, 100, -1.90735e-05, -8.58307e-06, 7.86084, -1.26362e-05)
bone_name = "mixamorig_LeftFoot"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
@ -1605,12 +1615,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CapsuleShape3D_qyg6j")
[node name="Physical Bone mixamorig_RightUpLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-83.6898, -51.5224, 18.4786, -50.5592, 59.8312, -62.161, 20.9708, -61.3651, -76.122, -11.4062, 7.37456, -61.646)
transform = Transform3D(-83.6897, -51.5226, 18.4784, -50.5593, 59.8312, -62.161, 20.9711, -61.3649, -76.122, -11.4061, 7.37456, -61.6461)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.86102e-08, 1.54874e-08, 0.202997)
body_offset = Transform3D(100, -1.52588e-05, 0, 5.72205e-06, -1.14441e-05, -100, 1.14441e-05, 100, -7.62939e-06, -2.86102e-06, 20.2997, 0)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.97626e-08, 1.89829e-15, 0.202997)
body_offset = Transform3D(100, -3.8147e-06, -5.72205e-06, -7.62939e-06, -3.05176e-05, -100, -3.8147e-06, 100, 0, -3.8147e-06, 20.2997, 0)
mass = 5.0
bone_name = "mixamorig_RightUpLeg"
joint_constraints/bias = 0.3
@ -1622,12 +1632,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CapsuleShape3D_a81km")
[node name="Physical Bone mixamorig_RightLeg" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-91.8175, -23.5086, -31.8888, -36.0102, 83.0805, 42.437, 16.517, 50.4478, -84.7479, -8.44487, 11.0604, -28.3544)
transform = Transform3D(-91.8174, -23.5085, -31.8891, -36.0103, 83.0804, 42.437, 16.5174, 50.4479, -84.7478, -8.44469, 11.0604, -28.3545)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.47925e-08, -3.73912e-07, 0.210495)
body_offset = Transform3D(100, -4.95911e-05, 1.43051e-05, 2.86102e-06, 6.86646e-05, -100, 5.72205e-05, 100, 9.15527e-05, -1.04904e-05, 21.0495, 1.81198e-05)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.71532e-07, -2.44424e-07, 0.210495)
body_offset = Transform3D(100, -8.7738e-05, -1.23978e-05, -4.76837e-06, 8.01086e-05, -100, 8.96454e-05, 100, 5.72205e-05, -1.45435e-05, 21.0495, 1.23978e-05)
mass = 5.0
bone_name = "mixamorig_RightLeg"
joint_constraints/bias = 0.3
@ -1639,12 +1649,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CylinderShape3D_2binp")
[node name="Physical Bone mixamorig_RightFoot" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D" groups=["target"]]
transform = Transform3D(-88.192, -17.3351, 43.8368, -46.8549, 42.4443, -77.4796, -5.17505, -88.8705, -45.5549, -5.17837, 8.21811, -6.93437)
transform = Transform3D(-88.192, -17.3349, 43.8369, -46.855, 42.4437, -77.4799, -5.17492, -88.8709, -45.5542, -5.17813, 8.21814, -6.93456)
collision_layer = 8
collision_mask = 9
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.24152e-08, 3.328e-08, 0.078608)
body_offset = Transform3D(100, 1.14441e-05, -7.62939e-06, -7.62939e-06, -7.62939e-05, -100, 0, 100, -0.000102997, 5.84126e-06, 7.8608, 4.76837e-06)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.21032e-08, -1.68616e-08, 0.078608)
body_offset = Transform3D(100, 0, -3.8147e-06, -7.62939e-06, -0.000114441, -100, -3.8147e-06, 100, -8.7738e-05, 7.51019e-06, 7.8608, 8.58307e-06)
bone_name = "mixamorig_RightFoot"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0

View File

@ -1,6 +1,7 @@
extends PhysicalBone3D
@export var damage_multiplexer: float = 1.0
@export var body_part: String = ""
signal body_part_hit(damage: int)
# Called when the node enters the scene tree for the first time.
@ -12,6 +13,6 @@ func _process(delta: float) -> void:
pass
func hit(base_damage: int):
print("HEAD")
print("got hit in " + body_part)
var final_damage = round(base_damage * damage_multiplexer)
$"../../../../.."._hit_detected(final_damage)

View File

@ -0,0 +1,17 @@
extends CharacterBody3D
var health = 100
var alive = true
func take_damage(damage: int):
print("I")
func _physics_process(delta: float) -> void:
if health == 0:
alive = false
var world: Node3D = find_parent("Map")
var spawner: MultiplayerSpawner = world.find_child("ObjectSpawner").find_child("MultiplayerSpawner")
var objects_root: Node3D = world.find_child("ObjectSpawner").find_child("Objects")
#reparent(get_tree().get_root())
$Dummy.die()
#queue_free()

View File

@ -0,0 +1,16 @@
[gd_scene load_steps=4 format=3 uid="uid://b7vj5j6wxqrfr"]
[ext_resource type="Script" path="res://scenes/characters/npc/zombie/zombie.gd" id="1_2j0kt"]
[ext_resource type="PackedScene" uid="uid://1txob6jskn5s" path="res://scenes/characters/blue/dummy.tscn" id="1_qd8fb"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_t4cyd"]
height = 1.6
[node name="PlayerPlaceholder_Zombie" type="CharacterBody3D"]
script = ExtResource("1_2j0kt")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.801503, -0.185051)
shape = SubResource("CapsuleShape3D_t4cyd")
[node name="Dummy" parent="." instance=ExtResource("1_qd8fb")]

File diff suppressed because one or more lines are too long

View File

@ -4,10 +4,12 @@ class_name MapController extends Node
const PLAYER_SPAWNER: String = "res://scenes/maps/base/player_spawner/player_spawner.tscn"
const OBJECT_SPAWNER: String = "res://scenes/maps/base/object_spawner/object_spawner.tscn"
const BULLET_SPAWNER: String = "res://scenes/maps/base/bullet_spawner/bullet_spawner.tscn"
const NPC_SPAWNER: String = "res://scenes/maps/base/npc_spawner/npc_spawner.tscn"
var player_spawner: PlayerSpawnerController
var object_spawner: Node3D
var bullet_spawner: BulletSpawnerController
var npc_spawner: Node3D
@onready var spawn_locations: SpawnController = $SpawnLocations
func _on_player_connected(id):
@ -89,6 +91,17 @@ func _add_bullet_spawner() -> Error :
add_child(node)
bullet_spawner = node
return OK
func _add_npc_spawner() -> Error :
if not ResourceLoader.exists(NPC_SPAWNER):
return ERR_DOES_NOT_EXIST
var scene: PackedScene = ResourceLoader.load(NPC_SPAWNER)
if not scene.can_instantiate():
return ERR_CANT_OPEN
var node: Node3D = scene.instantiate()
add_child(node)
npc_spawner = node
return OK
# -- TODO: Better bullet naming handler
var bullet_amount: int = -2147483647

View File

@ -0,0 +1,8 @@
[gd_scene format=3 uid="uid://bgb01iv0fekje"]
[node name="NpcSpawner" type="Node3D"]
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."]
spawn_path = NodePath("../NPC")
[node name="NPC" type="Node3D" parent="."]

View File

@ -1,7 +1,9 @@
[gd_scene load_steps=76 format=4 uid="uid://dddu0t2sdcy8h"]
[gd_scene load_steps=79 format=4 uid="uid://dddu0t2sdcy8h"]
[ext_resource type="Script" path="res://scenes/maps/base/map_loader.gd" id="1_innhj"]
[ext_resource type="Script" path="res://scenes/maps/base/spawn_controller.gd" id="2_1ss1b"]
[ext_resource type="PackedScene" uid="uid://cdcbn8mglqlyh" path="res://scenes/maps/tools/hit_detector.tscn" id="3_hjypr"]
[ext_resource type="PackedScene" uid="uid://b7vj5j6wxqrfr" path="res://scenes/characters/npc/zombie/zombie.tscn" id="4_32d4x"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_umuqw"]
resource_name = "Material_146"
@ -755,14 +757,17 @@ sky = SubResource("Sky_8ov8p")
ambient_light_source = 3
ambient_light_color = Color(1, 1, 1, 1)
reflected_light_source = 2
ssao_enabled = true
glow_enabled = true
fog_density = 0.3
fog_enabled = true
fog_density = 0.103
fog_height = 1.5
fog_height_density = 2.0
volumetric_fog_density = 0.5118
volumetric_fog_albedo = Color(0.574998, 0.574998, 0.574998, 1)
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_402xp"]
dof_blur_far_transition = -1.0
[node name="Map" type="Node3D"]
script = ExtResource("1_innhj")
@ -973,10 +978,11 @@ use_collision = true
[node name="Light" type="Node3D" parent="."]
[node name="MainLight" type="DirectionalLight3D" parent="Light"]
transform = Transform3D(-0.080856, -0.707107, 0.702469, -0.0808559, 0.707107, 0.702469, -0.993441, 1.60778e-07, -0.114348, 79.2354, 89.2354, -3.02637e-06)
transform = Transform3D(-0.080856, -0.707107, 0.702469, -0.0808559, 0.707107, 0.702469, -0.993441, 1.60778e-07, -0.114348, 54.2751, 36.4316, 6.32922)
light_energy = 3.325
light_indirect_energy = 3.457
light_volumetric_fog_energy = 1.64
shadow_enabled = true
directional_shadow_mode = 1
[node name="SpawnLocations" type="Node3D" parent="."]
@ -1018,3 +1024,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -42.595, -0.0187502, -17.3639
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_3ha0j")
camera_attributes = SubResource("CameraAttributesPractical_402xp")
[node name="HitDetector" parent="." instance=ExtResource("3_hjypr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 32.1837, 9.29777, -7.02714)
[node name="Zombie" parent="." instance=ExtResource("4_32d4x")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 32.4367, -0.00937653, -3.80586)

View File

@ -0,0 +1,24 @@
extends CSGBox3D
class_name HitDetector
var health = 5
@export var color: Color = Color(0, 0, 0)
var colors = [Color(1.0, 0.0, 0.0, 1.0),
Color(0.0, 1.0, 0.0, 1.0),
Color(0.0, 0.0, 1.0, 0.0)]
func hit(damage: int):
color = Color(randf(), randf(), randf())
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
material_override.albedo_color = color
if health < 1:
queue_free()

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=5 format=3 uid="uid://cdcbn8mglqlyh"]
[ext_resource type="Script" path="res://scenes/maps/tools/hit_detector.gd" id="1_4w4v8"]
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_8tws6"]
properties/0/path = NodePath("Box:color")
properties/0/spawn = true
properties/0/replication_mode = 1
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_petk4"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5m44n"]
[node name="HitDetector" type="Node3D"]
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." groups=["target"]]
replication_config = SubResource("SceneReplicationConfig_8tws6")
[node name="Box" type="CSGBox3D" parent="." groups=["target"]]
material_override = SubResource("StandardMaterial3D_petk4")
use_collision = true
collision_layer = 9
material = SubResource("StandardMaterial3D_5m44n")
script = ExtResource("1_4w4v8")

View File

@ -8,8 +8,12 @@ class_name PlayerPlaceholder
@onready var server_node: PlayerServerNode = $ServerControlledNode
@export var character_speed: int = 5
@onready var bullet_starting_poing: Node3D = $ServerControlledNode/BulletStartingPoint
@export var default_weapon: String = "deagle"
@export var weapon_slot_1: String = "ak"
@export var weapon_slot_2: String = "deagle"
@export var weapon_slot_3: String = ""
@export var weapon_slot_4: String = ""
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
@ -18,10 +22,14 @@ func _ready() -> void:
$PlayerControlledNode/CameraMount.set_multiplayer_authority(owner_id)
switch_players_camera.rpc_id(owner_id)
server_node.global_position = initial_position
client_node.global_position = server_node.global_position
client_node.rotation.y = server_node.rotation.y
client_node.rotation.x = server_node.rotation.x
client_node.set_default_weapon_meta.rpc_id(owner_id, 1, "ak")
client_node.set_default_weapon_meta.rpc_id(owner_id, 2, "deagle")
client_node.set_default_weapon_meta.rpc_id(owner_id, 3, "vector")
client_node._preload_weapon.rpc_id(owner_id)
if multiplayer.is_server():
$Timer.start()
if owner_id != multiplayer.get_unique_id():
@ -30,7 +38,8 @@ func _ready() -> void:
pass
#client_node._add_legs_to_first_view()
func _set_default_weapon():
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
#if desired_player_state.globa_position != real_player_state.globa_position:

View File

@ -3,7 +3,6 @@
[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="PackedScene" uid="uid://dtvo21mk1webd" path="res://scenes/weapon/guns/ak/with_hands.tscn" id="3_xxv4y"]
[ext_resource type="PackedScene" uid="uid://1txob6jskn5s" path="res://scenes/characters/blue/dummy.tscn" id="5_16l76"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_taqso"]
@ -17,6 +16,10 @@ font_size = 70
font_size = 100
font_color = Color(0.756874, 0, 0.223924, 1)
[sub_resource type="Environment" id="Environment_i2xeo"]
sdfgi_enabled = true
glow_enabled = true
[sub_resource type="Animation" id="Animation_falg4"]
length = 0.001
tracks/0/type = "value"
@ -184,8 +187,10 @@ size = Vector2i(1920, 1964)
render_target_update_mode = 4
[node name="Camera3D" type="Camera3D" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.30409, -0.371306)
cull_mask = 524288
fov = 40.0
environment = SubResource("Environment_i2xeo")
fov = 50.0
[node name="GunMount" type="Node3D" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D"]
@ -194,12 +199,8 @@ libraries = {
"": SubResource("AnimationLibrary_u1b6p")
}
[node name="WithHands" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D/GunMount" instance=ExtResource("3_xxv4y")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, -0.3, -0.4, 0)
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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -0.00364852)
[node name="Node3D" type="Node3D" parent="PlayerControlledNode"]
@ -217,7 +218,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.786919, 0)
shape = SubResource("CapsuleShape3D_taqso")
[node name="BulletStartingPoint" type="Node3D" parent="ServerControlledNode"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.287, -0.54568)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.287, -0.37786)
[node name="Dummy" parent="ServerControlledNode" instance=ExtResource("5_16l76")]
visible = false

View File

@ -18,7 +18,7 @@ const JUMP_VELOCITY = 4.5
#func _ready() -> void:
var current_gun: String = "ak"
var current_gun: String = "m1"
@onready var gun_mount: Node3D = $CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D/GunMount
@onready var gun_mount_anim: AnimationPlayer = $CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D/GunMount/AnimationPlayer
var gun_with_hands: Node3D = null
@ -30,28 +30,79 @@ var current_weapon_bullet_speed: int
var current_weapon_cooldown_interwal: float
var look_dir: Vector2
var moving = false
@export var equipment_meta: Dictionary = {}
@export var equipment: Dictionary = {}
var chosen_weapon: int = 1
func _ready() -> void:
global_position = $"..".initial_position
_add_legs_to_first_view()
# -- 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.3, -0.4, 0)
#current_weapon_bullet_speed = node.bullet_speed
#current_weapon_cooldown_interwal = node.cooldown
#current_weapon_damage = node.damage
#gun_with_hands = node
#gun_mount.add_child(node)
@rpc('any_peer', 'call_local', "reliable")
func set_default_weapon_meta(slot: int, name: String):
equipment_meta[slot] = name
print(equipment_meta)
func load_weapon(name: String) -> Error:
var path_tmpl := "res://scenes/weapon/guns/%s/with_hands.tscn"
var path := path_tmpl % current_gun
var path := path_tmpl % name
var scene: PackedScene = ResourceLoader.load(path)
var node: Node3D = scene.instantiate()
node.scale = Vector3(0.5,0.5,0.5)
node.position = Vector3(-0.3, -0.4, 0)
current_weapon_bullet_speed = node.bullet_speed
current_weapon_cooldown_interwal = node.cooldown
current_weapon_damage = node.damage
gun_with_hands = node
gun_mount.add_child(node)
return OK
@rpc('any_peer', 'call_local', "reliable")
func _preload_weapon():
for i in equipment_meta:
var weapon_name = equipment_meta[i]
print(weapon_name)
var path_tmpl := "res://scenes/weapon/guns/%s/with_hands.tscn"
var path := path_tmpl % weapon_name
var scene: PackedScene = ResourceLoader.load(path)
var node: Node3D = scene.instantiate()
node.scale = Vector3(0.5,0.5,0.5)
node.position = Vector3(-0.3, -0.4, 0)
node.name = "CurrentWeapon"
node.visible = 0
equipment[weapon_name] = node
gun_mount.add_child(node)
func _choose_weapon(slot: int):
if chosen_weapon != slot:
if equipment_meta.has(chosen_weapon):
if equipment.has(equipment_meta[chosen_weapon]):
if equipment[equipment_meta[chosen_weapon]] != null:
equipment[equipment_meta[chosen_weapon]].visible = 0
chosen_weapon = slot
if equipment_meta.has(slot):
var desired_weapon: String = equipment_meta[slot]
if equipment.has(desired_weapon):
equipment[equipment_meta[chosen_weapon]].visible = 1
func _input(event):
if multiplayer.get_unique_id() == get_multiplayer_authority():
if Input.is_action_just_pressed("jump"): jumping = true
if Input.is_action_just_pressed("shoot"): shooting = true
if Input.is_action_just_released("shoot"): shooting = false
if Input.is_action_just_pressed("weapon_slot_1"): _choose_weapon(1)
if Input.is_action_just_pressed("weapon_slot_2"): _choose_weapon(2)
if Input.is_action_just_pressed("weapon_slot_3"): _choose_weapon(3)
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
@ -95,9 +146,11 @@ func _physics_process(delta: float) -> void:
func _process(delta: float) -> void:
if moving:
gun_mount_anim.play("move")
pass
#gun_mount_anim.play("move")
else:
gun_mount_anim.stop()
pass
#gun_mount_anim.stop()
move_and_slide()

View File

@ -14,7 +14,7 @@ func _ready() -> void:
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
func _physics_process(delta):
var time_per_frame: float = 1 / Engine.get_frames_per_second()
var distance: float = time_per_frame * speed * 1.5
ray.target_position.z = distance
@ -26,12 +26,10 @@ func _process(delta):
var collider = ray.get_collider()
if collider != null and collider.is_in_group("target"):
ray.get_collider().hit(damage)
if collider != null and not collider.is_in_group("ghost"):
queue_free()
rigid_body_3d.visible = false
particles.emitting = true
#if ray.get_collider().is_in_group("body"):
await get_tree().create_timer(1.0).timeout
queue_free()
func _on_timer_timeout():
queue_free()

View File

@ -352,10 +352,12 @@ transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0,
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.702784, -0.458912, 0)
[node name="Object_6" type="MeshInstance3D" parent="50ae deagle 8rnd mag (magnum inc)_1"]
layers = 524289
mesh = SubResource("ArrayMesh_at46t")
skeleton = NodePath("")
[node name="Object_7" type="MeshInstance3D" parent="50ae deagle 8rnd mag (magnum inc)_1"]
layers = 524289
mesh = SubResource("ArrayMesh_omok5")
skeleton = NodePath("")
@ -363,6 +365,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39328, 0)
[node name="Object_13" type="MeshInstance3D" parent="deagle barrel_3"]
layers = 524289
mesh = SubResource("ArrayMesh_eh67u")
skeleton = NodePath("")
@ -370,6 +373,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.340227, 0.308393, 0)
[node name="Object_15" type="MeshInstance3D" parent="deagle slide & bolt_4"]
layers = 524289
mesh = SubResource("ArrayMesh_0mfi1")
skeleton = NodePath("")
@ -377,10 +381,12 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0017804, -0.00284932, 0)
[node name="Object_17" type="MeshInstance3D" parent="deagle frame_5"]
layers = 524289
mesh = SubResource("ArrayMesh_n6s72")
skeleton = NodePath("")
[node name="Object_18" type="MeshInstance3D" parent="deagle frame_5"]
layers = 524289
mesh = SubResource("ArrayMesh_g8sfg")
skeleton = NodePath("")
@ -388,6 +394,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.03671, 0.122806, 0)
[node name="Object_20" type="MeshInstance3D" parent="deagle hammer_6"]
layers = 524289
mesh = SubResource("ArrayMesh_rder1")
skeleton = NodePath("")
@ -395,6 +402,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.289837, 0.0127702, 0)
[node name="Object_22" type="MeshInstance3D" parent="deagle slide release_7"]
layers = 524289
mesh = SubResource("ArrayMesh_nm1qm")
skeleton = NodePath("")
@ -402,6 +410,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.289837, 0.0127702, 0)
[node name="Object_24" type="MeshInstance3D" parent="deagle trigga_8"]
layers = 524289
mesh = SubResource("ArrayMesh_6vr8d")
skeleton = NodePath("")
@ -409,5 +418,6 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.880028, 0.353879, 0)
[node name="Object_26" type="MeshInstance3D" parent="deagle safety_9"]
layers = 524289
mesh = SubResource("ArrayMesh_qveh3")
skeleton = NodePath("")

View File

@ -569,7 +569,7 @@ _data = {
script = ExtResource("1_pwx7d")
[node name="Gun" parent="." instance=ExtResource("2_xd57f")]
transform = Transform3D(-3.61999e-06, 0, 1, 0, 1, 0, -1, 0, -3.61999e-06, 1, -0.3, -6.4)
transform = Transform3D(-3.61999e-06, 0, 1, 0, 1, 0, -1, 0, -3.61999e-06, 1.37554, -0.3, -5.61269)
[node name="HandsNount" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.892999, -0.197934, -6.45866)
@ -579,86 +579,103 @@ transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0, 0, 0)
[node name="hand" type="MeshInstance3D" parent="HandsNount/LeftHand"]
transform = Transform3D(0.017243, -0.999851, 0, 0.999851, 0.0172429, 0, 0, 0, 1, 0.0604441, -1.48798, 5.58251)
layers = 524289
mesh = SubResource("ArrayMesh_kns8q")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="HandsNount/LeftHand/hand"]
transform = Transform3D(0.838921, -0.00227217, -0.544249, 0.127745, 0.972877, 0.192848, 0.529049, -0.231309, 0.816458, -1.90735e-06, -0.118854, 0.00119209)
layers = 524289
mesh = SubResource("ArrayMesh_714yc")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="HandsNount/LeftHand/hand"]
transform = Transform3D(0.999928, -0.00607729, 0.0103503, 0.00417694, 0.984629, 0.174608, -0.0112524, -0.174552, 0.984584, 0.635515, 5.96046e-08, -1.8433)
layers = 524289
mesh = SubResource("ArrayMesh_8khc4")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/index_0"]
transform = Transform3D(0.999954, -0.00928965, 0.00246585, 0.00884504, 0.989813, 0.142097, -0.00376076, -0.142068, 0.98985, 0, 4.76837e-07, -0.520542)
layers = 524289
mesh = SubResource("ArrayMesh_pl1un")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/index_0/index_1"]
transform = Transform3D(0.999995, -0.00251388, -0.0017382, 0.00303726, 0.880775, 0.473525, 0.000340577, -0.473528, 0.880778, 1.19209e-07, 0, -0.496836)
layers = 524289
mesh = SubResource("ArrayMesh_jg5hp")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="HandsNount/LeftHand/hand"]
transform = Transform3D(1, -2.87512e-09, 2.22359e-08, -2.87511e-09, 0.967113, 0.254349, -2.22359e-08, -0.254349, 0.967113, 0.219422, -2.84217e-14, -1.96367)
layers = 524289
mesh = SubResource("ArrayMesh_r4jrw")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/middle_0"]
transform = Transform3D(0.99999, 0.00290334, -0.00345655, -0.000566929, 0.840435, 0.541912, 0.00447836, -0.541904, 0.840428, 0, -2.38419e-07, -0.595448)
layers = 524289
mesh = SubResource("ArrayMesh_b8au2")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/middle_0/middle_1"]
transform = Transform3D(0.999977, 0.00565156, -0.00364683, -0.00243919, 0.809996, 0.58643, 0.00626817, -0.586408, 0.809991, 1.19209e-07, 4.76837e-07, -0.576577)
layers = 524289
mesh = SubResource("ArrayMesh_7ykdv")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="HandsNount/LeftHand/hand"]
transform = Transform3D(1, -1.18514e-09, -1.43461e-08, -1.18514e-09, 0.986444, -0.164101, 1.43461e-08, 0.164101, 0.986444, -0.636916, 0, -1.87594)
layers = 524289
mesh = SubResource("ArrayMesh_pfqob")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/pinky_0"]
transform = Transform3D(0.999827, 0.00839673, -0.0165888, 0.0124575, 0.359801, 0.932946, 0.0138024, -0.932991, 0.359634, -4.76837e-07, -9.53674e-07, -0.50863)
layers = 524289
mesh = SubResource("ArrayMesh_274rt")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/pinky_0/pinky_1"]
transform = Transform3D(0.999989, 0.000408818, -0.00463841, 0.00108977, 0.947926, 0.318489, 0.00452707, -0.31849, 0.947915, -2.38419e-07, 0, -0.484157)
layers = 524289
mesh = SubResource("ArrayMesh_kxx5d")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="HandsNount/LeftHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22161, 0, -1.94957)
layers = 524289
mesh = SubResource("ArrayMesh_3t00j")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/ring_0"]
transform = Transform3D(0.999889, 0.00891773, -0.0119886, 0.00647315, 0.464619, 0.885488, 0.0134667, -0.885466, 0.464509, 0, 0, -0.57841)
layers = 524289
mesh = SubResource("ArrayMesh_1inwa")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/ring_0/ring_1"]
transform = Transform3D(1, -9.99309e-07, 2.53413e-06, 5.12227e-07, 0.982674, 0.185341, -2.67476e-06, -0.185341, 0.982674, 0, 0, -0.558438)
layers = 524289
mesh = SubResource("ArrayMesh_lqg6m")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="HandsNount/LeftHand/hand"]
transform = Transform3D(0.622335, 1.02049, -0.090116, -0.679455, 0.490067, 0.857314, 0.766716, -0.394025, 0.832886, 0.713653, -0.171155, -0.268099)
layers = 524289
mesh = SubResource("ArrayMesh_qhvx2")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/thumb_0"]
transform = Transform3D(0.454518, 0.871776, 0.182807, -0.562354, 0.440004, -0.700109, -0.690775, 0.21541, 0.690238, 0.418848, 0, -0.541472)
layers = 524289
mesh = SubResource("ArrayMesh_6mwj2")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="HandsNount/LeftHand/hand/thumb_0/thumb_1"]
transform = Transform3D(0.855091, -0.0944566, 0.509801, 0.0528752, 0.994025, 0.0954866, -0.515774, -0.054694, 0.854977, 0.286444, 2.38419e-07, -0.397435)
layers = 524289
mesh = SubResource("ArrayMesh_3qmci")
skeleton = NodePath("")
@ -667,86 +684,103 @@ transform = Transform3D(0.0154179, -0.39772, 0.0397626, 0.3997, 0.0154947, -4.34
[node name="hand" type="MeshInstance3D" parent="HandsNount/RightHand"]
transform = Transform3D(0.938182, -0.264282, -0.223536, 0.267023, 0.963515, -0.0184445, 0.220254, -0.0423846, 0.974523, 0.244512, 1.41786, -0.120203)
layers = 524289
mesh = SubResource("ArrayMesh_kns8q")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="HandsNount/RightHand/hand"]
transform = Transform3D(0.911527, -0.261569, -0.317335, 0.200638, 0.956443, -0.212044, 0.358977, 0.129614, 0.924303, 0, -0.118854, 0.00119233)
layers = 524289
mesh = SubResource("ArrayMesh_714yc")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="HandsNount/RightHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.635515, 0, -1.8433)
layers = 524289
mesh = SubResource("ArrayMesh_8khc4")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="HandsNount/RightHand/hand/index_0"]
transform = Transform3D(0.97186, -0.151231, 0.180602, 0.152949, 0.988224, 0.0044579, -0.17915, 0.0232906, 0.983546, -0.00261259, 0.0673971, -0.520541)
layers = 524289
mesh = SubResource("ArrayMesh_pl1un")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="HandsNount/RightHand/hand/index_0/index_1"]
transform = Transform3D(0.938727, -0.108255, -0.32722, -0.191027, 0.626817, -0.755387, 0.286882, 0.77161, 0.56773, -4.76837e-07, -4.76837e-07, -0.496837)
layers = 524289
mesh = SubResource("ArrayMesh_jg5hp")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="HandsNount/RightHand/hand"]
transform = Transform3D(0.988908, 0.0967651, 0.11268, -0.0380662, 0.898432, -0.437459, -0.143566, 0.428318, 0.89215, 0.210801, -0.00161457, -2.02209)
layers = 524289
mesh = SubResource("ArrayMesh_r4jrw")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="HandsNount/RightHand/hand/middle_0"]
transform = Transform3D(0.980904, -0.0947717, -0.169842, -0.0846826, 0.578027, -0.811612, 0.175091, 0.810495, 0.558963, -0.00528598, -0.0232601, -0.540816)
layers = 524289
mesh = SubResource("ArrayMesh_b8au2")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="HandsNount/RightHand/hand/middle_0/middle_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0139632, -0.00054121, -0.559071)
layers = 524289
mesh = SubResource("ArrayMesh_7ykdv")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="HandsNount/RightHand/hand"]
transform = Transform3D(0.99448, 0.0968483, -0.040361, -0.10475, 0.894417, -0.434795, -0.00600898, 0.436623, 0.899625, -0.626153, -0.00739431, -1.82089)
layers = 524289
mesh = SubResource("ArrayMesh_pfqob")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="HandsNount/RightHand/hand/pinky_0"]
transform = Transform3D(0.992472, 0.117781, -0.0335934, -0.107407, 0.70515, -0.700876, -0.0588621, 0.699207, 0.712491, 0.004601, 0.101186, -0.574392)
layers = 524289
mesh = SubResource("ArrayMesh_274rt")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="HandsNount/RightHand/hand/pinky_0/pinky_1"]
transform = Transform3D(0.997492, -0.0416478, -0.0572349, 0.00359704, 0.837365, -0.546632, 0.0706927, 0.545055, 0.835414, 4.76837e-07, -9.53674e-07, -0.484157)
layers = 524289
mesh = SubResource("ArrayMesh_kxx5d")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="HandsNount/RightHand/hand"]
transform = Transform3D(0.995147, 0.0957334, 0.0227501, -0.0799641, 0.921527, -0.379991, -0.0573428, 0.376327, 0.92471, -0.22375, 0.0090065, -1.9462)
layers = 524289
mesh = SubResource("ArrayMesh_3t00j")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="HandsNount/RightHand/hand/ring_0"]
transform = Transform3D(0.987205, 0.107622, -0.117666, -0.155072, 0.475994, -0.865669, -0.0371562, 0.872839, 0.486593, 0.00103188, 0.0315599, -0.607413)
layers = 524289
mesh = SubResource("ArrayMesh_1inwa")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="HandsNount/RightHand/hand/ring_0/ring_1"]
transform = Transform3D(0.999942, -0.00820966, -0.00692331, 0.00690099, 0.985162, -0.171487, 0.00822844, 0.171429, 0.985162, -5.96046e-08, 0, -0.558439)
layers = 524289
mesh = SubResource("ArrayMesh_lqg6m")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="HandsNount/RightHand/hand"]
transform = Transform3D(0.781211, -0.802499, -0.42722, 0.742911, 0.888178, -0.30989, 0.524025, -0.0628175, 1.07622, 0.473039, 0.152636, -0.540639)
layers = 524289
mesh = SubResource("ArrayMesh_qhvx2")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="HandsNount/RightHand/hand/thumb_0"]
transform = Transform3D(0.944493, 0.10769, 0.310379, 0.00222689, 0.942629, -0.333833, -0.328522, 0.315995, 0.890067, 0.418848, -1.78814e-07, -0.541475)
layers = 524289
mesh = SubResource("ArrayMesh_6mwj2")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="HandsNount/RightHand/hand/thumb_0/thumb_1"]
transform = Transform3D(0.789391, 0.00601005, 0.613862, -0.20452, 0.945403, 0.253744, -0.578821, -0.325851, 0.74752, 0.286444, 2.38419e-07, -0.397435)
layers = 524289
mesh = SubResource("ArrayMesh_3qmci")
skeleton = NodePath("")

View File

@ -286,16 +286,19 @@ transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0,
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.23532, 0.346247, 0.000749123)
[node name="Object_6" type="MeshInstance3D" parent="3006 m1gar clip 8rnd empty (garand)_1"]
layers = 524289
mesh = SubResource("ArrayMesh_lbnb6")
skeleton = NodePath("")
[node name="m1 garand_3" type="Node3D" parent="."]
[node name="Object_12" type="MeshInstance3D" parent="m1 garand_3"]
layers = 524289
mesh = SubResource("ArrayMesh_jxy1l")
skeleton = NodePath("")
[node name="Object_13" type="MeshInstance3D" parent="m1 garand_3"]
layers = 524289
mesh = SubResource("ArrayMesh_m3jyl")
skeleton = NodePath("")
@ -303,6 +306,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.52944, 0.463358, 0)
[node name="Object_15" type="MeshInstance3D" parent="m1gar reload handle_4"]
layers = 524289
mesh = SubResource("ArrayMesh_p3wst")
skeleton = NodePath("")
@ -310,6 +314,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.05925, 0.0738102, 0)
[node name="Object_17" type="MeshInstance3D" parent="m1gar follower_5"]
layers = 524289
mesh = SubResource("ArrayMesh_w7wjx")
skeleton = NodePath("")
@ -317,6 +322,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.00218, 0.0140908, 0)
[node name="Object_19" type="MeshInstance3D" parent="m1gar trigga_6"]
layers = 524289
mesh = SubResource("ArrayMesh_8ger5")
skeleton = NodePath("")
@ -324,6 +330,7 @@ skeleton = NodePath("")
transform = Transform3D(0.0663535, 0, 0, 0, 0.0663535, 0, 0, 0, 0.0199075, -1.73294, -0.0684423, 0)
[node name="Object_21" type="MeshInstance3D" parent="m1gar safety_7"]
layers = 524289
mesh = SubResource("ArrayMesh_3qbwi")
skeleton = NodePath("")
@ -331,5 +338,6 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.916197, 0.599432, -0.000388713)
[node name="Object_23" type="MeshInstance3D" parent="m1gar bolt carrier_8"]
layers = 524289
mesh = SubResource("ArrayMesh_mui3s")
skeleton = NodePath("")

View File

@ -552,105 +552,6 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_vqajq")
[sub_resource type="Animation" id="Animation_os83d"]
resource_name = "shot"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Gun:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(1.61348, -0.274324, -2.91155), Vector3(1.613, -0.274, -1.912), Vector3(1.61348, -0.274324, -2.91155)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Gun:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-3.498e-09, 1.60076, 0.101526), Vector3(0, 1.60047, 0.275762), Vector3(-3.498e-09, 1.60076, 0.101526)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("RightHand:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(2.07307, -0.567408, -0.0471716), Vector3(2.073, -1.067, 1.047), Vector3(2.07307, -0.567408, -0.0471716)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("LeftHand:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.743494, -0.274324, -2.8409), Vector3(-0.743, 0.124, -2.341), Vector3(-0.743494, -0.274324, -2.8409)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("RightHand:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.32218, -0.0875629, 1.89252), Vector3(-0.148353, -0.261799, 1.7174), Vector3(-0.32218, -0.0875629, 1.89252)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("RightHand/hand/index_0/index_1/index_2:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 0.0666667, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.552377, -0.0925758, 0.224916), Vector3(0.551524, -0.790634, 0.225147), Vector3(0.552377, -0.0925758, 0.224916)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("RightHand/hand/thumb_0:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.29132, -0.28541, 0.792097), Vector3(-0.274017, -0.286234, 1.14145), Vector3(-0.29132, -0.28541, 0.792097)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("LeftHand:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.101526, 0.0299673, -3.14159), Vector3(0.101229, 0.0296706, -3.14159), Vector3(0.101526, 0.0299673, -3.14159)]
}
[sub_resource type="Animation" id="Animation_u60x6"]
length = 0.001
tracks/0/type = "value"
@ -750,6 +651,105 @@ tracks/7/keys = {
"values": [Vector3(0.101526, 0.0299673, -3.14159)]
}
[sub_resource type="Animation" id="Animation_os83d"]
resource_name = "shot"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Gun:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(1.61348, -0.274324, -2.91155), Vector3(1.613, -0.274, -1.912), Vector3(1.61348, -0.274324, -2.91155)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Gun:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-3.498e-09, 1.60076, 0.101526), Vector3(0, 1.60047, 0.275762), Vector3(-3.498e-09, 1.60076, 0.101526)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("RightHand:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(2.07307, -0.567408, -0.0471716), Vector3(2.073, -1.067, 1.047), Vector3(2.07307, -0.567408, -0.0471716)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("LeftHand:position")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.743494, -0.274324, -2.8409), Vector3(-0.743, 0.124, -2.341), Vector3(-0.743494, -0.274324, -2.8409)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("RightHand:rotation")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.32218, -0.0875629, 1.89252), Vector3(-0.148353, -0.261799, 1.7174), Vector3(-0.32218, -0.0875629, 1.89252)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("RightHand/hand/index_0/index_1/index_2:rotation")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 0.0666667, 1),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.552377, -0.0925758, 0.224916), Vector3(0.551524, -0.790634, 0.225147), Vector3(0.552377, -0.0925758, 0.224916)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("RightHand/hand/thumb_0:rotation")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(-0.29132, -0.28541, 0.792097), Vector3(-0.274017, -0.286234, 1.14145), Vector3(-0.29132, -0.28541, 0.792097)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("LeftHand:rotation")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.0666667, 0.933333),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Vector3(0.101526, 0.0299673, -3.14159), Vector3(0.101229, 0.0296706, -3.14159), Vector3(0.101526, 0.0299673, -3.14159)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_i7e7t"]
_data = {
"RESET": SubResource("Animation_u60x6"),
@ -760,181 +760,215 @@ _data = {
script = ExtResource("1_m3jaa")
[node name="Gun" parent="." instance=ExtResource("1_krf2i")]
transform = Transform3D(-0.0298086, 0.00303679, 0.999551, 0.101352, 0.994851, 3.498e-09, -0.994404, 0.101306, -0.0299629, 1.61348, -0.274324, -2.91155)
transform = Transform3D(-0.0298049, 0.00303641, 0.999551, 0.101352, 0.994851, 3.498e-09, -0.994404, 0.101306, -0.0299592, 1.61348, -0.274324, -2.91155)
[node name="RightHand" type="Node3D" parent="."]
transform = Transform3D(-0.115487, -0.381526, -0.0331805, 0.359952, -0.119972, 0.126654, -0.130756, 0.00670867, 0.377965, 2.07307, -0.567408, -0.0471716)
transform = Transform3D(-0.115488, -0.381526, -0.0331806, 0.359951, -0.119973, 0.126654, -0.130756, 0.00670924, 0.377965, 2.07307, -0.567408, -0.0471716)
[node name="hand" type="MeshInstance3D" parent="RightHand"]
transform = Transform3D(0.999878, -0.0113375, -0.0107538, 0.0109766, 0.999394, -0.0330333, 0.0111219, 0.0329112, 0.999396, 0.0448582, 0.153481, 0.934615)
layers = 524289
mesh = SubResource("ArrayMesh_gfbur")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.99943, -0.0308143, -0.0138291, 0.0302077, 0.998656, -0.0421146, 0.0151082, 0.0416729, 0.999018, 0, -0.118853, 0.00119257)
layers = 524289
mesh = SubResource("ArrayMesh_p027r")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.97874, -0.174322, -0.10807, 0.111506, 0.894478, -0.432984, 0.172145, 0.411728, 0.8949, 0.635516, 0, -1.8433)
layers = 524289
mesh = SubResource("ArrayMesh_a5f5j")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="RightHand/hand/index_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.520542)
layers = 524289
mesh = SubResource("ArrayMesh_o8oks")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="RightHand/hand/index_0/index_1"]
transform = Transform3D(0.95982, -0.269354, -0.0786954, 0.189856, 0.829838, -0.524712, 0.206638, 0.488689, 0.847634, 4.76837e-07, -4.76837e-07, -0.496836)
transform = Transform3D(0.95982, -0.269354, -0.0786953, 0.189856, 0.829838, -0.524712, 0.206638, 0.488689, 0.847634, 4.76837e-07, -4.76837e-07, -0.496836)
layers = 524289
mesh = SubResource("ArrayMesh_etl30")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.820027, -0.572323, 0.00157543, 0.153026, 0.216603, -0.964192, 0.551488, 0.790904, 0.265201, 0.219423, -5.96046e-08, -1.96367)
layers = 524289
mesh = SubResource("ArrayMesh_wmu88")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="RightHand/hand/middle_0"]
transform = Transform3D(0.887272, -0.4609, -0.0178873, 0.239437, 0.493389, -0.836204, 0.394232, 0.737657, 0.548127, 0, 4.76837e-07, -0.59545)
layers = 524289
mesh = SubResource("ArrayMesh_5rofx")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="RightHand/hand/middle_0/middle_1"]
transform = Transform3D(0.969754, -0.233924, -0.069684, 0.174505, 0.864074, -0.472149, 0.170659, 0.445708, 0.87876, -2.38419e-07, -2.38419e-07, -0.576577)
layers = 524289
mesh = SubResource("ArrayMesh_cbjny")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.807752, -0.589058, 0.0234082, 0.124715, 0.131939, -0.983381, 0.57618, 0.797247, 0.180038, -0.636916, 5.96046e-08, -1.87594)
layers = 524289
mesh = SubResource("ArrayMesh_rkiog")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="RightHand/hand/pinky_0"]
transform = Transform3D(0.842041, -0.535791, 0.062405, 0.219177, 0.234136, -0.947176, 0.492877, 0.811239, 0.314586, 0, 0, -0.508631)
layers = 524289
mesh = SubResource("ArrayMesh_fcjxo")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="RightHand/hand/pinky_0/pinky_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.484157)
layers = 524289
mesh = SubResource("ArrayMesh_gkp3s")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.773581, -0.62896, 0.0773416, 0.104342, 0.00604073, -0.994523, 0.625048, 0.777414, 0.0703001, -0.22161, -2.98023e-08, -1.94957)
layers = 524289
mesh = SubResource("ArrayMesh_yijby")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="RightHand/hand/ring_0"]
transform = Transform3D(0.913093, -0.40623, -0.0351745, 0.233763, 0.592204, -0.771135, 0.334089, 0.695896, 0.635699, -1.19209e-07, -4.76837e-07, -0.578411)
layers = 524289
mesh = SubResource("ArrayMesh_qhlng")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="RightHand/hand/ring_0/ring_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.558439)
layers = 524289
mesh = SubResource("ArrayMesh_oc8jg")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.876835, -0.750651, -0.323268, 0.817298, 0.806421, 0.344279, 0.00188308, -0.472257, 1.10172, 0.630965, 0.0891449, -0.395118)
transform = Transform3D(0.876835, -0.750651, -0.323268, 0.817298, 0.806421, 0.344279, 0.00188222, -0.472257, 1.10172, 0.630965, 0.0891449, -0.395118)
layers = 524289
mesh = SubResource("ArrayMesh_eskeg")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="RightHand/hand/thumb_0"]
transform = Transform3D(0.939586, 0.0412881, -0.339814, -0.00946513, 0.995454, 0.0947787, 0.342183, -0.0858363, 0.935704, 0.418848, 0, -0.541475)
layers = 524289
mesh = SubResource("ArrayMesh_chiaf")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="RightHand/hand/thumb_0/thumb_1"]
transform = Transform3D(0.979773, -0.081366, 0.182824, -0.00440877, 0.904607, 0.426224, -0.200064, -0.418409, 0.88595, 0.286444, -3.57628e-07, -0.397435)
layers = 524289
mesh = SubResource("ArrayMesh_3dk54")
skeleton = NodePath("")
[node name="LeftHand" type="Node3D" parent="."]
transform = Transform3D(-0.39982, -0.00121465, 0.0119234, -6.00873e-08, -0.39794, -0.0405407, 0.0119851, -0.0405224, 0.397762, -0.743494, -0.274324, -2.8409)
transform = Transform3D(-0.39982, -0.0012137, 0.0119234, -1.00885e-06, -0.39794, -0.0405407, 0.011985, -0.0405225, 0.397762, -0.743494, -0.274324, -2.8409)
[node name="hand" type="MeshInstance3D" parent="LeftHand"]
transform = Transform3D(0.371303, 5.49624e-08, 0.928512, 5.49624e-08, 1, -8.11731e-08, -0.928512, 8.11731e-08, 0.371303, -4.22105, 3.69016e-07, -1.30315)
layers = 524289
mesh = SubResource("ArrayMesh_gfbur")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.549625, 0.70194, -0.45298, -0.528408, 0.712083, 0.462301, 0.647067, -0.0147343, 0.762289, -0.0545573, -0.118854, -0.135237)
layers = 524289
mesh = SubResource("ArrayMesh_p027r")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.969705, -0.232235, -0.0757588, 0.232235, 0.780256, 0.580747, -0.0757589, -0.580747, 0.810551, 0.616934, 0.142436, -1.88976)
layers = 524289
mesh = SubResource("ArrayMesh_a5f5j")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="LeftHand/hand/index_0"]
transform = Transform3D(0.981015, -0.188032, -0.0474758, 0.188032, 0.862293, 0.470208, -0.0474758, -0.470208, 0.881278, 2.38419e-07, 1.11759e-08, -0.520542)
layers = 524289
mesh = SubResource("ArrayMesh_o8oks")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="LeftHand/hand/index_0/index_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.496836)
layers = 524289
mesh = SubResource("ArrayMesh_etl30")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.969705, -0.232235, -0.0757588, 0.232235, 0.780256, 0.580747, -0.0757589, -0.580747, 0.810551, 0.222566, -0.0240999, -1.95581)
layers = 524289
mesh = SubResource("ArrayMesh_wmu88")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="LeftHand/hand/middle_0"]
transform = Transform3D(0.97541, -0.211647, -0.0614923, 0.211647, 0.821637, 0.529262, -0.0614923, -0.529262, 0.846227, 0, 2.23517e-08, -0.59545)
layers = 524289
mesh = SubResource("ArrayMesh_5rofx")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="LeftHand/hand/middle_0/middle_1"]
transform = Transform3D(0.991358, -0.129395, -0.0216121, 0.129395, 0.937312, 0.323577, -0.0216122, -0.323577, 0.945955, -2.38419e-07, 2.98023e-08, -0.576577)
layers = 524289
mesh = SubResource("ArrayMesh_cbjny")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.971854, -0.224825, -0.0703848, 0.224825, 0.795843, 0.562216, -0.0703849, -0.562216, 0.82399, -0.636916, 0, -1.87594)
layers = 524289
mesh = SubResource("ArrayMesh_rkiog")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="LeftHand/hand/pinky_0"]
transform = Transform3D(0.932403, -0.319454, -0.16904, 0.319454, 0.509687, 0.798854, -0.16904, -0.798854, 0.577285, -1.19209e-07, 1.42109e-14, -0.508631)
layers = 524289
mesh = SubResource("ArrayMesh_fcjxo")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="LeftHand/hand/pinky_0/pinky_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.484157)
layers = 524289
mesh = SubResource("ArrayMesh_gkp3s")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.969705, -0.232235, -0.0757588, 0.232235, 0.780256, 0.580747, -0.0757589, -0.580747, 0.810551, -0.206173, -0.118337, -1.91097)
layers = 524289
mesh = SubResource("ArrayMesh_yijby")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="LeftHand/hand/ring_0"]
transform = Transform3D(0.972767, -0.221557, -0.0681025, 0.221557, 0.802464, 0.554044, -0.0681025, -0.554044, 0.829697, -1.19209e-07, 3.91155e-08, -0.578411)
layers = 524289
mesh = SubResource("ArrayMesh_qhlng")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="LeftHand/hand/ring_0/ring_1"]
transform = Transform3D(0.988766, -0.146808, -0.0280926, 0.146808, 0.918515, 0.36712, -0.0280926, -0.36712, 0.929749, 0, -2.98023e-08, -0.558439)
layers = 524289
mesh = SubResource("ArrayMesh_oc8jg")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(1.10921, 0.452975, 0.0357747, -0.452975, 1.09491, 0.18114, 0.0357746, -0.18114, 1.18437, 0.71163, -0.0538707, -0.365427)
layers = 524289
mesh = SubResource("ArrayMesh_eskeg")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="LeftHand/hand/thumb_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.418848, 0, -0.541475)
layers = 524289
mesh = SubResource("ArrayMesh_chiaf")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="LeftHand/hand/thumb_0/thumb_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.286444, 0, -0.397435)
layers = 524289
mesh = SubResource("ArrayMesh_3dk54")
skeleton = NodePath("")

View File

@ -288,10 +288,12 @@ transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0,
transform = Transform3D(2.32615, 0, 0, 0, 2.32615, 0, 0, 0, 0.186304, 0.709893, 0.122355, 0)
[node name="Object_4" type="MeshInstance3D" parent="Cube_0"]
layers = 524289
mesh = SubResource("ArrayMesh_akyio")
skeleton = NodePath("")
[node name="Object_5" type="MeshInstance3D" parent="Cube_0"]
layers = 524289
mesh = SubResource("ArrayMesh_m3e74")
skeleton = NodePath("")
@ -299,6 +301,7 @@ skeleton = NodePath("")
transform = Transform3D(0.0527493, 0, 0, 0, 0.0527493, 0, 0, 0, 0.0527493, -0.195483, 0.553212, 0.171812)
[node name="Object_7" type="MeshInstance3D" parent="Cube_005_3"]
layers = 524289
mesh = SubResource("ArrayMesh_g6ol6")
skeleton = NodePath("")
@ -306,6 +309,7 @@ skeleton = NodePath("")
transform = Transform3D(0.21111, 0, 0, 0, 0.21111, 0, 0, 0, 0.21111, -6.12243, -1.58424, -0.573743)
[node name="Object_9" type="MeshInstance3D" parent="Cube_005_3/Cube_006_1"]
layers = 524289
mesh = SubResource("ArrayMesh_n3uhl")
skeleton = NodePath("")
@ -313,6 +317,7 @@ skeleton = NodePath("")
transform = Transform3D(0.789892, 0, 0, 0, 0.789892, 0, 0, 0, 3.29548, 2.14959, -3.87967, -3.25715)
[node name="Object_11" type="MeshInstance3D" parent="Cube_005_3/Cube_007_2"]
layers = 524289
mesh = SubResource("ArrayMesh_3hery")
skeleton = NodePath("")
@ -320,10 +325,12 @@ skeleton = NodePath("")
transform = Transform3D(0.0386846, 0, -0.0324602, 0, 0.0581218, 0, 0.0324602, 0, 0.0386846, 2.27595, 0.733596, -0.215461)
[node name="Object_13" type="MeshInstance3D" parent="Cylinder_005_4"]
layers = 524289
mesh = SubResource("ArrayMesh_hpbo5")
skeleton = NodePath("")
[node name="Object_14" type="MeshInstance3D" parent="Cylinder_005_4"]
layers = 524289
mesh = SubResource("ArrayMesh_8rkoc")
skeleton = NodePath("")
@ -331,5 +338,6 @@ skeleton = NodePath("")
transform = Transform3D(-0.153886, 0, 0, 0, -0.153886, 0, 0, 0, -0.152651, 0.34946, -1.21305, 0)
[node name="Object_16" type="MeshInstance3D" parent="Cube_008_5"]
layers = 524289
mesh = SubResource("ArrayMesh_s6ert")
skeleton = NodePath("")

View File

@ -613,86 +613,103 @@ transform = Transform3D(0.0408408, -0.984904, 0.168219, 0.996085, 0.0269236, -0.
[node name="hand" type="MeshInstance3D" parent="RightHand"]
transform = Transform3D(1, -1.43108e-08, 2.32831e-09, 6.00153e-10, 1, 1.53668e-08, 0, 1.04308e-07, 1, -0.269174, 1.56694, 1.21121)
layers = 524289
mesh = SubResource("ArrayMesh_gfbur")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.871517, -0.157204, -0.464483, 0.110835, 0.985857, -0.125701, 0.477674, 0.05807, 0.876616, 2.98023e-08, -0.118854, 0.00119209)
layers = 524289
mesh = SubResource("ArrayMesh_p027r")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.984493, -0.122734, -0.125338, 0.102921, 0.982715, -0.153881, 0.142058, 0.138595, 0.980107, 0.635515, -5.96046e-08, -1.8433)
layers = 524289
mesh = SubResource("ArrayMesh_a5f5j")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="RightHand/hand/index_0"]
transform = Transform3D(0.946835, 0.29709, -0.123457, -0.27356, 0.5415, -0.794948, -0.169319, 0.786458, 0.593983, 0, 1.19209e-07, -0.520541)
layers = 524289
mesh = SubResource("ArrayMesh_o8oks")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="RightHand/hand/index_0/index_1"]
transform = Transform3D(0.970442, 0.204583, -0.128019, -0.215486, 0.495688, -0.841344, -0.108667, 0.844061, 0.525121, 0, 0, -0.496836)
layers = 524289
mesh = SubResource("ArrayMesh_etl30")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.975999, 0.214539, 0.0373925, 0.0241975, 0.0638048, -0.997669, -0.216425, 0.974629, 0.057082, 0.219422, -1.78814e-07, -1.96367)
layers = 524289
mesh = SubResource("ArrayMesh_wmu88")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="RightHand/hand/middle_0"]
transform = Transform3D(0.94363, 0.318152, -0.0913353, -0.312235, 0.763972, -0.564673, -0.109874, 0.56136, 0.820245, -7.45058e-09, 9.53674e-07, -0.59545)
layers = 524289
mesh = SubResource("ArrayMesh_5rofx")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="RightHand/hand/middle_0/middle_1"]
transform = Transform3D(0.989598, 0.131216, 0.0589736, -0.00316459, 0.429695, -0.902969, -0.143825, 0.893389, 0.42564, -5.96046e-08, 2.38419e-07, -0.576577)
layers = 524289
mesh = SubResource("ArrayMesh_cbjny")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.99408, 0.103446, 0.0332422, 0.024702, 0.0827707, -0.996262, -0.105811, 0.991185, 0.0797254, -0.635763, -0.0419329, -1.90412)
layers = 524289
mesh = SubResource("ArrayMesh_rkiog")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="RightHand/hand/pinky_0"]
transform = Transform3D(0.995022, 0.0749402, -0.0656893, -0.0944399, 0.49865, -0.861643, -0.0318157, 0.863557, 0.503246, 0, 0, -0.508631)
layers = 524289
mesh = SubResource("ArrayMesh_fcjxo")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="RightHand/hand/pinky_0/pinky_1"]
transform = Transform3D(0.999955, 0.00162155, 0.00930269, 0.00162154, 0.941026, -0.338331, -0.00930269, 0.338331, 0.940981, 0, -1.19209e-07, -0.484157)
layers = 524289
mesh = SubResource("ArrayMesh_gkp3s")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.992155, 0.12016, 0.0344936, 0.0245565, 0.0832197, -0.996229, -0.122577, 0.98926, 0.0796161, -0.222763, 0.0419325, -1.92139)
layers = 524289
mesh = SubResource("ArrayMesh_yijby")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="RightHand/hand/ring_0"]
transform = Transform3D(0.99566, 0.0810487, -0.045745, -0.0890128, 0.68581, -0.722316, -0.0271704, 0.723253, 0.690048, 0, -7.15256e-07, -0.57841)
layers = 524289
mesh = SubResource("ArrayMesh_qhlng")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="RightHand/hand/ring_0/ring_1"]
transform = Transform3D(0.971497, -0.0080527, -0.236915, -0.182113, 0.614437, -0.76766, 0.151751, 0.788925, 0.595457, 1.19209e-07, 1.19209e-07, -0.558438)
layers = 524289
mesh = SubResource("ArrayMesh_oc8jg")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="RightHand/hand"]
transform = Transform3D(0.36322, -1.0865, 0.352709, 0.981858, 0.107787, -0.679085, 0.583819, 0.494686, 0.922638, 0.71163, -0.053871, -0.365427)
layers = 524289
mesh = SubResource("ArrayMesh_eskeg")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="RightHand/hand/thumb_0"]
transform = Transform3D(0.883964, 0.0726299, 0.461879, -0.161858, 0.974315, 0.156561, -0.438645, -0.213153, 0.873015, 0.418848, 0, -0.541475)
layers = 524289
mesh = SubResource("ArrayMesh_chiaf")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="RightHand/hand/thumb_0/thumb_1"]
transform = Transform3D(0.75652, -0.00190737, 0.653967, -0.248903, 0.923895, 0.29063, -0.604752, -0.382642, 0.69847, 0.286444, 0, -0.397435)
layers = 524289
mesh = SubResource("ArrayMesh_3dk54")
skeleton = NodePath("")
@ -701,86 +718,103 @@ transform = Transform3D(-0.986566, -0.0137548, 0.16278, -8.71123e-08, -0.996449,
[node name="hand" type="MeshInstance3D" parent="LeftHand"]
transform = Transform3D(0.466661, 0.785545, 0.406383, -0.845509, 0.531056, -0.0556173, -0.259502, -0.317646, 0.912009, -1.49496, 0.726891, 1.1859)
layers = 524289
mesh = SubResource("ArrayMesh_gfbur")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.712907, 0.152723, -0.684426, -0.120474, 0.988159, 0.0950107, 0.690832, 0.0147217, 0.722865, -1.78814e-07, -0.118854, 0.00119257)
layers = 524289
mesh = SubResource("ArrayMesh_p027r")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.909011, -0.158529, -0.385444, 0.411197, 0.491891, 0.767437, 0.0679352, -0.856103, 0.512321, 0.635515, 0, -1.8433)
layers = 524289
mesh = SubResource("ArrayMesh_a5f5j")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="LeftHand/hand/index_0"]
transform = Transform3D(0.360161, 0.878315, -0.314399, -0.562462, 0.473317, 0.677943, 0.744258, -0.0673311, 0.66449, 0, 0, -0.520542)
layers = 524289
mesh = SubResource("ArrayMesh_o8oks")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="LeftHand/hand/index_0/index_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.496836)
layers = 524289
mesh = SubResource("ArrayMesh_etl30")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.924177, -0.108991, -0.366084, 0.375786, 0.431125, 0.820315, 0.0684203, -0.895686, 0.439393, 0.219422, 1.19209e-07, -1.96367)
layers = 524289
mesh = SubResource("ArrayMesh_wmu88")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="LeftHand/hand/middle_0"]
transform = Transform3D(0.708612, 0.631376, -0.315015, -0.185389, 0.597361, 0.780251, 0.680809, -0.494494, 0.540347, 0, -1.19209e-07, -0.595449)
layers = 524289
mesh = SubResource("ArrayMesh_5rofx")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="LeftHand/hand/middle_0/middle_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.576577)
layers = 524289
mesh = SubResource("ArrayMesh_cbjny")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.949731, -0.0267719, -0.311921, 0.311436, 0.182385, 0.9326, 0.0319221, -0.982863, 0.181554, -0.636916, 1.19209e-07, -1.87594)
layers = 524289
mesh = SubResource("ArrayMesh_rkiog")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="LeftHand/hand/pinky_0"]
transform = Transform3D(0.845672, 0.407715, -0.344394, 0.0722414, 0.551905, 0.830772, 0.528791, -0.72744, 0.437277, 2.98023e-08, 1.19209e-07, -0.508631)
layers = 524289
mesh = SubResource("ArrayMesh_fcjxo")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="LeftHand/hand/pinky_0/pinky_1"]
transform = Transform3D(1, 2.98023e-08, 5.21541e-08, 0, 1, -1.49012e-08, -2.23517e-08, -2.98023e-08, 1, 0.00217819, 0.0183992, -0.48227)
layers = 524289
mesh = SubResource("ArrayMesh_gkp3s")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.95303, -0.0217418, -0.302094, 0.293032, 0.318418, 0.901522, 0.0765916, -0.947701, 0.309833, -0.22161, 1.78814e-07, -1.94957)
layers = 524289
mesh = SubResource("ArrayMesh_yijby")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="LeftHand/hand/ring_0"]
transform = Transform3D(0.816171, 0.380333, -0.434983, 0.161581, 0.572547, 0.803792, 0.554757, -0.726317, 0.405842, 5.96046e-08, 0, -0.57841)
layers = 524289
mesh = SubResource("ArrayMesh_qhlng")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="LeftHand/hand/ring_0/ring_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.558439)
layers = 524289
mesh = SubResource("ArrayMesh_oc8jg")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="LeftHand/hand"]
transform = Transform3D(0.576737, 0.855954, -0.60954, -0.783882, 0.813511, 0.400686, 0.699803, 0.205824, 0.951176, 0.454804, -0.12109, 0.12852)
layers = 524289
mesh = SubResource("ArrayMesh_eskeg")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="LeftHand/hand/thumb_0"]
transform = Transform3D(1, 2.98023e-08, -5.96046e-08, -2.98023e-08, 1, 0, 2.98023e-08, 0, 1, 0.416817, 0.00282621, -0.539943)
layers = 524289
mesh = SubResource("ArrayMesh_chiaf")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="LeftHand/hand/thumb_0/thumb_1"]
transform = Transform3D(0.856745, 0.336987, 0.390422, -0.409412, 0.904753, 0.117492, -0.313642, -0.260503, 0.913109, 0.286444, -1.78814e-07, -0.397435)
layers = 524289
mesh = SubResource("ArrayMesh_3dk54")
skeleton = NodePath("")