adding rotation

This commit is contained in:
AleaJactaEst 2023-11-23 00:05:33 +01:00
parent a6876f0ed5
commit fbeca50eba
5 changed files with 168 additions and 85 deletions

View file

@ -30,6 +30,28 @@ func _ready():
#$PlayerGameplayComponent.update_animations()
func get_my_position() -> Vector3:
#return $SpringArm3D/Camera3D.get_global_position()
return self.get_global_position()
func get_my_rotation() -> Vector3:
#return $SpringArm3D/Camera3D.get_global_rotation()
#return $Armature/Skeleton3D.get_global_rotation()
#print($Armature/Skeleton3D.get_global_rotation(), "---", $Armature.get_global_rotation())
return $Armature.get_global_rotation()
func set_my_position(pos:Vector3):
self.set_global_position(pos)
func set_my_rotation(rot:Vector3):
#$Armature.set_global_rotation(rot)
pass
func set_current_camera() -> void:
$SpringArm3D/Camera3D.set_current(true)

View file

@ -443,43 +443,43 @@ bones/0/name = "Hips"
bones/0/parent = -1
bones/0/rest = Transform3D(0.544576, -0.0348814, -0.837986, 0.0102475, 0.999337, -0.0349382, 0.838649, 0.0104393, 0.544573, -0.000172998, 0.901879, -0.00179914)
bones/0/enabled = true
bones/0/position = Vector3(-0.00345127, 0.931442, -0.00047956)
bones/0/rotation = Quaternion(-0.0406619, -0.36774, -0.0132479, 0.928945)
bones/0/position = Vector3(0.00465144, 0.929363, -0.0051697)
bones/0/rotation = Quaternion(-0.0394692, -0.367225, -0.0147558, 0.929177)
bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Spine"
bones/1/parent = 0
bones/1/rest = Transform3D(0.99963, -0.0129189, 0.0239171, 0.01122, 0.997494, 0.0698543, -0.0247596, -0.0695601, 0.99727, 4.88944e-09, 0.0992349, -0.0122733)
bones/1/enabled = true
bones/1/position = Vector3(4.88944e-09, 0.0992349, -0.0122733)
bones/1/rotation = Quaternion(-0.0141453, 0.0404929, -0.00567615, 0.999064)
bones/1/rotation = Quaternion(-0.0114734, 0.0403703, -0.00568826, 0.999103)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Spine1"
bones/2/parent = 1
bones/2/rest = Transform3D(0.99985, -0.015446, 0.00786788, 0.0155655, 0.999761, -0.0153596, -0.00762876, 0.0154798, 0.999851, -2.79397e-09, 0.11732, 1.86265e-09)
bones/2/enabled = true
bones/2/position = Vector3(-2.79397e-09, 0.11732, 1.86265e-09)
bones/2/rotation = Quaternion(0.0924817, 0.0824997, -0.00762405, 0.992261)
bones/2/rotation = Quaternion(0.0984863, 0.081927, -0.00777544, 0.99173)
bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Spine2"
bones/3/parent = 2
bones/3/rest = Transform3D(0.999844, -0.014346, 0.0103258, 0.0156141, 0.990645, -0.135571, -0.00828427, 0.135711, 0.990714, -2.79397e-09, 0.134588, -2.51457e-08)
bones/3/enabled = true
bones/3/position = Vector3(-2.79397e-09, 0.134588, -2.51457e-08)
bones/3/rotation = Quaternion(0.152822, 0.0816052, -0.0126994, 0.984797)
bones/3/rotation = Quaternion(0.158146, 0.0813042, -0.0127239, 0.983981)
bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Neck"
bones/4/parent = 3
bones/4/rest = Transform3D(0.968778, 0.12654, 0.213204, -0.00181599, 0.863542, -0.504273, -0.247921, 0.488142, 0.836811, 2.48197e-07, 0.150325, 0.00792907)
bones/4/enabled = true
bones/4/position = Vector3(2.48197e-07, 0.150325, 0.00792907)
bones/4/rotation = Quaternion(0.134818, -0.0100913, 0.00307821, 0.990814)
bones/4/rotation = Quaternion(0.11929, -0.0104056, 0.0036508, 0.992798)
bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Head"
bones/5/parent = 4
bones/5/rest = Transform3D(0.840773, 0.330252, 0.428993, -0.33245, 0.940342, -0.0723432, -0.427291, -0.0817944, 0.900406, 5.58794e-09, 0.107895, 5.21541e-08)
bones/5/enabled = true
bones/5/position = Vector3(5.58794e-09, 0.107895, 5.21541e-08)
bones/5/rotation = Quaternion(-0.0301788, 0.169366, -0.0589658, 0.983325)
bones/5/rotation = Quaternion(-0.0394857, 0.165949, -0.0646774, 0.983219)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "HeadTop_End"
bones/6/parent = 5
@ -507,42 +507,42 @@ bones/9/parent = 3
bones/9/rest = Transform3D(-0.250988, 0.959361, -0.128958, 0.025503, -0.126623, -0.991623, -0.967654, -0.252174, 0.0073142, 0.0610582, 0.0911044, 0.00705553)
bones/9/enabled = true
bones/9/position = Vector3(0.0610582, 0.0911044, 0.00705553)
bones/9/rotation = Quaternion(-0.465698, -0.542563, 0.568722, -0.406578)
bones/9/rotation = Quaternion(-0.486829, -0.523397, 0.571439, -0.403126)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "LeftArm"
bones/10/parent = 9
bones/10/rest = Transform3D(0.845869, -0.51692, -0.131522, 0.093338, 0.386222, -0.917671, 0.52516, 0.763954, 0.374941, 7.45058e-09, 0.129223, 3.95812e-08)
bones/10/enabled = true
bones/10/position = Vector3(7.45058e-09, 0.129223, 3.95812e-08)
bones/10/rotation = Quaternion(0.536885, -0.0737268, 0.144452, 0.827921)
bones/10/rotation = Quaternion(0.526397, -0.0806837, 0.144837, 0.833918)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "LeftForeArm"
bones/11/parent = 10
bones/11/rest = Transform3D(0.138967, -0.989426, 0.0415226, 0.989436, 0.140472, 0.0358277, -0.0412816, 0.0361051, 0.998495, -4.47035e-08, 0.274229, -7.45058e-09)
bones/11/enabled = true
bones/11/position = Vector3(-4.47035e-08, 0.274229, -7.45058e-09)
bones/11/rotation = Quaternion(-0.00794147, 0.0991247, 0.453072, 0.88591)
bones/11/rotation = Quaternion(-0.0108031, 0.0933095, 0.445505, 0.890338)
bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "LeftHand"
bones/12/parent = 11
bones/12/rest = Transform3D(0.746359, -0.304314, 0.591895, 0.184003, 0.949028, 0.255908, -0.639601, -0.0820888, 0.764311, 6.0536e-09, 0.276326, -1.49012e-08)
bones/12/enabled = true
bones/12/position = Vector3(6.0536e-09, 0.276326, -1.49012e-08)
bones/12/rotation = Quaternion(-0.142253, 0.123457, -0.00623136, 0.982081)
bones/12/rotation = Quaternion(-0.10815, 0.1212, -0.00774457, 0.986689)
bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "LeftHandMiddle1"
bones/13/parent = 12
bones/13/rest = Transform3D(0.98654, 0.118644, -0.112532, -0.118809, 0.0472127, -0.991794, -0.112357, 0.991814, 0.0606732, -3.12924e-07, 0.127755, -7.63685e-08)
bones/13/enabled = true
bones/13/position = Vector3(-3.12924e-07, 0.127755, -7.63685e-08)
bones/13/rotation = Quaternion(0.140159, 0.00251126, -0.0681529, 0.987778)
bones/13/rotation = Quaternion(0.132869, 0.00449872, -0.0772619, 0.988107)
bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "LeftHandMiddle2"
bones/14/parent = 13
bones/14/rest = Transform3D(0.980685, 0.110739, -0.161229, -0.112737, -0.353585, -0.928584, -0.159838, 0.928824, -0.334271, -7.45058e-09, 0.0361397, -5.21541e-08)
bones/14/enabled = true
bones/14/position = Vector3(-7.45058e-09, 0.0361397, -5.21541e-08)
bones/14/rotation = Quaternion(0.203564, -0.0014014, 0.0158765, 0.978932)
bones/14/rotation = Quaternion(0.196346, -0.00136218, 0.0150699, 0.980418)
bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "LeftHandMiddle3"
bones/15/parent = 14
@ -563,14 +563,14 @@ bones/17/parent = 12
bones/17/rest = Transform3D(0.922249, -0.296379, 0.248225, 0.374682, 0.843413, -0.385056, -0.0952333, 0.448123, 0.888885, -0.0300309, 0.0378879, 0.0216701)
bones/17/enabled = true
bones/17/position = Vector3(-0.0300309, 0.0378879, 0.0216701)
bones/17/rotation = Quaternion(0.287483, 0.119054, 0.175276, 0.934055)
bones/17/rotation = Quaternion(0.28981, 0.11643, 0.176122, 0.933507)
bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "LeftHandThumb2"
bones/18/parent = 17
bones/18/rest = Transform3D(0.793061, 0.491162, -0.360297, -0.562049, 0.818065, -0.121947, 0.234851, 0.299216, 0.924832, 1.19209e-07, 0.0474499, -2.44938e-07)
bones/18/enabled = true
bones/18/position = Vector3(1.19209e-07, 0.0474499, -2.44938e-07)
bones/18/rotation = Quaternion(-0.00761833, 0.000957724, -0.000698928, 0.99997)
bones/18/rotation = Quaternion(-0.00503378, 0.00130975, -0.00167169, 0.999985)
bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "LeftHandThumb3"
bones/19/parent = 18
@ -591,14 +591,14 @@ bones/21/parent = 12
bones/21/rest = Transform3D(0.983723, 0.142189, -0.109869, -0.119058, 0.0577917, -0.991204, -0.134589, 0.988151, 0.0737798, -0.0282207, 0.122666, 0.00231682)
bones/21/enabled = true
bones/21/position = Vector3(-0.0282207, 0.122666, 0.00231682)
bones/21/rotation = Quaternion(0.0420411, -0.0055582, 0.0614346, 0.99721)
bones/21/rotation = Quaternion(0.0547743, -0.00698368, 0.0618662, 0.996556)
bones/21/scale = Vector3(1, 1, 1)
bones/22/name = "LeftHandIndex2"
bones/22/parent = 21
bones/22/rest = Transform3D(0.978949, 0.10384, -0.175717, -0.111366, -0.44972, -0.8862, -0.171047, 0.887113, -0.428688, 1.11759e-07, 0.0389198, -5.96046e-08)
bones/22/enabled = true
bones/22/position = Vector3(1.11759e-07, 0.0389198, -5.96046e-08)
bones/22/rotation = Quaternion(0.154151, -0.00100657, -0.0054683, 0.988032)
bones/22/rotation = Quaternion(0.15915, -0.00113891, -0.00484986, 0.987242)
bones/22/scale = Vector3(1, 1, 1)
bones/23/name = "LeftHandIndex3"
bones/23/parent = 22
@ -619,14 +619,14 @@ bones/25/parent = 12
bones/25/rest = Transform3D(0.991492, 0.0540781, -0.118406, -0.118263, -0.00584495, -0.992965, -0.0543897, 0.99852, 0.000600219, 0.0221662, 0.12147, -9.90927e-05)
bones/25/enabled = true
bones/25/position = Vector3(0.0221662, 0.12147, -9.90927e-05)
bones/25/rotation = Quaternion(0.278724, -0.0196431, -0.113661, 0.953419)
bones/25/rotation = Quaternion(0.272804, -0.0161311, -0.122071, 0.954157)
bones/25/scale = Vector3(1, 1, 1)
bones/26/name = "LeftHandRing2"
bones/26/parent = 25
bones/26/rest = Transform3D(0.981497, 0.113181, -0.154445, -0.116659, -0.286137, -0.951061, -0.151835, 0.951481, -0.267639, -3.72529e-08, 0.036012, -1.11759e-07)
bones/26/enabled = true
bones/26/position = Vector3(-3.72529e-08, 0.036012, -1.11759e-07)
bones/26/rotation = Quaternion(0.288651, 0.00178193, 0.0251576, 0.957102)
bones/26/rotation = Quaternion(0.28154, 0.00171336, 0.0247314, 0.959229)
bones/26/scale = Vector3(1, 1, 1)
bones/27/name = "LeftHandRing3"
bones/27/parent = 26
@ -647,14 +647,14 @@ bones/29/parent = 12
bones/29/rest = Transform3D(0.991785, 0.0101279, -0.127516, -0.126197, -0.0855001, -0.988314, -0.0209122, 0.996287, -0.0835196, 0.0472581, 0.109082, 0.00226384)
bones/29/enabled = true
bones/29/position = Vector3(0.0472581, 0.109082, 0.00226384)
bones/29/rotation = Quaternion(0.304018, -0.0213695, -0.147071, 0.941003)
bones/29/rotation = Quaternion(0.298034, -0.0173312, -0.155825, 0.941591)
bones/29/scale = Vector3(1, 1, 1)
bones/30/name = "LeftHandPinky2"
bones/30/parent = 29
bones/30/rest = Transform3D(0.989305, 0.129006, -0.068066, -0.049097, -0.144898, -0.988228, -0.13735, 0.981001, -0.137015, -5.96046e-08, 0.0413669, -1.49012e-08)
bones/30/enabled = true
bones/30/position = Vector3(-5.96046e-08, 0.0413669, -1.49012e-08)
bones/30/rotation = Quaternion(0.349848, 0.0118446, 0.0500383, 0.935394)
bones/30/rotation = Quaternion(0.342256, 0.0114697, 0.0499614, 0.938207)
bones/30/scale = Vector3(1, 1, 1)
bones/31/name = "LeftHandPinky3"
bones/31/parent = 30
@ -675,42 +675,42 @@ bones/33/parent = 3
bones/33/rest = Transform3D(-0.214833, -0.949432, 0.228968, -0.0511495, -0.223182, -0.973434, 0.975311, -0.220837, -0.000616074, -0.061057, 0.0911053, 0.00705566)
bones/33/enabled = true
bones/33/position = Vector3(-0.061057, 0.0911053, 0.00705566)
bones/33/rotation = Quaternion(0.518768, -0.501831, 0.538214, 0.435167)
bones/33/rotation = Quaternion(0.538261, -0.484035, 0.539411, 0.43014)
bones/33/scale = Vector3(1, 1, 1)
bones/34/name = "RightArm"
bones/34/parent = 33
bones/34/rest = Transform3D(0.555382, 0.714901, -0.424814, -0.786414, 0.285417, -0.547804, -0.270377, 0.63832, 0.720724, -2.23517e-08, 0.129223, 9.12696e-08)
bones/34/enabled = true
bones/34/position = Vector3(-2.23517e-08, 0.129223, 9.12696e-08)
bones/34/rotation = Quaternion(0.516288, 0.0806474, 0.078472, 0.848991)
bones/34/rotation = Quaternion(0.517824, 0.0822025, 0.0777739, 0.847969)
bones/34/scale = Vector3(1, 1, 1)
bones/35/name = "RightForeArm"
bones/35/parent = 34
bones/35/rest = Transform3D(-0.491194, 0.870247, -0.0374029, -0.870282, -0.488505, 0.0630281, 0.0365786, 0.0635101, 0.997311, 7.45058e-09, 0.274776, -3.72529e-08)
bones/35/enabled = true
bones/35/position = Vector3(7.45058e-09, 0.274776, -3.72529e-08)
bones/35/rotation = Quaternion(0.0644569, -0.067243, -0.431958, 0.897071)
bones/35/rotation = Quaternion(0.0568088, -0.0569877, -0.428339, 0.900028)
bones/35/scale = Vector3(1, 1, 1)
bones/36/name = "RightHand"
bones/36/parent = 35
bones/36/rest = Transform3D(0.953663, 0.121098, 0.275431, -0.18063, 0.962538, 0.202223, -0.240624, -0.242603, 0.939811, 7.45058e-09, 0.276868, 5.96046e-08)
bones/36/enabled = true
bones/36/position = Vector3(7.45058e-09, 0.276868, 5.96046e-08)
bones/36/rotation = Quaternion(0.110468, -0.00591672, -0.0525864, 0.99247)
bones/36/rotation = Quaternion(0.110198, -0.0170778, -0.0644156, 0.991673)
bones/36/scale = Vector3(1, 1, 1)
bones/37/name = "RightHandMiddle1"
bones/37/parent = 36
bones/37/rest = Transform3D(0.986308, -0.119644, 0.1135, 0.119813, 0.0469439, -0.991686, 0.113321, 0.991706, 0.060636, 3.50177e-07, 0.127755, -8.9407e-08)
bones/37/enabled = true
bones/37/position = Vector3(3.50177e-07, 0.127755, -8.9407e-08)
bones/37/rotation = Quaternion(0.110609, 0.00839598, 0.0252161, 0.993509)
bones/37/rotation = Quaternion(0.111134, 0.00835184, 0.0255921, 0.993441)
bones/37/scale = Vector3(1, 1, 1)
bones/38/name = "RightHandMiddle2"
bones/38/parent = 37
bones/38/rest = Transform3D(0.980361, -0.111685, 0.162538, 0.114835, -0.346749, -0.930902, 0.160328, 0.931285, -0.327114, 6.70552e-08, 0.0361398, -1.02445e-07)
bones/38/enabled = true
bones/38/position = Vector3(6.70552e-08, 0.0361398, -1.02445e-07)
bones/38/rotation = Quaternion(0.306286, 0.00172178, -0.0209892, 0.951707)
bones/38/rotation = Quaternion(0.288914, 0.0015858, -0.0193864, 0.957157)
bones/38/scale = Vector3(1, 1, 1)
bones/39/name = "RightHandMiddle3"
bones/39/parent = 38
@ -731,14 +731,14 @@ bones/41/parent = 36
bones/41/rest = Transform3D(0.940404, 0.29207, -0.174168, -0.340048, 0.811489, -0.475239, 0.00253238, 0.506143, 0.862446, 0.0300309, 0.037888, 0.0216703)
bones/41/enabled = true
bones/41/position = Vector3(0.0300309, 0.037888, 0.0216703)
bones/41/rotation = Quaternion(0.202304, 0.0252338, -0.225745, 0.952615)
bones/41/rotation = Quaternion(0.205042, 0.0226834, -0.229424, 0.951214)
bones/41/scale = Vector3(1, 1, 1)
bones/42/name = "RightHandThumb2"
bones/42/parent = 41
bones/42/rest = Transform3D(0.793791, -0.608189, -0.00159446, 0.595053, 0.777184, -0.204689, 0.125729, 0.161531, 0.978826, -1.2666e-07, 0.0474498, -2.68221e-07)
bones/42/enabled = true
bones/42/position = Vector3(-1.2666e-07, 0.0474498, -2.68221e-07)
bones/42/rotation = Quaternion(0.00650247, 0.00178258, 0.183951, 0.982912)
bones/42/rotation = Quaternion(0.00305879, 0.00148167, 0.181074, 0.983464)
bones/42/scale = Vector3(1, 1, 1)
bones/43/name = "RightHandThumb3"
bones/43/parent = 42
@ -759,14 +759,14 @@ bones/45/parent = 36
bones/45/rest = Transform3D(0.978763, -0.172845, 0.110213, 0.120904, 0.0525683, -0.991271, 0.165542, 0.983545, 0.0723496, 0.0282207, 0.122666, 0.00231693)
bones/45/enabled = true
bones/45/position = Vector3(0.0282207, 0.122666, 0.00231693)
bones/45/rotation = Quaternion(0.0384034, 0.00996297, 0.00894548, 0.999173)
bones/45/rotation = Quaternion(0.0468797, 0.0106206, 0.00603742, 0.998826)
bones/45/scale = Vector3(1, 1, 1)
bones/46/name = "RightHandIndex2"
bones/46/parent = 45
bones/46/rest = Transform3D(0.978593, -0.104714, 0.177172, 0.106914, -0.476935, -0.872412, 0.175853, 0.872679, -0.45553, 1.49012e-07, 0.0389196, -8.75443e-08)
bones/46/enabled = true
bones/46/position = Vector3(1.49012e-07, 0.0389196, -8.75443e-08)
bones/46/rotation = Quaternion(0.146846, 0.000167914, 0.00971157, 0.989112)
bones/46/rotation = Quaternion(0.161051, 0.00048133, 0.00826029, 0.986911)
bones/46/scale = Vector3(1, 1, 1)
bones/47/name = "RightHandIndex3"
bones/47/parent = 46
@ -787,14 +787,14 @@ bones/49/parent = 36
bones/49/rest = Transform3D(0.991829, -0.0281871, 0.124419, 0.122843, -0.0520322, -0.991061, 0.0344089, 0.998247, -0.0481446, -0.0221661, 0.12147, -9.89214e-05)
bones/49/enabled = true
bones/49/position = Vector3(-0.0221661, 0.12147, -9.89214e-05)
bones/49/rotation = Quaternion(0.208888, -0.00664281, 0.0655961, 0.975715)
bones/49/rotation = Quaternion(0.200314, -0.00740604, 0.0665204, 0.977443)
bones/49/scale = Vector3(1, 1, 1)
bones/50/name = "RightHandRing2"
bones/50/parent = 49
bones/50/rest = Transform3D(0.982662, -0.117406, 0.143498, 0.122607, -0.169092, -0.977944, 0.139081, 0.978583, -0.151765, -7.45058e-09, 0.036012, 0)
bones/50/enabled = true
bones/50/position = Vector3(-7.45058e-09, 0.036012, 0)
bones/50/rotation = Quaternion(0.34144, -0.00250544, -0.0359764, 0.939211)
bones/50/rotation = Quaternion(0.332856, -0.0024453, -0.0352517, 0.942315)
bones/50/scale = Vector3(1, 1, 1)
bones/51/name = "RightHandRing3"
bones/51/parent = 50
@ -815,14 +815,14 @@ bones/53/parent = 36
bones/53/rest = Transform3D(0.989897, 0.0602255, 0.128364, 0.133612, -0.0931972, -0.986642, -0.0474579, 0.993824, -0.100302, -0.047258, 0.109082, 0.00226358)
bones/53/enabled = true
bones/53/position = Vector3(-0.047258, 0.109082, 0.00226358)
bones/53/rotation = Quaternion(0.208092, -0.0111425, 0.0917662, 0.973731)
bones/53/rotation = Quaternion(0.208023, -0.0111833, 0.0923438, 0.973691)
bones/53/scale = Vector3(1, 1, 1)
bones/54/name = "RightHandPinky2"
bones/54/parent = 53
bones/54/rest = Transform3D(0.983236, -0.118306, 0.138749, 0.122507, -0.134994, -0.983244, 0.135054, 0.983758, -0.118237, -2.98023e-08, 0.0413665, 4.24334e-08)
bones/54/enabled = true
bones/54/position = Vector3(-2.98023e-08, 0.0413665, 4.24334e-08)
bones/54/rotation = Quaternion(0.370164, -0.0131607, -0.070413, 0.9262)
bones/54/rotation = Quaternion(0.371406, -0.0132297, -0.0704919, 0.925696)
bones/54/scale = Vector3(1, 1, 1)
bones/55/name = "RightHandPinky3"
bones/55/parent = 54
@ -843,28 +843,28 @@ bones/57/parent = 0
bones/57/rest = Transform3D(-0.919821, -0.336213, -0.202214, 0.264978, -0.912457, 0.311783, -0.289337, 0.233202, 0.928386, -0.0912445, -0.0665637, -0.000553781)
bones/57/enabled = true
bones/57/position = Vector3(-0.0912445, -0.0665637, -0.000553781)
bones/57/rotation = Quaternion(-0.12501, 0.00538849, 0.983587, 0.13)
bones/57/rotation = Quaternion(-0.124769, 0.0179631, 0.983469, 0.129997)
bones/57/scale = Vector3(1, 1, 1)
bones/58/name = "RightLeg"
bones/58/parent = 57
bones/58/rest = Transform3D(0.997811, 0.0392429, -0.0532304, 0.00932048, 0.713425, 0.70067, 0.0654722, -0.699632, 0.711497, 4.84288e-08, 0.405994, 2.6077e-08)
bones/58/enabled = true
bones/58/position = Vector3(4.84288e-08, 0.405994, 2.6077e-08)
bones/58/rotation = Quaternion(-0.287049, 0.074642, -0.0183161, 0.954828)
bones/58/rotation = Quaternion(-0.300078, 0.0733131, -0.0191001, 0.950902)
bones/58/scale = Vector3(1, 1, 1)
bones/59/name = "RightFoot"
bones/59/parent = 58
bones/59/rest = Transform3D(0.96994, -0.122934, 0.210008, 0.229929, 0.180407, -0.95634, 0.0796801, 0.975879, 0.20325, -1.02445e-08, 0.42099, 9.31323e-09)
bones/59/enabled = true
bones/59/position = Vector3(-1.02445e-08, 0.42099, 9.31323e-09)
bones/59/rotation = Quaternion(0.594817, 0.0611857, 0.113565, 0.793443)
bones/59/rotation = Quaternion(0.595721, 0.0614663, 0.113526, 0.792748)
bones/59/scale = Vector3(1, 1, 1)
bones/60/name = "RightToeBase"
bones/60/parent = 59
bones/60/rest = Transform3D(0.999367, 6.43255e-05, 0.0355612, 0.0227211, 0.768109, -0.639916, -0.027356, 0.640319, 0.767622, -5.51563e-09, 0.16432, -1.09159e-07)
bones/60/enabled = true
bones/60/position = Vector3(-5.51563e-09, 0.16432, -1.09159e-07)
bones/60/rotation = Quaternion(0.354062, 0.0196222, 0.00437383, 0.935006)
bones/60/rotation = Quaternion(0.354126, 0.0204142, 0.00400344, 0.934967)
bones/60/scale = Vector3(1, 1, 1)
bones/61/name = "RightToe_End"
bones/61/parent = 60
@ -878,28 +878,28 @@ bones/62/parent = 0
bones/62/rest = Transform3D(-0.893651, 0.403296, 0.196826, -0.227377, -0.785047, 0.576195, 0.386895, 0.470164, 0.793258, 0.0912445, -0.0665636, -0.000553777)
bones/62/enabled = true
bones/62/position = Vector3(0.0912445, -0.0665636, -0.000553777)
bones/62/rotation = Quaternion(0.0802593, 0.204578, 0.969916, -0.104736)
bones/62/rotation = Quaternion(0.0777127, 0.2137, 0.968219, -0.104139)
bones/62/scale = Vector3(1, 1, 1)
bones/63/name = "LeftLeg"
bones/63/parent = 62
bones/63/rest = Transform3D(0.99576, 0.0029921, 0.0919402, -0.056273, 0.810456, 0.583091, -0.0727688, -0.585792, 0.807188, 5.12227e-08, 0.405994, -2.04891e-08)
bones/63/enabled = true
bones/63/position = Vector3(5.12227e-08, 0.405994, -2.04891e-08)
bones/63/rotation = Quaternion(-0.305458, 0.122769, -0.0386632, 0.943466)
bones/63/rotation = Quaternion(-0.310692, 0.120739, -0.0382815, 0.942034)
bones/63/scale = Vector3(1, 1, 1)
bones/64/name = "LeftFoot"
bones/64/parent = 63
bones/64/rest = Transform3D(0.977802, 0.128039, -0.165856, -0.209522, 0.59104, -0.778956, -0.00170929, 0.796415, 0.604748, -2.04891e-08, 0.42099, 6.98492e-09)
bones/64/enabled = true
bones/64/position = Vector3(-2.04891e-08, 0.42099, 6.98492e-09)
bones/64/rotation = Quaternion(0.489791, -0.0222722, -0.0402406, 0.870626)
bones/64/rotation = Quaternion(0.487092, -0.0216807, -0.0391932, 0.872202)
bones/64/scale = Vector3(1, 1, 1)
bones/65/name = "LeftToeBase"
bones/65/parent = 64
bones/65/rest = Transform3D(0.999367, -0.000945242, -0.0355486, -0.0227206, 0.752033, -0.658734, 0.0273564, 0.659125, 0.751536, 3.66616e-08, 0.16432, -1.10293e-07)
bones/65/enabled = true
bones/65/position = Vector3(3.66616e-08, 0.16432, -1.10293e-07)
bones/65/rotation = Quaternion(0.360056, -0.00341811, -0.029705, 0.932451)
bones/65/rotation = Quaternion(0.358136, 0.00115284, -0.0287071, 0.933227)
bones/65/scale = Vector3(1, 1, 1)
bones/66/name = "LeftToe_End"
bones/66/parent = 65
@ -918,7 +918,7 @@ mesh = SubResource("ArrayMesh_ludfp")
skin = SubResource("Skin_0b2ap")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Armature/Skeleton3D"]
transform = Transform3D(0.99668, -0.0764794, 0.02793, 0.0791498, 0.829665, -0.552622, 0.0190918, 0.552998, 0.832964, -0.022147, 1.50134, 0.109646)
transform = Transform3D(0.997703, -0.0651011, 0.0187331, 0.0649426, 0.840481, -0.537934, 0.0192755, 0.537915, 0.842779, -0.0171964, 1.49725, 0.111914)
bone_name = "Head"
bone_idx = 5

