Skip to content

Commit 5a8db91

Browse files
committed
Updated project based on Godot changes in PR 95153
1 parent 0fba875 commit 5a8db91

File tree

5 files changed

+36
-19
lines changed

5 files changed

+36
-19
lines changed

Diff for: xr/openxr_hand_tracking_demo/assets/gltf/LeftHandHumanoid.gltf.import

-3
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,5 @@ animation/remove_immutable_tracks=true
3232
animation/import_rest_as_RESET=false
3333
import_script/path=""
3434
_subresources={}
35-
fbx/importer=0
36-
fbx/allow_geometry_helper_nodes=false
37-
fbx/embedded_image_handling=1
3835
gltf/naming_version=1
3936
gltf/embedded_image_handling=1

Diff for: xr/openxr_hand_tracking_demo/assets/gltf/RightHandHumanoid.gltf.import

-3
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,5 @@ animation/remove_immutable_tracks=true
3232
animation/import_rest_as_RESET=false
3333
import_script/path=""
3434
_subresources={}
35-
fbx/importer=0
36-
fbx/allow_geometry_helper_nodes=false
37-
fbx/embedded_image_handling=1
3835
gltf/naming_version=1
3936
gltf/embedded_image_handling=1

Diff for: xr/openxr_hand_tracking_demo/hand_info.gd

+17-10
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ extends Node3D
22

33
@export_enum("Left", "Right") var hand : int = 0
44

5+
@export var fallback_mesh : Node3D
56

67
# Called every frame. 'delta' is the elapsed time since the previous frame.
78
func _process(delta):
@@ -36,17 +37,23 @@ func _process(delta):
3637
if hand_tracker:
3738
text += "\nHand tracker found\n"
3839

39-
if hand_tracker.has_tracking_data:
40-
if hand_tracker.hand_tracking_source == XRHandTracker.HAND_TRACKING_SOURCE_UNKNOWN:
41-
text += "- Source: unknown\n"
42-
elif hand_tracker.hand_tracking_source == XRHandTracker.HAND_TRACKING_SOURCE_UNOBSTRUCTED:
43-
text += "- Source: optical hand tracking\n"
44-
elif hand_tracker.hand_tracking_source == XRHandTracker.HAND_TRACKING_SOURCE_CONTROLLER:
45-
text += "- Source: inferred from controller\n"
46-
else:
47-
text += "- Source: %d\n" % [ hand_tracker.hand_tracking_source ]
40+
# Report data source specified
41+
if hand_tracker.hand_tracking_source == XRHandTracker.HAND_TRACKING_SOURCE_UNKNOWN:
42+
text += "- Source: unknown\n"
43+
elif hand_tracker.hand_tracking_source == XRHandTracker.HAND_TRACKING_SOURCE_UNOBSTRUCTED:
44+
text += "- Source: optical hand tracking\n"
45+
elif hand_tracker.hand_tracking_source == XRHandTracker.HAND_TRACKING_SOURCE_CONTROLLER:
46+
text += "- Source: inferred from controller\n"
47+
elif hand_tracker.hand_tracking_source == XRHandTracker.HAND_TRACKING_SOURCE_NOT_TRACKED:
48+
text += "- Source: no source\n"
4849
else:
49-
text += "- No tracking data\n"
50+
text += "- Source: %d\n" % [ hand_tracker.hand_tracking_source ]
51+
52+
# If we're not tracking, show our fallback mesh on our controller tracking.
53+
# If we're also not controller tracking, we can't show anything.
54+
# Note: this is only a sphere in this example.
55+
if fallback_mesh:
56+
fallback_mesh.visible = !hand_tracker.has_tracking_data
5057
else:
5158
text += "\nNo hand tracker found!\n"
5259

Diff for: xr/openxr_hand_tracking_demo/main.tscn

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[gd_scene load_steps=14 format=3 uid="uid://br3bss6kac8pa"]
1+
[gd_scene load_steps=15 format=3 uid="uid://br3bss6kac8pa"]
22

