From 7f79eca0b16cda3e54e282a1ebc73944c4905d61 Mon Sep 17 00:00:00 2001 From: Kaj Forney Date: Mon, 9 Oct 2023 19:00:25 -0600 Subject: [PATCH] Basic XR setup. --- openxr_action_map.tres | 835 +++++++++++++++++++++++++++++++++++++ project.godot | 5 + sandbox/xr-testing-root.gd | 16 + sandbox/xr-testing.tscn | 47 +++ 4 files changed, 903 insertions(+) create mode 100644 openxr_action_map.tres create mode 100644 sandbox/xr-testing-root.gd create mode 100644 sandbox/xr-testing.tscn diff --git a/openxr_action_map.tres b/openxr_action_map.tres new file mode 100644 index 0000000..affd555 --- /dev/null +++ b/openxr_action_map.tres @@ -0,0 +1,835 @@ +[gd_resource type="OpenXRActionMap" load_steps=197 format=3 uid="uid://chwyutmavjicl"] + +[sub_resource type="OpenXRAction" id="OpenXRAction_jg0xi"] +resource_name = "trigger" +localized_name = "Trigger" +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_teak7"] +resource_name = "trigger_click" +localized_name = "Trigger click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_g425j"] +resource_name = "trigger_touch" +localized_name = "Trigger touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_o2g4a"] +resource_name = "grip" +localized_name = "Grip" +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_m8rfa"] +resource_name = "grip_click" +localized_name = "Grip click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_ajmy1"] +resource_name = "grip_touch" +localized_name = "Grip touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_y76o2"] +resource_name = "grip_force" +localized_name = "Grip force" +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_iex05"] +resource_name = "primary" +localized_name = "Primary joystick/thumbstick/trackpad" +action_type = 2 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_f6tvn"] +resource_name = "primary_click" +localized_name = "Primary joystick/thumbstick/trackpad click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_64rtd"] +resource_name = "primary_touch" +localized_name = "Primary joystick/thumbstick/trackpad touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_13am8"] +resource_name = "secondary" +localized_name = "Secondary joystick/thumbstick/trackpad" +action_type = 2 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_mgoo1"] +resource_name = "secondary_click" +localized_name = "Secondary joystick/thumbstick/trackpad click" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_krkjr"] +resource_name = "secondary_touch" +localized_name = "Secondary joystick/thumbstick/trackpad touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_30ser"] +resource_name = "menu_button" +localized_name = "Menu button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_wn2wc"] +resource_name = "select_button" +localized_name = "Select button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_nplgh"] +resource_name = "ax_button" +localized_name = "A/X button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_16tg5"] +resource_name = "ax_touch" +localized_name = "A/X touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_hs1th"] +resource_name = "by_button" +localized_name = "B/Y button" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_c1p4b"] +resource_name = "by_touch" +localized_name = "B/Y touching" +action_type = 0 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_x7ox4"] +resource_name = "default_pose" +localized_name = "Default pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right", "/user/vive_tracker_htcx/role/left_foot", "/user/vive_tracker_htcx/role/right_foot", "/user/vive_tracker_htcx/role/left_shoulder", "/user/vive_tracker_htcx/role/right_shoulder", "/user/vive_tracker_htcx/role/left_elbow", "/user/vive_tracker_htcx/role/right_elbow", "/user/vive_tracker_htcx/role/left_knee", "/user/vive_tracker_htcx/role/right_knee", "/user/vive_tracker_htcx/role/waist", "/user/vive_tracker_htcx/role/chest", "/user/vive_tracker_htcx/role/camera", "/user/vive_tracker_htcx/role/keyboard") + +[sub_resource type="OpenXRAction" id="OpenXRAction_q3lgf"] +resource_name = "aim_pose" +localized_name = "Aim pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_mlrjt"] +resource_name = "grip_pose" +localized_name = "Grip pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_6e273"] +resource_name = "palm_pose" +localized_name = "Palm pose" +action_type = 3 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right") + +[sub_resource type="OpenXRAction" id="OpenXRAction_ategp"] +resource_name = "haptic" +localized_name = "Haptic" +action_type = 4 +toplevel_paths = PackedStringArray("/user/hand/left", "/user/hand/right", "/user/vive_tracker_htcx/role/left_foot", "/user/vive_tracker_htcx/role/right_foot", "/user/vive_tracker_htcx/role/left_shoulder", "/user/vive_tracker_htcx/role/right_shoulder", "/user/vive_tracker_htcx/role/left_elbow", "/user/vive_tracker_htcx/role/right_elbow", "/user/vive_tracker_htcx/role/left_knee", "/user/vive_tracker_htcx/role/right_knee", "/user/vive_tracker_htcx/role/waist", "/user/vive_tracker_htcx/role/chest", "/user/vive_tracker_htcx/role/camera", "/user/vive_tracker_htcx/role/keyboard") + +[sub_resource type="OpenXRActionSet" id="OpenXRActionSet_4rg3t"] +resource_name = "godot" +localized_name = "Godot action set" +actions = [SubResource("OpenXRAction_jg0xi"), SubResource("OpenXRAction_teak7"), SubResource("OpenXRAction_g425j"), SubResource("OpenXRAction_o2g4a"), SubResource("OpenXRAction_m8rfa"), SubResource("OpenXRAction_ajmy1"), SubResource("OpenXRAction_y76o2"), SubResource("OpenXRAction_iex05"), SubResource("OpenXRAction_f6tvn"), SubResource("OpenXRAction_64rtd"), SubResource("OpenXRAction_13am8"), SubResource("OpenXRAction_mgoo1"), SubResource("OpenXRAction_krkjr"), SubResource("OpenXRAction_30ser"), SubResource("OpenXRAction_wn2wc"), SubResource("OpenXRAction_nplgh"), SubResource("OpenXRAction_16tg5"), SubResource("OpenXRAction_hs1th"), SubResource("OpenXRAction_c1p4b"), SubResource("OpenXRAction_x7ox4"), SubResource("OpenXRAction_q3lgf"), SubResource("OpenXRAction_mlrjt"), SubResource("OpenXRAction_6e273"), SubResource("OpenXRAction_ategp")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oxl1w"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qerw4"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jm0ld"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_boidn"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1yi5a"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1qumm"] +action = SubResource("OpenXRAction_wn2wc") +paths = PackedStringArray("/user/hand/left/input/select/click", "/user/hand/right/input/select/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cv56n"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_f5ql6"] +interaction_profile_path = "/interaction_profiles/khr/simple_controller" +bindings = [SubResource("OpenXRIPBinding_oxl1w"), SubResource("OpenXRIPBinding_qerw4"), SubResource("OpenXRIPBinding_jm0ld"), SubResource("OpenXRIPBinding_boidn"), SubResource("OpenXRIPBinding_1yi5a"), SubResource("OpenXRIPBinding_1qumm"), SubResource("OpenXRIPBinding_cv56n")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_grv8g"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_povqs"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ivwgf"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s7o8d"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ou7br"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u7yb8"] +action = SubResource("OpenXRAction_wn2wc") +paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yfdwg"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s3y32"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ir6ls"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_byedf"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_taiyq"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vfxla"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_da1ap"] +action = SubResource("OpenXRAction_64rtd") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cav6c"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_k0tin"] +interaction_profile_path = "/interaction_profiles/htc/vive_controller" +bindings = [SubResource("OpenXRIPBinding_grv8g"), SubResource("OpenXRIPBinding_povqs"), SubResource("OpenXRIPBinding_ivwgf"), SubResource("OpenXRIPBinding_s7o8d"), SubResource("OpenXRIPBinding_ou7br"), SubResource("OpenXRIPBinding_u7yb8"), SubResource("OpenXRIPBinding_yfdwg"), SubResource("OpenXRIPBinding_s3y32"), SubResource("OpenXRIPBinding_ir6ls"), SubResource("OpenXRIPBinding_byedf"), SubResource("OpenXRIPBinding_taiyq"), SubResource("OpenXRIPBinding_vfxla"), SubResource("OpenXRIPBinding_da1ap"), SubResource("OpenXRIPBinding_cav6c")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_heefj"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u8yuh"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kyxqm"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_k3ffc"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fxrgn"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_naq24"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iw6el"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nkui1"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dogcn"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3qmij"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ot8a7"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_waw73"] +action = SubResource("OpenXRAction_13am8") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xe7vq"] +action = SubResource("OpenXRAction_mgoo1") +paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ukr2p"] +action = SubResource("OpenXRAction_krkjr") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_w0hfi"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_el7c8"] +interaction_profile_path = "/interaction_profiles/microsoft/motion_controller" +bindings = [SubResource("OpenXRIPBinding_heefj"), SubResource("OpenXRIPBinding_u8yuh"), SubResource("OpenXRIPBinding_kyxqm"), SubResource("OpenXRIPBinding_k3ffc"), SubResource("OpenXRIPBinding_fxrgn"), SubResource("OpenXRIPBinding_naq24"), SubResource("OpenXRIPBinding_iw6el"), SubResource("OpenXRIPBinding_nkui1"), SubResource("OpenXRIPBinding_dogcn"), SubResource("OpenXRIPBinding_3qmij"), SubResource("OpenXRIPBinding_ot8a7"), SubResource("OpenXRIPBinding_waw73"), SubResource("OpenXRIPBinding_xe7vq"), SubResource("OpenXRIPBinding_ukr2p"), SubResource("OpenXRIPBinding_w0hfi")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4t8t7"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_prs7y"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u2jiv"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ck42r"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f3fxs"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lkaap"] +action = SubResource("OpenXRAction_nplgh") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p6xoi"] +action = SubResource("OpenXRAction_16tg5") +paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yr75k"] +action = SubResource("OpenXRAction_hs1th") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iav56"] +action = SubResource("OpenXRAction_c1p4b") +paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fm7cc"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kpqfn"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0337i"] +action = SubResource("OpenXRAction_g425j") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_58x6q"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vxjmv"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jtcal"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uakbu"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jytqf"] +action = SubResource("OpenXRAction_64rtd") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xgix2"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_d84km"] +interaction_profile_path = "/interaction_profiles/oculus/touch_controller" +bindings = [SubResource("OpenXRIPBinding_4t8t7"), SubResource("OpenXRIPBinding_prs7y"), SubResource("OpenXRIPBinding_u2jiv"), SubResource("OpenXRIPBinding_ck42r"), SubResource("OpenXRIPBinding_f3fxs"), SubResource("OpenXRIPBinding_lkaap"), SubResource("OpenXRIPBinding_p6xoi"), SubResource("OpenXRIPBinding_yr75k"), SubResource("OpenXRIPBinding_iav56"), SubResource("OpenXRIPBinding_fm7cc"), SubResource("OpenXRIPBinding_kpqfn"), SubResource("OpenXRIPBinding_0337i"), SubResource("OpenXRIPBinding_58x6q"), SubResource("OpenXRIPBinding_vxjmv"), SubResource("OpenXRIPBinding_jtcal"), SubResource("OpenXRIPBinding_uakbu"), SubResource("OpenXRIPBinding_jytqf"), SubResource("OpenXRIPBinding_xgix2")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wu2ux"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fwesd"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qvn84"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7b78d"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gctvv"] +action = SubResource("OpenXRAction_wn2wc") +paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_64ytr"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/back/click", "/user/hand/right/input/back/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_15ove"] +action = SubResource("OpenXRAction_nplgh") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0ngp0"] +action = SubResource("OpenXRAction_16tg5") +paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tx6eh"] +action = SubResource("OpenXRAction_hs1th") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_al1gw"] +action = SubResource("OpenXRAction_c1p4b") +paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rgurs"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7lhpc"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_00vf8"] +action = SubResource("OpenXRAction_g425j") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nxkol"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lhvb3"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bvo7k"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l4c2o"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_edud6"] +action = SubResource("OpenXRAction_64rtd") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gi88w"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_chkxl"] +interaction_profile_path = "/interaction_profiles/pico/neo3_controller" +bindings = [SubResource("OpenXRIPBinding_wu2ux"), SubResource("OpenXRIPBinding_fwesd"), SubResource("OpenXRIPBinding_qvn84"), SubResource("OpenXRIPBinding_7b78d"), SubResource("OpenXRIPBinding_gctvv"), SubResource("OpenXRIPBinding_64ytr"), SubResource("OpenXRIPBinding_15ove"), SubResource("OpenXRIPBinding_0ngp0"), SubResource("OpenXRIPBinding_tx6eh"), SubResource("OpenXRIPBinding_al1gw"), SubResource("OpenXRIPBinding_rgurs"), SubResource("OpenXRIPBinding_7lhpc"), SubResource("OpenXRIPBinding_00vf8"), SubResource("OpenXRIPBinding_nxkol"), SubResource("OpenXRIPBinding_lhvb3"), SubResource("OpenXRIPBinding_bvo7k"), SubResource("OpenXRIPBinding_l4c2o"), SubResource("OpenXRIPBinding_edud6"), SubResource("OpenXRIPBinding_gi88w")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hlqf8"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tbeue"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3yd1g"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o11fj"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qj1ma"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ldonq"] +action = SubResource("OpenXRAction_nplgh") +paths = PackedStringArray("/user/hand/left/input/a/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5rr2w"] +action = SubResource("OpenXRAction_16tg5") +paths = PackedStringArray("/user/hand/left/input/a/touch", "/user/hand/right/input/a/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xxu1g"] +action = SubResource("OpenXRAction_hs1th") +paths = PackedStringArray("/user/hand/left/input/b/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1rhfc"] +action = SubResource("OpenXRAction_c1p4b") +paths = PackedStringArray("/user/hand/left/input/b/touch", "/user/hand/right/input/b/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_y6f0v"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fg6j7"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tewvy"] +action = SubResource("OpenXRAction_g425j") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uv0ck"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_01qwg"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n5fvq"] +action = SubResource("OpenXRAction_y76o2") +paths = PackedStringArray("/user/hand/left/input/squeeze/force", "/user/hand/right/input/squeeze/force") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xvhii"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s2vjq"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b2lqx"] +action = SubResource("OpenXRAction_64rtd") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_e4kqy"] +action = SubResource("OpenXRAction_13am8") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_24ptb"] +action = SubResource("OpenXRAction_mgoo1") +paths = PackedStringArray("/user/hand/left/input/trackpad/force", "/user/hand/right/input/trackpad/force") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v0g1e"] +action = SubResource("OpenXRAction_krkjr") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nyq0b"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_j3mpu"] +interaction_profile_path = "/interaction_profiles/valve/index_controller" +bindings = [SubResource("OpenXRIPBinding_hlqf8"), SubResource("OpenXRIPBinding_tbeue"), SubResource("OpenXRIPBinding_3yd1g"), SubResource("OpenXRIPBinding_o11fj"), SubResource("OpenXRIPBinding_qj1ma"), SubResource("OpenXRIPBinding_ldonq"), SubResource("OpenXRIPBinding_5rr2w"), SubResource("OpenXRIPBinding_xxu1g"), SubResource("OpenXRIPBinding_1rhfc"), SubResource("OpenXRIPBinding_y6f0v"), SubResource("OpenXRIPBinding_fg6j7"), SubResource("OpenXRIPBinding_tewvy"), SubResource("OpenXRIPBinding_uv0ck"), SubResource("OpenXRIPBinding_01qwg"), SubResource("OpenXRIPBinding_n5fvq"), SubResource("OpenXRIPBinding_xvhii"), SubResource("OpenXRIPBinding_s2vjq"), SubResource("OpenXRIPBinding_b2lqx"), SubResource("OpenXRIPBinding_e4kqy"), SubResource("OpenXRIPBinding_24ptb"), SubResource("OpenXRIPBinding_v0g1e"), SubResource("OpenXRIPBinding_nyq0b")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a68u3"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fxbv0"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rse0s"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ilfjv"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q2nca"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ds3ns"] +action = SubResource("OpenXRAction_nplgh") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xn3ag"] +action = SubResource("OpenXRAction_hs1th") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4qhi8"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_inoc8"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ohmxs"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_klvya"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8plg1"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b2bhy"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_t1cdg"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_op6ng"] +interaction_profile_path = "/interaction_profiles/hp/mixed_reality_controller" +bindings = [SubResource("OpenXRIPBinding_a68u3"), SubResource("OpenXRIPBinding_fxbv0"), SubResource("OpenXRIPBinding_rse0s"), SubResource("OpenXRIPBinding_ilfjv"), SubResource("OpenXRIPBinding_q2nca"), SubResource("OpenXRIPBinding_ds3ns"), SubResource("OpenXRIPBinding_xn3ag"), SubResource("OpenXRIPBinding_4qhi8"), SubResource("OpenXRIPBinding_inoc8"), SubResource("OpenXRIPBinding_ohmxs"), SubResource("OpenXRIPBinding_klvya"), SubResource("OpenXRIPBinding_8plg1"), SubResource("OpenXRIPBinding_b2bhy"), SubResource("OpenXRIPBinding_t1cdg")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hskey"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iljfc"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uev8w"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fw2at"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_j4yf4"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ftprm"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u4fiu"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wdxuk"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_32a2x"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yp7aa"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_evahh"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1j41d"] +action = SubResource("OpenXRAction_13am8") +paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uky20"] +action = SubResource("OpenXRAction_mgoo1") +paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tsgnm"] +action = SubResource("OpenXRAction_krkjr") +paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_w4iea"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_256q4"] +interaction_profile_path = "/interaction_profiles/samsung/odyssey_controller" +bindings = [SubResource("OpenXRIPBinding_hskey"), SubResource("OpenXRIPBinding_iljfc"), SubResource("OpenXRIPBinding_uev8w"), SubResource("OpenXRIPBinding_fw2at"), SubResource("OpenXRIPBinding_j4yf4"), SubResource("OpenXRIPBinding_ftprm"), SubResource("OpenXRIPBinding_u4fiu"), SubResource("OpenXRIPBinding_wdxuk"), SubResource("OpenXRIPBinding_32a2x"), SubResource("OpenXRIPBinding_yp7aa"), SubResource("OpenXRIPBinding_evahh"), SubResource("OpenXRIPBinding_1j41d"), SubResource("OpenXRIPBinding_uky20"), SubResource("OpenXRIPBinding_tsgnm"), SubResource("OpenXRIPBinding_w4iea")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_30ayk"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yvmuh"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f87ks"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8p3ey"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_onyes"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6k2td"] +action = SubResource("OpenXRAction_wn2wc") +paths = PackedStringArray("/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b5vgq"] +action = SubResource("OpenXRAction_nplgh") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ruusw"] +action = SubResource("OpenXRAction_hs1th") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6d47q"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3by62"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0jf83"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f52x4"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2f6jg"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o5agi"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xf1rn"] +action = SubResource("OpenXRAction_64rtd") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s5erg"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_jy8iw"] +interaction_profile_path = "/interaction_profiles/htc/vive_cosmos_controller" +bindings = [SubResource("OpenXRIPBinding_30ayk"), SubResource("OpenXRIPBinding_yvmuh"), SubResource("OpenXRIPBinding_f87ks"), SubResource("OpenXRIPBinding_8p3ey"), SubResource("OpenXRIPBinding_onyes"), SubResource("OpenXRIPBinding_6k2td"), SubResource("OpenXRIPBinding_b5vgq"), SubResource("OpenXRIPBinding_ruusw"), SubResource("OpenXRIPBinding_6d47q"), SubResource("OpenXRIPBinding_3by62"), SubResource("OpenXRIPBinding_0jf83"), SubResource("OpenXRIPBinding_f52x4"), SubResource("OpenXRIPBinding_2f6jg"), SubResource("OpenXRIPBinding_o5agi"), SubResource("OpenXRIPBinding_xf1rn"), SubResource("OpenXRIPBinding_s5erg")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d7onh"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vqkbw"] +action = SubResource("OpenXRAction_q3lgf") +paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xjv63"] +action = SubResource("OpenXRAction_mlrjt") +paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hca3h"] +action = SubResource("OpenXRAction_6e273") +paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m8m2l"] +action = SubResource("OpenXRAction_30ser") +paths = PackedStringArray("/user/hand/left/input/menu/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_enkr4"] +action = SubResource("OpenXRAction_wn2wc") +paths = PackedStringArray("/user/hand/right/input/system/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_smc5o"] +action = SubResource("OpenXRAction_nplgh") +paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ms6k0"] +action = SubResource("OpenXRAction_hs1th") +paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d7mbd"] +action = SubResource("OpenXRAction_jg0xi") +paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_85qwp"] +action = SubResource("OpenXRAction_teak7") +paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ulqh7"] +action = SubResource("OpenXRAction_g425j") +paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ix6yf"] +action = SubResource("OpenXRAction_o2g4a") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lkowj"] +action = SubResource("OpenXRAction_m8rfa") +paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f0voi"] +action = SubResource("OpenXRAction_iex05") +paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7nlgm"] +action = SubResource("OpenXRAction_f6tvn") +paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ji0c0"] +action = SubResource("OpenXRAction_64rtd") +paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pgxm5"] +action = SubResource("OpenXRAction_krkjr") +paths = PackedStringArray("/user/hand/left/input/thumbrest/touch", "/user/hand/right/input/thumbrest/touch") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dri1n"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_1urxy"] +interaction_profile_path = "/interaction_profiles/htc/vive_focus3_controller" +bindings = [SubResource("OpenXRIPBinding_d7onh"), SubResource("OpenXRIPBinding_vqkbw"), SubResource("OpenXRIPBinding_xjv63"), SubResource("OpenXRIPBinding_hca3h"), SubResource("OpenXRIPBinding_m8m2l"), SubResource("OpenXRIPBinding_enkr4"), SubResource("OpenXRIPBinding_smc5o"), SubResource("OpenXRIPBinding_ms6k0"), SubResource("OpenXRIPBinding_d7mbd"), SubResource("OpenXRIPBinding_85qwp"), SubResource("OpenXRIPBinding_ulqh7"), SubResource("OpenXRIPBinding_ix6yf"), SubResource("OpenXRIPBinding_lkowj"), SubResource("OpenXRIPBinding_f0voi"), SubResource("OpenXRIPBinding_7nlgm"), SubResource("OpenXRIPBinding_ji0c0"), SubResource("OpenXRIPBinding_pgxm5"), SubResource("OpenXRIPBinding_dri1n")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bgk8w"] +action = SubResource("OpenXRAction_x7ox4") +paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/input/grip/pose", "/user/vive_tracker_htcx/role/right_foot/input/grip/pose", "/user/vive_tracker_htcx/role/left_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/right_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/left_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/right_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/left_knee/input/grip/pose", "/user/vive_tracker_htcx/role/right_knee/input/grip/pose", "/user/vive_tracker_htcx/role/waist/input/grip/pose", "/user/vive_tracker_htcx/role/chest/input/grip/pose", "/user/vive_tracker_htcx/role/camera/input/grip/pose", "/user/vive_tracker_htcx/role/keyboard/input/grip/pose") + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ak2r0"] +action = SubResource("OpenXRAction_ategp") +paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/output/haptic", "/user/vive_tracker_htcx/role/right_foot/output/haptic", "/user/vive_tracker_htcx/role/left_shoulder/output/haptic", "/user/vive_tracker_htcx/role/right_shoulder/output/haptic", "/user/vive_tracker_htcx/role/left_elbow/output/haptic", "/user/vive_tracker_htcx/role/right_elbow/output/haptic", "/user/vive_tracker_htcx/role/left_knee/output/haptic", "/user/vive_tracker_htcx/role/right_knee/output/haptic", "/user/vive_tracker_htcx/role/waist/output/haptic", "/user/vive_tracker_htcx/role/chest/output/haptic", "/user/vive_tracker_htcx/role/camera/output/haptic", "/user/vive_tracker_htcx/role/keyboard/output/haptic") + +[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_a42to"] +interaction_profile_path = "/interaction_profiles/htc/vive_tracker_htcx" +bindings = [SubResource("OpenXRIPBinding_bgk8w"), SubResource("OpenXRIPBinding_ak2r0")] + +[resource] +action_sets = [SubResource("OpenXRActionSet_4rg3t")] +interaction_profiles = [SubResource("OpenXRInteractionProfile_f5ql6"), SubResource("OpenXRInteractionProfile_k0tin"), SubResource("OpenXRInteractionProfile_el7c8"), SubResource("OpenXRInteractionProfile_d84km"), SubResource("OpenXRInteractionProfile_chkxl"), SubResource("OpenXRInteractionProfile_j3mpu"), SubResource("OpenXRInteractionProfile_op6ng"), SubResource("OpenXRInteractionProfile_256q4"), SubResource("OpenXRInteractionProfile_jy8iw"), SubResource("OpenXRInteractionProfile_1urxy"), SubResource("OpenXRInteractionProfile_a42to")] diff --git a/project.godot b/project.godot index 51c6b91..d198aa0 100644 --- a/project.godot +++ b/project.godot @@ -13,3 +13,8 @@ config_version=5 config/name="GIMM350 VR Class Project" config/features=PackedStringArray("4.1", "Forward Plus") config/icon="res://icon.svg" + +[xr] + +openxr/enabled=true +shaders/enabled=true diff --git a/sandbox/xr-testing-root.gd b/sandbox/xr-testing-root.gd new file mode 100644 index 0000000..afc9ce8 --- /dev/null +++ b/sandbox/xr-testing-root.gd @@ -0,0 +1,16 @@ +extends Node3D + +var xr_interface: XRInterface + +func _ready(): + xr_interface = XRServer.find_interface("OpenXR") + if xr_interface and xr_interface.is_initialized(): + print("OpenXR initialised successfully") + + # Turn off v-sync! + DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) + + # Change our main viewport to output to the HMD + get_viewport().use_xr = true + else: + print("OpenXR not initialized, please check if your headset is connected.") diff --git a/sandbox/xr-testing.tscn b/sandbox/xr-testing.tscn new file mode 100644 index 0000000..22dc884 --- /dev/null +++ b/sandbox/xr-testing.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=6 format=3 uid="uid://3agvccbs2lb0"] + +[ext_resource type="Script" path="res://sandbox/xr-testing-root.gd" id="1_r3e37"] + +[sub_resource type="SphereMesh" id="SphereMesh_tf0vs"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_e6dgk"] +sky_top_color = Color(0.27451, 0.431373, 0.772549, 1) +sky_horizon_color = Color(0.647059, 0.654902, 0.670588, 1) +ground_bottom_color = Color(0.482353, 0.419608, 0.34902, 1) +sun_angle_max = 0.0 + +[sub_resource type="Sky" id="Sky_mrgtb"] +sky_material = SubResource("ProceduralSkyMaterial_e6dgk") + +[sub_resource type="Environment" id="Environment_iyk47"] +background_mode = 2 +sky = SubResource("Sky_mrgtb") + +[node name="Node3D" type="Node3D"] +script = ExtResource("1_r3e37") + +[node name="XROrigin3D" type="XROrigin3D" parent="."] + +[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, 0) + +[node name="LeftHand" type="XRController3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 1, -0.5) +tracker = &"left_hand" + +[node name="MeshInstance3D" type="MeshInstance3D" parent="XROrigin3D/LeftHand"] +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0) +mesh = SubResource("SphereMesh_tf0vs") + +[node name="RightHand" type="XRController3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1, -0.5) +tracker = &"right_hand" + +[node name="MeshInstance3D" type="MeshInstance3D" parent="XROrigin3D/RightHand"] +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0) +mesh = SubResource("SphereMesh_tf0vs") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_iyk47")