View file

@ -83,8 +83,9 @@ func _on_connexion_updated(new_state:Multi.Connexion):
$Panel.show()
func _on_update_me(pos:Vector3):
func _on_update_me(pos:Vector3, rot:Vector3):
self.set_player_position(pos)
self.set_player_rotation(rot)
#self.get_node("CharacterBody3D").set_enable_event(true)
#for idx in $PlayerSpawnLocation.get_child_count():
# $PlayerSpawnLocation.queue_free()
@ -94,7 +95,7 @@ func _on_update_me(pos:Vector3):
#self.set_player_position(pos)
func _on_update_player(id:int, pos:Vector3):
func _on_update_player(id:int, pos:Vector3, rot:Vector3):
var child = $Players.find_child(str(id), false, false)
if child == null:
print("Add player : ", id)
@ -105,12 +106,14 @@ func _on_update_player(id:int, pos:Vector3):
instance.set_visible(true)
instance.set_id(id)
var child2 = $Players.find_child(str(id), false, false)
child2.set_global_position(pos)
child2.set_my_position(pos)
child2.set_my_rotation(rot)
else:
print("Update player : ", id, " ", pos)
print(pos)
print("Update player : ", id, " ", pos, " ", rot)
#print(pos)
#pos.y += 10.0
child.set_global_position(pos)
child.set_my_position(pos)
child.set_my_rotation(rot)
#child.set_visible(true)
@ -157,4 +160,8 @@ func _input(event):
func set_player_position(pos: Vector3):
$PlayerSpawnLocation.set_global_position(pos)
#$PlayerSpawnLocation.set_global_position(pos)
$PlayerSpawnLocation.get_child(0).set_my_position(pos)
func set_player_rotation(rot: Vector3):
$PlayerSpawnLocation.get_child(0).set_my_rotation(rot)

