From 12bbc7c94a4f6fa8b534be0b106259ad1279045b Mon Sep 17 00:00:00 2001 From: hiina <hiina@hiina.space> Date: Mon, 10 Feb 2025 01:15:46 -0700 Subject: [PATCH] world grab demo with particle attractor --- assets/maps/holodeck/holodeck_env.tres | 5 + override.cfg | 3 - project.godot | 1 + scenes/auditoriumtest/auditorium_test.tscn | 8 +- scenes/main_menu/main_menu_level.tscn | 94 +++++++++---- scenes/pickable_demo/pickable_demo.tscn | 58 ++++---- scenes/world_grab_demo/world_grab_demo.tscn | 142 ++++++++++++++++---- 7 files changed, 224 insertions(+), 87 deletions(-) delete mode 100644 override.cfg diff --git a/assets/maps/holodeck/holodeck_env.tres b/assets/maps/holodeck/holodeck_env.tres index f74e708..43c4c34 100644 --- a/assets/maps/holodeck/holodeck_env.tres +++ b/assets/maps/holodeck/holodeck_env.tres @@ -15,3 +15,8 @@ sky_rotation = Vector3(0, 0.523599, 0) ambient_light_color = Color(0.247059, 0.247059, 0.247059, 1) ambient_light_sky_contribution = 0.0 reflected_light_source = 1 +glow_enabled = true +glow_normalized = true +glow_intensity = 1.17 +glow_strength = 1.06 +glow_bloom = 1.0 diff --git a/override.cfg b/override.cfg deleted file mode 100644 index 0d1998e..0000000 --- a/override.cfg +++ /dev/null @@ -1,3 +0,0 @@ -[xr] - -openxr/enabled=false diff --git a/project.godot b/project.godot index de5c533..1abd1b6 100644 --- a/project.godot +++ b/project.godot @@ -84,4 +84,5 @@ limits/time/time_rollover_secs=30.0 openxr/enabled=true openxr/foveation_level=3 openxr/foveation_dynamic=true +openxr/extensions/hand_tracking=false shaders/enabled=true diff --git a/scenes/auditoriumtest/auditorium_test.tscn b/scenes/auditoriumtest/auditorium_test.tscn index 741c7d6..9920fd7 100644 --- a/scenes/auditoriumtest/auditorium_test.tscn +++ b/scenes/auditoriumtest/auditorium_test.tscn @@ -20,7 +20,7 @@ tonemap_mode = 2 [sub_resource type="Gradient" id="Gradient_4w171"] colors = PackedColorArray(0.506462, 0.0807418, 0.824172, 1, 0.00522142, 0.363628, 0.50814, 1) -[sub_resource type="GradientTexture1D" id="GradientTexture1D_oyb47"] +[sub_resource type="GradientTexture1D" id="GradientTexture1D_licro"] gradient = SubResource("Gradient_4w171") [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_0hjpr"] @@ -28,14 +28,14 @@ spread = 10.946 initial_velocity_min = 15.0 initial_velocity_max = 20.0 gravity = Vector3(0, 0, 0) -color_ramp = SubResource("GradientTexture1D_oyb47") +color_ramp = SubResource("GradientTexture1D_licro") hue_variation_min = -2.23517e-08 hue_variation_max = 0.03 turbulence_enabled = true turbulence_influence_min = 0.01 turbulence_influence_max = 0.01 -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_3ct86"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hha82"] cull_mode = 2 no_depth_test = true shading_mode = 0 @@ -47,7 +47,7 @@ point_size = 2.5 use_particle_trails = true [sub_resource type="RibbonTrailMesh" id="RibbonTrailMesh_bnbv5"] -material = SubResource("StandardMaterial3D_3ct86") +material = SubResource("StandardMaterial3D_hha82") size = 0.03 sections = 3 section_segments = 10 diff --git a/scenes/main_menu/main_menu_level.tscn b/scenes/main_menu/main_menu_level.tscn index 615f079..a4c92c5 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_fhr03"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_olygm"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_j085u"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qybql"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ig3ph"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_implj"] 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_vt8vm"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_pxphv"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_rl103"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_mrgbu"] 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_32y8o"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_0b4wh"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_fhr03") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_olygm") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_j085u") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_qybql") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_ig3ph") +nodes/Grip/node = SubResource("AnimationNodeBlend2_implj") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_vt8vm") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_pxphv") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_rl103") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_mrgbu") 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_xw518"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0cq74"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_f0bph"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4j20x"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_s6bkv"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cvxoi"] 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_emhc7"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_pyyee"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_0xlcy"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_glq5p"] 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_fkgie"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_anrm0"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_xw518") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_0cq74") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_f0bph") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_4j20x") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_s6bkv") +nodes/Grip/node = SubResource("AnimationNodeBlend2_cvxoi") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_emhc7") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_pyyee") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_0xlcy") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_glq5p") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] @@ -120,8 +120,29 @@ auto_inner_radius = 0.5 [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("23_pr05t")] +[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.840812, -0.0231736, -0.0826267, 0.0805244, 0.993322, 0.837063, -0.535304, 0.113024, 0.0399019, 0.0402829, -0.150096) +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) bone_name = "Index_Tip_L" bone_idx = 9 @@ -130,7 +151,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_32y8o") +tree_root = SubResource("AnimationNodeBlendTree_0b4wh") [node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5_xgcrx")] @@ -143,11 +164,32 @@ strafe = true [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("25_2b81d")] +[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") [node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D" index="1"] -transform = Transform3D(0.54083, -0.840812, 0.0231736, 0.0826267, 0.0805244, 0.993322, -0.837063, -0.535304, 0.113024, -0.0399019, 0.0402829, -0.150096) +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) bone_name = "Index_Tip_R" bone_idx = 9 @@ -156,7 +198,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_fkgie") +tree_root = SubResource("AnimationNodeBlendTree_anrm0") [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 980ac9b..20e1857 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_leov0"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_rk382"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_tdgjj"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kknvj"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ant8f"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vadt0"] 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_baddp"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lx1b2"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_41aoc"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_n43q2"] 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_8kmfh"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_anlui"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_leov0") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_rk382") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_tdgjj") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_kknvj") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_ant8f") +nodes/Grip/node = SubResource("AnimationNodeBlend2_vadt0") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_baddp") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_lx1b2") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_41aoc") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_n43q2") 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_8ri27"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lxfji"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_oe64k"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0js8n"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_7sh5g"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_1ptcv"] 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_re3ic"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_hvnnw"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_epdw0"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2xpas"] 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_x1lgc"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_lmidc"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_8ri27") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_lxfji") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_oe64k") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_0js8n") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_7sh5g") +nodes/Grip/node = SubResource("AnimationNodeBlend2_1ptcv") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_re3ic") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_hvnnw") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_epdw0") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_2xpas") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] @@ -107,11 +107,11 @@ hand_skeleton = NodePath("LeftHand/Hand_Nails_low_L/Armature/Skeleton3D") [node name="LeftHand" parent="XROrigin3D/LeftHand/XRToolsCollisionHand" index="0" instance=ExtResource("7_ywaf6")] [node name="Skeleton3D" parent="XROrigin3D/LeftHand/XRToolsCollisionHand/LeftHand/Hand_Nails_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) @@ -123,7 +123,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) @@ -139,7 +139,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_8kmfh") +tree_root = SubResource("AnimationNodeBlendTree_anlui") [node name="MovementDirect" parent="XROrigin3D/LeftHand/XRToolsCollisionHand" index="1" instance=ExtResource("7")] strafe = true @@ -160,7 +160,7 @@ hand_skeleton = NodePath("RightHand/Hand_Nails_R/Armature/Skeleton3D") [node name="RightHand" parent="XROrigin3D/RightHand/XRToolsCollisionHand" index="0" instance=ExtResource("9_v8epv")] [node name="Skeleton3D" parent="XROrigin3D/RightHand/XRToolsCollisionHand/RightHand/Hand_Nails_R/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) @@ -176,7 +176,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.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.000225721, 0.115393, 0.991351) +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) @@ -192,7 +192,7 @@ push_bodies = false [node name="AnimationTree" parent="XROrigin3D/RightHand/XRToolsCollisionHand/RightHand" index="1"] root_node = NodePath("../Hand_Nails_R") -tree_root = SubResource("AnimationNodeBlendTree_x1lgc") +tree_root = SubResource("AnimationNodeBlendTree_lmidc") [node name="MovementDirect" parent="XROrigin3D/RightHand/XRToolsCollisionHand" index="1" instance=ExtResource("7")] diff --git a/scenes/world_grab_demo/world_grab_demo.tscn b/scenes/world_grab_demo/world_grab_demo.tscn index f0bf6af..99df039 100644 --- a/scenes/world_grab_demo/world_grab_demo.tscn +++ b/scenes/world_grab_demo/world_grab_demo.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=33 format=3 uid="uid://bmmpivq57eehv"] +[gd_scene load_steps=43 format=3 uid="uid://bmmpivq57eehv"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1_6211a"] [ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="2_dss28"] @@ -19,72 +19,113 @@ [ext_resource type="PackedScene" uid="uid://b7rp2m8eutbwi" path="res://scenes/world_grab_demo/objects/arena_block.tscn" id="14_wbotr"] [ext_resource type="PackedScene" uid="uid://d3x7ha0qme5uv" path="res://scenes/world_grab_demo/objects/arena_cylinder.tscn" id="15_ghqx0"] [ext_resource type="PackedScene" uid="uid://v1ajdy8xxct3" path="res://scenes/world_grab_demo/objects/arena_wall.tscn" id="16_bar6p"] +[ext_resource type="Script" path="res://addons/godot-xr-tools/objects/pickable.gd" id="20_bgctf"] +[ext_resource type="PackedScene" uid="uid://c25yxb0vt53vc" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_left.tscn" id="21_v207o"] +[ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="22_0w02o"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_oa7lu"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_72kkm"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qypxn"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vk2ua"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_24u04"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cxu0a"] 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_5bk6a"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_bai07"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_jy1ah"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_6u2xv"] 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_vuimn"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_exwc2"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_oa7lu") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_72kkm") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_qypxn") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_vk2ua") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_24u04") +nodes/Grip/node = SubResource("AnimationNodeBlend2_cxu0a") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_5bk6a") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_bai07") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_jy1ah") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_6u2xv") 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_y85uq"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vgu3m"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ariwi"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_hsye2"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_vxm7a"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_unii2"] 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_6278w"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6k2n8"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_a5tpk"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_15qdo"] 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_dx808"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_jpr7c"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_y85uq") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_vgu3m") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_ariwi") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_hsye2") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_vxm7a") +nodes/Grip/node = SubResource("AnimationNodeBlend2_unii2") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_6278w") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_6k2n8") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_a5tpk") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_15qdo") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"] [sub_resource type="BoxShape3D" id="BoxShape3D_gx7jx"] size = Vector3(14, 10, 14) +[sub_resource type="Gradient" id="Gradient_m4phm"] +colors = PackedColorArray(0.506462, 0.0807418, 0.824172, 1, 5, 3, 5.159, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_obk4e"] +gradient = SubResource("Gradient_m4phm") +use_hdr = true + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_v1x0p"] +spread = 1.706 +initial_velocity_min = 1.0 +initial_velocity_max = 2.0 +gravity = Vector3(0, 0, 0) +scale_min = 0.01 +scale_max = 0.01 +color_ramp = SubResource("GradientTexture1D_obk4e") +hue_variation_min = -2.23517e-08 +hue_variation_max = 0.03 +turbulence_enabled = true +turbulence_influence_min = 0.01 +turbulence_influence_max = 0.01 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vwnyt"] +shading_mode = 0 +vertex_color_use_as_albedo = true +vertex_color_is_srgb = true +billboard_mode = 1 +billboard_keep_scale = true + +[sub_resource type="QuadMesh" id="QuadMesh_vfg7v"] +material = SubResource("StandardMaterial3D_vwnyt") + +[sub_resource type="SphereShape3D" id="SphereShape3D_0m1dj"] +radius = 0.1 + +[sub_resource type="SphereMesh" id="SphereMesh_gbwen"] +radius = 0.1 +height = 0.2 + [node name="WorldGrabDemo" instance=ExtResource("1_6211a")] [node name="XROrigin3D" parent="." index="0"] @@ -122,7 +163,7 @@ bone_idx = 9 [node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] root_node = NodePath("../Hand_Nails_low_L") -tree_root = SubResource("AnimationNodeBlendTree_vuimn") +tree_root = SubResource("AnimationNodeBlendTree_exwc2") [node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("3_gbd4b")] @@ -160,7 +201,7 @@ bone_idx = 9 [node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] root_node = NodePath("../Hand_Nails_low_R") -tree_root = SubResource("AnimationNodeBlendTree_dx808") +tree_root = SubResource("AnimationNodeBlendTree_jpr7c") [node name="FunctionPickup" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("3_gbd4b")] @@ -194,6 +235,7 @@ shape = SubResource("BoxShape3D_gx7jx") [node name="Arena" type="Node3D" parent="." index="3"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0) +visible = false [node name="Floor" parent="Arena" index="0" instance=ExtResource("13_gw40d")] @@ -273,6 +315,56 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, -0.3) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -6) title = ExtResource("10_phcsg") +[node name="GPUParticles3D" type="GPUParticles3D" parent="." index="5"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.63005, 5, 0) +amount = 20000 +lifetime = 10.0 +preprocess = 5.0 +randomness = 0.18 +visibility_aabb = AABB(-400, -400, -400, 400, 400, 400) +process_material = SubResource("ParticleProcessMaterial_v1x0p") +draw_pass_1 = SubResource("QuadMesh_vfg7v") + +[node name="XRToolsPickable" type="RigidBody3D" parent="." index="6"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.800494, 5.33745, -2.52209) +collision_layer = 4 +collision_mask = 7 +gravity_scale = 0.0 +freeze = true +freeze_mode = 1 +script = ExtResource("20_bgctf") +second_hand_grab = 1 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="XRToolsPickable" index="0"] +shape = SubResource("SphereShape3D_0m1dj") + +[node name="GPUParticlesAttractorSphere3D" type="GPUParticlesAttractorSphere3D" parent="XRToolsPickable" index="1"] +strength = 5.41 +attenuation = 1e-05 +radius = 3.0 + +[node name="GrabPointHandLeft" parent="XRToolsPickable" index="2" instance=ExtResource("21_v207o")] + +[node name="GrabPointHandRight" parent="XRToolsPickable" index="3" instance=ExtResource("22_0w02o")] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="XRToolsPickable" index="4"] +mesh = SubResource("SphereMesh_gbwen") + +[node name="GPUParticlesAttractorSphere3D2" type="GPUParticlesAttractorSphere3D" parent="." index="7"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35.0482, 15.5106, -16.643) +visible = false +strength = -87.69 +attenuation = 1e-05 +radius = 41.47 + +[node name="GPUParticlesAttractorBox3D" type="GPUParticlesAttractorBox3D" parent="." index="8"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.60537, -6.71833, -7.97522) +visible = false +strength = 128.0 +attenuation = 1e-05 +directionality = 1.0 +size = Vector3(27.4912, 26.4204, 37.1567) + [editable path="XROrigin3D/LeftHand/LeftHand"] [editable path="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L"] [editable path="XROrigin3D/RightHand/RightHand"]