attacking possible + footsteps

pull/2/head
Sascha 2024-06-03 18:47:37 +07:00
parent 58d5b80e50
commit bd9db0407e
20 changed files with 330 additions and 172 deletions

@ -31515,43 +31515,43 @@ bones/0/name = "root"
bones/0/parent = -1
bones/0/rest = Transform3D(1, 0, 2.38419e-07, 0, 1, 0, -2.38419e-07, 0, 1, 0, 0, 0)
bones/0/enabled = true
bones/0/position = Vector3(0, 4.58694e-05, 0)
bones/0/position = Vector3(0, 1.24287e-05, 0)
bones/0/rotation = Quaternion(-9.45753e-12, -0.000274707, -1.63809e-11, 1)
bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, -2.38419e-07, 0, 1, 0, 2.38419e-07, 0, 1, 0, 0.405663, 0)
bones/1/enabled = true
bones/1/position = Vector3(8.77692e-19, 0.380376, -8.77692e-19)
bones/1/rotation = Quaternion(0.000398534, 0.0429942, 1.94038e-05, 0.999075)
bones/1/position = Vector3(3.55238e-19, 0.386028, 1.88381e-19)
bones/1/rotation = Quaternion(0.000400568, 0.0429942, 1.9315e-05, 0.999075)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "spine"
bones/2/parent = 1
bones/2/rest = Transform3D(1, 0, 1.42109e-14, 0, 1, 0, -1.42109e-14, 0, 1, 0, 0.191978, 0)
bones/2/enabled = true
bones/2/position = Vector3(0, 0.191978, 0)
bones/2/rotation = Quaternion(0.000453093, -8.29169e-05, -1.39281e-05, 1)
bones/2/rotation = Quaternion(0.000451611, 0.000152309, -3.43077e-05, 1)
bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "chest"
bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.374988, 0)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.374988, 0)
bones/3/rotation = Quaternion(0.000178758, 7.87094e-05, -5.36051e-05, 1)
bones/3/rotation = Quaternion(0.000174417, 8.25027e-05, -3.41139e-05, 1)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "upperarm.l"
bones/4/parent = 3
bones/4/rest = Transform3D(0.0572842, 0.998357, -3.57628e-07, -3.57628e-07, 4.76837e-07, 1, 0.998357, -0.0572841, 4.76837e-07, 0.212007, 0.134132, 8.40246e-08)
bones/4/enabled = true
bones/4/position = Vector3(0.211939, 0.134061, -0.000172117)
bones/4/rotation = Quaternion(-0.553623, -0.0638157, -0.656955, 0.507779)
bones/4/position = Vector3(0.211964, 0.134074, -0.000178891)
bones/4/rotation = Quaternion(-0.556471, -0.0636647, -0.653809, 0.508744)
bones/4/scale = Vector3(0.999999, 0.999999, 1)
bones/5/name = "lowerarm.l"
bones/5/parent = 4
bones/5/rest = Transform3D(0.993887, 0.110402, -1.19007e-07, -0.110402, 0.993887, 3.28831e-09, 1.18643e-07, 9.87045e-09, 1, -3.21966e-09, 0.241897, -1.19406e-07)
bones/5/enabled = true
bones/5/position = Vector3(-3.21966e-09, 0.241897, -1.19406e-07)
bones/5/rotation = Quaternion(2.03053e-08, -3.52173e-08, -0.473505, 0.880791)
bones/5/rotation = Quaternion(1.81652e-08, -6.29871e-08, -0.47755, 0.878605)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "wrist.l"
bones/6/parent = 5
@ -31565,14 +31565,14 @@ bones/7/parent = 6
bones/7/rest = Transform3D(1, 1.09104e-05, 2.66204e-07, -1.09104e-05, 1, -2.40181e-09, -2.66204e-07, 2.39891e-09, 1, 9.08162e-13, 0.0738258, 2.22045e-16)
bones/7/enabled = true
bones/7/position = Vector3(9.08162e-13, 0.0738258, 2.22045e-16)
bones/7/rotation = Quaternion(-0.315338, -0.329191, 0.131751, 0.880249)
bones/7/rotation = Quaternion(-0.316525, -0.326822, 0.135124, 0.880194)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "handslot.l"
bones/8/parent = 7
bones/8/rest = Transform3D(-1.19209e-07, 1, -2.22045e-16, -1, -1.19209e-07, -4.55307e-09, -4.55307e-09, -2.22045e-16, 1, 8.34815e-10, 0.0961251, -0.0575001)
bones/8/enabled = true
bones/8/position = Vector3(4.03524e-10, 0.0961252, -0.0575)
bones/8/rotation = Quaternion(0.00141805, 0.00176822, -0.700369, 0.713777)
bones/8/rotation = Quaternion(0.00116989, 0.00154005, -0.701243, 0.71292)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "1H_Sword_Offhand"
bones/9/parent = 8
@ -31613,15 +31613,15 @@ bones/14/name = "upperarm.r"
bones/14/parent = 3
bones/14/rest = Transform3D(0.0572841, -0.998357, 4.47035e-07, 5.06639e-07, 4.17232e-07, 1, -0.998357, -0.0572842, 4.76837e-07, -0.212007, 0.134132, 8.40246e-08)
bones/14/enabled = true
bones/14/position = Vector3(-0.211975, 0.134079, -0.000181783)
bones/14/rotation = Quaternion(-0.612769, 0.0837939, 0.629906, 0.469799)
bones/14/position = Vector3(-0.21195, 0.134066, -0.00017501)
bones/14/rotation = Quaternion(-0.615409, 0.0832859, 0.62658, 0.470885)
bones/14/scale = Vector3(0.999999, 0.999999, 1)
bones/15/name = "lowerarm.r"
bones/15/parent = 14
bones/15/rest = Transform3D(0.993887, -0.110402, 1.19007e-07, 0.110402, 0.993887, 3.28831e-09, -1.18643e-07, 9.87045e-09, 1, -7.12186e-11, 0.241897, -1.19406e-07)
bones/15/enabled = true
bones/15/position = Vector3(-7.12186e-11, 0.241897, -1.19406e-07)
bones/15/rotation = Quaternion(-4.1935e-09, 4.75055e-08, 0.497956, 0.867202)
bones/15/rotation = Quaternion(7.02262e-09, 4.87182e-08, 0.501659, 0.865066)
bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "wrist.r"
bones/16/parent = 15
@ -31635,14 +31635,14 @@ bones/17/parent = 16
bones/17/rest = Transform3D(1, -1.09104e-05, -1.78637e-07, 1.09104e-05, 1, -2.40084e-09, 1.78637e-07, 2.39889e-09, 1, 1.33227e-15, 0.0738258, 2.22045e-16)
bones/17/enabled = true
bones/17/position = Vector3(1.33227e-15, 0.0738258, 2.22045e-16)
bones/17/rotation = Quaternion(-0.313726, 0.303159, -0.213502, 0.874121)
bones/17/rotation = Quaternion(-0.314794, 0.301202, -0.216553, 0.873663)
bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "handslot.r"
bones/18/parent = 17
bones/18/rest = Transform3D(-1.19209e-07, -1, 2.22045e-16, 1, -1.19209e-07, -4.55301e-09, 4.55301e-09, -2.22045e-16, 1, -8.34815e-10, 0.0961251, -0.0575001)
bones/18/enabled = true
bones/18/position = Vector3(-1.54782e-08, 0.0961251, -0.0575)
bones/18/rotation = Quaternion(0.00400327, 0.00473643, 0.702085, 0.712066)
bones/18/rotation = Quaternion(0.00270587, 0.00321744, 0.70345, 0.710733)
bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "1H_Sword"
bones/19/parent = 18
@ -31663,7 +31663,7 @@ bones/21/parent = 3
bones/21/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.268797, 0)
bones/21/enabled = true
bones/21/position = Vector3(0, 0.268797, 0)
bones/21/rotation = Quaternion(-0.00050191, -0.0309997, -6.39581e-05, 0.999519)
bones/21/rotation = Quaternion(-0.000506819, -0.0313854, -4.05823e-05, 0.999507)
bones/21/scale = Vector3(1, 1, 1)
bones/22/name = "Knight_Helmet"
bones/22/parent = 21
@ -31683,71 +31683,71 @@ bones/24/name = "upperleg.l"
bones/24/parent = 1
bones/24/rest = Transform3D(1, -1.42215e-07, -2.65602e-08, -1.43052e-07, -0.999396, -0.0347412, -2.16035e-08, 0.0347411, -0.999398, 0.170945, 0.113587, 1.39233e-08)
bones/24/enabled = true
bones/24/position = Vector3(0.170945, 0.113587, -0.000354771)
bones/24/rotation = Quaternion(0.991955, 0.0827753, 0.0765124, 0.0576126)
bones/24/position = Vector3(0.170945, 0.113587, 0.000320495)
bones/24/rotation = Quaternion(0.992947, 0.0826818, 0.0752717, 0.0394196)
bones/24/scale = Vector3(1, 1, 1)
bones/25/name = "lowerleg.l"
bones/25/parent = 24
bones/25/rest = Transform3D(1, 1.6129e-07, 1.20856e-07, -1.3212e-07, 0.977433, -0.211248, -1.52201e-07, 0.211248, 0.977433, 3.57982e-09, 0.227077, -6.13986e-09)
bones/25/enabled = true
bones/25/position = Vector3(3.57982e-09, 0.227077, -6.13986e-09)
bones/25/rotation = Quaternion(0.31863, 6.18015e-08, -2.1708e-07, 0.947879)
bones/25/rotation = Quaternion(0.266005, 6.48501e-08, -1.8561e-07, 0.963972)
bones/25/scale = Vector3(1, 1, 1)
bones/26/name = "foot.l"
bones/26/parent = 25
bones/26/rest = Transform3D(1, 4.64335e-08, 6.01239e-08, -7.59277e-08, 0.585515, 0.810661, 2.4383e-09, -0.810662, 0.585514, 1.83222e-10, 0.149437, 9.66537e-10)
bones/26/enabled = true
bones/26/position = Vector3(1.83222e-10, 0.149437, 9.66537e-10)
bones/26/rotation = Quaternion(-0.579837, -0.204218, 0.062787, 0.78622)
bones/26/rotation = Quaternion(-0.553176, -0.206475, 0.0539843, 0.805264)
bones/26/scale = Vector3(1, 1, 0.999999)
bones/27/name = "toes.l"
bones/27/parent = 26
bones/27/rest = Transform3D(-1, -1.75424e-09, 1.51741e-07, -1.10452e-07, 0.694106, -0.719873, -1.04062e-07, -0.719873, -0.694106, -2.1306e-10, 0.16565, 5.17174e-09)
bones/27/enabled = true
bones/27/position = Vector3(-2.1306e-10, 0.16565, 5.17174e-09)
bones/27/rotation = Quaternion(-9.56486e-09, 0.920075, -0.391741, 7.82301e-08)
bones/27/rotation = Quaternion(-9.82358e-09, 0.920355, -0.391084, 7.82732e-08)
bones/27/scale = Vector3(1, 1, 1)
bones/28/name = "upperleg.r"
bones/28/parent = 1
bones/28/rest = Transform3D(1, 1.49611e-07, -6.08626e-08, 1.47406e-07, -0.999396, -0.0347412, -6.60234e-08, 0.0347411, -0.999398, -0.170945, 0.113587, 1.39233e-08)
bones/28/enabled = true
bones/28/position = Vector3(-0.170945, 0.113587, 0.000354803)
bones/28/rotation = Quaternion(0.99417, -0.0315765, 0.0303346, 0.0985328)
bones/28/position = Vector3(-0.170945, 0.113587, -0.000320464)
bones/28/rotation = Quaternion(0.99589, -0.0304854, 0.0308683, 0.0795005)
bones/28/scale = Vector3(1, 1, 1)
bones/29/name = "lowerleg.r"
bones/29/parent = 28
bones/29/rest = Transform3D(1, -1.6129e-07, -1.20856e-07, 1.3212e-07, 0.977433, -0.211248, 1.52201e-07, 0.211248, 0.977433, -3.57982e-09, 0.227077, -6.13986e-09)
bones/29/enabled = true
bones/29/position = Vector3(-3.57982e-09, 0.227077, -6.13986e-09)
bones/29/rotation = Quaternion(0.371249, -6.09577e-08, 2.59143e-07, 0.928533)
bones/29/rotation = Quaternion(0.328248, -6.25783e-08, 2.28288e-07, 0.944592)
bones/29/scale = Vector3(1, 1, 1)
bones/30/name = "foot.r"
bones/30/parent = 29
bones/30/rest = Transform3D(1, -1.55132e-07, 2.93521e-07, -1.47115e-07, 0.585515, 0.810661, -2.97621e-07, -0.810662, 0.585514, -1.83221e-10, 0.149437, 9.66542e-10)
bones/30/enabled = true
bones/30/position = Vector3(-1.83221e-10, 0.149437, 9.66542e-10)
bones/30/rotation = Quaternion(-0.610224, 0.11317, -0.0168087, 0.783924)
bones/30/rotation = Quaternion(-0.587171, 0.113697, -0.0129005, 0.801334)
bones/30/scale = Vector3(1, 1, 0.999999)
bones/31/name = "toes.r"
bones/31/parent = 30
bones/31/rest = Transform3D(-1, 1.75425e-09, -1.51741e-07, 1.10452e-07, 0.694106, -0.719873, 1.04062e-07, -0.719873, -0.694106, 2.13058e-10, 0.16565, 5.17174e-09)
bones/31/enabled = true
bones/31/position = Vector3(2.13058e-10, 0.16565, 5.17174e-09)
bones/31/rotation = Quaternion(3.03603e-08, 0.920355, -0.391084, -6.95365e-08)
bones/31/rotation = Quaternion(3.00939e-08, 0.919993, -0.391935, -6.9509e-08)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "kneeIK.l"
bones/32/parent = 0
bones/32/rest = Transform3D(1, -2.59151e-07, -3.89414e-07, -3.89414e-07, 0, -1, 2.59151e-07, 1, 0, 0.170945, 0.29231, 0.575812)
bones/32/enabled = true
bones/32/position = Vector3(0.170945, 0.292579, 0.576081)
bones/32/position = Vector3(0.170945, 0.292664, 0.576166)
bones/32/rotation = Quaternion(0.707107, -2.29302e-07, -4.60552e-08, 0.707107)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "control-toe-roll.l"
bones/33/parent = 0
bones/33/rest = Transform3D(1, 1.99485e-07, -3.55271e-14, 3.55271e-14, 0, 1, 1.99485e-07, -1, 0, 0.170945, 0.0259903, 0.245789)
bones/33/enabled = true
bones/33/position = Vector3(0.202061, 0.0262452, 0.203026)
bones/33/rotation = Quaternion(-0.704835, -7.07403e-08, -7.0315e-08, 0.709371)
bones/33/position = Vector3(0.202061, 0.0261582, 0.206155)
bones/33/rotation = Quaternion(-0.706874, -7.05253e-08, -7.05317e-08, 0.70734)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "control-heel-roll.l"
bones/34/parent = 33
@ -31788,15 +31788,15 @@ bones/39/name = "kneeIK.r"
bones/39/parent = 0
bones/39/rest = Transform3D(1, -2.59151e-07, 1.50996e-07, 1.50996e-07, 0, -1, 2.59151e-07, 1, 0, -0.170945, 0.29231, 0.575812)
bones/39/enabled = true
bones/39/position = Vector3(-0.170945, 0.292579, 0.576081)
bones/39/position = Vector3(-0.170945, 0.292664, 0.576166)
bones/39/rotation = Quaternion(0.707107, -3.82385e-08, 1.45009e-07, 0.707107)
bones/39/scale = Vector3(1, 1, 1)
bones/40/name = "control-toe-roll.r"
bones/40/parent = 0
bones/40/rest = Transform3D(1, 1.99485e-07, 0, 0, 0, 1, 1.99485e-07, -1, 0, -0.170945, 0.0259903, 0.245789)
bones/40/enabled = true
bones/40/position = Vector3(-0.170945, 0.0267123, 0.247049)
bones/40/rotation = Quaternion(-0.707432, -7.05295e-08, -7.05382e-08, 0.706782)
bones/40/position = Vector3(-0.170945, 0.0259083, 0.244156)
bones/40/rotation = Quaternion(-0.705694, -7.06853e-08, -7.03716e-08, 0.708517)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "control-heel-roll.r"
bones/41/parent = 40
@ -31844,8 +31844,8 @@ bones/47/name = "handIK.l"
bones/47/parent = 0
bones/47/rest = Transform3D(-2.38419e-07, 1, 0, 0, 0, 1, 1, 2.38419e-07, 0, 0.713181, 1.10676, 2.54914e-07)
bones/47/enabled = true
bones/47/position = Vector3(0.520813, 0.768215, -0.0568993)
bones/47/rotation = Quaternion(0.795547, 0.00190373, 0.605888, 0.000233869)
bones/47/position = Vector3(0.520813, 0.775396, -0.0568618)
bones/47/rotation = Quaternion(0.79558, 0.00194346, 0.605846, 0.000244)
bones/47/scale = Vector3(1, 1, 1)
bones/48/name = "elbowIK.r"
bones/48/parent = 0
@ -31858,12 +31858,12 @@ bones/49/name = "handIK.r"
bones/49/parent = 0
bones/49/rest = Transform3D(1.19209e-07, -1, -1.19209e-07, 0, -1.19209e-07, 1, -1, -1.19209e-07, 0, -0.713182, 1.10676, -8.51573e-08)
bones/49/enabled = true
bones/49/position = Vector3(-0.510787, 0.768215, 0.0603137)
bones/49/rotation = Quaternion(0.759279, -0.001833, -0.650763, 0.000420685)
bones/49/position = Vector3(-0.510787, 0.775396, 0.0603513)
bones/49/rotation = Quaternion(0.759314, -0.0018721, -0.650722, 0.000433071)
bones/49/scale = Vector3(1, 1, 1)
[node name="1H_Sword_Offhand" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00266433, 0.26385, 0.964559, 0.999865, -0.014918, 0.00684354, 0.0161954, 0.964447, -0.263775, 0.51263, 0.615687, -0.00267961)
transform = Transform3D(-0.00236651, 0.263547, 0.964643, 0.999903, -0.0126203, 0.00590189, 0.0137298, 0.964563, -0.263491, 0.512576, 0.622975, -0.00228162)
visible = false
bone_name = "1H_Sword_Offhand"
bone_idx = 9
@ -31873,7 +31873,7 @@ mesh = SubResource("ArrayMesh_rvosg")
skeleton = NodePath("")
[node name="Badge_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00266431, 0.26385, 0.964559, 0.999865, -0.0149205, 0.0068442, 0.016198, 0.964447, -0.263774, 0.662991, 0.616754, -0.0437982)
transform = Transform3D(-0.00236649, 0.263547, 0.964643, 0.999902, -0.0126229, 0.00590255, 0.0137324, 0.964563, -0.263491, 0.662949, 0.623895, -0.043356)
visible = false
bone_name = "Badge_Shield"
bone_idx = 10
@ -31883,7 +31883,7 @@ mesh = SubResource("ArrayMesh_0xags")
skeleton = NodePath("")
[node name="Rectangle_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00266431, 0.26385, 0.964559, 0.999865, -0.0149205, 0.0068442, 0.016198, 0.964447, -0.263774, 0.662991, 0.616754, -0.0437982)
transform = Transform3D(-0.00236649, 0.263547, 0.964643, 0.999902, -0.0126229, 0.00590255, 0.0137324, 0.964563, -0.263491, 0.662949, 0.623895, -0.043356)
visible = false
bone_name = "Rectangle_Shield"
bone_idx = 11
@ -31893,7 +31893,7 @@ mesh = SubResource("ArrayMesh_qr44s")
skeleton = NodePath("")
[node name="Round_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00266431, 0.26385, 0.964559, 0.999865, -0.0149205, 0.0068442, 0.016198, 0.964447, -0.263774, 0.662991, 0.616754, -0.0437982)
transform = Transform3D(-0.00236649, 0.263547, 0.964643, 0.999902, -0.0126229, 0.00590255, 0.0137324, 0.964563, -0.263491, 0.662949, 0.623895, -0.043356)
bone_name = "Round_Shield"
bone_idx = 12
@ -31902,7 +31902,7 @@ mesh = SubResource("ArrayMesh_bb24p")
skeleton = NodePath("")
[node name="Spike_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00266431, 0.26385, 0.964559, 0.999865, -0.0149205, 0.0068442, 0.016198, 0.964447, -0.263774, 0.662991, 0.616754, -0.0437982)
transform = Transform3D(-0.00236649, 0.263547, 0.964643, 0.999902, -0.0126229, 0.00590255, 0.0137324, 0.964563, -0.263491, 0.662949, 0.623895, -0.043356)
bone_name = "Spike_Shield"
bone_idx = 13
@ -31911,7 +31911,7 @@ mesh = SubResource("ArrayMesh_jnwr3")
skeleton = NodePath("")
[node name="1H_Sword" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.000442142, -0.164431, 0.986388, 0.999947, -0.0100958, -0.00123555, 0.0101621, 0.986336, 0.164426, -0.497016, 0.61959, 0.138313)
transform = Transform3D(0.000741145, -0.16058, 0.987022, 0.999976, -0.00654751, -0.00181703, 0.00675483, 0.987, 0.160571, -0.497051, 0.627146, 0.138629)
bone_name = "1H_Sword"
bone_idx = 19
@ -31920,7 +31920,7 @@ mesh = SubResource("ArrayMesh_dbq6c")
skeleton = NodePath("")
[node name="2H_Sword" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.000442158, -0.164431, 0.986388, 0.999947, -0.0100958, -0.00123553, 0.0101621, 0.986336, 0.164426, -0.497016, 0.61959, 0.138313)
transform = Transform3D(0.000741129, -0.16058, 0.987022, 0.999976, -0.00654752, -0.00181701, 0.00675484, 0.987, 0.160571, -0.497051, 0.627146, 0.138629)
bone_name = "2H_Sword"
bone_idx = 20
@ -31929,7 +31929,7 @@ mesh = SubResource("ArrayMesh_ys2n7")
skeleton = NodePath("")
[node name="Knight_Helmet" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.999725, 0.000310492, 0.0234457, -0.00028611, 0.999999, -0.00104328, -0.0234461, 0.00103628, 0.999725, 9.29428e-05, 1.19065, 0.00131338)
transform = Transform3D(0.999732, 0.000264682, 0.0231521, -0.000240967, 0.999999, -0.0010271, -0.0231524, 0.00102124, 0.999731, 0.000109927, 1.19627, 0.00131155)
visible = false
bone_name = "Knight_Helmet"
bone_idx = 22
@ -31939,7 +31939,7 @@ mesh = SubResource("ArrayMesh_o8mbo")
skeleton = NodePath("")
[node name="Knight_Cape" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.996351, 0.000237399, 0.0853529, -6.19362e-05, 0.999998, -0.00205837, -0.0853533, 0.00204558, 0.996349, 9.43231e-05, 1.19065, 0.00128759)
transform = Transform3D(0.99631, 0.000238899, 0.0858293, -6.31143e-05, 0.999998, -0.00205078, -0.0858296, 0.0020378, 0.996308, 0.000110099, 1.19627, 0.00128557)
visible = false
bone_name = "Knight_Cape"
bone_idx = 23
@ -31985,8 +31985,8 @@ libraries = {
tree_root = SubResource("AnimationNodeStateMachine_vnar2")
anim_player = NodePath("../AnimationPlayer")
parameters/current_length = 1.06667
parameters/current_position = 0.801874
parameters/current_delta = 0.0333333
parameters/current_position = 0.893258
parameters/current_delta = 0.0166667
parameters/conditions/blocking = false
parameters/conditions/grounded = false
parameters/conditions/jumping = false
@ -32025,21 +32025,21 @@ parameters/Hit_B/current_length = 0.866667
parameters/Hit_B/current_position = 0.866667
parameters/Hit_B/current_delta = 0.0294314
parameters/IWR/current_length = 1.06667
parameters/IWR/current_position = 0.801874
parameters/IWR/current_delta = 0.0333333
parameters/IWR/current_position = 0.893258
parameters/IWR/current_delta = 0.0166667
parameters/IWR/blend_position = Vector2(0.000524879, 0.00335574)
parameters/IWR/0/current_length = 1.06667
parameters/IWR/0/current_position = 0.801874
parameters/IWR/0/current_delta = 0.0333333
parameters/IWR/0/current_position = 0.893258
parameters/IWR/0/current_delta = 0.0166667
parameters/IWR/1/current_length = 0.8
parameters/IWR/1/current_position = 0.268622
parameters/IWR/1/current_delta = 0.0333333
parameters/IWR/1/current_position = 0.626598
parameters/IWR/1/current_delta = 0.0166667
parameters/IWR/2/current_length = 1.06667
parameters/IWR/2/current_position = 0.408754
parameters/IWR/2/current_delta = 0.0166667
parameters/IWR/3/current_length = 0.8
parameters/IWR/3/current_position = 0.268622
parameters/IWR/3/current_delta = 0.0333333
parameters/IWR/3/current_position = 0.626598
parameters/IWR/3/current_delta = 0.0166667
parameters/IWR/4/current_length = 0.8
parameters/IWR/4/current_position = 0.61058
parameters/IWR/4/current_delta = 0.0166667

@ -31588,43 +31588,43 @@ bones/0/name = "root"
bones/0/parent = -1
bones/0/rest = Transform3D(1, 0, 2.38419e-07, 0, 1, 0, -2.38419e-07, 0, 1, 0, 0, 0)
bones/0/enabled = true
bones/0/position = Vector3(0, 0.000234325, 0)
bones/0/rotation = Quaternion(-3.44513e-11, -0.001001, -5.96713e-11, 1)
bones/0/position = Vector3(0, 1.919e-05, 0)
bones/0/rotation = Quaternion(-3.44514e-11, -0.001001, -5.96714e-11, 1)
bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "hips"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, -2.38419e-07, 0, 1, 0, 2.38419e-07, 0, 1, 0, 0.405663, 0)
bones/1/enabled = true
bones/1/position = Vector3(7.16078e-25, 0.378146, -3.00346e-18)
bones/1/rotation = Quaternion(0.000685688, 0.0428646, 0.000103793, 0.999081)
bones/1/position = Vector3(1.04873e-19, 0.368872, 3.2384e-18)
bones/1/rotation = Quaternion(0.000736769, 0.0428656, 0.000101539, 0.999081)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "spine"
bones/2/parent = 1
bones/2/rest = Transform3D(1, 0, 1.42109e-14, 0, 1, 0, -1.42109e-14, 0, 1, 0, 0.191978, 0)
bones/2/enabled = true
bones/2/position = Vector3(0, 0.191978, 0)
bones/2/rotation = Quaternion(0.000837669, 0.000710595, -0.000135884, 0.999999)
bones/2/rotation = Quaternion(0.000849244, 0.000311619, -0.000102906, 1)
bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "chest"
bones/3/parent = 2
bones/3/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.374988, 0)
bones/3/enabled = true
bones/3/position = Vector3(0, 0.374988, 0)
bones/3/rotation = Quaternion(0.000321315, 0.000301106, -0.000121159, 1)
bones/3/rotation = Quaternion(0.000343305, 0.000296535, -0.000144834, 1)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "upperarm.l"
bones/4/parent = 3
bones/4/rest = Transform3D(0.0572842, 0.998357, -3.57628e-07, -3.57628e-07, 4.76837e-07, 1, 0.998357, -0.0572841, 4.76837e-07, 0.212007, 0.134132, 8.40246e-08)
bones/4/enabled = true
bones/4/position = Vector3(0.211956, 0.134039, -0.000334245)
bones/4/rotation = Quaternion(-0.556908, -0.0589592, -0.637105, 0.529599)
bones/4/position = Vector3(0.211916, 0.134019, -0.000323386)
bones/4/rotation = Quaternion(-0.5533, -0.057683, -0.63626, 0.534514)
bones/4/scale = Vector3(0.999999, 0.999999, 1)
bones/5/name = "lowerarm.l"
bones/5/parent = 4
bones/5/rest = Transform3D(0.993887, 0.110402, -1.19007e-07, -0.110402, 0.993887, 3.28831e-09, 1.18643e-07, 9.87045e-09, 1, -3.21966e-09, 0.241897, -1.19406e-07)
bones/5/enabled = true
bones/5/position = Vector3(-3.21966e-09, 0.241897, -1.19406e-07)
bones/5/rotation = Quaternion(1.81229e-08, -8.68363e-08, -0.511825, 0.859089)
bones/5/rotation = Quaternion(3.68126e-08, -7.06896e-08, -0.516753, 0.856134)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "wrist.l"
bones/6/parent = 5
@ -31638,14 +31638,14 @@ bones/7/parent = 6
bones/7/rest = Transform3D(1, 1.09104e-05, 2.66204e-07, -1.09104e-05, 1, -2.40181e-09, -2.66204e-07, 2.39891e-09, 1, 9.08162e-13, 0.0738258, 2.22045e-16)
bones/7/enabled = true
bones/7/position = Vector3(9.08162e-13, 0.0738258, 2.22045e-16)
bones/7/rotation = Quaternion(-0.320008, -0.334798, 0.147998, 0.873843)
bones/7/rotation = Quaternion(-0.319301, -0.340068, 0.148036, 0.872059)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "handslot.l"
bones/8/parent = 7
bones/8/rest = Transform3D(-1.19209e-07, 1, -2.22045e-16, -1, -1.19209e-07, -4.55307e-09, -4.55307e-09, -2.22045e-16, 1, 8.34815e-10, 0.0961251, -0.0575001)
bones/8/enabled = true
bones/8/position = Vector3(1.03221e-10, 0.0961252, -0.0575)
bones/8/rotation = Quaternion(-5.50247e-06, 0.000625969, -0.703867, 0.710332)
bones/8/rotation = Quaternion(0.000536644, 0.00109439, -0.702032, 0.712144)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "1H_Sword_Offhand"
bones/9/parent = 8
@ -31686,15 +31686,15 @@ bones/14/name = "upperarm.r"
bones/14/parent = 3
bones/14/rest = Transform3D(0.0572841, -0.998357, 4.47035e-07, 5.06639e-07, 4.17232e-07, 1, -0.998357, -0.0572842, 4.76837e-07, -0.212007, 0.134132, 8.40246e-08)
bones/14/enabled = true
bones/14/position = Vector3(-0.211876, 0.133999, -0.000312779)
bones/14/rotation = Quaternion(-0.615086, 0.0782872, 0.611473, 0.49157)
bones/14/position = Vector3(-0.211917, 0.134019, -0.000323639)
bones/14/rotation = Quaternion(-0.611521, 0.0775305, 0.611554, 0.496017)
bones/14/scale = Vector3(0.999999, 0.999999, 1)
bones/15/name = "lowerarm.r"
bones/15/parent = 14
bones/15/rest = Transform3D(0.993887, -0.110402, 1.19007e-07, 0.110402, 0.993887, 3.28831e-09, -1.18643e-07, 9.87045e-09, 1, -7.12186e-11, 0.241897, -1.19406e-07)
bones/15/enabled = true
bones/15/position = Vector3(-7.12186e-11, 0.241897, -1.19406e-07)
bones/15/rotation = Quaternion(5.00639e-09, 5.7718e-08, 0.53454, 0.845143)
bones/15/rotation = Quaternion(1.4626e-08, 5.01007e-08, 0.539664, 0.84188)
bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "wrist.r"
bones/16/parent = 15
@ -31708,14 +31708,14 @@ bones/17/parent = 16
bones/17/rest = Transform3D(1, -1.09104e-05, -1.78637e-07, 1.09104e-05, 1, -2.40084e-09, 1.78637e-07, 2.39889e-09, 1, 1.33227e-15, 0.0738258, 2.22045e-16)
bones/17/enabled = true
bones/17/position = Vector3(1.33227e-15, 0.0738258, 2.22045e-16)
bones/17/rotation = Quaternion(-0.318634, 0.311243, -0.229615, 0.865377)
bones/17/rotation = Quaternion(-0.318125, 0.316379, -0.230305, 0.863516)
bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "handslot.r"
bones/18/parent = 17
bones/18/rest = Transform3D(-1.19209e-07, -1, 2.22045e-16, 1, -1.19209e-07, -4.55301e-09, 4.55301e-09, -2.22045e-16, 1, -8.34815e-10, 0.0961251, -0.0575001)
bones/18/enabled = true
bones/18/position = Vector3(-1.53215e-08, 0.0961251, -0.0575)
bones/18/rotation = Quaternion(0.00124649, 0.00151999, 0.704243, 0.709957)
bones/18/rotation = Quaternion(0.00273384, 0.00323351, 0.702674, 0.7115)
bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "1H_Sword"
bones/19/parent = 18
@ -31736,7 +31736,7 @@ bones/21/parent = 3
bones/21/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.268797, 0)
bones/21/enabled = true
bones/21/position = Vector3(0, 0.268797, 0)
bones/21/rotation = Quaternion(-0.00093767, -0.0315338, -0.000130833, 0.999502)
bones/21/rotation = Quaternion(-0.000926906, -0.0310602, -0.000159492, 0.999517)
bones/21/scale = Vector3(1, 1, 1)
bones/22/name = "Knight_Helmet"
bones/22/parent = 21
@ -31756,71 +31756,71 @@ bones/24/name = "upperleg.l"
bones/24/parent = 1
bones/24/rest = Transform3D(1, -1.42215e-07, -2.65602e-08, -1.43052e-07, -0.999396, -0.0347412, -2.16035e-08, 0.0347411, -0.999398, 0.170945, 0.113587, 1.39233e-08)
bones/24/enabled = true
bones/24/position = Vector3(0.170945, 0.113587, 0.00063364)
bones/24/rotation = Quaternion(0.991391, 0.0823342, 0.0768997, 0.0667246)
bones/24/position = Vector3(0.170945, 0.113587, -0.000504194)
bones/24/rotation = Quaternion(0.989643, 0.0830629, 0.0782418, 0.0870906)
bones/24/scale = Vector3(1, 1, 1)
bones/25/name = "lowerleg.l"
bones/25/parent = 24
bones/25/rest = Transform3D(1, 1.6129e-07, 1.20856e-07, -1.3212e-07, 0.977433, -0.211248, -1.52201e-07, 0.211248, 0.977433, 3.57982e-09, 0.227077, -6.13986e-09)
bones/25/enabled = true
bones/25/position = Vector3(3.57982e-09, 0.227077, -6.13986e-09)
bones/25/rotation = Quaternion(0.333734, 5.72151e-08, -2.36167e-07, 0.942667)
bones/25/rotation = Quaternion(0.396767, 6.38368e-08, -2.66008e-07, 0.917919)
bones/25/scale = Vector3(1, 1, 1)
bones/26/name = "foot.l"
bones/26/parent = 25
bones/26/rest = Transform3D(1, 4.64335e-08, 6.01239e-08, -7.59277e-08, 0.585515, 0.810661, 2.4383e-09, -0.810662, 0.585514, 1.83222e-10, 0.149437, 9.66537e-10)
bones/26/enabled = true
bones/26/position = Vector3(1.83222e-10, 0.149437, 9.66537e-10)
bones/26/rotation = Quaternion(-0.589965, -0.202751, 0.065706, 0.778791)
bones/26/rotation = Quaternion(-0.622206, -0.199518, 0.0759309, 0.753185)
bones/26/scale = Vector3(1, 1, 0.999999)
bones/27/name = "toes.l"
bones/27/parent = 26
bones/27/rest = Transform3D(-1, -1.75424e-09, 1.51741e-07, -1.10452e-07, 0.694106, -0.719873, -1.04062e-07, -0.719873, -0.694106, -2.1306e-10, 0.16565, 5.17174e-09)
bones/27/enabled = true
bones/27/position = Vector3(-2.1306e-10, 0.16565, 5.17174e-09)
bones/27/rotation = Quaternion(-9.8886e-09, 0.920355, -0.391084, 7.82349e-08)
bones/27/rotation = Quaternion(-9.34837e-09, 0.919654, -0.39273, 7.81813e-08)
bones/27/scale = Vector3(1, 1, 1)
bones/28/name = "upperleg.r"
bones/28/parent = 1
bones/28/rest = Transform3D(1, 1.49611e-07, -6.08626e-08, 1.47406e-07, -0.999396, -0.0347412, -6.60234e-08, 0.0347411, -0.999398, -0.170945, 0.113587, 1.39233e-08)
bones/28/enabled = true
bones/28/position = Vector3(-0.170945, 0.113587, -0.000633608)
bones/28/rotation = Quaternion(0.993799, -0.0318363, 0.0301731, 0.102178)
bones/28/position = Vector3(-0.170945, 0.113587, 0.000504225)
bones/28/rotation = Quaternion(0.990967, -0.033341, 0.0294056, 0.126527)
bones/28/scale = Vector3(1, 1, 1)
bones/29/name = "lowerleg.r"
bones/29/parent = 28
bones/29/rest = Transform3D(1, -1.6129e-07, -1.20856e-07, 1.3212e-07, 0.977433, -0.211248, 1.52201e-07, 0.211248, 0.977433, -3.57982e-09, 0.227077, -6.13986e-09)
bones/29/enabled = true
bones/29/position = Vector3(-3.57982e-09, 0.227077, -6.13986e-09)
bones/29/rotation = Quaternion(0.388822, -6.07894e-08, 2.7189e-07, 0.921313)
bones/29/rotation = Quaternion(0.443473, -5.72857e-08, 3.08671e-07, 0.896288)
bones/29/scale = Vector3(1, 1, 1)
bones/30/name = "foot.r"
bones/30/parent = 29
bones/30/rest = Transform3D(1, -1.55132e-07, 2.93521e-07, -1.47115e-07, 0.585515, 0.810661, -2.97621e-07, -0.810662, 0.585514, -1.83221e-10, 0.149437, 9.66542e-10)
bones/30/enabled = true
bones/30/position = Vector3(-1.83221e-10, 0.149437, 9.66542e-10)
bones/30/rotation = Quaternion(-0.616609, 0.112612, -0.0185349, 0.778953)
bones/30/rotation = Quaternion(-0.647708, 0.111779, -0.023011, 0.753293)
bones/30/scale = Vector3(1, 1, 0.999999)
bones/31/name = "toes.r"
bones/31/parent = 30
bones/31/rest = Transform3D(-1, 1.75425e-09, -1.51741e-07, 1.10452e-07, 0.694106, -0.719873, 1.04062e-07, -0.719873, -0.694106, 2.13058e-10, 0.16565, 5.17174e-09)
bones/31/enabled = true
bones/31/position = Vector3(2.13058e-10, 0.16565, 5.17174e-09)
bones/31/rotation = Quaternion(3.03649e-08, 0.920355, -0.391084, -6.9553e-08)
bones/31/rotation = Quaternion(3.03633e-08, 0.920355, -0.391084, -6.95465e-08)
bones/31/scale = Vector3(1, 1, 1)
bones/32/name = "kneeIK.l"
bones/32/parent = 0
bones/32/rest = Transform3D(1, -2.59151e-07, -3.89414e-07, -3.89414e-07, 0, -1, 2.59151e-07, 1, 0, 0.170945, 0.29231, 0.575812)
bones/32/enabled = true
bones/32/position = Vector3(0.170945, 0.292365, 0.575867)
bones/32/position = Vector3(0.170945, 0.292948, 0.57645)
bones/32/rotation = Quaternion(0.707107, -2.29302e-07, -4.60552e-08, 0.707107)
bones/32/scale = Vector3(1, 1, 1)
bones/33/name = "control-toe-roll.l"
bones/33/parent = 0
bones/33/rest = Transform3D(1, 1.99485e-07, -3.55271e-14, 3.55271e-14, 0, 1, 1.99485e-07, -1, 0, 0.170945, 0.0259903, 0.245789)
bones/33/enabled = true
bones/33/position = Vector3(0.20196, 0.0279481, 0.207761)
bones/33/rotation = Quaternion(-0.709049, -7.03124e-08, -7.07398e-08, 0.705159)
bones/33/position = Vector3(0.20196, 0.0255434, 0.203417)
bones/33/rotation = Quaternion(-0.705693, -7.06503e-08, -7.04146e-08, 0.708517)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "control-heel-roll.l"
bones/34/parent = 33
@ -31861,15 +31861,15 @@ bones/39/name = "kneeIK.r"
bones/39/parent = 0
bones/39/rest = Transform3D(1, -2.59151e-07, 1.50996e-07, 1.50996e-07, 0, -1, 2.59151e-07, 1, 0, -0.170945, 0.29231, 0.575812)
bones/39/enabled = true
bones/39/position = Vector3(-0.170945, 0.292365, 0.575867)
bones/39/position = Vector3(-0.170945, 0.292948, 0.57645)
bones/39/rotation = Quaternion(0.707107, -3.82385e-08, 1.45009e-07, 0.707107)
bones/39/scale = Vector3(1, 1, 1)
bones/40/name = "control-toe-roll.r"
bones/40/parent = 0
bones/40/rest = Transform3D(1, 1.99485e-07, 0, 0, 0, 1, 1.99485e-07, -1, 0, -0.170945, 0.0259903, 0.245789)
bones/40/enabled = true
bones/40/position = Vector3(-0.170945, 0.026763, 0.240746)
bones/40/rotation = Quaternion(-0.702161, -7.10449e-08, -7.00033e-08, 0.712018)
bones/40/position = Vector3(-0.170945, 0.0259247, 0.246331)
bones/40/rotation = Quaternion(-0.705832, -7.07136e-08, -7.03513e-08, 0.70838)
bones/40/scale = Vector3(1, 1, 1)
bones/41/name = "control-heel-roll.r"
bones/41/parent = 40
@ -31917,8 +31917,8 @@ bones/47/name = "handIK.l"
bones/47/parent = 0
bones/47/rest = Transform3D(-2.38419e-07, 1, 0, 0, 0, 1, 1, 2.38419e-07, 0, 0.713181, 1.10676, 2.54914e-07)
bones/47/enabled = true
bones/47/position = Vector3(0.520792, 0.781626, -0.0566603)
bones/47/rotation = Quaternion(0.796158, 0.0031949, 0.60508, 0.000215067)
bones/47/position = Vector3(0.520792, 0.774593, -0.0564185)
bones/47/rotation = Quaternion(0.796366, 0.00344831, 0.604806, 0.000285998)
bones/47/scale = Vector3(1, 1, 1)
bones/48/name = "elbowIK.r"
bones/48/parent = 0
@ -31931,12 +31931,12 @@ bones/49/name = "handIK.r"
bones/49/parent = 0
bones/49/rest = Transform3D(1.19209e-07, -1, -1.19209e-07, 0, -1.19209e-07, 1, -1, -1.19209e-07, 0, -0.713182, 1.10676, -8.51573e-08)
bones/49/enabled = true
bones/49/position = Vector3(-0.510618, 0.781626, 0.0609533)
bones/49/rotation = Quaternion(0.759826, -0.00320634, -0.650119, 0.000906458)
bones/49/position = Vector3(-0.510618, 0.774593, 0.0611951)
bones/49/rotation = Quaternion(0.760048, -0.00345564, -0.649857, 0.000991548)
bones/49/scale = Vector3(1, 1, 1)
[node name="1H_Sword_Offhand" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00317518, 0.263183, 0.96474, 0.999989, -0.00223458, 0.00390166, 0.00318309, 0.964743, -0.263173, 0.512939, 0.630521, 0.00111077)
transform = Transform3D(-0.00409756, 0.263731, 0.964587, 0.999953, -0.00729529, 0.00624339, 0.00868403, 0.964568, -0.263688, 0.512984, 0.62317, 0.0015911)
visible = false
bone_name = "1H_Sword_Offhand"
bone_idx = 9
@ -31946,7 +31946,7 @@ mesh = SubResource("ArrayMesh_rvosg")
skeleton = NodePath("")
[node name="Badge_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00317516, 0.263182, 0.96474, 0.999989, -0.00223711, 0.00390232, 0.00318571, 0.964743, -0.263172, 0.663328, 0.631129, -0.039914)
transform = Transform3D(-0.00409754, 0.263731, 0.964587, 0.999953, -0.00729782, 0.00624406, 0.00868665, 0.964568, -0.263688, 0.663349, 0.624144, -0.0395139)
visible = false
bone_name = "Badge_Shield"
bone_idx = 10
@ -31956,7 +31956,7 @@ mesh = SubResource("ArrayMesh_0xags")
skeleton = NodePath("")
[node name="Rectangle_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00317516, 0.263182, 0.96474, 0.999989, -0.00223711, 0.00390232, 0.00318571, 0.964743, -0.263172, 0.663328, 0.631129, -0.039914)
transform = Transform3D(-0.00409754, 0.263731, 0.964587, 0.999953, -0.00729782, 0.00624406, 0.00868665, 0.964568, -0.263688, 0.663349, 0.624144, -0.0395139)
visible = false
bone_name = "Rectangle_Shield"
bone_idx = 11
@ -31966,7 +31966,7 @@ mesh = SubResource("ArrayMesh_qr44s")
skeleton = NodePath("")
[node name="Round_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00317516, 0.263182, 0.96474, 0.999989, -0.00223711, 0.00390232, 0.00318571, 0.964743, -0.263172, 0.663328, 0.631129, -0.039914)
transform = Transform3D(-0.00409754, 0.263731, 0.964587, 0.999953, -0.00729782, 0.00624406, 0.00868665, 0.964568, -0.263688, 0.663349, 0.624144, -0.0395139)
bone_name = "Round_Shield"
bone_idx = 12
@ -31975,7 +31975,7 @@ mesh = SubResource("ArrayMesh_bb24p")
skeleton = NodePath("")
[node name="Spike_Shield" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(-0.00317516, 0.263182, 0.96474, 0.999989, -0.00223711, 0.00390232, 0.00318571, 0.964743, -0.263172, 0.663328, 0.631129, -0.039914)
transform = Transform3D(-0.00409754, 0.263731, 0.964587, 0.999953, -0.00729782, 0.00624406, 0.00868665, 0.964568, -0.263688, 0.663349, 0.624144, -0.0395139)
bone_name = "Spike_Shield"
bone_idx = 13
@ -31984,7 +31984,7 @@ mesh = SubResource("ArrayMesh_jnwr3")
skeleton = NodePath("")
[node name="1H_Sword" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.00413619, -0.158506, 0.987349, 0.999987, -0.00186713, -0.00448971, 0.00255572, 0.987355, 0.158496, -0.497486, 0.635458, 0.140875)
transform = Transform3D(0.00329661, -0.162954, 0.986627, 0.999972, -0.00601416, -0.00433548, 0.00664068, 0.986615, 0.162929, -0.497151, 0.627954, 0.14133)
bone_name = "1H_Sword"
bone_idx = 19
@ -31992,11 +31992,10 @@ bone_idx = 19
mesh = SubResource("ArrayMesh_dbq6c")
skeleton = NodePath("")
[node name="HitBox" type="Area3D" parent="Rig/Skeleton3D/1H_Sword/1H_Sword" node_paths=PackedStringArray("unit")]
[node name="HitBox" type="Area3D" parent="Rig/Skeleton3D/1H_Sword/1H_Sword"]
collision_layer = 2
collision_mask = 0
script = ExtResource("4_d045i")
unit = NodePath("../../../../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Rig/Skeleton3D/1H_Sword/1H_Sword/HitBox"]
transform = Transform3D(0.999983, -0.00576691, 0.00131754, 0.00576017, 0.99997, 0.00529017, -0.00134835, -0.00528221, 0.999986, -0.00148761, 1.00681, -0.00297287)
@ -32004,7 +32003,7 @@ shape = SubResource("CapsuleShape3D_nge0l")
disabled = true
[node name="2H_Sword" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.00413617, -0.158506, 0.987349, 0.999987, -0.00186715, -0.00448969, 0.00255573, 0.987355, 0.158496, -0.497486, 0.635458, 0.140875)
transform = Transform3D(0.00329659, -0.162954, 0.986627, 0.999972, -0.00601417, -0.00433546, 0.00664069, 0.986615, 0.162929, -0.497151, 0.627954, 0.14133)
bone_name = "2H_Sword"
bone_idx = 20
@ -32013,7 +32012,7 @@ mesh = SubResource("ArrayMesh_ys2n7")
skeleton = NodePath("")
[node name="Knight_Helmet" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.999742, 0.000716675, 0.0226977, -0.000676587, 0.999998, -0.00177379, -0.022699, 0.00175798, 0.999741, 0.000200633, 1.1886, 0.00233376)
transform = Transform3D(0.999739, 0.000770346, 0.0228404, -0.000725669, 0.999998, -0.00196424, -0.0228419, 0.00194716, 0.999737, 0.000178585, 1.17912, 0.00244338)
bone_name = "Knight_Helmet"
bone_idx = 22
@ -32032,7 +32031,7 @@ transform = Transform3D(1, -0.000110137, 3.92254e-05, 0.000110138, 1, -1.74385e-
shape = SubResource("CapsuleShape3D_7mgwb")
[node name="Knight_Cape" type="BoneAttachment3D" parent="Rig/Skeleton3D"]
transform = Transform3D(0.996323, 0.000557058, 0.0856715, -0.000242756, 0.999993, -0.00367906, -0.0856729, 0.00364474, 0.996317, 0.000204222, 1.1886, 0.00228556)
transform = Transform3D(0.996392, 0.00055171, 0.0848693, -0.0002259, 0.999992, -0.00384851, -0.0848708, 0.00381546, 0.996385, 0.000183681, 1.17912, 0.00239565)
visible = false
bone_name = "Knight_Cape"
bone_idx = 23
@ -32078,18 +32077,18 @@ libraries = {
tree_root = SubResource("AnimationNodeStateMachine_vnar2")
anim_player = NodePath("../AnimationPlayer")
parameters/current_length = 1.06667
parameters/current_position = 0.301025
parameters/current_delta = 0.0180556
parameters/current_position = 0.465317
parameters/current_delta = 0.0166667
parameters/conditions/blocking = false
parameters/conditions/grounded = false
parameters/conditions/jumping = false
parameters/conditions/not_blocking = false
parameters/1h_attack_chop/current_length = 1.06667
parameters/1h_attack_chop/current_position = 1.06667
parameters/1h_attack_chop/current_delta = 0.0301324
parameters/1h_attack_chop/current_delta = 0.0333301
parameters/1h_slice_diagonal/current_length = 1.0
parameters/1h_slice_diagonal/current_position = 1.0
parameters/1h_slice_diagonal/current_delta = 0.0182547
parameters/1h_slice_diagonal/current_delta = 0.0166667
parameters/1h_slice_horizontal/current_length = 1.06667
parameters/1h_slice_horizontal/current_position = 1.06667
parameters/1h_slice_horizontal/current_delta = 0.0175091
@ -32118,21 +32117,21 @@ parameters/Hit_B/current_length = 0.866667
parameters/Hit_B/current_position = 0.866667
parameters/Hit_B/current_delta = 0.0202171
parameters/IWR/current_length = 1.06667
parameters/IWR/current_position = 0.301025
parameters/IWR/current_delta = 0.0180556
parameters/IWR/current_position = 0.465317
parameters/IWR/current_delta = 0.0166667
parameters/IWR/blend_position = Vector2(0.001912, 0.00518131)
parameters/IWR/0/current_length = 1.06667
parameters/IWR/0/current_position = 0.301025
parameters/IWR/0/current_delta = 0.0180556
parameters/IWR/0/current_position = 0.465317
parameters/IWR/0/current_delta = 0.0166667
parameters/IWR/1/current_length = 0.8
parameters/IWR/1/current_position = 0.0371897
parameters/IWR/1/current_delta = 0.0180556
parameters/IWR/1/current_position = 0.201551
parameters/IWR/1/current_delta = 0.0166667
parameters/IWR/2/current_length = 1.06667
parameters/IWR/2/current_position = 0.475417
parameters/IWR/2/current_delta = 0.0166667
parameters/IWR/3/current_length = 0.8
parameters/IWR/3/current_position = 0.0371897
parameters/IWR/3/current_delta = 0.0180556
parameters/IWR/3/current_position = 0.201551
parameters/IWR/3/current_delta = 0.0166667
parameters/IWR/4/current_length = 0.8
parameters/IWR/4/current_position = 0.561474
parameters/IWR/4/current_delta = 0.0166667
@ -32151,3 +32150,7 @@ parameters/Jump_Start/current_delta = 0.0180555
parameters/Start/current_length = 0.0
parameters/Start/current_position = 0.0
parameters/Start/current_delta = 0.0
[node name="Ear" type="AudioListener3D" parent="."]
[node name="FSX" type="AudioStreamPlayer3D" parent="."]

@ -1,9 +1,10 @@
[gd_scene load_steps=155 format=4 uid="uid://boygkamfqg6l6"]
[gd_scene load_steps=156 format=4 uid="uid://boygkamfqg6l6"]
[ext_resource type="Script" path="res://scripts/enemy.gd" id="2_gn4pp"]
[ext_resource type="Script" path="res://scripts/hurtbox.gd" id="3_372dk"]
[ext_resource type="Texture2D" uid="uid://bt85qpp4kw7c" path="res://resources/models/skeletons/Skeleton_Warrior_new_skeleton_texture.png" id="3_ugaqu"]
[ext_resource type="Texture2D" uid="uid://dusuxbeon1rsm" path="res://resources/images/white1x1.png" id="4_27io6"]
[ext_resource type="Script" path="res://scripts/enemy_overlay.gd" id="4_mjipw"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_haxcf"]
height = 2.4
@ -83155,10 +83156,9 @@ transform = Transform3D(0.999974, 0.00144248, -0.00714161, -0.00143309, 0.999998
mesh = SubResource("ArrayMesh_hfonj")
skin = SubResource("Skin_6fyg2")
[node name="HurtBox" type="Area3D" parent="Rig/Skeleton3D/Skeleton_Warrior_Head" node_paths=PackedStringArray("object")]
[node name="HurtBox" type="Area3D" parent="Rig/Skeleton3D/Skeleton_Warrior_Head"]
transform = Transform3D(0.999526, -0.00142748, 0.0307522, 0.00146661, 0.999998, -0.00124955, -0.0307504, 0.00129405, 0.999527, -0.000593465, 1.65388, 0.000117395)
script = ExtResource("3_372dk")
object = NodePath("../../../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Rig/Skeleton3D/Skeleton_Warrior_Head/HurtBox"]
shape = SubResource("SphereShape3D_8477n")
@ -83240,6 +83240,7 @@ parameters/Unarmed_Melee_Attack_Punch_B/current_delta = 0.0177787
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0)
billboard = 1
texture = SubResource("ViewportTexture_1vx5n")
script = ExtResource("4_mjipw")
[node name="EnemyOverlay" type="SubViewport" parent="sprite_enemy_overlay"]
transparent_bg = true

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dk2d1t5aomfnf"
path="res://.godot/imported/footstep_grass_000.ogg-414437c2607cf59ff7dac0a2c6d1be84.oggvorbisstr"
[deps]
source_file="res://resources/audio/footstep_grass_000.ogg"
dest_files=["res://.godot/imported/footstep_grass_000.ogg-414437c2607cf59ff7dac0a2c6d1be84.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dyq6b84r2um2b"
path="res://.godot/imported/footstep_grass_001.ogg-85695ef93e757edf84b488af7a355977.oggvorbisstr"
[deps]
source_file="res://resources/audio/footstep_grass_001.ogg"
dest_files=["res://.godot/imported/footstep_grass_001.ogg-85695ef93e757edf84b488af7a355977.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://l00c138w1ojm"
path="res://.godot/imported/footstep_grass_002.ogg-7289ebf6952b07dd8b9e0fad69114e10.oggvorbisstr"
[deps]
source_file="res://resources/audio/footstep_grass_002.ogg"
dest_files=["res://.godot/imported/footstep_grass_002.ogg-7289ebf6952b07dd8b9e0fad69114e10.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://iekwh5p2w7xe"
path="res://.godot/imported/footstep_grass_003.ogg-c4e026bee1bc8720a1808e83bf836e77.oggvorbisstr"
[deps]
source_file="res://resources/audio/footstep_grass_003.ogg"
dest_files=["res://.godot/imported/footstep_grass_003.ogg-c4e026bee1bc8720a1808e83bf836e77.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bejsfttvoeo3g"
path="res://.godot/imported/footstep_grass_004.ogg-4676a71a301898fb23e3f00a58b97855.oggvorbisstr"
[deps]
source_file="res://resources/audio/footstep_grass_004.ogg"
dest_files=["res://.godot/imported/footstep_grass_004.ogg-4676a71a301898fb23e3f00a58b97855.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

@ -3,7 +3,6 @@
[ext_resource type="Environment" uid="uid://d31wkt76cft8k" path="res://resources/world_environment.tres" id="1_03qki"]
[ext_resource type="Script" path="res://scripts/game_manager.gd" id="1_kvi4c"]
[ext_resource type="CameraAttributesPractical" uid="uid://cjryeyord6xdd" path="res://resources/camera_attributes.tres" id="2_0dc62"]
[ext_resource type="PackedScene" uid="uid://dtehhqrqtplan" path="res://packed-scenes/knight.tscn" id="7_iwqlu"]
[ext_resource type="MeshLibrary" uid="uid://dje66fxvu4hnm" path="res://resources/floors_mesh_library.tres" id="7_pv7jr"]
[ext_resource type="PackedScene" uid="uid://dif2kboftacra" path="res://packed-scenes/torch_mounted.tscn" id="8_8d1n4"]
[ext_resource type="PackedScene" uid="uid://d1vowjv6aed2s" path="res://packed-scenes/ui.tscn" id="9_ah8u8"]
@ -14,6 +13,7 @@
[ext_resource type="PackedScene" uid="uid://boygkamfqg6l6" path="res://packed-scenes/skeleton_warrior_new.tscn" id="13_8a4e7"]
[ext_resource type="AudioStream" uid="uid://crevt36xq2ywk" path="res://resources/music/Flowing Rocks.ogg" id="13_jpk8j"]
[ext_resource type="AudioStream" uid="uid://cw7nrvkf3iyvx" path="res://resources/voice/game_over.ogg" id="14_765i1"]
[ext_resource type="PackedScene" uid="uid://cv0cpierkxcw0" path="res://packed-scenes/knight_new.tscn" id="14_bpicj"]
[sub_resource type="PlaneMesh" id="PlaneMesh_7a7yt"]
material = ExtResource("10_0dqj1")
@ -43,16 +43,17 @@ shadow_enabled = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 49.8991, 25.834, -30.0061)
size = Vector3(10000, 10000, 1000)
[node name="GameManager" type="Node3D" parent="." node_paths=PackedStringArray("player")]
[node name="GameManager" type="Node3D" parent="."]
script = ExtResource("1_kvi4c")
player = NodePath("../Player")
[node name="Player" parent="." instance=ExtResource("7_iwqlu")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.852, 6, 6.862)
collision_layer = 6
[node name="Player" parent="." instance=ExtResource("14_bpicj")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.8595, 1.31889, 11.6001)
unit_name = "Player"
speed = 8.0
acceleration = 8.0
stamina_regeneration_rate = 3
speed = 6.0
jump_cost = 10
attack_cost = 15
damage = 5
[node name="CanvasLayer" type="CanvasLayer" parent="."]
@ -127,21 +128,29 @@ transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -19.13
[node name="Skeleton_Warrior_new" parent="Enemies" node_paths=PackedStringArray("player") instance=ExtResource("13_8a4e7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.3076, 1.36247, -36.183)
player = NodePath("../../Player")
unit_name = "Skeleton1"
maximum_health = 10
damage = 1
[node name="Skeleton_Warrior_new2" parent="Enemies" node_paths=PackedStringArray("player") instance=ExtResource("13_8a4e7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.9646, 1.36247, -0.182882)
player = NodePath("../../Player")
unit_name = "Skeleton2"
maximum_health = 10
damage = 1
[node name="Skeleton_Warrior_new3" parent="Enemies" node_paths=PackedStringArray("player") instance=ExtResource("13_8a4e7")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 32.931, 1.36247, -7.10216)
player = NodePath("../../Player")
unit_name = "Skeleton3"
maximum_health = 10
damage = 1
[node name="Audio" type="Node" parent="."]
[node name="BackgroundMusic" type="AudioStreamPlayer" parent="Audio"]
stream = ExtResource("13_jpk8j")
volume_db = -10.0
autoplay = true
[node name="Voice" type="AudioStreamPlayer" parent="Audio"]
stream = ExtResource("14_765i1")

@ -9,28 +9,39 @@ var attacks := ["Unarmed_Melee_Attack_Punch_A", "Unarmed_Melee_Attack_Punch_B"]
@onready var nav_agent: NavigationAgent3D = $NavigationAgent3D
func _ready() -> void:
state_changed.connect(_on_state_changed)
func _physics_process(_delta: float) -> void:
if state == States.dead: return
if player == null: return
if player.state == States.dead: return
if state == States.dead: return
var distance = global_position.distance_to(player.global_position)
if distance <= attack_range:
attack()
state = States.attacking
elif distance <= chasing_range:
chase_player(player.position)
func attack() -> void:
if enough_stamina_available(attack_cost):
use_stamina(attack_cost)
anim_state.travel(attacks.pick_random())
func chase_player(player_position: Vector3) -> void:
nav_agent.set_target_position(player_position)
if nav_agent.is_navigation_finished() or nav_agent.is_target_reached(): return
var next_path_position: Vector3 = nav_agent.get_next_path_position()
model.look_at(next_path_position)
var new_velocity: Vector3 = global_position.direction_to(next_path_position) * speed
_on_velocity_computed(new_velocity)
state = States.chasing
func _on_state_changed(new_state: States) -> void:
match new_state:
States.idle:
#TODO: Random movement
pass
States.chasing:
nav_agent.set_target_position(player.position)
if nav_agent.is_navigation_finished() or nav_agent.is_target_reached(): return
var next_path_position: Vector3 = nav_agent.get_next_path_position()
model.look_at(next_path_position)
var new_velocity: Vector3 = global_position.direction_to(next_path_position) * speed
_on_velocity_computed(new_velocity)
States.attacking:
if enough_stamina_available(attack_cost):
use_stamina(attack_cost)
anim_state.travel(attacks.pick_random())
States.dead:
player.gold += 1
#TODO: Slightly disapear
func _on_velocity_computed(safe_velocity: Vector3) -> void:
velocity = safe_velocity

@ -1,10 +1,9 @@
extends Node2D
extends Sprite3D
@onready var name_label: Label = $SubViewport/Name
@onready var health_bar: TextureProgressBar = $SubViewport/Healthar
@onready var stamina_bar: TextureProgressBar = $SubViewport/Stamina
@export var enemy: Enemy
@onready var name_label: Label = $EnemyOverlay/Name
@onready var health_bar: TextureProgressBar = $EnemyOverlay/Health
@onready var stamina_bar: TextureProgressBar = $EnemyOverlay/Stamina
@onready var enemy: Enemy = owner
func _ready() -> void:
enemy.health_changed.connect(update_health_bar)

@ -1,7 +1,7 @@
class_name HitBox
extends Area3D
@export var unit: Unit
@onready var unit: Unit = owner
func _init() -> void:
collision_layer = 2

@ -1,8 +1,6 @@
class_name HurtBox
extends Area3D
@export var object: Node3D
func _init() -> void:
collision_layer = 0
collision_mask = 2
@ -12,7 +10,6 @@ func _ready() -> void:
func _on_area_entered(hitbox: HitBox) -> void:
if hitbox == null: return
if object is Item or object is Unit:
print(object.name + " take damage by " + hitbox.object.name + "...")
if owner.has_method("take_damage"):
owner.take_damage(hitbox.get_damage())
#print(owner.unit_name + " take damage by " + hitbox.owner.unit_name + "...")
if owner.has_method("take_damage"):
owner.take_damage(hitbox.get_damage())

@ -1,15 +1,30 @@
class_name Player
extends Unit
@onready var fsx: AudioStreamPlayer3D = $FSX
@export var mouse_sensitivity := 0.006
@export var rotation_speed := 24.0
@export var joypad_sensitivity := 0.1
var attacks := ["1h_slice_diagonal", "1h_slice_horizontal", "1h_attack_chop"]
var footsteps := [
"res://resources/audio/footstep_grass_000.ogg",
"res://resources/audio/footstep_grass_001.ogg",
"res://resources/audio/footstep_grass_002.ogg",
"res://resources/audio/footstep_grass_003.ogg",
"res://resources/audio/footstep_grass_004.ogg"
]
@onready var spring_arm := $SpringArm3D
@export var gold := 0
var gold := 0:
get:
return gold
set(value):
gold = value
gold_changed.emit(gold)
signal gold_changed(current_gold)
func _ready() -> void:
@ -17,13 +32,28 @@ func _ready() -> void:
func _on_state_changed(new_state: States) -> void:
match new_state:
States.idle:
#TODO: no sound
pass
States.running:
if !fsx.playing:
fsx.stream = AudioStreamOggVorbis.load_from_file(footsteps.pick_random())
fsx.pitch_scale = randf_range(0.8, 1.2)
fsx.play()
States.attacking:
#TODO: attack sound
pass
States.blocking:
#TODO: block sound
pass
States.dead:
#TODO: Show Game Over screen with gold
print("Game Over!")
func add_gold(gold_amount: int) -> void:
gold += gold_amount
gold_changed.emit(gold)
func _physics_process(delta: float) -> void:
velocity.y += -gravity * delta
get_move_input(delta)
@ -79,12 +109,16 @@ func _input(event: InputEvent) -> void:
#Menue
if event.is_action_pressed("Menue"):
get_tree().quit
get_tree().quit()
func get_move_input(delta: float) -> void:
var vy = velocity.y
velocity.y = 0
var input = Input.get_vector("left", "right", "forward", "back")
if input == Vector2.ZERO and state != States.blocking:
state = States.idle
else:
state = States.running
var dir = Vector3(input.x, 0, input.y).rotated(Vector3.UP, spring_arm.rotation.y)
if state == States.blocking: dir = Vector3.ZERO
velocity = lerp(velocity, dir * speed, acceleration * delta)

@ -3,15 +3,13 @@ extends CharacterBody3D
@export var unit_name: String
@export var maximum_health := 100
@export var health := maximum_health
@export var maximum_stamina := 100
@export var stamina := 0
@export var stamina_regeneration_rate := 2
@export var speed := 4.0
@export var acceleration := 4.0
@export var jump_speed := 8.0
@export var jump_cost := 20
@export var attack_cost := 30
@export var stamina_regeneration_rate := 2
@export var damage := 10
@onready var model := $Rig
@ -29,6 +27,7 @@ enum States {
idle,
walking,
running,
chasing,
jumping,
attacking,
blocking,
@ -40,9 +39,24 @@ var state = States.idle:
return state
set(value):
state = value
print("Player state " + str(state) + "...")
state_changed.emit(value)
var health := maximum_health:
get:
return health
set(value):
health = clampi(value, 0, maximum_health)
health_changed.emit(health, maximum_health)
anim_state.travel(hits.pick_random())
if health <= 0: die()
var stamina := 0:
get:
return stamina
set(value):
stamina = clampi(value, 0, maximum_stamina)
stamina_changed.emit(stamina, maximum_stamina)
signal name_changed(unit_name: String)
signal health_changed(current_health: int, maximum_health: int)
signal stamina_changed(current_stamina: int, maximum_stamina: int)
@ -63,18 +77,13 @@ func _process(delta: float) -> void:
func take_damage(damage_amount: int) -> void:
health -= damage_amount
clampi(health, 0, maximum_health)
health_changed.emit(health, maximum_health)
anim_state.travel(hits.pick_random())
if health <= 0: die()
print(unit_name + " gets " + str(damage_amount) + " damage. Life: " + str(health) + "/" + str(maximum_health))
func enough_stamina_available(stamina_needed: int) -> bool:
return stamina_needed <= stamina
func use_stamina(stamina_needed: int) -> void:
stamina -= stamina_needed
clampi(stamina, 0, maximum_stamina)
stamina_changed.emit(stamina, maximum_stamina)
func die() -> void:
print(unit_name + " died!")