View file

@ -28,7 +28,7 @@ func set_username(value):
disconnect_server()
@export var player_position:Node = null :
@export var player_position:Node3D = null :
set = set_player_position
@ -54,8 +54,8 @@ enum Connexion{
signal connexion_updated(new_state)
signal update_my_position(pos)
signal update_player_position(id, pos)
signal update_my_position(pos, rot)
signal update_player_position(id, pos, rot)
signal remove_player(id)
@ -113,7 +113,7 @@ func connect_server():
func _ready():
print("------ Multi initliazed")
print("------ Multi initialized")
update_state(Connexion.NONE)
@ -128,12 +128,15 @@ func get_event_received():
if data[0] == 1: # Return connexion
if data[1] == 0: # OK
id = data.decode_u64(2)
var x = data.decode_double(2+8)
var y = data.decode_double(2+16)
var z = data.decode_double(2+24)
var x:float = data.decode_double(2+8)
var y:float = data.decode_double(2+16)
var z:float = data.decode_double(2+24)
var rx:float = data.decode_double(2+32)
var ry:float = data.decode_double(2+40)
var rz:float = data.decode_double(2+48)
print("MyID:", id)
#print("id:", id, " x:", x, " y:", y, " z:", z)
update_my_position.emit(Vector3(x, y, z))
update_my_position.emit(Vector3(x, y, z), Vector3(rx, ry, rz))
#self.set_player_position(Vector3(x, y, z))
update_state(Connexion.CONNECTED)
else: # KO
@ -141,19 +144,23 @@ func get_event_received():
elif data[0] == 3: # Get position
if id == 0:
return
var nb = data[1]
var pos = 2
var nb:int = data[1]
var pos:int = 2
for i in nb:
var mid = data.decode_u64(pos)
var mx = data.decode_double(pos+8)
var my = data.decode_double(pos+16)
var mz = data.decode_double(pos+24)
pos += 32
var mid:int = data.decode_u64(pos)
var mx:float = data.decode_double(pos+8)
var my:float = data.decode_double(pos+16)
var mz:float = data.decode_double(pos+24)
var rx:float = data.decode_double(pos+32)
var ry:float = data.decode_double(pos+40)
var rz:float = data.decode_double(pos+48)
pos += 56
if mid == id:
#print("Me id:", mid, " x:", mx, " y:", my, " z:", mz)
continue
update_player_position.emit(mid, Vector3(mx, my, mz))
var nbuserremove = data[pos]
#print("pos:", pos, " id:", mid, " x:", mx, " y:", my, " z:", mz, " rx:", rx, " ry:", ry, " rz:", rz)
update_player_position.emit(mid, Vector3(mx, my, mz), Vector3(rx, ry, rz))
var nbuserremove:int = data[pos]
pos += 1
for i in nbuserremove:
var mid = data.decode_u64(pos)
@ -183,10 +190,14 @@ func get_player_position():
if state_connexion != Connexion.CONNECTED:
return
var pos:PackedFloat64Array = PackedFloat64Array()
var posRaw:Vector3 = player_position.get_global_position() #get_position()
var posRaw:Vector3 = player_position.get_my_position() #get_position()
pos.append(posRaw.x)
pos.append(posRaw.y)
pos.append(posRaw.z)
var rotRaw:Vector3 = player_position.get_my_rotation()
pos.append(rotRaw.x)
pos.append(rotRaw.y)
pos.append(rotRaw.z)
var data:PackedByteArray = PackedByteArray()
data += pos.to_byte_array()
errorEnet = dataEnet.send(2, data, 1)

View file

@ -116,9 +116,12 @@ struct User {
username: String,
address: Address,
id: u64,
x: f64,
y: f64,
z: f64,
x: f64, // translation X
y: f64, // translation Y
z: f64, // translation Z
rx: f64, // rotation X
ry: f64, // rotation Y
rz: f64, // rotation Z
position_updated: bool,
lasttime: Instant,
sendfull: u8,
@ -164,7 +167,7 @@ impl User {
pub fn clear_position_updated(&mut self) {
self.position_updated = false;
}
pub fn update_pos(&mut self, x:f64, y:f64, z:f64) {
pub fn update_pos_rot(&mut self, x:f64, y:f64, z:f64, rx:f64, ry:f64, rz:f64) {
if self.x != x {
self.x = x;
self.position_updated = true;
@ -177,6 +180,18 @@ impl User {
self.z = z;
self.position_updated = true;
}
if self.rx != rx {
self.rx = rx;
self.position_updated = true;
}
if self.ry != ry {
self.ry = ry;
self.position_updated = true;
}
if self.rz != rz {
self.rz = rz;
self.position_updated = true;
}
}
/*
pub fn get_position(&mut self) -> Position {
@ -189,6 +204,9 @@ impl User {
push_f64(data, self.x);
push_f64(data, self.y);
push_f64(data, self.z);
push_f64(data, self.rx);
push_f64(data, self.ry);
push_f64(data, self.rz);
}
pub fn push_packet_id(&self, data:&mut Vec<u8>) {
push_u64(data, self.id);
@ -207,9 +225,9 @@ impl User {
impl std::fmt::Display for User {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "id:{} user:{} active:{} address:{}:{} ({}:{}:{}) sendfull:{}",
write!(f, "id:{} user:{} active:{} address:{}:{} (pos:{}:{}:{}) (rot:{}:{}:{}) sendfull:{}",
self.id, self.username, self.active, self.address.ip(), self.address.port(),
self.x, self.y, self.z, self.sendfull)
self.x, self.y, self.z, self.rx, self.ry, self.rz, self.sendfull)
}
}
@ -219,13 +237,15 @@ impl std::fmt::Display for User {
struct Users {
users: Vec<User>,
lastid: u64,
player_active: u64,
}
impl Users {
pub fn new() -> Users {
Self {
lastid: 0,
users: Vec::new()
users: Vec::new(),
player_active: 0,
}
}
/*
@ -314,20 +334,24 @@ impl Users {
}
pub fn add(&mut self, username:String, address: Address) -> u64 {
let id = self.get_new_id();
self.users.push( User { active: true, username:username, address: address, id: id, x: 0.0, y: 10.0, z:0.0, position_updated:true, lasttime: Instant::now(), sendfull:10} );
self.player_active += 1;
self.users.push( User { active: true, username:username, address: address, id: id, x: 0.0, y: 10.0, z:0.0, rx: 0.0, ry: 0.0, rz:0.0, position_updated:true, lasttime: Instant::now(), sendfull:10} );
id
}
pub fn update_pos(&mut self, address: Address, x:f64, y:f64, z:f64) {
pub fn update_pos_rot(&mut self, address: Address, x:f64, y:f64, z:f64, rx:f64, ry:f64, rz:f64) {
for user in self.users.iter_mut() {
if user.address == address {
user.update_pos(x, y, z);
user.update_pos_rot(x, y, z, rx, ry, rz);
}
}
}
pub fn set_inactive(&mut self, address: Address) -> u64 {
for user in self.users.iter_mut() {
if user.address == address {
user.set_inactive();
if user.active == true {
self.player_active -= 1;
user.set_inactive();
}
return user.id;
}
}
@ -336,20 +360,31 @@ impl Users {
pub fn set_active(&mut self, address: Address) -> u64 {
for user in self.users.iter_mut() {
if user.address == address {
user.set_active();
if user.active == false {
self.player_active += 1;
user.set_active();
}
return user.id;
}
}
return 0;
}
pub fn get_players_active(&mut self) -> u64 {
return self.player_active;
}
pub fn get_count_players(&mut self) -> usize {
return self.users.len();
}
pub fn update_username(&mut self, username:String, address: Address) -> u64 {
let id = self.get_new_id();
for user in self.users.iter_mut() {
if user.address == address {
user.update_username(username.clone(), id);
self.player_active += 1;
user.set_active();
} else if user.username == username {
user.clear_username();
user.set_inactive();
}
}
id
@ -359,9 +394,11 @@ impl Users {
for user in self.users.iter_mut() {
if user.username == username {
user.update_address(address.clone(), id);
self.player_active += 1;
user.set_active();
} else if user.address == address {
user.clear_address();
user.set_inactive();
}
}
id
@ -620,7 +657,7 @@ impl Default for Statistics {
impl std::fmt::Display for Statistics {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "loop:{}, connect:{}, disconnect:{}, recv [all:{}, notdefined:{}, inactive:{}, updateuser:{}, udpateaddress:{}, error:{}, done:{}, forbidden:{} invaliduser:{}] send:[update:{}, remove:{}] ",
write!(f, "loop:{}, connect:{}, disconnect:{}, recv [all:{}, notdefined:{}, inactive:{}, updateuser:{}, udpateaddress:{}, error:{}, done:{}, forbidden:{} invaliduser:{}] send:[update:{}, remove:{}]",
self.count_loop, self.count_connect, self.count_disconnect, self.count_recv, self.count_recv_notdefined,
self.count_recv_inactive, self.count_recv_updateuser, self.count_recv_updateaddress, self.count_recv_error, self.count_recv_done,
self.count_recv_forbidden, self.count_recv_invaliduser,
@ -734,7 +771,7 @@ fn main() -> anyhow::Result<()> {
channel_id,
ref packet
}) => {
debug!(
trace!(
"got packet on channel {}, len: '{}' (who:{}:{})",
channel_id,
packet.data().len(),
@ -859,7 +896,13 @@ fn main() -> anyhow::Result<()> {
let y = ybytes.read_f64::<LittleEndian>().unwrap();
let mut zbytes: &[u8] = &packet.data()[16..24];
let z = zbytes.read_f64::<LittleEndian>().unwrap();
users.update_pos(sender.address(), x, y, z);
let mut rxbytes: &[u8] = &packet.data()[16..32];
let rx = rxbytes.read_f64::<LittleEndian>().unwrap();
let mut rybytes: &[u8] = &packet.data()[32..40];
let ry = rybytes.read_f64::<LittleEndian>().unwrap();
let mut rzbytes: &[u8] = &packet.data()[40..48];
let rz = rzbytes.read_f64::<LittleEndian>().unwrap();
users.update_pos_rot(sender.address(), x, y, z, rx, ry, rz);
}
_ => {
send_message_connect_ko(sender.clone()).unwrap();
@ -920,7 +963,7 @@ fn main() -> anyhow::Result<()> {
}
if stat.is_completed(cli.statistics) {
info!("{}", stat);
info!("Statistics: players:{}/{}, {}", users.get_players_active(), users.get_count_players(), stat);
stat.clear();
}
}