From d47ae062a353c1a859e8efe9520f559b0e948c67 Mon Sep 17 00:00:00 2001 From: hiina Date: Tue, 11 Feb 2025 18:49:58 -0700 Subject: [PATCH] make nicer title screen --- .../movement_desktop_direct.gd | 2 +- .../scenes/lowpoly/left_fullglove_low.tscn | 32 ++-- .../misc/hold_button_visualshader.tres | 55 +++--- openxr_action_map.tres | 72 +------- override.cfg | 2 +- project.godot | 1 + scenes/main_menu/main_menu_level.tscn | 81 +++------ scenes/pickable_demo/pickable_demo.tscn | 81 +++------ scenes/player_rig.tscn | 56 ++++++ ..._scene.GPUParticlesCollisionSDF3D_data.exr | Bin 0 -> 67269 bytes ...GPUParticlesCollisionSDF3D_data.exr.import | 26 +++ scenes/title_scene.VoxelGI_data.res | Bin 0 -> 85638 bytes scenes/title_scene.tscn | 161 ++++++++++++++++++ scenes/world_grab_demo/world_grab_demo.tscn | 64 +++---- 14 files changed, 371 insertions(+), 262 deletions(-) create mode 100644 scenes/player_rig.tscn create mode 100644 scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr create mode 100644 scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr.import create mode 100644 scenes/title_scene.VoxelGI_data.res create mode 100644 scenes/title_scene.tscn diff --git a/addons/godot-xr-tools/desktop-support/movement_desktop_direct.gd b/addons/godot-xr-tools/desktop-support/movement_desktop_direct.gd index 9f810eb..3a913fd 100644 --- a/addons/godot-xr-tools/desktop-support/movement_desktop_direct.gd +++ b/addons/godot-xr-tools/desktop-support/movement_desktop_direct.gd @@ -43,7 +43,7 @@ func is_xr_class(name : String) -> bool: # Perform jump movement func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled: bool): # Skip if the controller isn't active - if !player_body.enabled or xr_start_node.is_xr_active(): + if !player_body.enabled or (xr_start_node != null and xr_start_node.is_xr_active()): return #Calculate input vector diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn index d19d923..f962ddd 100644 --- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn +++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn @@ -7,34 +7,34 @@ [ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="5"] [ext_resource type="Material" uid="uid://cdb40djkihelq" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.tres" id="6"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qtto3"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5xx2k"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4i0yd"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vwxoh"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_fahbc"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_nipe1"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_470u2"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4y4jx"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_fhgyt"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_0w20b"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_d6sxb"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_h1yus"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_qtto3") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_5xx2k") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_4i0yd") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_vwxoh") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_fahbc") +nodes/Grip/node = SubResource("AnimationNodeBlend2_nipe1") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_470u2") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4y4jx") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_fhgyt") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_0w20b") nodes/Trigger/position = Vector2(-360, 20) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] @@ -47,11 +47,11 @@ default_pose = ExtResource("3_wyae6") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, -0.05, 0.15) [node name="Skeleton3D" parent="Hand_low_L/Armature" index="0"] -bones/1/rotation = Quaternion(0.323537, -2.56577e-05, -0.0272204, 0.945824) +bones/1/rotation = Quaternion(0.323537, -2.56588e-05, -0.0272204, 0.945824) bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) -bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794417, 0.994608) +bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794416, 0.994608) bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) @@ -63,7 +63,7 @@ bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) -bones/21/rotation = Quaternion(-0.0625182, -0.00022572, -0.115393, 0.991351) +bones/21/rotation = Quaternion(-0.0625182, -0.000225721, -0.115393, 0.991351) bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) @@ -73,9 +73,9 @@ surface_material_override/0 = ExtResource("6") [node name="AnimationPlayer" parent="Hand_low_L" instance=ExtResource("1")] [node name="AnimationTree" type="AnimationTree" parent="."] -tree_root = SubResource("AnimationNodeBlendTree_d6sxb") +root_node = NodePath("../Hand_low_L") +tree_root = SubResource("AnimationNodeBlendTree_h1yus") anim_player = NodePath("../Hand_low_L/AnimationPlayer") -active = true parameters/Grip/blend_amount = 0.0 parameters/Trigger/blend_amount = 0.0 diff --git a/addons/godot-xr-tools/misc/hold_button_visualshader.tres b/addons/godot-xr-tools/misc/hold_button_visualshader.tres index 084664c..cd954b5 100644 --- a/addons/godot-xr-tools/misc/hold_button_visualshader.tres +++ b/addons/godot-xr-tools/misc/hold_button_visualshader.tres @@ -253,61 +253,60 @@ void fragment() { } " -graph_offset = Vector2(652.664, 119.317) flags/unshaded = true -nodes/fragment/0/position = Vector2(1800, -40) +nodes/fragment/0/position = Vector2(6180, 580) nodes/fragment/2/node = SubResource("3") nodes/fragment/2/position = Vector2(1480, -200) nodes/fragment/3/node = SubResource("4") -nodes/fragment/3/position = Vector2(-220, 200) +nodes/fragment/3/position = Vector2(1480, 160) nodes/fragment/4/node = SubResource("5") -nodes/fragment/4/position = Vector2(-20, 200) +nodes/fragment/4/position = Vector2(2000, 60) nodes/fragment/5/node = SubResource("6") -nodes/fragment/5/position = Vector2(180, 200) +nodes/fragment/5/position = Vector2(2340, 60) nodes/fragment/6/node = SubResource("7") -nodes/fragment/6/position = Vector2(380, 200) +nodes/fragment/6/position = Vector2(2700, 120) nodes/fragment/7/node = SubResource("8") -nodes/fragment/7/position = Vector2(580, 200) +nodes/fragment/7/position = Vector2(3040, 120) nodes/fragment/8/node = SubResource("9") -nodes/fragment/8/position = Vector2(260, 440) +nodes/fragment/8/position = Vector2(1480, 620) nodes/fragment/9/node = SubResource("10") -nodes/fragment/9/position = Vector2(780, 200) +nodes/fragment/9/position = Vector2(3380, 160) nodes/fragment/10/node = SubResource("1") -nodes/fragment/10/position = Vector2(1200, 200) +nodes/fragment/10/position = Vector2(4080, 120) nodes/fragment/11/node = SubResource("2") -nodes/fragment/11/position = Vector2(260, 600) +nodes/fragment/11/position = Vector2(1480, 1000) nodes/fragment/12/node = SubResource("11") -nodes/fragment/12/position = Vector2(1600, 60) +nodes/fragment/12/position = Vector2(5840, 580) nodes/fragment/13/node = SubResource("12") -nodes/fragment/13/position = Vector2(1000, 200) +nodes/fragment/13/position = Vector2(3740, 120) nodes/fragment/14/node = SubResource("13") -nodes/fragment/14/position = Vector2(260, 780) +nodes/fragment/14/position = Vector2(1480, 1360) nodes/fragment/15/node = SubResource("14") -nodes/fragment/15/position = Vector2(560, 600) +nodes/fragment/15/position = Vector2(2000, 960) nodes/fragment/17/node = SubResource("15") -nodes/fragment/17/position = Vector2(-380, -100) +nodes/fragment/17/position = Vector2(2700, 820) nodes/fragment/18/node = SubResource("16") -nodes/fragment/18/position = Vector2(-120, -40) +nodes/fragment/18/position = Vector2(3040, 920) nodes/fragment/19/node = SubResource("17") -nodes/fragment/19/position = Vector2(-120, -180) +nodes/fragment/19/position = Vector2(3040, 1340) nodes/fragment/20/node = SubResource("18") -nodes/fragment/20/position = Vector2(60, -180) +nodes/fragment/20/position = Vector2(3380, 1380) nodes/fragment/22/node = SubResource("19") -nodes/fragment/22/position = Vector2(620, -100) +nodes/fragment/22/position = Vector2(4080, 680) nodes/fragment/23/node = SubResource("20") -nodes/fragment/23/position = Vector2(360, 40) +nodes/fragment/23/position = Vector2(3740, 820) nodes/fragment/24/node = SubResource("21") -nodes/fragment/24/position = Vector2(60, -40) +nodes/fragment/24/position = Vector2(3380, 920) nodes/fragment/25/node = SubResource("22") -nodes/fragment/25/position = Vector2(800, -100) +nodes/fragment/25/position = Vector2(4440, 640) nodes/fragment/26/node = SubResource("23") -nodes/fragment/26/position = Vector2(660, -360) +nodes/fragment/26/position = Vector2(1480, 1740) nodes/fragment/27/node = SubResource("24") -nodes/fragment/27/position = Vector2(1000, -100) +nodes/fragment/27/position = Vector2(4780, 640) nodes/fragment/28/node = SubResource("25") -nodes/fragment/28/position = Vector2(1200, -100) +nodes/fragment/28/position = Vector2(5140, 640) nodes/fragment/29/node = SubResource("26") -nodes/fragment/29/position = Vector2(1400, 60) +nodes/fragment/29/position = Vector2(5480, 640) nodes/fragment/30/node = SubResource("27") -nodes/fragment/30/position = Vector2(1000, -240) +nodes/fragment/30/position = Vector2(2000, 1320) nodes/fragment/connections = PackedInt32Array(2, 0, 0, 0, 3, 0, 4, 0, 4, 0, 5, 0, 5, 0, 6, 0, 6, 0, 7, 0, 8, 0, 7, 1, 7, 0, 9, 0, 12, 0, 0, 1, 9, 0, 13, 0, 13, 0, 10, 0, 14, 0, 10, 1, 11, 0, 15, 0, 15, 0, 13, 1, 5, 0, 17, 0, 17, 0, 18, 0, 17, 0, 19, 0, 19, 0, 20, 0, 18, 0, 24, 0, 24, 0, 23, 1, 22, 0, 25, 0, 20, 2, 22, 0, 24, 0, 22, 3, 23, 0, 22, 4, 24, 0, 22, 5, 25, 0, 27, 0, 26, 0, 27, 1, 27, 0, 28, 0, 28, 0, 29, 0, 10, 0, 29, 1, 29, 0, 12, 1, 14, 0, 30, 0, 30, 0, 28, 1) diff --git a/openxr_action_map.tres b/openxr_action_map.tres index c3af2ad..52d5559 100644 --- a/openxr_action_map.tres +++ b/openxr_action_map.tres @@ -1,4 +1,4 @@ -[gd_resource type="OpenXRActionMap" load_steps=195 format=3 uid="uid://cv1tl7assnmqv"] +[gd_resource type="OpenXRActionMap" load_steps=178 format=3 uid="uid://cv1tl7assnmqv"] [sub_resource type="OpenXRAction" id="OpenXRAction_yifcd"] resource_name = "trigger" @@ -665,74 +665,6 @@ paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/out interaction_profile_path = "/interaction_profiles/samsung/odyssey_controller" bindings = [SubResource("OpenXRIPBinding_t0cml"), SubResource("OpenXRIPBinding_ms10r"), SubResource("OpenXRIPBinding_d6355"), SubResource("OpenXRIPBinding_oskmg"), SubResource("OpenXRIPBinding_4kfx4"), SubResource("OpenXRIPBinding_3uuwr"), SubResource("OpenXRIPBinding_vh134"), SubResource("OpenXRIPBinding_1fhju"), SubResource("OpenXRIPBinding_jsvrg"), SubResource("OpenXRIPBinding_cjody"), SubResource("OpenXRIPBinding_q7nq1"), SubResource("OpenXRIPBinding_1xqks"), SubResource("OpenXRIPBinding_5v7jf"), SubResource("OpenXRIPBinding_agw55"), SubResource("OpenXRIPBinding_k4fqu")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rdc8g"] -action = SubResource("OpenXRAction_wp0gf") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7ci1c"] -action = SubResource("OpenXRAction_6cxc5") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0pd2x"] -action = SubResource("OpenXRAction_1qblt") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4rwwh"] -action = SubResource("OpenXRAction_c3bvs") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lvx1l"] -action = SubResource("OpenXRAction_t725j") -paths = PackedStringArray("/user/hand/left/input/menu/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p2tcy"] -action = SubResource("OpenXRAction_11d6b") -paths = PackedStringArray("/user/hand/left/input/system/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8lqkg"] -action = SubResource("OpenXRAction_rju0c") -paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m1igx"] -action = SubResource("OpenXRAction_puvt0") -paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o24jy"] -action = SubResource("OpenXRAction_yifcd") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vdw57"] -action = SubResource("OpenXRAction_d0pni") -paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q0bn5"] -action = SubResource("OpenXRAction_u273q") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sihq1"] -action = SubResource("OpenXRAction_i5up3") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1ofap"] -action = SubResource("OpenXRAction_mgaer") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_twoyd"] -action = SubResource("OpenXRAction_x2ltk") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m8qx7"] -action = SubResource("OpenXRAction_52a4b") -paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") - -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pfjox"] -action = SubResource("OpenXRAction_tbcxk") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") - -[sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_rsga2"] -interaction_profile_path = "/interaction_profiles/htc/vive_cosmos_controller" -bindings = [SubResource("OpenXRIPBinding_rdc8g"), SubResource("OpenXRIPBinding_7ci1c"), SubResource("OpenXRIPBinding_0pd2x"), SubResource("OpenXRIPBinding_4rwwh"), SubResource("OpenXRIPBinding_lvx1l"), SubResource("OpenXRIPBinding_p2tcy"), SubResource("OpenXRIPBinding_8lqkg"), SubResource("OpenXRIPBinding_m1igx"), SubResource("OpenXRIPBinding_o24jy"), SubResource("OpenXRIPBinding_vdw57"), SubResource("OpenXRIPBinding_q0bn5"), SubResource("OpenXRIPBinding_sihq1"), SubResource("OpenXRIPBinding_1ofap"), SubResource("OpenXRIPBinding_twoyd"), SubResource("OpenXRIPBinding_m8qx7"), SubResource("OpenXRIPBinding_pfjox")] - [sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8xu3w"] action = SubResource("OpenXRAction_wp0gf") paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") @@ -823,4 +755,4 @@ bindings = [SubResource("OpenXRIPBinding_0hhqt"), SubResource("OpenXRIPBinding_u [resource] action_sets = [SubResource("OpenXRActionSet_hc02c")] -interaction_profiles = [SubResource("OpenXRInteractionProfile_q4jv5"), SubResource("OpenXRInteractionProfile_gh0s5"), SubResource("OpenXRInteractionProfile_hk3uy"), SubResource("OpenXRInteractionProfile_ci0m3"), SubResource("OpenXRInteractionProfile_8ffkv"), SubResource("OpenXRInteractionProfile_s65fn"), SubResource("OpenXRInteractionProfile_7w34y"), SubResource("OpenXRInteractionProfile_a7xw5"), SubResource("OpenXRInteractionProfile_rsga2"), SubResource("OpenXRInteractionProfile_t3axk"), SubResource("OpenXRInteractionProfile_2ydwc")] +interaction_profiles = [SubResource("OpenXRInteractionProfile_q4jv5"), SubResource("OpenXRInteractionProfile_gh0s5"), SubResource("OpenXRInteractionProfile_hk3uy"), SubResource("OpenXRInteractionProfile_ci0m3"), SubResource("OpenXRInteractionProfile_8ffkv"), SubResource("OpenXRInteractionProfile_s65fn"), SubResource("OpenXRInteractionProfile_7w34y"), SubResource("OpenXRInteractionProfile_a7xw5"), SubResource("OpenXRInteractionProfile_t3axk"), SubResource("OpenXRInteractionProfile_2ydwc")] diff --git a/override.cfg b/override.cfg index 0d1998e..4cd32b3 100644 --- a/override.cfg +++ b/override.cfg @@ -1,3 +1,3 @@ [xr] -openxr/enabled=false +openxr/enabled=true diff --git a/project.godot b/project.godot index 1abd1b6..10b3bbe 100644 --- a/project.godot +++ b/project.godot @@ -78,6 +78,7 @@ trigger_left={ textures/vram_compression/import_etc2_astc=true limits/time/time_rollover_secs=30.0 +anti_aliasing/quality/use_debanding=true [xr] diff --git a/scenes/main_menu/main_menu_level.tscn b/scenes/main_menu/main_menu_level.tscn index dfccd06..06d2da0 100644 --- a/scenes/main_menu/main_menu_level.tscn +++ b/scenes/main_menu/main_menu_level.tscn @@ -42,65 +42,65 @@ [ext_resource type="Texture2D" uid="uid://cr1l4g7btdyht" path="res://scenes/origin_gravity_demo/origin_gravity_demo.png" id="32_c4n1q"] [ext_resource type="Texture2D" uid="uid://dhd30j0xpcxoi" path="res://scenes/sphere_world_demo/sphere_world_demo.png" id="34_xw8ig"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yg038"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_bvajl"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_enmd7"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f07e2"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cqua4"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_5aai0"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7ki8b"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lctvu"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_6wi1u"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_7e485"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_q7l4u"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_x4nai"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_yg038") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_bvajl") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_enmd7") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_f07e2") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_cqua4") +nodes/Grip/node = SubResource("AnimationNodeBlend2_5aai0") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_7ki8b") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_lctvu") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_6wi1u") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_7e485") nodes/Trigger/position = Vector2(-360, 20) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ou3pb"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_j005m"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qqj8i"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_w78nm"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_osrqt"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4g20o"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_b4tlu"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7ko83"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cgjta"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4ayl1"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_5tyiu"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_jq8ph"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_ou3pb") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_j005m") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_qqj8i") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_w78nm") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_osrqt") +nodes/Grip/node = SubResource("AnimationNodeBlend2_4g20o") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_b4tlu") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_7ko83") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_cgjta") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_4ayl1") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] @@ -122,24 +122,8 @@ auto_inner_radius = 0.5 [node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature" index="0"] bones/1/rotation = Quaternion(0.323537, -2.56588e-05, -0.0272204, 0.945824) -bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) -bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) -bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794416, 0.994608) -bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) -bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) -bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) -bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) -bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) -bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) -bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) -bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) -bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) -bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) -bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) bones/21/rotation = Quaternion(-0.0625182, -0.000225721, -0.115393, 0.991351) -bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) -bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) [node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D" index="1"] transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096) @@ -151,7 +135,7 @@ transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] root_node = NodePath("../Hand_low_L") -tree_root = SubResource("AnimationNodeBlendTree_q7l4u") +tree_root = SubResource("AnimationNodeBlendTree_x4nai") [node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5_xgcrx")] @@ -166,24 +150,7 @@ strafe = true [node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature" index="0"] bones/1/rotation = Quaternion(0.323537, 2.56588e-05, 0.0272204, 0.945824) -bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) -bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) -bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) -bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) -bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) -bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) -bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) -bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) -bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) -bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) -bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) -bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) -bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) -bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) -bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) bones/21/rotation = Quaternion(-0.0625182, 0.000225722, 0.115393, 0.991351) -bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) -bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) [node name="mesh_Hand_low_R" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D" index="0"] surface_material_override/0 = ExtResource("26_id1x7") @@ -198,7 +165,7 @@ transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] root_node = NodePath("../Hand_low_R") -tree_root = SubResource("AnimationNodeBlendTree_5tyiu") +tree_root = SubResource("AnimationNodeBlendTree_jq8ph") [node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5_xgcrx")] diff --git a/scenes/pickable_demo/pickable_demo.tscn b/scenes/pickable_demo/pickable_demo.tscn index aac256f..fce952d 100644 --- a/scenes/pickable_demo/pickable_demo.tscn +++ b/scenes/pickable_demo/pickable_demo.tscn @@ -36,65 +36,65 @@ [ext_resource type="PackedScene" uid="uid://bmjemjgtnpkpo" path="res://assets/3dmodelscc0/models/scenes/sniper_rifle.tscn" id="25_xgu4l"] [ext_resource type="PackedScene" uid="uid://deuxld12hxsq0" path="res://scenes/pickable_demo/objects/picatinny_scope.tscn" id="26_x40vw"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_hyrry"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ayae3"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_w7n3y"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_q1ybi"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_4ldx4"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_sf634"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_umxjy"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_cw65d"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_sx74n"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_y4myv"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_net35"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ql04s"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_hyrry") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_ayae3") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_w7n3y") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_q1ybi") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_4ldx4") +nodes/Grip/node = SubResource("AnimationNodeBlend2_sf634") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_umxjy") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_cw65d") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_sx74n") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_y4myv") nodes/Trigger/position = Vector2(-360, 20) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8m0xv"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lwvn0"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kmq2h"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_23a7s"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_05bsb"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_la71d"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ahncs"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_b3yxh"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_xpqel"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_be0ca"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_26m0p"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_0stb8"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_8m0xv") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_lwvn0") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_kmq2h") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_23a7s") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_05bsb") +nodes/Grip/node = SubResource("AnimationNodeBlend2_la71d") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_ahncs") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_b3yxh") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_xpqel") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_be0ca") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] @@ -108,24 +108,8 @@ hand_skeleton = NodePath("LeftHand/Hand_Nails_low_L/Armature/Skeleton3D") [node name="Skeleton3D" parent="XROrigin3D/LeftHand/XRToolsCollisionHand/LeftHand/Hand_Nails_low_L/Armature" index="0"] bones/1/rotation = Quaternion(0.323537, -2.56588e-05, -0.0272204, 0.945824) -bones/2/rotation = Quaternion(-0.0904441, -0.0415175, -0.166293, 0.981042) -bones/3/rotation = Quaternion(-0.0466199, 0.020971, 0.0103276, 0.998639) -bones/5/rotation = Quaternion(-0.00128455, -0.0116081, -0.0168259, 0.99979) bones/6/rotation = Quaternion(0.102925, -0.00993208, -0.00794416, 0.994608) -bones/7/rotation = Quaternion(-0.012859, -0.0236108, -0.323258, 0.945929) -bones/8/rotation = Quaternion(0.0120575, -0.00929194, -0.247472, 0.968775) -bones/10/rotation = Quaternion(-0.0357539, -0.000400032, 0.00636764, 0.99934) -bones/11/rotation = Quaternion(-0.00264964, -0.00114471, -0.125992, 0.992027) -bones/12/rotation = Quaternion(0.0394225, 0.00193393, -0.228074, 0.972843) -bones/13/rotation = Quaternion(-0.0123395, -0.00881294, -0.280669, 0.959685) -bones/15/rotation = Quaternion(-0.0702656, 0.0101908, -0.0243307, 0.99718) -bones/16/rotation = Quaternion(-0.0320634, -0.00223624, -0.0686366, 0.997124) -bones/17/rotation = Quaternion(0.0253452, 0.00812462, -0.249005, 0.968136) -bones/18/rotation = Quaternion(0.00252232, 0.00788073, -0.243204, 0.96994) -bones/20/rotation = Quaternion(-0.0917369, 0.0203027, -0.010183, 0.995524) bones/21/rotation = Quaternion(-0.0625182, -0.000225721, -0.115393, 0.991351) -bones/22/rotation = Quaternion(0.0585786, 0.0216483, -0.269905, 0.96086) -bones/23/rotation = Quaternion(0.00687177, -0.00357275, -0.211953, 0.977249) [node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/XRToolsCollisionHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"] transform = Transform3D(0.54083, 0.840813, -0.0231736, -0.0826267, 0.0805243, 0.993322, 0.837064, -0.535303, 0.113023, 0.039902, 0.0402828, -0.150096) @@ -139,7 +123,7 @@ push_bodies = false [node name="AnimationTree" parent="XROrigin3D/LeftHand/XRToolsCollisionHand/LeftHand" index="1"] root_node = NodePath("../Hand_Nails_low_L") -tree_root = SubResource("AnimationNodeBlendTree_net35") +tree_root = SubResource("AnimationNodeBlendTree_ql04s") [node name="MovementDirect" parent="XROrigin3D/LeftHand/XRToolsCollisionHand" index="1" instance=ExtResource("7")] strafe = true @@ -161,24 +145,7 @@ hand_skeleton = NodePath("RightHand/Hand_Nails_R/Armature/Skeleton3D") [node name="Skeleton3D" parent="XROrigin3D/RightHand/XRToolsCollisionHand/RightHand/Hand_Nails_R/Armature" index="0"] bones/1/rotation = Quaternion(0.323537, 2.56588e-05, 0.0272204, 0.945824) -bones/2/rotation = Quaternion(-0.0904441, 0.0415175, 0.166293, 0.981042) -bones/3/rotation = Quaternion(-0.0466199, -0.020971, -0.0103276, 0.998639) -bones/5/rotation = Quaternion(-0.00128455, 0.0116081, 0.0168259, 0.99979) -bones/6/rotation = Quaternion(0.102925, 0.00993208, 0.00794419, 0.994608) -bones/7/rotation = Quaternion(-0.012859, 0.0236108, 0.323258, 0.945929) -bones/8/rotation = Quaternion(0.0120575, 0.00929193, 0.247472, 0.968775) -bones/10/rotation = Quaternion(-0.0357539, 0.000400032, -0.00636763, 0.99934) -bones/11/rotation = Quaternion(-0.00264964, 0.00114471, 0.125992, 0.992027) -bones/12/rotation = Quaternion(0.0394225, -0.00193393, 0.228074, 0.972843) -bones/13/rotation = Quaternion(-0.0123395, 0.00881294, 0.280669, 0.959685) -bones/15/rotation = Quaternion(-0.0702656, -0.0101908, 0.0243307, 0.99718) -bones/16/rotation = Quaternion(-0.0320634, 0.00223624, 0.0686366, 0.997124) -bones/17/rotation = Quaternion(0.0253452, -0.00812462, 0.249005, 0.968136) -bones/18/rotation = Quaternion(0.00252233, -0.00788073, 0.243204, 0.96994) -bones/20/rotation = Quaternion(-0.0917369, -0.0203027, 0.010183, 0.995524) bones/21/rotation = Quaternion(-0.0625182, 0.000225722, 0.115393, 0.991351) -bones/22/rotation = Quaternion(0.0585786, -0.0216483, 0.269905, 0.96086) -bones/23/rotation = Quaternion(0.00687177, 0.00357275, 0.211953, 0.977249) [node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/XRToolsCollisionHand/RightHand/Hand_Nails_R/Armature/Skeleton3D" index="1"] transform = Transform3D(0.540829, -0.840813, 0.0231736, 0.0826268, 0.0805242, 0.993322, -0.837064, -0.535303, 0.113024, -0.039902, 0.0402828, -0.150096) @@ -192,7 +159,7 @@ push_bodies = false [node name="AnimationTree" parent="XROrigin3D/RightHand/XRToolsCollisionHand/RightHand" index="1"] root_node = NodePath("../Hand_Nails_R") -tree_root = SubResource("AnimationNodeBlendTree_26m0p") +tree_root = SubResource("AnimationNodeBlendTree_0stb8") [node name="MovementDirect" parent="XROrigin3D/RightHand/XRToolsCollisionHand" index="1" instance=ExtResource("7")] diff --git a/scenes/player_rig.tscn b/scenes/player_rig.tscn new file mode 100644 index 0000000..d880e1e --- /dev/null +++ b/scenes/player_rig.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=9 format=3 uid="uid://4aglyx1y67kh"] + +[ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="1_20jn5"] +[ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="2_cnhbw"] +[ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="3_rvq1d"] +[ext_resource type="PackedScene" uid="uid://dg3gr6ofd8yx4" path="res://addons/godot-xr-tools/functions/movement_world_grab.tscn" id="4_3s67p"] +[ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="5_bs6i8"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/overrides/ground_physics_settings.gd" id="6_hpams"] +[ext_resource type="PackedScene" uid="uid://6uusxts6n6gm" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_direct.tscn" id="6_k7epg"] + +[sub_resource type="Resource" id="Resource_117uy"] +script = ExtResource("6_hpams") +flags = 0 +move_drag = 5.0 +move_traction = 30.0 +stop_on_slope = true +move_max_slope = 45.0 +jump_max_slope = 45.0 +jump_velocity = 3.0 +bounciness = 0.0 +bounce_threshold = 1.0 + +[node name="PlayerRig" type="Node3D"] + +[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.72, 0) + +[node name="LeftHand" type="XRController3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.25, 1, 0) +tracker = &"left_hand" + +[node name="LeftHand" parent="XROrigin3D/LeftHand" instance=ExtResource("1_20jn5")] + +[node name="FunctionPickup" parent="XROrigin3D/LeftHand" instance=ExtResource("2_cnhbw")] + +[node name="RightHand" type="XRController3D" parent="XROrigin3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 1, 0) +tracker = &"right_hand" + +[node name="RightHand" parent="XROrigin3D/RightHand" instance=ExtResource("3_rvq1d")] + +[node name="FunctionPickup" parent="XROrigin3D/RightHand" instance=ExtResource("2_cnhbw")] + +[node name="MovementWorldGrab" parent="XROrigin3D" instance=ExtResource("4_3s67p")] +order = 5 +world_scale_min = 0.01 +world_scale_max = 10.0 + +[node name="PlayerBody" parent="XROrigin3D" instance=ExtResource("5_bs6i8")] +motion_mode = 1 +push_rigid_bodies = false +physics = SubResource("Resource_117uy") + +[node name="MovementDesktopDirect" parent="XROrigin3D" instance=ExtResource("6_k7epg")] diff --git a/scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr b/scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr new file mode 100644 index 0000000000000000000000000000000000000000..daa057773886d1083e525cf20fe63e1d660e90d5 GIT binary patch literal 67269 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 literal 0 HcmV?d00001 diff --git a/scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr.import b/scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr.import new file mode 100644 index 0000000..a6aa0ab --- /dev/null +++ b/scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr.import @@ -0,0 +1,26 @@ +[remap] + +importer="3d_texture" +type="CompressedTexture3D" +uid="uid://c6uya54wegrle" +path="res://.godot/imported/title_scene.GPUParticlesCollisionSDF3D_data.exr-565c568c16b38957e36f9d809ba1cd69.ctex3d" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenes/title_scene.GPUParticlesCollisionSDF3D_data.exr" +dest_files=["res://.godot/imported/title_scene.GPUParticlesCollisionSDF3D_data.exr-565c568c16b38957e36f9d809ba1cd69.ctex3d"] + +[params] + +compress/mode=3 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/channel_pack=1 +mipmaps/generate=false +mipmaps/limit=-1 +slices/horizontal=1 +slices/vertical=21 diff --git a/scenes/title_scene.VoxelGI_data.res b/scenes/title_scene.VoxelGI_data.res new file mode 100644 index 0000000000000000000000000000000000000000..dd2c148ef7ef427b11da404f7deb6630419a5ee2 GIT binary patch literal 85638 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�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