33
[ext_resource type="PackedScene" uid="uid://d22k0sp2hinew" path="res://assets/gltf/LeftHandHumanoid.gltf" id="2_3hxem"]
44
[ext_resource type="Script" path="res://start_vr.gd" id="2_5rtkn"]
@@ -32,6 +32,10 @@ size = Vector2(1000, 1000)
3232
subdivide_width = 10
3333
subdivide_depth = 10
3434

35+
[sub_resource type="SphereMesh" id="SphereMesh_d5x0p"]
36+
radius = 0.01
37+
height = 0.02
38+
3539
[node name="Main" type="Node3D"]
3640

3741
[node name="StartVR" type="Node3D" parent="."]
@@ -73,12 +77,14 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.13752, 0.941084, 0)
7377
[node name="Box03" parent="Table" instance=ExtResource("7_6sqt7")]
7478
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0746718, 1.06282, 0)
7579

76-
[node name="LeftHandInfo" parent="Table" instance=ExtResource("5_wlhtu")]
80+
[node name="LeftHandInfo" parent="Table" node_paths=PackedStringArray("fallback_mesh") instance=ExtResource("5_wlhtu")]
7781
transform = Transform3D(0.939693, -0.085635, 0.331126, 0, 0.968147, 0.25038, -0.34202, -0.23528, 0.909761, -0.713026, 0.8718, -0.309953)
82+
fallback_mesh = NodePath("../../XROrigin3D/LeftHandController/FullbackMesh")
7883

79-
[node name="RightHandInfo" parent="Table" instance=ExtResource("5_wlhtu")]
84+
[node name="RightHandInfo" parent="Table" node_paths=PackedStringArray("fallback_mesh") instance=ExtResource("5_wlhtu")]
8085
transform = Transform3D(0.939693, 0.085635, -0.331126, 0, 0.968147, 0.25038, 0.34202, -0.23528, 0.909761, 0.278022, 0.8718, -0.381943)
8186
hand = 1
87+
fallback_mesh = NodePath("../../XROrigin3D/RightHandController/FullbackMesh")
8288

8389
[node name="XROrigin3D" type="XROrigin3D" parent="."]
8490

@@ -91,6 +97,9 @@ tracker = &"left_hand"
9197
pose = &"pose"
9298
show_when_tracked = true
9399

100+
[node name="FullbackMesh" type="MeshInstance3D" parent="XROrigin3D/LeftHandController"]
101+
mesh = SubResource("SphereMesh_d5x0p")
102+
94103
[node name="PickupHandler" parent="XROrigin3D/LeftHandController" instance=ExtResource("3_sg1io")]
95104
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.05, 0, 0)
96105
pickup_action = "pickup"
@@ -101,6 +110,10 @@ tracker = &"right_hand"
101110
pose = &"pose"
102111
show_when_tracked = true
103112

113+
[node name="FullbackMesh" type="MeshInstance3D" parent="XROrigin3D/RightHandController"]
114+
mesh = SubResource("SphereMesh_d5x0p")
115+
skeleton = NodePath("../../LeftHandController")
116+
104117
[node name="PickupHandler" parent="XROrigin3D/RightHandController" instance=ExtResource("3_sg1io")]
105118
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.05, 0, 0)
106119
pickup_action = "pickup"

Diff for: xr/openxr_hand_tracking_demo/project.godot

+3
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,8 @@ openxr/enabled=true
3535
openxr/reference_space=2
3636
openxr/foveation_level=2
3737
openxr/foveation_dynamic=true
38+
openxr/extensions/hand_tracking=true
39+
openxr/extensions/hand_tracking_unobstructed_data_source=true
40+
openxr/extensions/hand_tracking_controller_data_source=true
3841
openxr/extensions/hand_interaction_profile=true
3942
shaders/enabled=true

0 commit comments

Comments
 (0)