diff --git a/Root.tscn b/Root.tscn index c194197..7f20ab1 100644 --- a/Root.tscn +++ b/Root.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://bj5ykdjle10tt"] +[gd_scene load_steps=6 format=3 uid="uid://bj5ykdjle10tt"] [ext_resource type="Script" uid="uid://dmq3i7qmo1qe0" path="res://VRPN.gd" id="2_24d08"] [ext_resource type="Script" uid="uid://dpj1wrvfsiq4v" path="res://VRPN_Receiver.gd" id="2_170dk"] +[ext_resource type="PackedScene" uid="uid://b426fy7d6jw2d" path="res://axis.blend" id="3_170dk"] [sub_resource type="BoxMesh" id="BoxMesh_24d08"] size = Vector3(0.1, 0.1, 0.1) @@ -53,22 +54,26 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.764802, 0) script = ExtResource("2_170dk") tracker_name = "Tracker1" -[node name="Box2" type="MeshInstance3D" parent="Root/SpinTracker/Tracker1"] -mesh = SubResource("BoxMesh_24d08") -skeleton = NodePath("../../RB1") +[node name="axis2" parent="Root/SpinTracker/Tracker1" instance=ExtResource("3_170dk")] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0) + +[node name="Label3D2" type="Label3D" parent="Root/SpinTracker/Tracker1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.759683, 0) +text = "Y-Axis" [node name="Offset2" type="Node3D" parent="Root/SpinTracker"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.40838, 0, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0) [node name="Tracker2" type="Node3D" parent="Root/SpinTracker/Offset2"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40838, 0, 0) script = ExtResource("2_170dk") tracker_name = "Tracker2" -[node name="Box2" type="MeshInstance3D" parent="Root/SpinTracker/Offset2/Tracker2"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.40838, 0, 0) -mesh = SubResource("BoxMesh_24d08") -skeleton = NodePath("../../RB1") +[node name="axis" parent="Root/SpinTracker/Offset2/Tracker2" instance=ExtResource("3_170dk")] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0) + +[node name="Label3D3" type="Label3D" parent="Root/SpinTracker/Offset2/Tracker2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.764205, 0) +text = "Z-Axis" [node name="Offset0" type="Node3D" parent="Root/SpinTracker"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0) @@ -76,6 +81,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0) [node name="Tracker0" type="Node3D" parent="Root/SpinTracker/Offset0"] script = ExtResource("2_170dk") -[node name="Box2" type="MeshInstance3D" parent="Root/SpinTracker/Offset0/Tracker0"] -mesh = SubResource("BoxMesh_24d08") -skeleton = NodePath("../../RB1") +[node name="axis" parent="Root/SpinTracker/Offset0/Tracker0" instance=ExtResource("3_170dk")] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0) + +[node name="Label3D" type="Label3D" parent="Root/SpinTracker/Offset0/Tracker0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.769847, 0) +text = "X-Axis" diff --git a/VRPN.gd b/VRPN.gd index 849b1ef..72fd42f 100644 --- a/VRPN.gd +++ b/VRPN.gd @@ -176,7 +176,8 @@ static func marshall_body(data : PackedByteArray,message_type : int, sender_id: var quat_x = body.get_double() var quat_y = body.get_double() var quat_z = body.get_double() - var quat = Quaternion(quat_x,quat_y,quat_z,quat_w).normalized() + #var quat = Quaternion(quat_x,quat_y,quat_z,quat_w).normalized() + var quat = Quaternion(quat_w,quat_x,quat_y,quat_z).normalized() for r in session.tracker_receivers: r._on_pos_quat({ diff --git a/VRPN_Receiver.gd b/VRPN_Receiver.gd index 8611d13..b540535 100644 --- a/VRPN_Receiver.gd +++ b/VRPN_Receiver.gd @@ -11,4 +11,7 @@ func _on_pos_quat(tracker_data : Dictionary): #self.global_position = tracker_data['position'] var rotation := tracker_data['rotation'] as Quaternion - self.global_basis = Basis(rotation) + var rot_basis = Basis(rotation) + + self.global_basis = rot_basis + #self.global_basis = Basis(rot_basis.z,-rot_basis.y,rot_basis.x) diff --git a/axis.blend b/axis.blend new file mode 100644 index 0000000..6ed72dd Binary files /dev/null and b/axis.blend differ diff --git a/axis.blend.import b/axis.blend.import new file mode 100644 index 0000000..7503db5 --- /dev/null +++ b/axis.blend.import @@ -0,0 +1,62 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://b426fy7d6jw2d" +path="res://.godot/imported/axis.blend-5b7f41137e49e6b98e717dd423c9150b.scn" + +[deps] + +source_file="res://axis.blend" +dest_files=["res://.godot/imported/axis.blend-5b7f41137e49e6b98e717dd423c9150b.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +_subresources={ +"nodes": { +"PATH:Camera": { +"import/skip_import": true +}, +"PATH:Light": { +"import/skip_import": true +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true