diff --git a/godot/Scenes/Characters/zombie.tscn b/godot/Scenes/Characters/zombie.tscn index 0ff2593..e8d8589 100644 --- a/godot/Scenes/Characters/zombie.tscn +++ b/godot/Scenes/Characters/zombie.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=25 format=3 uid="uid://bjuf33f7oteit"] +[gd_scene load_steps=27 format=3 uid="uid://bjuf33f7oteit"] [ext_resource type="Texture2D" uid="uid://yrlrk74j3no" path="res://Assets/Models/Characters/zombie_mremireh_body__diffuse.png" id="1_xkx2p"] [ext_resource type="Texture2D" uid="uid://byrx1euloda3v" path="res://Assets/Models/Characters/zombie_mremireh_body_normal.png" id="2_0tyam"] @@ -264,6 +264,7 @@ height = 63.798 [sub_resource type="Animation" id="Animation_miu52"] resource_name = "Attack" length = 1.66667 +step = 0.001 tracks/0/type = "position_3d" tracks/0/imported = true tracks/0/enabled = true @@ -922,6 +923,20 @@ tracks/93/path = NodePath("Armature/Skeleton3D:mixamorig_RightToe_End") tracks/93/interp = 1 tracks/93/loop_wrap = true tracks/93/keys = PackedFloat32Array(0, 1, 1.8974e-06, 23.512, -4.82143e-06) +tracks/94/type = "method" +tracks/94/imported = false +tracks/94/enabled = true +tracks/94/path = NodePath(".") +tracks/94/interp = 1 +tracks/94/loop_wrap = true +tracks/94/keys = { +"times": PackedFloat32Array(0.715), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"hit_finished" +}] +} [sub_resource type="Animation" id="Animation_d74yk"] resource_name = "Run" @@ -933,7 +948,7 @@ tracks/0/enabled = true tracks/0/path = NodePath("Armature/Skeleton3D:mixamorig_Hips") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/keys = PackedFloat32Array(0, 1, 0.310187, 0.431141, -82.5511, 0.0333333, 1, 0.310187, 0.431141, -82.5511, 0.1, 1, 0.041069, 19.8291, -85.0267, 0.133333, 1, 0.315787, 29.9307, -86.4865, 0.166667, 1, 0.835547, 40.596, -87.764, 0.233333, 1, 2.29955, 63.0865, -88.0245, 0.266667, 1, 3.08551, 74.0086, -86.8309, 0.3, 1, 4.04147, 84.4496, -85.3345, 0.333333, 1, 5.07997, 94.5638, -83.866, 0.4, 1, 6.89629, 113.231, -81.6204, 0.433333, 1, 7.43844, 122.199, -81.6417, 0.466667, 1, 7.84923, 131.364, -82.3004, 0.5, 1, 7.9901, 140.685, -83.4732, 0.533333, 1, 7.87081, 150.379, -85.0423, 0.566667, 1, 7.50921, 160.65, -86.4108, 0.6, 1, 6.79723, 171.523, -87.015, 0.666667, 1, 4.76504, 193.589, -85.0764, 0.7, 1, 3.45552, 204.208, -83.5468, 0.733333, 1, 2.18536, 214.548, -82.2421, 0.766667, 1, 1.28477, 224.414, -81.7456, 0.8, 1, 0.631263, 234.096, -81.867, 0.833333, 1, 0.309494, 243.637, -82.5516) +tracks/0/keys = PackedFloat32Array() tracks/1/type = "rotation_3d" tracks/1/imported = true tracks/1/enabled = true @@ -1588,7 +1603,7 @@ tracks/93/keys = PackedFloat32Array(0, 1, -2.47227e-06, 23.512, -5.11851e-06) [sub_resource type="Animation" id="Animation_xpks3"] resource_name = "StandUp" -length = 6.03333 +length = 4.0 tracks/0/type = "position_3d" tracks/0/imported = true tracks/0/enabled = true @@ -2247,6 +2262,18 @@ tracks/93/path = NodePath("Armature/Skeleton3D:mixamorig_RightToe_End") tracks/93/interp = 1 tracks/93/loop_wrap = true tracks/93/keys = PackedFloat32Array(0, 1, 1.8974e-06, 23.512, -4.82143e-06) +tracks/94/type = "value" +tracks/94/imported = false +tracks/94/enabled = true +tracks/94/path = NodePath("Armature:position") +tracks/94/interp = 1 +tracks/94/loop_wrap = true +tracks/94/keys = { +"times": PackedFloat32Array(0, 1.6), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, -0.5, 0), Vector3(0, 0, 0)] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_53ffe"] _data = { @@ -2265,8 +2292,8 @@ animation = &"Attack" [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_30aa1"] animation = &"Run" -[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_kxil8"] -advance_mode = 2 +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6thgc"] +animation = &"StandUp" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_0aqh6"] xfade_time = 0.2 @@ -2279,60 +2306,71 @@ switch_mode = 2 advance_mode = 2 advance_condition = &"run" +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_s6wne"] +advance_mode = 2 + +[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_oq5yv"] +xfade_time = 0.2 +switch_mode = 2 +advance_mode = 2 + [sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_v7c1i"] states/Attack/node = SubResource("AnimationNodeAnimation_jonj8") states/Attack/position = Vector2(456, 100) states/Run/node = SubResource("AnimationNodeAnimation_30aa1") states/Run/position = Vector2(332, 100) -transitions = ["Start", "Run", SubResource("AnimationNodeStateMachineTransition_kxil8"), "Run", "Attack", SubResource("AnimationNodeStateMachineTransition_0aqh6"), "Attack", "Run", SubResource("AnimationNodeStateMachineTransition_r4c6y")] +states/StandUp/node = SubResource("AnimationNodeAnimation_6thgc") +states/StandUp/position = Vector2(192, 100) +states/Start/position = Vector2(60, 100) +transitions = ["Run", "Attack", SubResource("AnimationNodeStateMachineTransition_0aqh6"), "Attack", "Run", SubResource("AnimationNodeStateMachineTransition_r4c6y"), "Start", "StandUp", SubResource("AnimationNodeStateMachineTransition_s6wne"), "StandUp", "Run", SubResource("AnimationNodeStateMachineTransition_oq5yv")] [node name="zombie" type="Zombie"] [node name="Armature" type="Node3D" parent="."] -transform = Transform3D(-0.01, -8.74228e-10, 3.82137e-17, 0, -4.37114e-10, -0.01, 8.74228e-10, -0.01, 4.37114e-10, 0, 0, 0) +transform = Transform3D(-0.01, -8.74228e-10, 3.82137e-17, 0, -4.37114e-10, -0.01, 8.74228e-10, -0.01, 4.37114e-10, 0, -0.317449, 0) [node name="Skeleton3D" type="Skeleton3D" parent="Armature"] bones/0/name = "mixamorig_Hips" bones/0/parent = -1 bones/0/rest = Transform3D(1, -1.64104e-06, -1.23603e-07, 1.23603e-07, 0, 1, -1.64104e-06, -1, 0, -0.0301997, 0.410377, -103.255) bones/0/enabled = true -bones/0/position = Vector3(0.511112, -1.22466, -91.7131) -bones/0/rotation = Quaternion(-0.62284, -0.125654, 0.106214, 0.764853) +bones/0/position = Vector3(-21.0628, 118.124, -12.4199) +bones/0/rotation = Quaternion(0.0218933, -0.115578, 0.0972942, 0.988279) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "mixamorig_Spine" bones/1/parent = 0 bones/1/rest = Transform3D(1, 1.64209e-06, 1.08946e-07, -1.64105e-06, 0.99996, -0.0089287, -1.23603e-07, 0.0089287, 0.99996, -0.0024263, 12.7776, 0.315252) bones/1/enabled = true -bones/1/position = Vector3(-0.00242631, 12.7775, 0.315252) -bones/1/rotation = Quaternion(0.30719, -0.0963365, 0.090708, 0.942404) +bones/1/position = Vector3(-0.0024263, 12.7776, 0.315252) +bones/1/rotation = Quaternion(0.0325627, 0.018889, 0.104853, 0.993775) bones/1/scale = Vector3(1, 1, 1) bones/2/name = "mixamorig_Spine1" bones/2/parent = 1 bones/2/rest = Transform3D(1, -8.12885e-12, -3.90108e-14, 8.12895e-12, 0.999989, 0.0046898, 8.87653e-16, -0.0046898, 0.999989, 2.71058e-09, 8.79264, 1.49012e-07) bones/2/enabled = true bones/2/position = Vector3(2.71058e-09, 8.79264, 1.49012e-07) -bones/2/rotation = Quaternion(0.072533, -0.0407277, 0.0173466, 0.996383) +bones/2/rotation = Quaternion(0.00429218, 0.00868345, 0.0144037, 0.999849) bones/2/scale = Vector3(1, 1, 1) bones/3/name = "mixamorig_Spine2" bones/3/parent = 2 bones/3/rest = Transform3D(1, -3.75935e-18, -2.14464e-21, 3.75932e-18, 0.999991, 0.00423897, -1.37911e-20, -0.00423897, 0.999991, 2.498e-16, 8.65112, -5.96046e-08) bones/3/enabled = true bones/3/position = Vector3(2.498e-16, 8.65112, -5.96046e-08) -bones/3/rotation = Quaternion(0.0732063, -0.0411665, 0.0145504, 0.996361) +bones/3/rotation = Quaternion(0.00546575, 0.00783817, 0.0140679, 0.999855) bones/3/scale = Vector3(1, 1, 1) bones/4/name = "mixamorig_Neck" bones/4/parent = 3 bones/4/rest = Transform3D(1, -6.70873e-21, -7.44903e-23, 6.70874e-21, 1, 1.98848e-08, 7.44902e-23, -1.98848e-08, 1, -3.72529e-09, 21.2425, -0.842534) bones/4/enabled = true -bones/4/position = Vector3(-3.34159e-06, 21.2425, -0.842529) -bones/4/rotation = Quaternion(-0.0412098, 0.0316679, -0.00952378, 0.998603) +bones/4/position = Vector3(-3.72529e-09, 21.2425, -0.842534) +bones/4/rotation = Quaternion(0.0490221, -0.0837083, 0.0119374, 0.995212) bones/4/scale = Vector3(1, 1, 1) bones/5/name = "mixamorig_Head" bones/5/parent = 4 bones/5/rest = Transform3D(1, -6.68473e-21, 3.2708e-23, 6.68473e-21, 1, 0, -3.2708e-23, 0, 1, 4.28824e-15, 20.4181, 4.8338) bones/5/enabled = true bones/5/position = Vector3(4.28824e-15, 20.4181, 4.8338) -bones/5/rotation = Quaternion(-0.322696, 0.168696, -0.074468, 0.928366) +bones/5/rotation = Quaternion(-0.00611666, -0.444544, 0.132006, 0.885956) bones/5/scale = Vector3(1, 1, 1) bones/6/name = "mixamorig_HeadTop_End" bones/6/parent = 5 @@ -2360,195 +2398,195 @@ bones/9/parent = 3 bones/9/rest = Transform3D(-0.0117089, 0.982404, -0.1864, 0.00222149, -0.186386, -0.982474, -0.999929, -0.0119177, 0, 6.57015, 17.5956, -2.76176) bones/9/enabled = true bones/9/position = Vector3(6.57023, 17.5956, -2.76177) -bones/9/rotation = Quaternion(-0.544049, -0.434001, 0.620431, -0.361551) +bones/9/rotation = Quaternion(-0.582228, -0.429761, 0.543818, -0.424945) bones/9/scale = Vector3(1, 1, 1) bones/10/name = "mixamorig_LeftArm" bones/10/parent = 9 bones/10/rest = Transform3D(0.999929, -0.011709, -0.00222139, 0.0119178, 0.982404, 0.186385, -8.03266e-08, -0.186399, 0.982474, -4.47035e-08, 12.1385, 5.01977e-06) bones/10/enabled = true -bones/10/position = Vector3(8.15145e-06, 12.1385, -2.43421e-06) -bones/10/rotation = Quaternion(0.137568, -0.210903, 0.438749, 0.862609) +bones/10/position = Vector3(4.70413e-06, 12.1385, -3.28595e-05) +bones/10/rotation = Quaternion(-0.0315218, -0.502754, -0.118988, 0.855621) bones/10/scale = Vector3(1, 1, 1) bones/11/name = "mixamorig_LeftForeArm" bones/11/parent = 10 bones/11/rest = Transform3D(1, 9.44764e-09, -8.19156e-09, -9.44763e-09, 1, 8.04663e-07, 8.19157e-09, -8.04663e-07, 1, 1.05432e-07, 18.4696, 1.60245e-05) bones/11/enabled = true -bones/11/position = Vector3(3.94925e-06, 18.4696, -6.70776e-06) -bones/11/rotation = Quaternion(-4.13952e-07, 7.64241e-08, 0.234086, 0.972216) +bones/11/position = Vector3(-2.09953e-05, 18.4696, 1.20081e-05) +bones/11/rotation = Quaternion(-3.83984e-07, 1.06433e-07, 0.245779, 0.969326) bones/11/scale = Vector3(1, 1, 1) bones/12/name = "mixamorig_LeftHand" bones/12/parent = 11 bones/12/rest = Transform3D(1, -8.07957e-09, 8.07957e-09, 8.07957e-09, 1, -5.6028e-14, -8.07957e-09, 5.60933e-14, 1, 2.0646e-07, 29.5088, 1.52078e-05) bones/12/enabled = true -bones/12/position = Vector3(5.71921e-06, 29.5088, -7.52443e-06) -bones/12/rotation = Quaternion(0.0852503, -0.357107, 0.112002, 0.923397) +bones/12/position = Vector3(-1.12085e-05, 29.5088, -1.80238e-06) +bones/12/rotation = Quaternion(-0.188172, -0.429154, -0.104744, 0.877181) bones/12/scale = Vector3(1, 1, 1) bones/13/name = "mixamorig_LeftHandThumb1" bones/13/parent = 12 bones/13/rest = Transform3D(0.859298, -0.448859, 0.245218, 0.510972, 0.774612, -0.372671, -0.0226725, 0.445535, 0.894977, -9.22388, 10.7665, 2.38609) bones/13/enabled = true -bones/13/position = Vector3(-9.22385, 10.7665, 2.38622) -bones/13/rotation = Quaternion(0.136531, 0.0295366, 0.369784, 0.918557) +bones/13/position = Vector3(-9.22385, 10.7665, 2.38621) +bones/13/rotation = Quaternion(0.167938, 0.066985, 0.222178, 0.958096) bones/13/scale = Vector3(1, 1, 1) bones/14/name = "mixamorig_LeftHandThumb2" bones/14/parent = 13 bones/14/rest = Transform3D(1, -7.42262e-07, 1.21445e-06, 7.42266e-07, 1, -2.8573e-06, -1.21444e-06, 2.8573e-06, 1, -1.43051e-06, 6.33226, 1.07288e-05) bones/14/enabled = true -bones/14/position = Vector3(1.90736e-06, 6.33226, 8.82147e-06) -bones/14/rotation = Quaternion(0.0175775, 0.0367139, -0.256684, 0.965638) +bones/14/position = Vector3(-1.31428e-05, 6.33228, -1.54967e-06) +bones/14/rotation = Quaternion(0.0117143, -1.32336e-05, -0.0769527, 0.996966) bones/14/scale = Vector3(1, 1, 1) bones/15/name = "mixamorig_LeftHandThumb3" bones/15/parent = 14 bones/15/rest = Transform3D(1, 1.06543e-06, -1.90269e-06, -1.06543e-06, 1, 5.96057e-08, 1.90269e-06, -5.96036e-08, 1, -1.19209e-06, 5.98994, -1.12057e-05) bones/15/enabled = true -bones/15/position = Vector3(-1.16826e-05, 5.98994, 5.72204e-06) -bones/15/rotation = Quaternion(-0.0158626, 0.019129, -0.10682, 0.993968) +bones/15/position = Vector3(1.39474e-05, 5.98993, -1.37087e-06) +bones/15/rotation = Quaternion(-0.0210812, -7.80055e-06, -0.0160719, 0.999649) bones/15/scale = Vector3(1, 1, 1) bones/16/name = "mixamorig_LeftHandThumb4" bones/16/parent = 15 bones/16/rest = Transform3D(1, -2.02284e-06, 3.51015e-06, 2.02283e-06, 1, 2.30968e-06, -3.51016e-06, -2.30968e-06, 1, -3.8147e-06, 5.74295, -1.74046e-05) bones/16/enabled = true -bones/16/position = Vector3(7.15297e-07, 5.74294, 4.29155e-06) +bones/16/position = Vector3(-2.10107e-05, 5.74297, -3.57625e-06) bones/16/rotation = Quaternion(-1.15484e-06, 1.75508e-06, 1.01142e-06, 1) bones/16/scale = Vector3(1, 1, 1) bones/17/name = "mixamorig_LeftHandIndex1" bones/17/parent = 12 bones/17/rest = Transform3D(1, -1.40998e-06, -1.3975e-07, 1.40998e-06, 1, 5.20607e-06, 1.39742e-07, -5.20607e-06, 1, -6.40379, 26.4943, -0.17099) bones/17/enabled = true -bones/17/position = Vector3(-6.40379, 26.4943, -0.171004) -bones/17/rotation = Quaternion(-0.0374808, -4.19283e-07, 0.00452944, 0.999287) +bones/17/position = Vector3(-6.4038, 26.4943, -0.171011) +bones/17/rotation = Quaternion(0.000615164, -1.64396e-07, -6.43586e-05, 1) bones/17/scale = Vector3(1, 1, 1) bones/18/name = "mixamorig_LeftHandIndex2" bones/18/parent = 17 bones/18/rest = Transform3D(1, -5.7191e-08, 5.71908e-08, 5.71911e-08, 1, -2.17708e-06, -5.71907e-08, 2.17708e-06, 1, 5.78031e-07, 8.79287, 1.14833e-05) bones/18/enabled = true -bones/18/position = Vector3(5.78031e-07, 8.79287, 1.14833e-05) -bones/18/rotation = Quaternion(0.37774, -7.22376e-08, -0.045549, 0.924791) +bones/18/position = Vector3(1.37331e-05, 8.79288, -1.65009e-05) +bones/18/rotation = Quaternion(5.5406e-05, 7.71484e-08, -6.62781e-06, 1) bones/18/scale = Vector3(1, 1, 1) bones/19/name = "mixamorig_LeftHandIndex3" bones/19/parent = 18 bones/19/rest = Transform3D(1, -4.73268e-08, 4.73268e-08, 4.73268e-08, 1, -2.3008e-12, -4.73268e-08, 2.30304e-12, 1, -3.4251e-07, 10.0751, -1.18707e-05) bones/19/enabled = true -bones/19/position = Vector3(-6.20511e-08, 10.0752, -1.70775e-06) +bones/19/position = Vector3(-3.2487e-05, 10.0752, 8.78267e-06) bones/19/rotation = Quaternion(1.15096e-12, 2.36634e-08, 2.36634e-08, 1) bones/19/scale = Vector3(1, 1, 1) bones/20/name = "mixamorig_LeftHandMiddle1" bones/20/parent = 12 bones/20/rest = Transform3D(1, -2.53799e-07, -1.03828e-07, 2.53798e-07, 1, -4.87293e-06, 1.03829e-07, 4.87293e-06, 1, 0.00151853, 25.7911, 0.0166931) bones/20/enabled = true -bones/20/position = Vector3(0.00151402, 25.7911, 0.0166754) -bones/20/rotation = Quaternion(-0.04508, -5.77318e-07, 0.00544596, 0.998969) +bones/20/position = Vector3(0.00149734, 25.7911, 0.0166703) +bones/20/rotation = Quaternion(0.000475565, -1.46651e-07, -4.72496e-05, 1) bones/20/scale = Vector3(1, 1, 1) bones/21/name = "mixamorig_LeftHandMiddle2" bones/21/parent = 20 bones/21/rest = Transform3D(1, -2.4022e-06, 1.80303e-08, 2.4022e-06, 1, -7.93205e-07, -1.80284e-08, 7.93205e-07, 1, -1.08228e-07, 9.394, -7.18399e-06) bones/21/enabled = true -bones/21/position = Vector3(-2.70298e-06, 9.39401, 1.24638e-07) -bones/21/rotation = Quaternion(0.275704, -1.11487e-08, -0.0332449, 0.960667) +bones/21/position = Vector3(5.40327e-06, 9.39401, 1.20456e-05) +bones/21/rotation = Quaternion(0.000194673, 2.45103e-08, -2.3109e-05, 1) bones/21/scale = Vector3(1, 1, 1) bones/22/name = "mixamorig_LeftHandMiddle3" bones/22/parent = 21 bones/22/rest = Transform3D(1, -4.18437e-12, 4.0143e-12, 4.18436e-12, 1, 4.2496e-06, -4.01432e-12, -4.2496e-06, 1, -6.44814e-08, 10.7719, 3.7958e-06) bones/22/enabled = true -bones/22/position = Vector3(-3.66263e-08, 10.7719, -7.49231e-06) +bones/22/position = Vector3(-6.44814e-08, 10.7719, 3.7958e-06) bones/22/rotation = Quaternion(-2.1248e-06, 2.00715e-12, 2.09218e-12, 1) bones/22/scale = Vector3(1, 1, 1) bones/23/name = "mixamorig_LeftHandRing1" bones/23/parent = 12 bones/23/rest = Transform3D(1, -1.82739e-06, -1.99177e-07, 1.82739e-06, 1, 4.87304e-06, 1.99168e-07, -4.87304e-06, 1, 6.22733, 24.6876, -0.127838) bones/23/enabled = true -bones/23/position = Vector3(6.22732, 24.6876, -0.127852) -bones/23/rotation = Quaternion(-0.163546, -1.8528e-06, 0.0197307, 0.986338) +bones/23/position = Vector3(6.22732, 24.6876, -0.127856) +bones/23/rotation = Quaternion(0.00061533, -1.96357e-07, -6.41419e-05, 1) bones/23/scale = Vector3(1, 1, 1) bones/24/name = "mixamorig_LeftHandRing2" bones/24/parent = 23 bones/24/rest = Transform3D(1, -1.24633e-06, 1.73458e-07, 1.24633e-06, 1, -1.10205e-05, -1.73444e-07, 1.10205e-05, 1, 5.22701e-07, 9.3938, -2.21515e-07) bones/24/enabled = true bones/24/position = Vector3(5.22701e-07, 9.3938, -2.21515e-07) -bones/24/rotation = Quaternion(0.27557, 3.24754e-08, -0.0332293, 0.960707) +bones/24/rotation = Quaternion(5.4886e-05, 1.24522e-07, -6.93144e-06, 1) bones/24/scale = Vector3(1, 1, 1) bones/25/name = "mixamorig_LeftHandRing3" bones/25/parent = 24 bones/25/rest = Transform3D(1, 9.60521e-08, -9.60517e-08, -9.60517e-08, 1, 4.61059e-06, 9.60521e-08, -4.61059e-06, 1, 5.94628e-09, 9.92853, 7.30407e-06) bones/25/enabled = true -bones/25/position = Vector3(-1.1474e-06, 9.92853, -4.94448e-06) +bones/25/position = Vector3(-1.59294e-05, 9.92854, -9.23608e-06) bones/25/rotation = Quaternion(-2.30529e-06, -4.80259e-08, -4.8026e-08, 1) bones/25/scale = Vector3(1, 1, 1) bones/26/name = "mixamorig_LeftHandPinky1" bones/26/parent = 12 bones/26/rest = Transform3D(1, -1.81111e-06, -2.15452e-07, 1.81111e-06, 1, 1.81111e-06, 2.15449e-07, -1.81111e-06, 1, 12.817, 23.682, -0.108689) bones/26/enabled = true -bones/26/position = Vector3(12.817, 23.682, -0.108702) -bones/26/rotation = Quaternion(-0.167829, -0.0058748, -0.0151721, 0.985682) +bones/26/position = Vector3(12.817, 23.682, -0.108709) +bones/26/rotation = Quaternion(-0.00383334, 2.18464e-05, -0.0354375, 0.999365) bones/26/scale = Vector3(1, 1, 1) bones/27/name = "mixamorig_LeftHandPinky2" bones/27/parent = 26 bones/27/rest = Transform3D(1, 5.23462e-07, 3.11004e-07, -5.23463e-07, 1, 1.93477e-06, -3.11003e-07, -1.93477e-06, 1, 5.19565e-07, 8.42511, -8.07793e-06) bones/27/enabled = true -bones/27/position = Vector3(6.99422e-06, 8.42511, 6.87394e-06) -bones/27/rotation = Quaternion(0.279668, 0.00989573, 0.000775355, 0.960045) +bones/27/position = Vector3(-1.25561e-05, 8.42512, -4.09331e-06) +bones/27/rotation = Quaternion(0.00450318, 2.11213e-06, 0.0353666, 0.999364) bones/27/scale = Vector3(1, 1, 1) bones/28/name = "mixamorig_LeftHandPinky3" bones/28/parent = 27 bones/28/rest = Transform3D(1, 2.34117e-07, -2.34116e-07, -2.34117e-07, 1, 1.72932e-13, 2.34116e-07, -1.18121e-13, 1, -9.38191e-07, 8.14698, 1.93717e-05) bones/28/enabled = true -bones/28/position = Vector3(4.58276e-06, 8.14697, -7.23905e-07) +bones/28/position = Vector3(1.98415e-05, 8.14697, -3.34651e-06) bones/28/rotation = Quaternion(-7.27631e-14, -1.17058e-07, -1.17059e-07, 1) bones/28/scale = Vector3(1, 1, 1) bones/29/name = "mixamorig_RightShoulder" bones/29/parent = 3 bones/29/rest = Transform3D(-0.0117083, -0.982396, 0.186444, -0.00222197, -0.186431, -0.982465, 0.999929, -0.0119172, -1.19209e-07, -6.57016, 17.5959, -2.76177) bones/29/enabled = true -bones/29/position = Vector3(-6.57024, 17.5958, -2.76175) -bones/29/rotation = Quaternion(0.568932, -0.428463, 0.570247, 0.409334) +bones/29/position = Vector3(-6.57023, 17.5958, -2.76177) +bones/29/rotation = Quaternion(0.474124, -0.515141, 0.530316, 0.478123) bones/29/scale = Vector3(1, 1, 1) bones/30/name = "mixamorig_RightArm" bones/30/parent = 29 bones/30/rest = Transform3D(0.999929, 0.0117084, 0.00222177, -0.0119174, 0.982396, 0.186427, 1.14669e-07, -0.186441, 0.982466, 2.98023e-08, 12.1386, 1.29775e-05) bones/30/enabled = true -bones/30/position = Vector3(-8.08837e-06, 12.1386, 4.88866e-07) -bones/30/rotation = Quaternion(0.374335, 0.287259, -0.223695, 0.852828) +bones/30/position = Vector3(1.88144e-06, 12.1386, 2.57062e-05) +bones/30/rotation = Quaternion(0.593417, -0.219121, 0.132293, 0.763113) bones/30/scale = Vector3(1, 1, 1) bones/31/name = "mixamorig_RightForeArm" bones/31/parent = 30 bones/31/rest = Transform3D(1, 2.20824e-09, -1.29789e-09, -2.20823e-09, 1, 4.64471e-06, 1.2979e-09, -4.64471e-06, 1, -2.66512e-07, 18.4696, -1.55792e-05) bones/31/enabled = true -bones/31/position = Vector3(-4.14816e-07, 18.4696, -1.2969e-06) -bones/31/rotation = Quaternion(-2.28761e-06, -7.54028e-07, -0.319818, 0.947479) +bones/31/position = Vector3(-6.25607e-06, 18.4696, -3.97924e-06) +bones/31/rotation = Quaternion(-1.44008e-06, -1.7512e-06, -0.775136, 0.631794) bones/31/scale = Vector3(1, 1, 1) bones/32/name = "mixamorig_RightHand" bones/32/parent = 31 bones/32/rest = Transform3D(1, 3.41881e-08, -3.41881e-08, -3.41882e-08, 1, -1.15386e-06, 3.41881e-08, 1.15386e-06, 1, 1.73907e-07, 29.5089, 3.67749e-06) bones/32/enabled = true -bones/32/position = Vector3(1.03968e-05, 29.5089, 1.38965e-06) -bones/32/rotation = Quaternion(0.0801559, 0.245004, -0.0784431, 0.963013) +bones/32/position = Vector3(8.60867e-06, 29.5089, -7.78946e-06) +bones/32/rotation = Quaternion(-0.692315, 0.0108468, -0.144859, 0.706823) bones/32/scale = Vector3(1, 1, 1) bones/33/name = "mixamorig_RightHandThumb1" bones/33/parent = 32 bones/33/rest = Transform3D(0.860766, 0.448862, -0.240009, -0.508707, 0.774631, -0.375718, 0.0172729, 0.4455, 0.895115, 9.22384, 10.7664, 2.38598) bones/33/enabled = true bones/33/position = Vector3(9.22384, 10.7664, 2.38598) -bones/33/rotation = Quaternion(0.153084, -0.189177, -0.355407, 0.902476) +bones/33/rotation = Quaternion(0.16473, -0.0624911, -0.222778, 0.958816) bones/33/scale = Vector3(1, 1, 1) bones/34/name = "mixamorig_RightHandThumb2" bones/34/parent = 33 bones/34/rest = Transform3D(1, 9.78185e-07, 1.58414e-06, -9.78058e-07, 1, -7.96765e-05, -1.58422e-06, 7.96765e-05, 1, 8.13007e-05, 6.33229, 0.000127316) bones/34/enabled = true -bones/34/position = Vector3(-1.07291e-05, 6.33219, -1.55729e-06) -bones/34/rotation = Quaternion(-0.0528671, 0.0132786, 0.22104, 0.97374) +bones/34/position = Vector3(-1.04609e-05, 6.33219, 3.09219e-06) +bones/34/rotation = Quaternion(-0.124418, 0.0151862, 0.1029, 0.986763) bones/34/scale = Vector3(1, 1, 1) bones/35/name = "mixamorig_RightHandThumb3" bones/35/parent = 34 bones/35/rest = Transform3D(1, 1.58742e-05, -4.17779e-07, -1.58742e-05, 1, -1.017e-05, 4.17617e-07, 1.017e-05, 1, -9.10759e-05, 5.99004, -5.31673e-05) bones/35/enabled = true -bones/35/position = Vector3(6.91449e-06, 5.99006, 5.24549e-06) -bones/35/rotation = Quaternion(-0.0547816, 0.00707833, 0.0695897, 0.996045) +bones/35/position = Vector3(-2.104e-05, 5.99006, 8.10656e-06) +bones/35/rotation = Quaternion(-0.0918432, 0.0129217, 0.0116887, 0.995621) bones/35/scale = Vector3(1, 1, 1) bones/36/name = "mixamorig_RightHandThumb4" bones/36/parent = 35 bones/36/rest = Transform3D(1, 3.00351e-07, -4.77769e-07, -3.00352e-07, 1, -2.9467e-06, 4.77768e-07, 2.9467e-06, 1, -4.76837e-06, 5.74305, 4.29153e-06) bones/36/enabled = true -bones/36/position = Vector3(-1.78814e-06, 5.74305, -1.66892e-06) +bones/36/position = Vector3(-4.76837e-06, 5.74305, 4.29153e-06) bones/36/rotation = Quaternion(1.47335e-06, -2.38884e-07, -1.50176e-07, 1) bones/36/scale = Vector3(1, 1, 1) bones/37/name = "mixamorig_RightHandIndex1" @@ -2556,41 +2594,41 @@ bones/37/parent = 32 bones/37/rest = Transform3D(1, 1.19311e-06, 6.31644e-08, -1.19311e-06, 1, 6.37229e-07, -6.31636e-08, -6.37229e-07, 1, 6.40379, 26.4943, -0.171003) bones/37/enabled = true bones/37/position = Vector3(6.40379, 26.4943, -0.171003) -bones/37/rotation = Quaternion(-0.125853, 1.09405e-06, -0.0153343, 0.99193) +bones/37/rotation = Quaternion(0.000805152, 4.15027e-08, 8.96382e-05, 1) bones/37/scale = Vector3(1, 1, 1) bones/38/name = "mixamorig_RightHandIndex2" bones/38/parent = 37 bones/38/rest = Transform3D(1, 7.46894e-08, 9.95477e-08, -7.46894e-08, 1, -4.63684e-10, -9.95477e-08, 4.63676e-10, 1, -1.26993e-07, 8.79249, -1.4677e-05) bones/38/enabled = true -bones/38/position = Vector3(5.79147e-06, 8.7925, 4.06897e-06) -bones/38/rotation = Quaternion(0.1495, 8.30591e-09, 0.0182057, 0.988594) +bones/38/position = Vector3(-1.28424e-05, 8.79251, -8.78218e-07) +bones/38/rotation = Quaternion(5.89851e-06, 4.64316e-08, 6.28334e-07, 1) bones/38/scale = Vector3(1, 1, 1) bones/39/name = "mixamorig_RightHandIndex3" bones/39/parent = 38 bones/39/rest = Transform3D(1, -5.18639e-14, 1.43493e-14, 5.18639e-14, 1, -2.84719e-15, -1.43493e-14, 2.84719e-15, 1, 4.25038e-07, 10.076, -1.42924e-05) bones/39/enabled = true -bones/39/position = Vector3(-1.76273e-06, 10.076, 1.06525e-05) +bones/39/position = Vector3(-1.2058e-06, 10.076, -5.08477e-07) bones/39/rotation = Quaternion(1.4236e-15, 7.17467e-15, 2.59319e-14, 1) bones/39/scale = Vector3(1, 1, 1) bones/40/name = "mixamorig_RightHandMiddle1" bones/40/parent = 32 bones/40/rest = Transform3D(1, -9.95149e-09, 9.94947e-09, 9.95148e-09, 1, 6.36698e-07, -9.94948e-09, -6.36698e-07, 1, -0.00152069, 25.7911, 0.0160086) bones/40/enabled = true -bones/40/position = Vector3(-0.00151189, 25.7911, 0.0159954) -bones/40/rotation = Quaternion(-0.175118, 1.49908e-06, -0.0213341, 0.984316) +bones/40/position = Vector3(-0.00151818, 25.7911, 0.0160007) +bones/40/rotation = Quaternion(0.000805153, 1.4506e-08, 8.93651e-05, 1) bones/40/scale = Vector3(1, 1, 1) bones/41/name = "mixamorig_RightHandMiddle2" bones/41/parent = 40 bones/41/rest = Transform3D(1, 1.85919e-06, 1.6737e-07, -1.85919e-06, 1, 6.7514e-11, -1.6737e-07, -6.78252e-11, 1, -2.76976e-07, 9.39372, -1.51631e-07) bones/41/enabled = true -bones/41/position = Vector3(7.56294e-06, 9.3937, -2.14133e-06) -bones/41/rotation = Quaternion(0.256149, 1.06037e-08, 0.0311934, 0.966134) +bones/41/position = Vector3(-2.76976e-07, 9.39372, -1.51631e-07) +bones/41/rotation = Quaternion(5.90052e-06, 7.92945e-08, 6.18316e-07, 1) bones/41/scale = Vector3(1, 1, 1) bones/42/name = "mixamorig_RightHandMiddle3" bones/42/parent = 41 bones/42/rest = Transform3D(1, -1.08381e-13, 6.02937e-15, 1.08381e-13, 1, -9.10323e-17, -6.02937e-15, 9.10323e-17, 1, 3.10938e-07, 10.772, -4.90743e-07) bones/42/enabled = true -bones/42/position = Vector3(-3.7701e-06, 10.772, 2.52635e-06) +bones/42/position = Vector3(3.24089e-06, 10.772, -2.06321e-06) bones/42/rotation = Quaternion(4.55162e-17, 3.01469e-15, 5.41904e-14, 1) bones/42/scale = Vector3(1, 1, 1) bones/43/name = "mixamorig_RightHandRing1" @@ -2598,14 +2636,14 @@ bones/43/parent = 32 bones/43/rest = Transform3D(1, 2.13186e-06, 1.4306e-07, -2.13186e-06, 1, 6.36069e-07, -1.43059e-07, -6.3607e-07, 1, -6.22732, 24.6876, -0.128004) bones/43/enabled = true bones/43/position = Vector3(-6.22732, 24.6876, -0.128004) -bones/43/rotation = Quaternion(-0.175118, 1.58778e-06, -0.0213343, 0.984316) +bones/43/rotation = Quaternion(0.000805153, 8.04117e-08, 8.91697e-05, 1) bones/43/scale = Vector3(1, 1, 1) bones/44/name = "mixamorig_RightHandRing2" bones/44/parent = 43 bones/44/rest = Transform3D(1, 1.12419e-06, 5.79532e-08, -1.12419e-06, 1, 6.95668e-10, -5.79532e-08, -6.95734e-10, 1, 8.07033e-07, 9.3942, -1.75455e-06) bones/44/enabled = true -bones/44/position = Vector3(7.68241e-06, 9.3942, -1.25725e-05) -bones/44/rotation = Quaternion(0.256149, 4.57885e-08, 0.0311937, 0.966134) +bones/44/position = Vector3(8.07033e-07, 9.3942, -1.75455e-06) +bones/44/rotation = Quaternion(5.89617e-06, 2.91821e-08, 9.78356e-07, 1) bones/44/scale = Vector3(1, 1, 1) bones/45/name = "mixamorig_RightHandRing3" bones/45/parent = 44 @@ -2619,90 +2657,90 @@ bones/46/parent = 32 bones/46/rest = Transform3D(1, 6.47815e-15, 9.94947e-09, -1.28132e-14, 1, 6.36719e-07, -9.94947e-09, -6.36719e-07, 1, -12.817, 23.682, -0.109006) bones/46/enabled = true bones/46/position = Vector3(-12.817, 23.682, -0.109006) -bones/46/rotation = Quaternion(-0.175118, 1.4999e-06, -0.0213341, 0.984316) +bones/46/rotation = Quaternion(0.000805153, 1.4502e-08, 8.93564e-05, 1) bones/46/scale = Vector3(1, 1, 1) bones/47/name = "mixamorig_RightHandPinky2" bones/47/parent = 46 bones/47/rest = Transform3D(1, -9.9495e-09, 1.99446e-15, 9.9495e-09, 1, 4.67832e-11, -1.99492e-15, -4.67832e-11, 1, -6.22665e-08, 8.42509, -1.63054e-05) bones/47/enabled = true -bones/47/position = Vector3(-3.67587e-06, 8.4251, 2.93799e-06) -bones/47/rotation = Quaternion(0.256149, -5.83201e-08, 0.0311934, 0.966134) +bones/47/position = Vector3(-8.14846e-07, 8.42511, -1.11513e-06) +bones/47/rotation = Quaternion(5.90162e-06, -4.50426e-09, 6.78176e-07, 1) bones/47/scale = Vector3(1, 1, 1) bones/48/name = "mixamorig_RightHandPinky3" bones/48/parent = 47 bones/48/rest = Transform3D(1, 1.56398e-15, 1.77636e-15, -1.56398e-15, 1, -7.94362e-16, -1.77636e-15, 7.94362e-16, 1, -3.47882e-08, 8.1467, -1.63008e-05) bones/48/enabled = true -bones/48/position = Vector3(2.07366e-06, 8.1467, -6.59414e-06) +bones/48/position = Vector3(-9.54925e-06, 8.14671, 8.1578e-08) bones/48/rotation = Quaternion(3.97181e-16, 8.88179e-16, -7.81991e-16, 1) bones/48/scale = Vector3(1, 1, 1) bones/49/name = "mixamorig_LeftUpLeg" bones/49/parent = 0 bones/49/rest = Transform3D(-1, -1.61224e-06, 4.29343e-08, 1.60665e-06, -0.993503, 0.113804, -1.40823e-07, 0.113804, 0.993502, 11.3941, -6.1878, -0.41386) bones/49/enabled = true -bones/49/position = Vector3(11.3941, -6.18784, -0.413819) -bones/49/rotation = Quaternion(-0.000149511, 0.289775, 0.95494, -0.0641861) +bones/49/position = Vector3(11.3941, -6.18783, -0.413817) +bones/49/rotation = Quaternion(0.408146, 0.151195, 0.900072, -0.0206657) bones/49/scale = Vector3(1, 1, 0.999998) bones/50/name = "mixamorig_LeftLeg" bones/50/parent = 49 bones/50/rest = Transform3D(1, 6.94812e-08, -1.06469e-07, -4.11865e-08, 0.969334, 0.245744, 1.20279e-07, -0.245744, 0.969335, -3.44336e-07, 32.5338, 4.70383e-05) bones/50/enabled = true -bones/50/position = Vector3(1.32505e-07, 32.5338, 5.50832e-06) -bones/50/rotation = Quaternion(-0.754409, -0.0027234, 0.0907397, 0.650097) +bones/50/position = Vector3(-3.43632e-06, 32.5338, 4.43263e-06) +bones/50/rotation = Quaternion(-0.226508, -0.198811, 0.127426, 0.94495) bones/50/scale = Vector3(1, 1, 1) bones/51/name = "mixamorig_LeftFoot" bones/51/parent = 50 bones/51/rest = Transform3D(0.977152, -0.211548, -0.0205252, 0.0806816, 0.458539, -0.885004, 0.196632, 0.863127, 0.465131, -1.98803e-07, 48.648, 1.91926e-07) bones/51/enabled = true -bones/51/position = Vector3(5.52994e-07, 48.648, -6.43921e-07) -bones/51/rotation = Quaternion(0.372341, -0.0242441, 0.137021, 0.917606) +bones/51/position = Vector3(-1.98803e-07, 48.648, 1.91926e-07) +bones/51/rotation = Quaternion(0.607916, -0.237733, 0.20714, 0.728707) bones/51/scale = Vector3(1, 1, 1) bones/52/name = "mixamorig_LeftToeBase" bones/52/parent = 51 bones/52/rest = Transform3D(0.994305, -0.00805927, -0.106271, -0.0542637, 0.819927, -0.569891, 0.091727, 0.572412, 0.81482, -2.03601e-05, 29, 1.81803e-05) bones/52/enabled = true -bones/52/position = Vector3(-3.57033e-07, 29, -7.04998e-07) -bones/52/rotation = Quaternion(0.548781, -0.473532, 0.0117362, 0.688817) +bones/52/position = Vector3(-1.33779e-07, 29, -1.3077e-06) +bones/52/rotation = Quaternion(0.213664, 0.0268641, 0.0060122, 0.976519) bones/52/scale = Vector3(1, 1, 1) bones/53/name = "mixamorig_LeftToe_End" bones/53/parent = 52 bones/53/rest = Transform3D(1, -7.45335e-09, 1.47944e-08, 7.45335e-09, 1, 6.54229e-08, -1.47944e-08, -6.54229e-08, 1, -8.78867e-09, 23.5123, 1.92407e-06) bones/53/enabled = true -bones/53/position = Vector3(1.54317e-06, 23.5123, 1.58788e-06) +bones/53/position = Vector3(-8.78867e-09, 23.5123, 1.92407e-06) bones/53/rotation = Quaternion(-3.27114e-08, 7.3972e-09, 3.72668e-09, 1) bones/53/scale = Vector3(1, 1, 1) bones/54/name = "mixamorig_RightUpLeg" bones/54/parent = 0 bones/54/rest = Transform3D(-1, -1.61224e-06, 4.29171e-08, 1.60665e-06, -0.993503, 0.113804, -1.40841e-07, 0.113804, 0.993502, -11.3941, -6.18776, -0.413858) bones/54/enabled = true -bones/54/position = Vector3(-11.3941, -6.1878, -0.413816) -bones/54/rotation = Quaternion(-0.0650039, 0.540434, 0.830059, 0.121279) +bones/54/position = Vector3(-11.3941, -6.18779, -0.413815) +bones/54/rotation = Quaternion(-0.194731, 0.300978, 0.898943, 0.25178) bones/54/scale = Vector3(1, 1, 0.999998) bones/55/name = "mixamorig_RightLeg" bones/55/parent = 54 bones/55/rest = Transform3D(1, 6.94846e-08, -1.06487e-07, -4.11853e-08, 0.969334, 0.245744, 1.20297e-07, -0.245744, 0.969335, -3.44467e-07, 32.5338, 5.8359e-05) bones/55/enabled = true -bones/55/position = Vector3(-3.44461e-07, 32.5338, -3.08126e-07) -bones/55/rotation = Quaternion(-0.559186, 0.0374126, -0.0167958, 0.828027) +bones/55/position = Vector3(9.66912e-06, 32.5338, 3.41562e-06) +bones/55/rotation = Quaternion(-0.479295, 0.0681544, -0.030738, 0.874464) bones/55/scale = Vector3(1, 1, 1) bones/56/name = "mixamorig_RightFoot" bones/56/parent = 55 bones/56/rest = Transform3D(0.977152, 0.211549, 0.0205261, -0.0806797, 0.458533, -0.885007, -0.196634, 0.863131, 0.465124, 7.5487e-07, 48.6481, -4.9512e-06) bones/56/enabled = true -bones/56/position = Vector3(-4.00578e-07, 48.6481, 1.98047e-06) -bones/56/rotation = Quaternion(0.506113, 0.0885424, -0.0351858, 0.857189) +bones/56/position = Vector3(7.5487e-07, 48.6481, -4.9512e-06) +bones/56/rotation = Quaternion(0.507878, 0.189076, 0.247287, 0.803218) bones/56/scale = Vector3(1, 1, 1) bones/57/name = "mixamorig_RightToeBase" bones/57/parent = 56 bones/57/rest = Transform3D(0.994304, 0.00805453, 0.106272, 0.0542684, 0.819927, -0.56989, -0.0917255, 0.572412, 0.81482, -6.79173e-06, 29, 9.25874e-06) bones/57/enabled = true -bones/57/position = Vector3(1.58658e-06, 29, 4.79121e-07) -bones/57/rotation = Quaternion(0.30443, 0.052937, 0.0121634, 0.950985) +bones/57/position = Vector3(2.46004e-06, 29, 8.76624e-06) +bones/57/rotation = Quaternion(0.640791, 0.221586, 0.0788362, 0.730802) bones/57/scale = Vector3(1, 1, 1) bones/58/name = "mixamorig_RightToe_End" bones/58/parent = 57 bones/58/rest = Transform3D(1, 7.45077e-08, 4.9714e-08, -7.45077e-08, 1, 1.27714e-07, -4.97139e-08, -1.27714e-07, 1, 1.8974e-06, 23.512, -4.82143e-06) bones/58/enabled = true -bones/58/position = Vector3(-2.47227e-06, 23.512, -5.11851e-06) +bones/58/position = Vector3(1.8974e-06, 23.512, -4.82143e-06) bones/58/rotation = Quaternion(-6.38571e-08, 2.4857e-08, -3.72538e-08, 1) bones/58/scale = Vector3(1, 1, 1) @@ -2715,11 +2753,11 @@ mesh = SubResource("ArrayMesh_kq2p3") skin = SubResource("Skin_igf26") [node name="Physical Bone mixamorig_Hips" type="PhysicalBone3D" parent="Armature/Skeleton3D"] -transform = Transform3D(-0.942272, 0.331034, 0.0141296, -0.324466, -0.91685, -0.224247, -0.0610218, -0.215898, 0.974179, 0.425233, 0.206005, -97.9361) +transform = Transform3D(-0.935613, -0.327257, 0.115515, -0.0425122, -0.220403, -0.974095, 0.345573, -0.917126, 0.192925, -39.9196, 130.432, -65.103) collision_layer = 2 collision_mask = 2 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00354876, -0.00311005, 6.38745) -body_offset = Transform3D(-0.998418, 0.00770226, 0.000187956, -2.91094e-05, 0.0246755, -0.999451, -0.00643983, -0.998069, -0.0246625, 0.00236654, 6.38403, 0.154449) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.01829, -51.9393, 24.3426) +body_offset = Transform3D(-0.820447, -0.56701, -0.0272594, 0.150176, -0.170489, -0.973509, 0.548558, -0.803883, 0.225749, -27.9511, 14.6898, -47.807) bone_name = "mixamorig_Hips" [node name="CollisionShape3D" type="CollisionShape3D" parent="Armature/Skeleton3D/Physical Bone mixamorig_Hips"] @@ -2727,12 +2765,12 @@ transform = Transform3D(1, 3.72529e-08, -2.98023e-08, 0, -2.98023e-08, 1, 0, -1, shape = SubResource("CapsuleShape3D_6sdfw") [node name="Physical Bone mixamorig_Head" type="PhysicalBone3D" parent="Armature/Skeleton3D"] -transform = Transform3D(-0.983845, 0.0719589, 0.162906, -0.160654, -0.754287, -0.635367, 0.0772825, -0.65223, 0.752923, -27.5224, 70.1711, -125.494) +transform = Transform3D(0.612376, -0.468423, 0.635274, -0.440774, 0.465501, 0.765957, -0.655587, -0.750324, 0.078612, 12.2865, 21.0574, -25.0904) collision_layer = 2 collision_mask = 2 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.48596, 24.872, 11.7749) -body_offset = Transform3D(-0.982919, -0.164101, -0.0814859, 0.0160078, 0.366602, -0.928906, 0.182614, -0.915535, -0.357234, 12.3991, 1.69977, 25.6106) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -124.145, 88.7641, 84.1187) +body_offset = Transform3D(-0.619869, -0.693389, 0.365594, -0.687157, 0.705237, 0.172105, -0.377703, -0.144741, -0.912778, -46.159, -162.384, 42.7395) bone_name = "mixamorig_Head" joint_constraints/bias = 0.3 joint_constraints/damping = 1.0 @@ -2743,12 +2781,12 @@ transform = Transform3D(1, -1.86265e-09, -7.45058e-09, 7.45058e-09, -1.49012e-08 shape = SubResource("CapsuleShape3D_06hh8") [node name="Physical Bone mixamorig_LeftLeg" type="PhysicalBone3D" parent="Armature/Skeleton3D"] -transform = Transform3D(-0.974651, -0.168512, -0.146309, -0.21142, 0.486983, 0.847038, -0.0715292, 0.856424, -0.51058, 2.43222, -7.51742, -40.6364) +transform = Transform3D(-0.584484, -0.53304, 0.6112, 0.00999568, -0.757656, -0.651668, 0.811094, -0.374676, 0.448601, -56.685, 92.5312, -18.1053) collision_layer = 2 collision_mask = 2 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.6579, -3.87023, 21.6732) -body_offset = Transform3D(0.928466, 0.180682, -0.324066, -0.256313, -0.319091, -0.912122, -0.268357, 0.929809, -0.250181, 17.6183, 15.8019, 6.1607) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.0972, -30.3403, 47.6736) +body_offset = Transform3D(0.956002, 0.137885, 0.258225, -0.271428, 0.747124, 0.605735, -0.109462, -0.649117, 0.752253, 11.0859, -11.6646, -57.7569) bone_name = "mixamorig_LeftLeg" joint_constraints/bias = 0.3 joint_constraints/damping = 1.0 @@ -2759,12 +2797,12 @@ transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0) shape = SubResource("CapsuleShape3D_t3iic") [node name="Physical Bone mixamorig_RightLeg" type="PhysicalBone3D" parent="Armature/Skeleton3D"] -transform = Transform3D(-0.854698, -0.511911, 0.0846936, -0.211405, 0.492682, 0.844156, -0.473972, 0.703634, -0.529204, -30.4555, -16.2204, -50.377) +transform = Transform3D(-0.727292, 0.081987, 0.681101, -0.372987, -0.880318, -0.292667, 0.575754, -0.467055, 0.670813, -77.3196, 93.4405, -27.3206) collision_layer = 2 collision_mask = 2 joint_type = 1 -joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0440102, 0.672031, 36.0786) -body_offset = Transform3D(0.894626, -0.0617347, -0.442401, -0.308337, 0.631373, -0.711362, 0.323147, 0.772947, 0.545964, 15.9633, 25.2542, -20.2313) +joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.19504, 1.46457, 37.5698) +body_offset = Transform3D(-0.0922445, 0.0753763, -0.99264, -0.0106643, 0.996915, 0.0768258, 0.995462, 0.0174719, -0.0911348, 36.6114, -4.41245, 9.56525) bone_name = "mixamorig_RightLeg" joint_constraints/bias = 0.3 joint_constraints/damping = 1.0 @@ -2775,6 +2813,8 @@ transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0) shape = SubResource("CapsuleShape3D_60q35") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] +deterministic = true +reset_on_save = false libraries = { "": SubResource("AnimationLibrary_53ffe") } @@ -2788,7 +2828,6 @@ path_height_offset = 0.6 [node name="AnimationTree" type="AnimationTree" parent="."] reset_on_save = false -root_motion_track = NodePath("Armature/Skeleton3D:mixamorig_Hips") tree_root = SubResource("AnimationNodeStateMachine_v7c1i") anim_player = NodePath("../AnimationPlayer") parameters/conditions/attack = false diff --git a/godot/Scenes/Levels/world.tscn b/godot/Scenes/Levels/world.tscn index 5af5a4d..9f6860d 100644 --- a/godot/Scenes/Levels/world.tscn +++ b/godot/Scenes/Levels/world.tscn @@ -58,7 +58,7 @@ uv1_triplanar = true [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_rit6o"] data = PackedVector3Array(-12.5, 2.5, 2.5, 2.5, -2.5, 2.5, -2.5, -2.5, 2.5, -12.5, 2.5, -2.5, -2.5, -2.5, -2.5, 2.5, -2.5, -2.5, -12.5, 2.5, 2.5, -12.5, 2.5, -2.5, 2.5, -2.5, 2.5, -12.5, 2.5, -2.5, 2.5, -2.5, -2.5, 2.5, -2.5, 2.5, -12.5, 2.5, -2.5, -12.5, 2.5, 2.5, -2.5, -2.5, -2.5, -12.5, 2.5, 2.5, -2.5, -2.5, 2.5, -2.5, -2.5, -2.5, -2.5, -2.5, 2.5, 2.5, -2.5, 2.5, -2.5, -2.5, -2.5, 2.5, -2.5, 2.5, 2.5, -2.5, -2.5, -2.5, -2.5, -2.5) -[node name="World" type="Node3D"] +[node name="World" type="World"] [node name="Map" type="Node3D" parent="."] @@ -115,3 +115,18 @@ m_PlayerPath = NodePath("../../FirstPersonPlayer") transform = Transform3D(-0.98774, 0, -0.156107, 0, 1, 0, 0.156107, 0, -0.98774, 14.3905, 0, -18.3684) [node name="FirstPersonPlayer" parent="." instance=ExtResource("5_8ctht")] + +[node name="UI" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="HitRect" type="ColorRect" parent="UI"] +visible = false +layout_mode = 0 +offset_left = -177.0 +offset_top = -96.0 +offset_right = 1365.0 +offset_bottom = 780.0 +color = Color(1, 0, 0, 0.34902) diff --git a/src/Bullet.cpp b/src/Bullet.cpp index cc0c03f..781d5fc 100644 --- a/src/Bullet.cpp +++ b/src/Bullet.cpp @@ -21,7 +21,7 @@ void Bullet::_ready() { DEV_ASSERT(m_Ray); m_Mesh = Object::cast_to(find_child("MeshInstance3D")); DEV_ASSERT(m_Mesh); - m_Timer = memnew(godot::Timer); + m_Timer = memnew(Timer); add_child(m_Timer); m_Timer->connect("timeout", callable_mp(this, &Bullet::_on_timer_timeout)); } diff --git a/src/FirstPersonPlayer.cpp b/src/FirstPersonPlayer.cpp index c20f76f..0341dad 100644 --- a/src/FirstPersonPlayer.cpp +++ b/src/FirstPersonPlayer.cpp @@ -6,6 +6,7 @@ #include #include #include +#include using namespace godot; @@ -20,6 +21,8 @@ static constexpr float GRAVITY = 9.81f; static constexpr float SENSITIVITY = 0.003f; +static constexpr float HIT_STAGGER = 8.0f; + static constexpr float BOB_FREQ = 2.0f; static constexpr float BOB_AMP = 0.08f; @@ -34,7 +37,9 @@ static constexpr float MIN_FOV_VELOCITY = 0.5; static constexpr float MAX_FOV_VELOCITY = SPRINT_SPEED * 2.0f; -void FirstPersonPlayer::_bind_methods() {} +void FirstPersonPlayer::_bind_methods() { + ADD_SIGNAL(MethodInfo("a_PlayerHit")); +} FirstPersonPlayer::FirstPersonPlayer() : m_BobTime(0) {} @@ -156,4 +161,9 @@ void FirstPersonPlayer::UpdateFOV(float a_Delta) { m_Camera->set_fov(Math::lerp(m_Camera->get_fov(), targetFOV, a_Delta * FOV_TRANSITION)); } +void FirstPersonPlayer::hit(Vector3 a_Dir) { + emit_signal("a_PlayerHit"); + this->set_velocity(a_Dir * HIT_STAGGER); +} + } // namespace blitz \ No newline at end of file diff --git a/src/FirstPersonPlayer.h b/src/FirstPersonPlayer.h index 8259f40..c01086a 100644 --- a/src/FirstPersonPlayer.h +++ b/src/FirstPersonPlayer.h @@ -24,6 +24,7 @@ class FirstPersonPlayer : public godot::CharacterBody3D { void _unhandled_input(const godot::Ref&); void _physics_process(float delta); void _ready(); + void hit(godot::Vector3 dir); private: godot::Camera3D* m_Camera; @@ -39,6 +40,7 @@ class FirstPersonPlayer : public godot::CharacterBody3D { void UpdateFOV(float delta); void UpdateCamera(const godot::InputEventMouseMotion&); void UpdatePosition(float delta); + }; } // namespace blitz \ No newline at end of file diff --git a/src/World.cpp b/src/World.cpp new file mode 100644 index 0000000..9690891 --- /dev/null +++ b/src/World.cpp @@ -0,0 +1,42 @@ +#include "World.h" +#include "FirstPersonPlayer.h" +#include + +using namespace godot; + +namespace blitz { + +void World::_bind_methods() { + ClassDB::bind_method(D_METHOD("_on_first_person_player_hit"), &World::_on_first_person_player_hit); + ClassDB::bind_method(D_METHOD("_on_timer_timeout"), &World::_on_timer_timeout); +} + +World::World() {} +World::~World() {} + +void World::_ready() { + FirstPersonPlayer* player = Object::cast_to(find_child("FirstPersonPlayer")); + DEV_ASSERT(player); + if (player) { + player->connect("a_PlayerHit", callable_mp(this, &World::_on_first_person_player_hit)); + } + + m_RedRect = Object::cast_to(find_child("HitRect")); + DEV_ASSERT(m_RedRect); + m_Timer = memnew(Timer); + add_child(m_Timer); + m_Timer->connect("timeout", callable_mp(this, &World::_on_timer_timeout)); +} + +void World::_on_first_person_player_hit() { + UtilityFunctions::print("Player hit detected in World."); + m_RedRect->set_visible(true); + m_Timer->set_wait_time(0.2); + m_Timer->start(); +} + +void World::_on_timer_timeout() { + m_RedRect->set_visible(false); +} + +} // namespace blitz \ No newline at end of file diff --git a/src/World.h b/src/World.h new file mode 100644 index 0000000..c72859c --- /dev/null +++ b/src/World.h @@ -0,0 +1,27 @@ +#pragma once + +#include +#include +#include + +namespace blitz { +class World : public godot::Node3D { + + GDCLASS(World, godot::Node3D); + + protected: + static void _bind_methods(); + + public: + World(); + ~World(); + + void _ready(); + + private: + godot::ColorRect* m_RedRect; + godot::Timer* m_Timer; + void _on_timer_timeout(); + void _on_first_person_player_hit(); +}; +} // namespace blitz \ No newline at end of file diff --git a/src/Zombie.cpp b/src/Zombie.cpp index e3e09e6..2830e23 100644 --- a/src/Zombie.cpp +++ b/src/Zombie.cpp @@ -1,6 +1,7 @@ #include "Zombie.h" #include +#include using namespace godot; @@ -12,6 +13,7 @@ static constexpr float ATTACK_RANGE = 2.0f; void Zombie::_bind_methods() { ClassDB::bind_method(D_METHOD("set_m_PlayerPath", "m_PlayerPath"), &Zombie::set_m_PlayerPath); ClassDB::bind_method(D_METHOD("get_m_PlayerPath"), &Zombie::get_m_PlayerPath); + ClassDB::bind_method(D_METHOD("hit_finished"), &Zombie::hit_finished); ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "m_PlayerPath"), "set_m_PlayerPath", "get_m_PlayerPath"); } @@ -73,4 +75,11 @@ void Zombie::set_m_PlayerPath(const NodePath& path) { NodePath Zombie::get_m_PlayerPath() const { return m_PlayerPath; } + +void Zombie::hit_finished() { + if (this->get_global_position().distance_to(m_Player->get_global_position()) < (ATTACK_RANGE + 1.0)) { + Vector3 dir = this->get_global_position().direction_to(m_Player->get_global_position()); + m_Player->hit(dir); + } +} } // namespace blitz \ No newline at end of file diff --git a/src/Zombie.h b/src/Zombie.h index 2bf0815..346efcf 100644 --- a/src/Zombie.h +++ b/src/Zombie.h @@ -32,6 +32,7 @@ class Zombie : public godot::CharacterBody3D { void set_m_PlayerPath(const godot::NodePath& path); godot::NodePath get_m_PlayerPath() const; + void hit_finished(); }; } // namespace blitz \ No newline at end of file diff --git a/src/register_types.cpp b/src/register_types.cpp index 36f7ef9..c5efe0f 100644 --- a/src/register_types.cpp +++ b/src/register_types.cpp @@ -5,6 +5,7 @@ #include "Player.h" #include "SpringArmPivot.h" #include "Zombie.h" +#include "World.h" #include #include @@ -22,6 +23,7 @@ void initialize_example_module(ModuleInitializationLevel p_level) { ClassDB::register_class(); ClassDB::register_class(); ClassDB::register_class(); + ClassDB::register_class(); } void uninitialize_example_module(ModuleInitializationLevel p_level) {