diff --git a/VERSIONS.md b/VERSIONS.md index 69bd8240..13b80426 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -9,6 +9,8 @@ - Modified virtual keyboard to expose viewport controls and default to unshaded - Cleaned up teleport and added more properties for customization - Modified pickup highlighting to support pickables in snap-zones +- Added "UI Objects" layer 23 for viewports to support interaction by pointer and poking +- Fixed player scaling issues with crouching and poke # 4.1.0 - Enhanced grappling to support collision and target layers diff --git a/addons/godot-xr-tools/functions/function_pointer.gd b/addons/godot-xr-tools/functions/function_pointer.gd index 711360d6..be58d25a 100644 --- a/addons/godot-xr-tools/functions/function_pointer.gd +++ b/addons/godot-xr-tools/functions/function_pointer.gd @@ -44,8 +44,8 @@ enum LaserLength { } -## Default pointer collision mask of 21:pointable -const DEFAULT_MASK := 0b0000_0000_0001_0000_0000_0000_0000_0000 +## Default pointer collision mask of 21:pointable and 23:ui-objects +const DEFAULT_MASK := 0b0000_0000_0101_0000_0000_0000_0000_0000 @export_group("General") diff --git a/addons/godot-xr-tools/functions/function_pointer.tscn b/addons/godot-xr-tools/functions/function_pointer.tscn index 5df58ad3..fbc3fde4 100644 --- a/addons/godot-xr-tools/functions/function_pointer.tscn +++ b/addons/godot-xr-tools/functions/function_pointer.tscn @@ -18,12 +18,11 @@ rings = 8 [node name="FunctionPointer" type="Node3D"] script = ExtResource("2") -collision_mask = 1048577 [node name="RayCast" type="RayCast3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, 0) target_position = Vector3(0, 0, -10) -collision_mask = 1048577 +collision_mask = 5242880 [node name="Laser" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.05, -5) diff --git a/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd b/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd index ce42d9ff..62034b97 100644 --- a/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd +++ b/addons/godot-xr-tools/objects/viewport_2d_in_3d.gd @@ -49,8 +49,8 @@ const _DIRTY_SURFACE := 0x0200 # Surface material needs update const _DIRTY_REDRAW := 0x0400 # Redraw required const _DIRTY_ALL := 0x07FF # All dirty -# Default layer of 1:static-world and 21:pointable -const DEFAULT_LAYER := 0b0000_0000_0001_0000_0000_0000_0000_0001 +# Default layer of 1:static-world, 21:pointable, 23:ui-objects +const DEFAULT_LAYER := 0b0000_0000_0101_0000_0000_0000_0000_0001 # Physics property group diff --git a/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn b/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn index 6b3a71df..285c01ea 100644 --- a/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn +++ b/addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn @@ -12,7 +12,6 @@ size = Vector2(3, 2) [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ney1s"] transparency = 1 cull_mode = 2 -shading_mode = 0 albedo_texture = SubResource("ViewportTexture_0vyuj") texture_filter = 1 @@ -22,6 +21,9 @@ size = Vector3(3, 2, 0.02) [node name="Viewport2Din3D" type="Node3D"] script = ExtResource("1") +alpha_scissor_threshold = 0.25 +unshaded = false +filter = true [node name="Viewport" type="SubViewport" parent="."] disable_3d = true @@ -35,7 +37,7 @@ mesh = SubResource("1") surface_material_override/0 = SubResource("StandardMaterial3D_ney1s") [node name="StaticBody3D" type="StaticBody3D" parent="."] -collision_layer = 1048577 +collision_layer = 5242881 collision_mask = 0 script = ExtResource("2") viewport_size = Vector2(300, 200) diff --git a/addons/godot-xr-tools/player/player_body.gd b/addons/godot-xr-tools/player/player_body.gd index 929c2ab0..9ba43262 100644 --- a/addons/godot-xr-tools/player/player_body.gd +++ b/addons/godot-xr-tools/player/player_body.gd @@ -480,7 +480,7 @@ func _update_body_under_camera(): # Allow forced overriding of height if _player_height_override >= 0.0: - player_height = _player_height_override + player_height = _player_height_override * XRServer.world_scale # Ensure player height makes mathematical sense player_height = max(player_height, player_radius) diff --git a/addons/godot-xr-tools/player/poke/poke.gd b/addons/godot-xr-tools/player/poke/poke.gd index 2471aa0d..b10c76ee 100644 --- a/addons/godot-xr-tools/player/poke/poke.gd +++ b/addons/godot-xr-tools/player/poke/poke.gd @@ -15,13 +15,8 @@ extends Node3D # Default layer of 18:player-hands const DEFAULT_LAYER := 0b0000_0000_0000_0010_0000_0000_0000_0000 -# Default mask of 0xFFFF (1..16) -# - 1:static-world -# - 2:dynamic-world -# - 3:pickable-objects -# - 4:wall-walking -# - 5:grappling-target -const DEFAULT_MASK := 0b0000_0000_0000_0000_1111_1111_1111_1111 +# Default mask [1..16] and 23:ui-objects +const DEFAULT_MASK := 0b0000_0000_0100_0000_1111_1111_1111_1111 ## Enables or disables the poke functionality @@ -74,17 +69,19 @@ func set_radius(new_radius : float) -> void: _update_radius() func _update_radius() -> void: + # Calculate the user-scaled radius + var sr := radius * XRServer.world_scale + + # Update the collision shape var shape : SphereShape3D = $PokeBody/CollisionShape.shape if shape: - shape.radius = radius + shape.radius = sr + # Update the mesh shape var mesh : SphereMesh = $PokeBody/MeshInstance.mesh if mesh: - mesh.radius = radius - mesh.height = radius * 2.0 - - if material: - $PokeBody/MeshInstance.set_surface_override_material(0, material) + mesh.radius = sr + mesh.height = sr * 2.0 func set_teleport_distance(new_distance : float) -> void: teleport_distance = new_distance @@ -155,9 +152,12 @@ func _ready(): $PokeBody.set_as_top_level(true) is_ready = true + + # Construct the poke material material = StandardMaterial3D.new() material.flags_unshaded = true material.flags_transparent = true + $PokeBody/MeshInstance.set_surface_override_material(0, material) _update_enabled() _update_radius() @@ -169,6 +169,12 @@ func _ready(): _update_maximum_force() _update_color() + # Detect hand scale changing + var hand := XRToolsHand.find_instance(self) + if hand: + hand.hand_scale_changed.connect(_on_hand_scale_changed) + + func _process(_delta): if is_instance_valid(target): var new_at = $PokeBody.global_transform.origin @@ -183,6 +189,11 @@ func _process(_delta): set_process(false) +func _on_hand_scale_changed(_scale : float) -> void: + # Update the radius to account for the new hand scale + _update_radius() + + func _on_PokeBody_body_contact_start(body): # We are going to poke this body at our current position. # This will be slightly above the object but since this diff --git a/addons/godot-xr-tools/player/poke/poke.tscn b/addons/godot-xr-tools/player/poke/poke.tscn index 0707d94c..dfef510f 100644 --- a/addons/godot-xr-tools/player/poke/poke.tscn +++ b/addons/godot-xr-tools/player/poke/poke.tscn @@ -25,7 +25,7 @@ script = ExtResource("1") [node name="PokeBody" type="StaticBody3D" parent="."] top_level = true collision_layer = 131072 -collision_mask = 65535 +collision_mask = 4259839 script = ExtResource("2") [node name="CollisionShape" type="CollisionShape3D" parent="PokeBody"] diff --git a/addons/godot-xr-tools/plugin.gd b/addons/godot-xr-tools/plugin.gd index 965ebc98..317c2a5f 100644 --- a/addons/godot-xr-tools/plugin.gd +++ b/addons/godot-xr-tools/plugin.gd @@ -54,6 +54,7 @@ func _set_physics_layers() -> void: ProjectSettings.set("layer_names/3d_physics/layer_20", "Player Body") ProjectSettings.set("layer_names/3d_physics/layer_21", "Pointable Objects") ProjectSettings.set("layer_names/3d_physics/layer_22", "Hand Pose Areas") + ProjectSettings.set("layer_names/3d_physics/layer_23", "UI Objects") func _on_xr_tools_menu_pressed(id : int) -> void: diff --git a/assets/meshes/control_pad/control_pad.gd b/assets/meshes/control_pad/control_pad.gd new file mode 100644 index 00000000..ef455ed4 --- /dev/null +++ b/assets/meshes/control_pad/control_pad.gd @@ -0,0 +1,63 @@ +extends Node3D + + +# Demo staging scene (holds control pad hand choice) +var _staging : DemoStaging + + +# Called when the node enters the scene tree for the first time. +func _ready(): + # Get the staging + _staging = XRTools.find_xr_ancestor(self, "*", "XRToolsStaging") as DemoStaging + + # Connect signals + $Viewport2Din3D.connect_scene_signal("switch_hand", _on_switch_hand) + $Viewport2Din3D.connect_scene_signal("main_scene", _on_main_scene) + + # Update the control pad location + _update_location.call_deferred() + + +# Handle request to switch hand +func _on_switch_hand(hand : String) -> void: + # Save the hand choice in the DemoStaging instance + _staging.control_pad_hand = hand + + # Update the control pad location + _update_location() + + +# Handle request to switch to main scene +func _on_main_scene() -> void: + # Find the scene base + var base := XRTools.find_xr_ancestor( + self, + "*", + "XRToolsSceneBase") as XRToolsSceneBase + + # Return to the main menu + if base: + base.exit_to_main_menu() + + +# Update the location of this control pad +func _update_location() -> void: + # Pick the location to set as our parent + var location : ControlPadLocation + if _staging.control_pad_hand == "LEFT": + location = ControlPadLocation.find_left(self) + else: + location = ControlPadLocation.find_right(self) + + # Skip if no new location found + if not location: + return + + # Detach from current parent + if get_parent(): + get_parent().remove_child(self) + + # Attach to new parent then zero our transform + location.add_child(self) + transform = Transform3D.IDENTITY + visible = true diff --git a/assets/meshes/control_pad/control_pad.tscn b/assets/meshes/control_pad/control_pad.tscn new file mode 100644 index 00000000..a49cf59d --- /dev/null +++ b/assets/meshes/control_pad/control_pad.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=3 uid="uid://ct3p5sgwvkmva"] + +[ext_resource type="Script" path="res://assets/meshes/control_pad/control_pad.gd" id="1_gm1fj"] +[ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="1_q3mfi"] +[ext_resource type="PackedScene" uid="uid://ungirnwga6pc" path="res://assets/meshes/control_pad/control_pad_display.tscn" id="2_hiy0n"] + +[node name="ControlPad" type="Node3D"] +visible = false +script = ExtResource("1_gm1fj") + +[node name="Viewport2Din3D" parent="." instance=ExtResource("1_q3mfi")] +screen_size = Vector2(0.16, 0.08) +collision_layer = 4194304 +scene = ExtResource("2_hiy0n") +viewport_size = Vector2(400, 200) +update_mode = 2 +throttle_fps = 15.0 +transparent = 0 +unshaded = true diff --git a/assets/meshes/control_pad/control_pad_display.gd b/assets/meshes/control_pad/control_pad_display.gd new file mode 100644 index 00000000..f9fda192 --- /dev/null +++ b/assets/meshes/control_pad/control_pad_display.gd @@ -0,0 +1,69 @@ +extends TabContainer + + +## Signal emitted when the control pad hand is switched +signal switch_hand(hand) + +## Signal emitted when requested to go to the main scene +signal main_scene + + +var _tween : Tween + +var _player_body : XRToolsPlayerBody + + +# Called when the node enters the scene tree for the first time. +func _ready(): + # Apply initial scale + $Body/VBoxContainer/Scale/BodyScaleSlider.value = XRServer.world_scale + + # Find the player body + _player_body = XRToolsPlayerBody.find_instance(self) + + +# Called to refresh the display +func _on_refresh_timer_timeout(): + if _player_body and $Body.visible: + var pos := _player_body.global_position + var vel := _player_body.velocity + var pos_str := "%8.3f, %8.3f, %8.3f" % [pos.x, pos.y, pos.z] + var vel_str := "%8.3f, %8.3f, %8.3f" % [vel.x, vel.y, vel.z] + $Body/VBoxContainer/Position/Value.text = pos_str + $Body/VBoxContainer/Velocity/Value.text = vel_str + + +# Handle user changing the body scale slider +func _on_body_scale_slider_value_changed(value : float) -> void: + # Kill any current tween + if _tween: + _tween.kill() + + # Tween the world scale over the next 1/2 second + _tween = get_tree().create_tween() + _tween.tween_method( + _set_world_scale, + XRServer.world_scale, + value, + 0.5) + + +# Handle user selecting the left panel position +func _on_panel_left_pressed(): + switch_hand.emit("LEFT") + + +# Handle user selecting the right panel position +func _on_panel_right_pressed(): + switch_hand.emit("RIGHT") + + +# Handle user selecting main scene +func _on_main_scene_pressed(): + main_scene.emit() + + +# Called by the tweening to change the world scale +func _set_world_scale(scale : float) -> void: + XRServer.world_scale = scale + diff --git a/assets/meshes/control_pad/control_pad_display.tscn b/assets/meshes/control_pad/control_pad_display.tscn new file mode 100644 index 00000000..6633ec62 --- /dev/null +++ b/assets/meshes/control_pad/control_pad_display.tscn @@ -0,0 +1,123 @@ +[gd_scene load_steps=2 format=3 uid="uid://ungirnwga6pc"] + +[ext_resource type="Script" path="res://assets/meshes/control_pad/control_pad_display.gd" id="1_iqtwx"] + +[node name="ControlPadDisplay" type="TabContainer"] +offset_right = 400.0 +offset_bottom = 200.0 +tab_alignment = 1 +script = ExtResource("1_iqtwx") + +[node name="RefreshTimer" type="Timer" parent="."] +wait_time = 0.1 +autostart = true + +[node name="Body" type="MarginContainer" parent="."] +visible = false +layout_mode = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 + +[node name="VBoxContainer" type="VBoxContainer" parent="Body"] +layout_mode = 2 + +[node name="Position" type="HBoxContainer" parent="Body/VBoxContainer"] +layout_mode = 2 + +[node name="Name" type="Label" parent="Body/VBoxContainer/Position"] +custom_minimum_size = Vector2(90, 0) +layout_mode = 2 +text = "Position:" + +[node name="Value" type="Label" parent="Body/VBoxContainer/Position"] +layout_mode = 2 +text = "0, 0, 0" + +[node name="Velocity" type="HBoxContainer" parent="Body/VBoxContainer"] +layout_mode = 2 + +[node name="Name" type="Label" parent="Body/VBoxContainer/Velocity"] +custom_minimum_size = Vector2(90, 0) +layout_mode = 2 +text = "Velocity: +" + +[node name="Value" type="Label" parent="Body/VBoxContainer/Velocity"] +layout_mode = 2 +text = "0, 0, 0" + +[node name="Scale" type="HBoxContainer" parent="Body/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="Body/VBoxContainer/Scale"] +custom_minimum_size = Vector2(90, 0) +layout_mode = 2 +text = "Scale:" + +[node name="BodyScaleSlider" type="HSlider" parent="Body/VBoxContainer/Scale"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +min_value = 0.5 +max_value = 2.0 +step = 0.1 +value = 1.0 + +[node name="Settings" type="MarginContainer" parent="."] +layout_mode = 2 +theme_override_constants/margin_left = 5 +theme_override_constants/margin_top = 5 +theme_override_constants/margin_right = 5 +theme_override_constants/margin_bottom = 5 + +[node name="VBoxContainer" type="VBoxContainer" parent="Settings"] +layout_mode = 2 + +[node name="Panel" type="HBoxContainer" parent="Settings/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="Settings/VBoxContainer/Panel"] +custom_minimum_size = Vector2(90, 0) +layout_mode = 2 +text = "Panel:" + +[node name="Container" type="HBoxContainer" parent="Settings/VBoxContainer/Panel"] +layout_mode = 2 +size_flags_horizontal = 3 +alignment = 1 + +[node name="Left" type="Button" parent="Settings/VBoxContainer/Panel/Container"] +custom_minimum_size = Vector2(80, 0) +layout_mode = 2 +text = "Left" + +[node name="Right" type="Button" parent="Settings/VBoxContainer/Panel/Container"] +custom_minimum_size = Vector2(80, 0) +layout_mode = 2 +text = "Right +" + +[node name="Demo" type="HBoxContainer" parent="Settings/VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="Settings/VBoxContainer/Demo"] +custom_minimum_size = Vector2(90, 0) +layout_mode = 2 +text = "Main:" + +[node name="Container" type="HBoxContainer" parent="Settings/VBoxContainer/Demo"] +layout_mode = 2 +size_flags_horizontal = 3 +alignment = 1 + +[node name="MainScene" type="Button" parent="Settings/VBoxContainer/Demo/Container"] +layout_mode = 2 +text = "Return to Main Scene" + +[connection signal="timeout" from="RefreshTimer" to="." method="_on_refresh_timer_timeout"] +[connection signal="value_changed" from="Body/VBoxContainer/Scale/BodyScaleSlider" to="." method="_on_body_scale_slider_value_changed"] +[connection signal="pressed" from="Settings/VBoxContainer/Panel/Container/Left" to="." method="_on_panel_left_pressed"] +[connection signal="pressed" from="Settings/VBoxContainer/Panel/Container/Right" to="." method="_on_panel_right_pressed"] +[connection signal="pressed" from="Settings/VBoxContainer/Demo/Container/MainScene" to="." method="_on_main_scene_pressed"] diff --git a/assets/meshes/control_pad/control_pad_location.gd b/assets/meshes/control_pad/control_pad_location.gd new file mode 100644 index 00000000..42df3fed --- /dev/null +++ b/assets/meshes/control_pad/control_pad_location.gd @@ -0,0 +1,53 @@ +@tool +class_name ControlPadLocation +extends Node3D + + +# Initial transform +var _transform : Transform3D + + +# Add support for is_xr_class on XRTools classes +func is_xr_class(name : String) -> bool: + return name == "ControlPadLocation" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + # Capture initial transform + _transform = transform + + # Subscribe to world scaling events + var hand := XRToolsHand.find_instance(self) + if hand: + hand.hand_scale_changed.connect(_on_hand_scale_changed) + + +# Handle world scale changing +func _on_hand_scale_changed(scale : float) -> void: + # Scale ourselves (and our children) + transform = _transform.scaled(Vector3.ONE * scale) + + +## Find a ControlPadLocation related to the specified node +static func find_instance(node : Node) -> ControlPadLocation: + return XRTools.find_xr_child( + XRHelpers.get_xr_controller(node), + "*", + "ControlPadLocation") as ControlPadLocation + + +## Find the left ControlPadLocation related to the specified node +static func find_left(node : Node) -> ControlPadLocation: + return XRTools.find_xr_child( + XRHelpers.get_left_controller(node), + "*", + "ControlPadLocation") as ControlPadLocation + + +## Find the right ControlPadLocation related to the specified node +static func find_right(node : Node) -> ControlPadLocation: + return XRTools.find_xr_child( + XRHelpers.get_right_controller(node), + "*", + "ControlPadLocation") as ControlPadLocation diff --git a/assets/meshes/control_pad/control_pad_location_left.tscn b/assets/meshes/control_pad/control_pad_location_left.tscn new file mode 100644 index 00000000..a016ff58 --- /dev/null +++ b/assets/meshes/control_pad/control_pad_location_left.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://bwr0eqi231lf0"] + +[ext_resource type="Script" path="res://assets/meshes/control_pad/control_pad_location.gd" id="1_4uvgi"] + +[node name="ControlPadLocationLeft" type="Node3D"] + +[node name="Position" type="Node3D" parent="."] +transform = Transform3D(1.91069e-15, -1, -4.37114e-08, -0.0871558, -4.35451e-08, 0.996195, -0.996195, 3.8097e-09, -0.0871558, -0.03, 0, 0.3) +script = ExtResource("1_4uvgi") diff --git a/assets/meshes/control_pad/control_pad_location_right.tscn b/assets/meshes/control_pad/control_pad_location_right.tscn new file mode 100644 index 00000000..38b87c56 --- /dev/null +++ b/assets/meshes/control_pad/control_pad_location_right.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://deyk5frilshws"] + +[ext_resource type="Script" path="res://assets/meshes/control_pad/control_pad_location.gd" id="1_nolsk"] + +[node name="ControlPadLocationRight" type="Node3D"] + +[node name="Position" type="Node3D" parent="."] +transform = Transform3D(-5.73206e-15, 1, -1.31134e-07, 0.0871558, 1.30635e-07, 0.996195, 0.996195, -1.14291e-08, -0.0871558, 0.03, 0, 0.3) +script = ExtResource("1_nolsk") diff --git a/demo_staging.gd b/demo_staging.gd index 19b52b63..cdb9cf46 100644 --- a/demo_staging.gd +++ b/demo_staging.gd @@ -1,4 +1,5 @@ @tool +class_name DemoStaging extends XRToolsStaging ## Introduction @@ -24,6 +25,9 @@ extends XRToolsStaging var scene_is_loaded : bool = false +# Stores which hand the control pad is bound to +var control_pad_hand : String = "LEFT" + func _ready() -> void: # In Godot 4 we must now manually call our super class ready function diff --git a/project.godot b/project.godot index 74a7281f..68a29836 100644 --- a/project.godot +++ b/project.godot @@ -44,6 +44,7 @@ common/drop_mouse_on_gui_input_disabled=true 3d_physics/layer_20="Player Body" 3d_physics/layer_21="Pointable Objects" 3d_physics/layer_22="Hand Pose Areas" +3d_physics/layer_23="UI Objects" [physics] diff --git a/scenes/audio_demo/audio_demo.tscn b/scenes/audio_demo/audio_demo.tscn index 3529bef9..e2c3d582 100644 --- a/scenes/audio_demo/audio_demo.tscn +++ b/scenes/audio_demo/audio_demo.tscn @@ -1,16 +1,19 @@ -[gd_scene load_steps=27 format=3 uid="uid://c2peddtwxsah5"] +[gd_scene load_steps=43 format=3 uid="uid://c2peddtwxsah5"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1_jceij"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_tafmy"] [ext_resource type="PackedScene" uid="uid://bdwmserhqai5h" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn" id="3_xxmgq"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="4_1uxxi"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_6vss1"] [ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="5_02uus"] [ext_resource type="PackedScene" uid="uid://bft3xyxs31ci3" path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" id="6_131o8"] [ext_resource type="PackedScene" uid="uid://btf05hjpw6k05" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn" id="6_vetbi"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="7_h0ohr"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="7_xr2gq"] [ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="8_bx0ud"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="9_8cb2y"] [ext_resource type="PackedScene" uid="uid://0xlsitpu17r1" path="res://addons/godot-xr-tools/functions/movement_footstep.tscn" id="11_4jiwm"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="11_7wxsm"] [ext_resource type="PackedScene" uid="uid://6xxscqoyit84" path="res://assets/maps/holodeck_map_s.tscn" id="11_yy8rv"] [ext_resource type="AudioStream" uid="uid://cddgfn5xkknr4" path="res://assets/footsteps/default_footstep.wav" id="12_sotnm"] [ext_resource type="Script" path="res://addons/godot-xr-tools/audio/surface_audio_type.gd" id="13_8k0am"] @@ -18,6 +21,7 @@ [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="14_17t48"] [ext_resource type="PackedScene" uid="uid://ca4wkvbu8jnb4" path="res://scenes/audio_demo/objects/basketball.tscn" id="15_vjd76"] [ext_resource type="PackedScene" uid="uid://d3mg3nmndxvxv" path="res://scenes/audio_demo/objects/ping_pong_ball.tscn" id="16_3eyoi"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="16_fuqta"] [ext_resource type="PackedScene" uid="uid://coa22qqgjs0yb" path="res://scenes/audio_demo/objects/ping_pong_racket.tscn" id="17_lx4jc"] [ext_resource type="PackedScene" uid="uid://0yjbl2vc5ry" path="res://scenes/audio_demo/objects/token.tscn" id="18_4luwj"] [ext_resource type="AudioStream" uid="uid://dd1dmsoxo58ao" path="res://assets/BryanTeoh/Soundtrack From the Starcourt Mall.mp3" id="19_3odgn"] @@ -26,6 +30,68 @@ [ext_resource type="PackedScene" uid="uid://diyu4g17s0n8g" path="res://scenes/audio_demo/objects/arcade_hoops.tscn" id="21_v27ri"] [ext_resource type="PackedScene" uid="uid://c8v28upinm8k8" path="res://scenes/audio_demo/objects/instructions.tscn" id="22_8pmnk"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ligbi"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8t4j7"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_i117w"] +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_i7m8d"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_wy1bl"] +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_etuq8"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_ligbi") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_8t4j7") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_i117w") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_i7m8d") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_wy1bl") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7f4qn"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_3v734"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_7okmi"] +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_4jnwv"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_n3exj"] +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_wavfh"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_7f4qn") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_3v734") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_7okmi") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4jnwv") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_n3exj") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [sub_resource type="Resource" id="Resource_ppd3h"] script = ExtResource("13_8k0am") name = "Default" @@ -39,6 +105,100 @@ script = ExtResource("2_tafmy") [node name="LeftPhysicsHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("3_xxmgq")] +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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="BoneRoot" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) + +[node name="BoneThumbMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) + +[node name="BoneThumbProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) + +[node name="BoneThumbDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) + +[node name="BoneIndexMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) + +[node name="BoneIndexProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) + +[node name="BoneIndexMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) + +[node name="BoneIndexDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) + +[node name="BoneMiddleMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) + +[node name="BoneMiddleProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) + +[node name="BoneMiddleMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) + +[node name="BoneMiddleDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) + +[node name="BoneRingMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) + +[node name="BoneRingProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) + +[node name="BoneRingMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) + +[node name="BoneRingDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) + +[node name="BonePinkyMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) + +[node name="BonePinkyProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) + +[node name="BonePinkyMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) + +[node name="BonePinkyDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="21"] +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 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_6vss1")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftPhysicsHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_etuq8") + [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("4_1uxxi")] strafe = true @@ -48,8 +208,104 @@ ranged_angle = 10.0 [node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("6_131o8")] +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("7_xr2gq")] + [node name="RightPhysicsHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_vetbi")] +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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="BoneRoot" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) + +[node name="BoneThumbMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) + +[node name="BoneThumbProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) + +[node name="BoneThumbDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) + +[node name="BoneIndexMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) + +[node name="BoneIndexProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) + +[node name="BoneIndexMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) + +[node name="BoneIndexDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) + +[node name="BoneMiddleMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) + +[node name="BoneMiddleProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) + +[node name="BoneMiddleMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) + +[node name="BoneMiddleDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) + +[node name="BoneRingMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) + +[node name="BoneRingProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) + +[node name="BoneRingMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) + +[node name="BoneRingDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) + +[node name="BonePinkyMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) + +[node name="BonePinkyProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) + +[node name="BonePinkyMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) + +[node name="BonePinkyDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="21"] +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 + +[node name="Poke" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_6vss1")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightPhysicsHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_wavfh") + [node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("4_1uxxi")] [node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("7_h0ohr")] @@ -64,14 +320,14 @@ laser_length = 1 [node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("6_131o8")] +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="6" instance=ExtResource("11_7wxsm")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("9_8cb2y")] [node name="MovementFootstep" parent="XROrigin3D" index="4" instance=ExtResource("11_4jiwm")] -order = 1001 default_surface_audio_type = SubResource("Resource_ppd3h") -walk_speed = 0.4 -steps_per_meter = 1.0 -enabled = true + +[node name="ControlPad" parent="XROrigin3D" index="5" instance=ExtResource("16_fuqta")] [node name="HolodeckMap" parent="." index="1" instance=ExtResource("11_yy8rv")] @@ -161,3 +417,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61845, 0, -6.9979) stream = ExtResource("19_3odgn") max_db = -20.0 autoplay = true + +[editable path="XROrigin3D/LeftHand/LeftPhysicsHand"] +[editable path="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightPhysicsHand"] +[editable path="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R"] diff --git a/scenes/basic_movement_demo/basic_movement_demo.tscn b/scenes/basic_movement_demo/basic_movement_demo.tscn index 9840f2bf..abb33d61 100644 --- a/scenes/basic_movement_demo/basic_movement_demo.tscn +++ b/scenes/basic_movement_demo/basic_movement_demo.tscn @@ -1,26 +1,126 @@ -[gd_scene load_steps=16 format=3 uid="uid://bbcamgruwhrq4"] +[gd_scene load_steps=32 format=3 uid="uid://bbcamgruwhrq4"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_5ptmo"] [ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="2_54yy3"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_j425l"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="5_2ekvc"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="6"] [ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_0hbex"] [ext_resource type="PackedScene" uid="uid://bdc23valbh8gf" path="res://assets/meshes/ramps/ramps.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="8_0sv1b"] [ext_resource type="PackedScene" uid="uid://dpjfart2qg8k7" path="res://assets/meshes/mound/mound.tscn" id="9"] [ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="10"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="11"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="11_k0f5x"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="12"] [ext_resource type="PackedScene" uid="uid://dipg8euybm3f1" path="res://scenes/basic_movement_demo/objects/instructions.tscn" id="12_qasi6"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="13_51xax"] [ext_resource type="PackedScene" uid="uid://ca6c2h3xsflxf" path="res://assets/maps/holodeck_map.tscn" id="16_v54dt"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kag4k"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yd4dj"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ord26"] +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_qxgwl"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_emf7m"] +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_tyo0e"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_kag4k") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_yd4dj") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_ord26") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_qxgwl") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_emf7m") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_hpaa3"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_46u4t"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_xf6le"] +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_uoku2"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_xxigd"] +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_s02f4"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_hpaa3") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_46u4t") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_xf6le") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_uoku2") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_xxigd") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [node name="BasicMovementDemo" instance=ExtResource("1")] script = ExtResource("2_5ptmo") [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_54yy3")] +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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_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) +bone_name = "Index_Tip_L" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_j425l")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_tyo0e") + [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5")] strafe = true @@ -31,8 +131,44 @@ jump_button_action = "ax_button" crouch_height = 1.3 crouch_button_action = "by_button" +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("8_0sv1b")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_0hbex")] +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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/RightHand/RightHand/Hand_Nails_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_j425l")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_s02f4") + [node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5")] [node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("4")] @@ -45,8 +181,12 @@ crouch_height = 1.3 crouch_button_action = "by_button" crouch_type = 1 +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("11_k0f5x")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("6")] +[node name="ControlPad" parent="XROrigin3D" index="4" instance=ExtResource("13_51xax")] + [node name="HolodeckMap" parent="." index="1" instance=ExtResource("16_v54dt")] [node name="MainMenuTeleport" parent="." index="2" instance=ExtResource("11")] @@ -62,3 +202,8 @@ transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 6, 0, [node name="Mound" parent="." index="5" instance=ExtResource("9")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0, 0) + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R"] diff --git a/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn b/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn index 739dd103..b63454ab 100644 --- a/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn +++ b/scenes/climbing_gliding_demo/climbing_gliding_demo.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=25 format=3 uid="uid://40a3andy74bw"] +[gd_scene load_steps=41 format=3 uid="uid://40a3andy74bw"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_nosao"] @@ -7,22 +7,88 @@ [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="4"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="6_5im4s"] [ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_vqlyr"] [ext_resource type="PackedScene" uid="uid://cvokcudrffkgc" path="res://addons/godot-xr-tools/functions/movement_glide.tscn" id="7"] [ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="8"] [ext_resource type="Material" uid="uid://p0q2df2dmy62" path="res://addons/godot-xr-tools/hands/materials/ghost_hand.tres" id="8_cr7b0"] [ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="9"] [ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="10"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="10_3kap6"] [ext_resource type="PackedScene" uid="uid://bt8kw5a34upwm" path="res://scenes/climbing_gliding_demo/objects/cliff.tscn" id="11"] [ext_resource type="PackedScene" uid="uid://bt2i205mlq1q0" path="res://scenes/climbing_gliding_demo/objects/wind_area.tscn" id="12"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="13"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="13_76s1p"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="14"] [ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="15"] [ext_resource type="PackedScene" uid="uid://cm0cpldqa6j4d" path="res://scenes/climbing_gliding_demo/objects/hill.tscn" id="16"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="18_eubkd"] [ext_resource type="PackedScene" path="res://scenes/climbing_gliding_demo/objects/ring.tscn" id="18_gu236"] [ext_resource type="PackedScene" uid="uid://b634pnt2nrn77" path="res://scenes/climbing_gliding_demo/objects/instructions.tscn" id="19_3dxda"] [ext_resource type="PackedScene" uid="uid://bgts3vpmjn6bb" path="res://addons/godot-xr-tools/functions/movement_wind.tscn" id="22"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_lj651"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_5hu3r"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_k4gv5"] +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_f11fi"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2dm6d"] +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_xv4cn"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_lj651") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_5hu3r") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_k4gv5") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_f11fi") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_2dm6d") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kwr4e"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_at15v"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_3qnl1"] +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_j56mo"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cjhu6"] +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_6km0q"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_kwr4e") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_at15v") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_3qnl1") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_j56mo") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_cjhu6") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [sub_resource type="BoxMesh" id="1"] size = Vector3(200, 1, 200) @@ -44,6 +110,43 @@ far = 400.0 [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_xkd6u")] hand_material_override = ExtResource("8_cr7b0") +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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_Nails_low_L" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="0"] +material_override = ExtResource("8_cr7b0") + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/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) +bone_name = "Index_Tip_L" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("6_5im4s")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_xv4cn") + [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5")] strafe = true @@ -52,9 +155,48 @@ strafe = true [node name="MovementJump" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("15")] jump_button_action = "ax_button" +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("10_3kap6")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_vqlyr")] hand_material_override = ExtResource("8_cr7b0") +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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="mesh_Hand_Nails_low_R" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D" index="0"] +material_override = ExtResource("8_cr7b0") + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("6_5im4s")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_6km0q") + [node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5")] [node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("4")] @@ -64,6 +206,8 @@ hand_material_override = ExtResource("8_cr7b0") [node name="MovementJump" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("15")] jump_button_action = "ax_button" +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("13_76s1p")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("6")] [node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("8")] @@ -74,6 +218,8 @@ wings_impulse = true [node name="MovementWind" parent="XROrigin3D" index="6" instance=ExtResource("22")] +[node name="ControlPad" parent="XROrigin3D" index="7" instance=ExtResource("18_eubkd")] + [node name="DirectionalLight3D" type="DirectionalLight3D" parent="." index="2"] transform = Transform3D(0.866025, -0.321394, 0.383022, 0, 0.766044, 0.642788, -0.5, -0.55667, 0.663414, 0, 5, 0) light_energy = 0.8 @@ -238,3 +384,8 @@ title = ExtResource("13") [node name="Instructions" parent="." index="6" instance=ExtResource("19_3dxda")] transform = Transform3D(-0.5, 0, -0.866025, 0, 1, 0, 0.866025, 0, -0.5, -80, 40, -60) + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R"] diff --git a/scenes/grappling_demo/grappling_demo.tscn b/scenes/grappling_demo/grappling_demo.tscn index cf7b6cce..4b24eb5f 100644 --- a/scenes/grappling_demo/grappling_demo.tscn +++ b/scenes/grappling_demo/grappling_demo.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://bgfw0stwelkt8"] +[gd_scene load_steps=35 format=3 uid="uid://bgfw0stwelkt8"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="PackedScene" uid="uid://c78tjrtiyqna8" path="res://addons/godot-xr-tools/functions/movement_grapple.tscn" id="2"] @@ -6,19 +6,85 @@ [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_lm0po"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="3"] [ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_qshxt"] [ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_n2v2n"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="7"] [ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="8_bqtqi"] [ext_resource type="PackedScene" uid="uid://cvokcudrffkgc" path="res://addons/godot-xr-tools/functions/movement_glide.tscn" id="9"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="11"] [ext_resource type="PackedScene" path="res://scenes/grappling_demo/objects/moving_platforms.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="12_mvj1t"] [ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="13"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="14"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="15"] [ext_resource type="PackedScene" uid="uid://dkueenih28eux" path="res://scenes/grappling_demo/objects/instructions.tscn" id="15_vd3ki"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="16_1fvg5"] [ext_resource type="PackedScene" uid="uid://lelocs2v705t" path="res://scenes/grappling_demo/objects/tower.tscn" id="18"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_iwdon"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_tre57"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ixo0l"] +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_aqnt4"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_8ru1r"] +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_vbmv6"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_iwdon") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_tre57") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_ixo0l") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_aqnt4") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_8ru1r") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ea3j6"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gg4cx"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_lm5p4"] +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_e3ij2"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_p7pwi"] +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_5pkqv"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_ea3j6") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_gg4cx") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_lm5p4") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_e3ij2") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_p7pwi") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [node name="GrapplingDemo" instance=ExtResource("1")] script = ExtResource("2_lm0po") @@ -27,6 +93,40 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 28) [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_7xgbg")] +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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_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) +bone_name = "Index_Tip_L" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_qshxt")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_vbmv6") + [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("3")] strafe = true @@ -36,8 +136,44 @@ jump_button_action = "ax_button" [node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("8")] ranged_enable = false +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("8_bqtqi")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_n2v2n")] +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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/RightHand/RightHand/Hand_Nails_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_qshxt")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_5pkqv") + [node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("3")] [node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("7")] @@ -50,12 +186,16 @@ jump_button_action = "ax_button" [node name="FunctionPickup" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("8")] ranged_enable = false +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="6" instance=ExtResource("12_mvj1t")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("11")] [node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("4")] [node name="MovementGlide" parent="XROrigin3D" index="5" instance=ExtResource("9")] +[node name="ControlPad" parent="XROrigin3D" index="6" instance=ExtResource("16_1fvg5")] + [node name="BasicMap" parent="." index="1" instance=ExtResource("13")] [node name="ToMainMenu" parent="." index="2" instance=ExtResource("14")] @@ -100,3 +240,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0) [node name="MovingPlatformsHigh" parent="." index="6" instance=ExtResource("12")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0) rate = -10.0 + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R"] diff --git a/scenes/interactables_demo/interactables_demo.tscn b/scenes/interactables_demo/interactables_demo.tscn index 0adef40f..6b323e5a 100644 --- a/scenes/interactables_demo/interactables_demo.tscn +++ b/scenes/interactables_demo/interactables_demo.tscn @@ -1,21 +1,24 @@ -[gd_scene load_steps=26 format=3 uid="uid://bqx54elivcbcj"] +[gd_scene load_steps=41 format=3 uid="uid://bqx54elivcbcj"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_a3nc2"] [ext_resource type="PackedScene" uid="uid://bdwmserhqai5h" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn" id="2_ho402"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="3"] -[ext_resource type="Environment" uid="uid://bacqoq62qs27y" path="res://assets/maps/holodeck/holodeck_env.tres" id="3_4y0ws"] [ext_resource type="PackedScene" uid="uid://bft3xyxs31ci3" path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" id="3_s2g5l"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="4"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_nc36h"] [ext_resource type="PackedScene" uid="uid://dukyhft262nrv" path="res://assets/meshes/interactables/slider_snap.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://btf05hjpw6k05" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn" id="5_x135n"] [ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="7"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="8_rx1lv"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="9"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="11_euqkg"] [ext_resource type="PackedScene" uid="uid://d0g2s2yli7iqp" path="res://scenes/interactables_demo/objects/instructions.tscn" id="11_txloh"] [ext_resource type="PackedScene" uid="uid://cpwdvy41fqdua" path="res://assets/meshes/interactables/slider_smooth.tscn" id="12"] [ext_resource type="PackedScene" uid="uid://hv8nnbkuccxi" path="res://assets/meshes/interactables/slider_zero.tscn" id="13"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="13_qruny"] [ext_resource type="PackedScene" uid="uid://cs6dxfu5owcgo" path="res://assets/meshes/interactables/lever_smooth.tscn" id="14"] [ext_resource type="PackedScene" uid="uid://cll4pk3kuuq1" path="res://assets/meshes/interactables/lever_zero.tscn" id="15"] [ext_resource type="PackedScene" uid="uid://dxgv8axd355m7" path="res://assets/meshes/interactables/lever_snap.tscn" id="16"] @@ -26,12 +29,167 @@ [ext_resource type="PackedScene" uid="uid://dbv1hvxufc1al" path="res://assets/meshes/interactables/push_button.tscn" id="21"] [ext_resource type="PackedScene" uid="uid://ca6c2h3xsflxf" path="res://assets/maps/holodeck_map.tscn" id="25_f2g0r"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_bul4v"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_8kt1f"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2dgfp"] +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_e5jrp"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_qbsbn"] +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_otnhb"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_bul4v") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_8kt1f") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_2dgfp") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_e5jrp") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_qbsbn") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_cnn52"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1mlr5"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_wgpq4"] +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_i5kg6"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_6131t"] +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_uouko"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_cnn52") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_1mlr5") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_wgpq4") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_i5kg6") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_6131t") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [node name="InteractablesDemo" instance=ExtResource("1")] script = ExtResource("2_a3nc2") -environment = ExtResource("3_4y0ws") [node name="LeftPhysicsHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_ho402")] +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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="BoneRoot" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) + +[node name="BoneThumbMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) + +[node name="BoneThumbProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) + +[node name="BoneThumbDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) + +[node name="BoneIndexMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) + +[node name="BoneIndexProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) + +[node name="BoneIndexMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) + +[node name="BoneIndexDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) + +[node name="BoneMiddleMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) + +[node name="BoneMiddleProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) + +[node name="BoneMiddleMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) + +[node name="BoneMiddleDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) + +[node name="BoneRingMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) + +[node name="BoneRingProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) + +[node name="BoneRingMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) + +[node name="BoneRingDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) + +[node name="BonePinkyMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) + +[node name="BonePinkyProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) + +[node name="BonePinkyMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) + +[node name="BonePinkyDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="21"] +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 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_nc36h")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftPhysicsHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_otnhb") + [node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("3_s2g5l")] [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("8")] @@ -40,8 +198,104 @@ strafe = true [node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("7")] ranged_enable = false +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("8_rx1lv")] + [node name="RightPhysicsHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("5_x135n")] +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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="BoneRoot" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) + +[node name="BoneThumbMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) + +[node name="BoneThumbProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) + +[node name="BoneThumbDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) + +[node name="BoneIndexMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) + +[node name="BoneIndexProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) + +[node name="BoneIndexMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) + +[node name="BoneIndexDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) + +[node name="BoneMiddleMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) + +[node name="BoneMiddleProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) + +[node name="BoneMiddleMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) + +[node name="BoneMiddleDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) + +[node name="BoneRingMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) + +[node name="BoneRingProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) + +[node name="BoneRingMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) + +[node name="BoneRingDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) + +[node name="BonePinkyMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) + +[node name="BonePinkyProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) + +[node name="BonePinkyMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) + +[node name="BonePinkyDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="21"] +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 + +[node name="Poke" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_nc36h")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightPhysicsHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_uouko") + [node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("3_s2g5l")] [node name="MovementDirect" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("8")] @@ -51,8 +305,12 @@ ranged_enable = false [node name="FunctionPickup" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("7")] ranged_enable = false +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("11_euqkg")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("9")] +[node name="ControlPad" parent="XROrigin3D" index="4" instance=ExtResource("13_qruny")] + [node name="HolodeckMap" parent="." index="1" instance=ExtResource("25_f2g0r")] [node name="MainMenuTeleport" parent="." index="2" instance=ExtResource("3")] @@ -106,3 +364,8 @@ transform = Transform3D(0.707107, -0.707107, 3.09086e-08, 0, -4.37114e-08, -1, 0 [node name="PushButton4" parent="Interactables" index="13" instance=ExtResource("21")] transform = Transform3D(0.642788, 0.766044, -3.34849e-08, 0, -4.37114e-08, -1, -0.766044, 0.642788, -2.80971e-08, -1.55, 1, -2) + +[editable path="XROrigin3D/LeftHand/LeftPhysicsHand"] +[editable path="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightPhysicsHand"] +[editable path="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R"] diff --git a/scenes/main_menu/main_menu_level.tscn b/scenes/main_menu/main_menu_level.tscn index 32f5e356..7f1485cc 100644 --- a/scenes/main_menu/main_menu_level.tscn +++ b/scenes/main_menu/main_menu_level.tscn @@ -1,15 +1,18 @@ -[gd_scene load_steps=38 format=3 uid="uid://037lluf8eoy6"] +[gd_scene load_steps=41 format=3 uid="uid://037lluf8eoy6"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="Script" path="res://scenes/main_menu/main_menu_level.gd" id="2_taoax"] -[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_eoo0b"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_eoo0b"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://bft3xyxs31ci3" path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" id="5_xgcrx"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="7_kl172"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="8_gctxe"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="9"] [ext_resource type="Texture2D" uid="uid://8jxrr3gqnxck" path="res://scenes/basic_movement_demo/basic movement demo.png" id="10"] [ext_resource type="Texture2D" uid="uid://c8qc5ja60n3u8" path="res://scenes/teleport_demo/teleport movement demo.png" id="12"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="12_pwgp0"] [ext_resource type="PackedScene" uid="uid://ca6c2h3xsflxf" path="res://assets/maps/holodeck_map.tscn" id="12_rx0cj"] [ext_resource type="Texture2D" uid="uid://d3epm85d4s28f" path="res://scenes/climbing_gliding_demo/climbing_gliding_demo.png" id="13"] [ext_resource type="Texture2D" uid="uid://rg2en122cmwa" path="res://scenes/audio_demo/audio_demo.png" id="14_gocl4"] @@ -26,65 +29,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_aiai1"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_cybiw"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qsflq"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u1jx6"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_dkrib"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_re7in"] 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_kjau2"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6p6so"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_a2bml"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_nav7x"] 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_s5ump"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_562q2"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_aiai1") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_cybiw") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_qsflq") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_u1jx6") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_dkrib") +nodes/Grip/node = SubResource("AnimationNodeBlend2_re7in") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_kjau2") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_6p6so") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_a2bml") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_nav7x") nodes/Trigger/position = Vector2(-360, 20) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_eique"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_yiocr"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_trfyy"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_kw20q"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_dm4vo"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_aprnd"] 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_suwvf"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_joo1u"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_emhrf"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_lh4ot"] 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_7d2p7"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_efx32"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_eique") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_yiocr") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_trfyy") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_kw20q") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_dm4vo") +nodes/Grip/node = SubResource("AnimationNodeBlend2_aprnd") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_suwvf") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_joo1u") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_emhrf") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_lh4ot") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] @@ -123,13 +126,15 @@ bone_idx = 9 transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] -tree_root = SubResource("AnimationNodeBlendTree_s5ump") +tree_root = SubResource("AnimationNodeBlendTree_562q2") [node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("5_xgcrx")] [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("6")] strafe = true +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("7_kl172")] + [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"] @@ -165,7 +170,7 @@ bone_idx = 9 transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] -tree_root = SubResource("AnimationNodeBlendTree_7d2p7") +tree_root = SubResource("AnimationNodeBlendTree_efx32") [node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5_xgcrx")] @@ -173,8 +178,12 @@ tree_root = SubResource("AnimationNodeBlendTree_7d2p7") [node name="MovementTurn" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("5")] +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("12_pwgp0")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("8")] +[node name="ControlPad" parent="XROrigin3D" index="4" instance=ExtResource("8_gctxe")] + [node name="HolodeckMap" parent="." index="1" instance=ExtResource("12_rx0cj")] [node name="Demos" type="Node3D" parent="." index="2"] diff --git a/scenes/origin_gravity_demo/origin_gravity_demo.tscn b/scenes/origin_gravity_demo/origin_gravity_demo.tscn index 4a845ff5..bbbeb715 100644 --- a/scenes/origin_gravity_demo/origin_gravity_demo.tscn +++ b/scenes/origin_gravity_demo/origin_gravity_demo.tscn @@ -1,25 +1,91 @@ -[gd_scene load_steps=22 format=3 uid="uid://dgk4405uicrgh"] +[gd_scene load_steps=38 format=3 uid="uid://dgk4405uicrgh"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="2"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_xypqg"] [ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="3"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_h2b1w"] [ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="6"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="7"] [ext_resource type="PackedScene" uid="uid://bk6ban0hctyym" path="res://addons/godot-xr-tools/functions/movement_wall_walk.tscn" id="8"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="8_xxyrw"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="9"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="10"] [ext_resource type="PackedScene" uid="uid://dk3jcnbypkiml" path="res://scenes/origin_gravity_demo/objects/pill_orient.tscn" id="11"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="11_tkwx2"] [ext_resource type="PackedScene" uid="uid://bnu45wudmhdse" path="res://scenes/origin_gravity_demo/objects/sphere_orient.tscn" id="12"] [ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="13"] [ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="14"] [ext_resource type="PackedScene" uid="uid://drs4eeq721ojn" path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="15_1brrh"] [ext_resource type="PackedScene" uid="uid://kyhaogt0a4q8" path="res://addons/godot-xr-tools/functions/movement_flight.tscn" id="18"] [ext_resource type="PackedScene" uid="uid://cyohmj7wut3s8" path="res://scenes/origin_gravity_demo/objects/instructions.tscn" id="19"] [ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="21"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1ncao"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p2lua"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ioya3"] +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_tmhqs"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_gg3u7"] +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_blqxp"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_1ncao") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_p2lua") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_ioya3") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_tmhqs") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_gg3u7") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_bn81i"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ecnxd"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_23frg"] +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_e6ev6"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_qjcgd"] +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_msk5t"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_bn81i") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_ecnxd") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_23frg") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_e6ev6") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_qjcgd") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [sub_resource type="Curve3D" id="6"] _data = { "points": PackedVector3Array(-4.24937, -1.06234, 0, 0, 1.062, 0, -28.846, 27.5, 22.046, -4.1528, 0.820904, 0, 4.1528, -0.820904, 0, -14.1804, 30.4904, 21.7814, -2.83784, 2.60267, 0.0372009, 2.83784, -2.60267, -0.0372009, -4.79844, 27.0269, 22.1809, 1.6403, 2.9682, -0.0173683, -1.6403, -2.9682, 0.0173683, -2.87687, 17.8878, 23.2453, 0.57946, 4.05622, 0, -0.57946, -4.05622, 0, -7.44255, 8.17148, 23.1395, -2.70415, 1.11063, 0, 2.70415, -1.11063, 0, -0.888668, 1.09893, 23.2599, -2.3209, -0.153747, -0.449579, 2.3209, 0.153747, 0.449579, 6.55866, -1.48348, 25.7184), @@ -43,6 +109,40 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 36) [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("13")] +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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_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) +bone_name = "Index_Tip_L" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_h2b1w")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_blqxp") + [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("7")] strafe = true @@ -54,8 +154,44 @@ crouch_button_action = "by_button" [node name="MovementSprint" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("15")] +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="5" instance=ExtResource("8_xxyrw")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("14")] +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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/RightHand/RightHand/Hand_Nails_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_h2b1w")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_msk5t") + [node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("7")] [node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("6")] @@ -66,12 +202,16 @@ jump_button_action = "ax_button" [node name="MovementSprint" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("15")] controller = 1 +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("11_tkwx2")] + [node name="MovementFlight" parent="XROrigin3D" index="3" instance=ExtResource("18")] [node name="MovementWallWalk" parent="XROrigin3D" index="4" instance=ExtResource("8")] [node name="PlayerBody" parent="XROrigin3D" index="5" instance=ExtResource("4")] +[node name="ControlPad" parent="XROrigin3D" index="6" instance=ExtResource("15_1brrh")] + [node name="BasicMap" parent="." index="1" instance=ExtResource("2")] [node name="Teleport" parent="." index="2" instance=ExtResource("10")] @@ -136,3 +276,8 @@ path_continuous_u = true path_u_distance = 1.0 path_joined = false material = ExtResource("3") + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R"] diff --git a/scenes/pickable_demo/pickable_demo.tscn b/scenes/pickable_demo/pickable_demo.tscn index fd52c9ec..e45abb77 100644 --- a/scenes/pickable_demo/pickable_demo.tscn +++ b/scenes/pickable_demo/pickable_demo.tscn @@ -1,26 +1,29 @@ -[gd_scene load_steps=28 format=3 uid="uid://0c76wodjd7rm"] +[gd_scene load_steps=43 format=3 uid="uid://0c76wodjd7rm"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="PackedScene" uid="uid://bdwmserhqai5h" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn" id="2_8wi6c"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_kjksy"] -[ext_resource type="Environment" uid="uid://bacqoq62qs27y" path="res://assets/maps/holodeck/holodeck_env.tres" id="3_7gvmo"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_iyttx"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://btf05hjpw6k05" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn" id="5_laayj"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="6"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="7_fdgf8"] [ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="7_kskan"] [ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="8"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="9"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="10"] [ext_resource type="PackedScene" uid="uid://1mb16xioom74" path="res://scenes/pickable_demo/objects/belt_snap_zone.tscn" id="10_5odnk"] [ext_resource type="PackedScene" uid="uid://cf024hg5alcif" path="res://scenes/pickable_demo/objects/snap_toy_red.tscn" id="11"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="11_dk12d"] [ext_resource type="PackedScene" uid="uid://cboxrvj4xdi6f" path="res://scenes/pickable_demo/objects/snap_toy_yellow.tscn" id="12"] [ext_resource type="PackedScene" uid="uid://ca6c2h3xsflxf" path="res://assets/maps/holodeck_map.tscn" id="12_8rh1y"] [ext_resource type="PackedScene" uid="uid://bmdafjhc8cwia" path="res://scenes/pickable_demo/objects/instructions.tscn" id="12_282ma"] [ext_resource type="PackedScene" uid="uid://clta811tt773x" path="res://scenes/pickable_demo/objects/grab_ball.tscn" id="13"] [ext_resource type="PackedScene" uid="uid://djkjuy7wct10q" path="res://scenes/pickable_demo/objects/grab_cube.tscn" id="14"] [ext_resource type="PackedScene" uid="uid://gi3cc6cxi81j" path="res://scenes/pickable_demo/objects/saucer.tscn" id="14_ani61"] -[ext_resource type="PackedScene" uid="uid://cbcbffvk7xth4" path="res://assets/meshes/table/table.tscn" id="15"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="14_xqgdl"] +[ext_resource type="PackedScene" uid="uid://bwcpq6cuejbiy" path="res://assets/meshes/table/table.tscn" id="15"] [ext_resource type="PackedScene" uid="uid://b3mykwawmnxpi" path="res://scenes/pickable_demo/objects/teacup_stand.tscn" id="15_bq355"] [ext_resource type="PackedScene" uid="uid://c6rmke57xw5lg" path="res://scenes/pickable_demo/objects/snap_tray.tscn" id="16"] [ext_resource type="PackedScene" uid="uid://chww0na0ryl1m" path="res://scenes/pickable_demo/objects/teacup.tscn" id="16_v5unt"] @@ -28,12 +31,167 @@ [ext_resource type="PackedScene" uid="uid://bxk2dud5pq1uf" path="res://scenes/pickable_demo/objects/knife.tscn" id="19_6grml"] [ext_resource type="Script" path="res://addons/godot-xr-tools/objects/return_to_snap_zone.gd" id="19_iqmkd"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o2h1e"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_2o6fv"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_w0yq0"] +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_50w21"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kcyoj"] +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_cqhmy"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_o2h1e") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_2o6fv") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_w0yq0") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_50w21") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_kcyoj") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_l55ai"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_li6yf"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ge1k2"] +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_wd2mj"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_q2j0r"] +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_3yedw"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_l55ai") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_li6yf") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_ge1k2") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_wd2mj") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_q2j0r") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [node name="PickableDemo" instance=ExtResource("1")] script = ExtResource("2_kjksy") -environment = ExtResource("3_7gvmo") [node name="LeftPhysicsHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2_8wi6c")] +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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="BoneRoot" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, -1.83077e-05, 1.52659e-08, 1.52668e-08, 0.00166774, 0.999999, -1.83077e-05, -0.999999, 0.00166774, 3.86425e-08, -1.86975e-05, 0.0271756) + +[node name="BoneThumbMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, 0.0514604, -0.0176509, -0.017651, 0.613335, 0.789626, 0.0514604, -0.788145, 0.613335, 0.00999954, 0.0200266, 3.59323e-05) + +[node name="BoneThumbProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, 0.383958, -0.0587628, -0.124052, 0.434264, 0.892203, 0.368087, -0.814856, 0.447796, 0.012311, 0.0475754, -0.0353648) + +[node name="BoneThumbDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, 0.366844, 0.0151708, -0.154037, 0.352396, 0.923087, 0.333283, -0.860954, 0.384292, 0.028494, 0.0658787, -0.0697092) + +[node name="BoneIndexMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, 0.0336562, -0.0231681, 0.0231985, -0.00051113, 0.999731, 0.0336353, -0.999433, -0.00129147, -0.0100005, 0.0224317, 3.59286e-05) + +[node name="BoneIndexProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, 0.0419384, -0.0509326, 0.0413169, 0.204661, 0.97796, 0.0514381, -0.977934, 0.202483, -0.00729559, 0.0223907, -0.0802861) + +[node name="BoneIndexMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, 0.644453, -0.0854741, -0.040588, 0.178251, 0.983148, 0.648829, -0.743577, 0.161601, -0.00569705, 0.0301916, -0.117561) + +[node name="BoneIndexDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356468, 0.927111, -0.115741, -0.109286, 0.164404, 0.98032, 0.927894, -0.336804, 0.159925, 0.0145038, 0.035779, -0.140869) + +[node name="BoneMiddleMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, -0.0127165, -0.00125617, 0.000365489, -0.0698022, 0.997561, -0.0127732, -0.99748, -0.0697919, -0.0100005, 0.00355416, 3.59286e-05) + +[node name="BoneMiddleProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, 0.237654, -0.00293004, 0.0207339, -0.0724503, 0.997156, 0.236766, -0.968644, -0.0753018, -0.0110237, -0.00206236, -0.0802245) + +[node name="BoneMiddleMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, 0.643161, -0.0351718, 0.0290327, 0.0201225, 0.999376, 0.643468, -0.765466, -0.00328059, -0.000328456, -0.00532286, -0.123817) + +[node name="BoneMiddleDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, 0.95453, -0.0243818, 0.0374454, 0.0138673, 0.999202, 0.954107, -0.297791, -0.0316226, 0.0205207, -0.00467056, -0.148631) + +[node name="BoneRingMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, 0.047074, 0.0237409, -0.0169882, -0.138981, 0.990149, 0.0499098, -0.989175, -0.137988, -0.0100005, -0.0130734, 3.59304e-05) + +[node name="BoneRingProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, 0.181854, 0.0266582, 0.0109494, -0.202722, 0.979175, 0.183471, -0.962202, -0.20126, -0.00651963, -0.0233502, -0.0731075) + +[node name="BoneRingMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, 0.634603, 0.0200164, 0.0794845, -0.127948, 0.98859, 0.629924, -0.762173, -0.149291, 0.000778393, -0.0314857, -0.111722) + +[node name="BoneRingDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381387, 0.924068, 0.025339, 0.114105, -0.0742599, 0.990689, 0.917346, -0.374945, -0.133762, 0.0184188, -0.0350424, -0.132908) + +[node name="BonePinkyMetacarpal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, 0.0165318, 0.0422887, -0.0385953, -0.181426, 0.982647, 0.0239172, -0.983265, -0.180601, -4.58211e-07, -0.0299734, 3.59304e-05) + +[node name="BonePinkyProximal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, 0.239304, 0.0579745, 0.0185535, -0.305761, 0.951928, 0.245527, -0.921544, -0.300787, 0.00108587, -0.0418952, -0.0645756) + +[node name="BonePinkyMiddle" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, 0.713816, 0.0374602, 0.103947, -0.153407, 0.982681, 0.707199, -0.683325, -0.181481, 0.00901247, -0.0520231, -0.0951004) + +[node name="BonePinkyDistal" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, 0.939844, 0.0220291, 0.162162, -0.081867, 0.983362, 0.926011, -0.331647, -0.180315, 0.0218786, -0.0547881, -0.107417) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D" index="21"] +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 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_iyttx")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftPhysicsHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_cqhmy") + [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("7")] strafe = true @@ -41,8 +199,104 @@ strafe = true grab_distance = 0.1 ranged_angle = 10.0 +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("7_fdgf8")] + [node name="RightPhysicsHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("5_laayj")] +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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="BoneRoot" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="1"] +transform = Transform3D(1, 1.83077e-05, -1.52659e-08, -1.52668e-08, 0.00166774, 0.999999, 1.83077e-05, -0.999999, 0.00166774, -3.86425e-08, -1.86975e-05, 0.0271756) + +[node name="BoneThumbMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="2"] +transform = Transform3D(0.998519, -0.0514604, 0.0176509, 0.017651, 0.613335, 0.789626, -0.0514604, -0.788145, 0.613335, -0.00999954, 0.0200266, 3.59323e-05) + +[node name="BoneThumbProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="3"] +transform = Transform3D(0.921479, -0.383958, 0.0587628, 0.124052, 0.434264, 0.892203, -0.368087, -0.814856, 0.447796, -0.012311, 0.0475754, -0.0353648) + +[node name="BoneThumbDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="4"] +transform = Transform3D(0.930159, -0.366844, -0.0151708, 0.154037, 0.352396, 0.923087, -0.333283, -0.860954, 0.384292, -0.028494, 0.0658787, -0.0697092) + +[node name="BoneIndexMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="5"] +transform = Transform3D(0.999165, -0.0336562, 0.0231681, -0.0231985, -0.00051113, 0.999731, -0.0336353, -0.999433, -0.00129147, 0.0100005, 0.0224317, 3.59286e-05) + +[node name="BoneIndexProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="6"] +transform = Transform3D(0.997821, -0.0419385, 0.0509327, -0.0413169, 0.204661, 0.97796, -0.0514381, -0.977934, 0.202483, 0.00729559, 0.0223907, -0.0802861) + +[node name="BoneIndexMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="7"] +transform = Transform3D(0.759851, -0.644453, 0.0854741, 0.0405881, 0.178251, 0.983148, -0.648829, -0.743577, 0.161601, 0.00569705, 0.0301916, -0.117561) + +[node name="BoneIndexDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="8"] +transform = Transform3D(0.356467, -0.927111, 0.115741, 0.109286, 0.164404, 0.98032, -0.927894, -0.336803, 0.159925, -0.0145038, 0.035779, -0.140869) + +[node name="BoneMiddleMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="9"] +transform = Transform3D(0.999918, 0.0127165, 0.00125617, -0.000365489, -0.0698022, 0.997561, 0.0127732, -0.99748, -0.0697919, 0.0100005, 0.00355416, 3.59286e-05) + +[node name="BoneMiddleProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="10"] +transform = Transform3D(0.971345, -0.237654, 0.00293004, -0.0207339, -0.0724503, 0.997156, -0.236766, -0.968644, -0.0753018, 0.0110237, -0.00206236, -0.0802245) + +[node name="BoneMiddleMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="11"] +transform = Transform3D(0.764922, -0.643162, 0.0351718, -0.0290327, 0.0201225, 0.999376, -0.643468, -0.765466, -0.00328059, 0.00032845, -0.00532286, -0.123817) + +[node name="BoneMiddleDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="12"] +transform = Transform3D(0.297115, -0.95453, 0.0243818, -0.0374454, 0.0138673, 0.999202, -0.954107, -0.297791, -0.0316226, -0.0205207, -0.00467055, -0.148631) + +[node name="BoneRingMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="13"] +transform = Transform3D(0.998609, -0.047074, -0.0237409, 0.0169882, -0.138981, 0.990149, -0.0499098, -0.989175, -0.137988, 0.0100005, -0.0130734, 3.59304e-05) + +[node name="BoneRingProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="14"] +transform = Transform3D(0.982964, -0.181854, -0.0266582, -0.0109494, -0.202722, 0.979175, -0.183471, -0.962202, -0.20126, 0.00651963, -0.0233502, -0.0731075) + +[node name="BoneRingMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="15"] +transform = Transform3D(0.772579, -0.634603, -0.0200164, -0.0794844, -0.127948, 0.98859, -0.629924, -0.762173, -0.149291, -0.000778395, -0.0314857, -0.111722) + +[node name="BoneRingDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="16"] +transform = Transform3D(0.381388, -0.924068, -0.025339, -0.114105, -0.0742599, 0.990689, -0.917346, -0.374945, -0.133762, -0.0184188, -0.0350424, -0.132908) + +[node name="BonePinkyMetacarpal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="17"] +transform = Transform3D(0.998969, -0.0165318, -0.0422887, 0.0385953, -0.181426, 0.982647, -0.0239172, -0.983265, -0.180601, 4.58211e-07, -0.0299734, 3.59304e-05) + +[node name="BonePinkyProximal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="18"] +transform = Transform3D(0.969212, -0.239304, -0.0579745, -0.0185535, -0.305761, 0.951928, -0.245527, -0.921544, -0.300787, -0.00108587, -0.0418952, -0.0645756) + +[node name="BonePinkyMiddle" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="19"] +transform = Transform3D(0.699331, -0.713816, -0.0374602, -0.103947, -0.153407, 0.982681, -0.707199, -0.683325, -0.181481, -0.00901247, -0.0520231, -0.0951004) + +[node name="BonePinkyDistal" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="20"] +transform = Transform3D(0.340891, -0.939844, -0.0220291, -0.162162, -0.081867, 0.983362, -0.926011, -0.331647, -0.180315, -0.0218786, -0.0547881, -0.107417) + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D" index="21"] +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 + +[node name="Poke" parent="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_iyttx")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightPhysicsHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_3yedw") + [node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("7")] [node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("10")] @@ -55,6 +309,8 @@ ranged_angle = 10.0 show_laser = 2 laser_length = 1 +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("11_dk12d")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("9")] [node name="BeltSnapZone01" parent="XROrigin3D/PlayerBody" index="0" instance=ExtResource("10_5odnk")] @@ -72,6 +328,8 @@ transform = Transform3D(0.92388, 0, -0.382683, 0, 1, 0, 0.382683, 0, 0.92388, 0. [node name="BeltSnapZone05" parent="XROrigin3D/PlayerBody" index="4" instance=ExtResource("10_5odnk")] transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0.177, 1, -0.177) +[node name="ControlPad" parent="XROrigin3D" index="4" instance=ExtResource("14_xqgdl")] + [node name="HolodeckMap" parent="." index="1" instance=ExtResource("12_8rh1y")] [node name="Teleport" parent="." index="2" instance=ExtResource("5")] @@ -170,4 +428,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.6, 0.929682, -2.26355) [node name="SnapToyYellow" parent="SnapToys" index="3" instance=ExtResource("12")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.8, 0.929682, -2.26355) +[editable path="XROrigin3D/LeftHand/LeftPhysicsHand"] +[editable path="XROrigin3D/LeftHand/LeftPhysicsHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightPhysicsHand"] +[editable path="XROrigin3D/RightHand/RightPhysicsHand/Hand_Nails_low_R"] [editable path="Table1/TeacupStand"] diff --git a/scenes/pointer_demo/pointer_demo.tscn b/scenes/pointer_demo/pointer_demo.tscn index 86881e79..52be305c 100644 --- a/scenes/pointer_demo/pointer_demo.tscn +++ b/scenes/pointer_demo/pointer_demo.tscn @@ -1,20 +1,86 @@ -[gd_scene load_steps=17 format=3 uid="uid://bfw18y0j2blo4"] +[gd_scene load_steps=33 format=3 uid="uid://bfw18y0j2blo4"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="2"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_pbiwr"] [ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="3_j5kt2"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="4"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_6fs7c"] [ext_resource type="PackedScene" uid="uid://cqhw276realc" path="res://addons/godot-xr-tools/functions/function_pointer.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="6_omyut"] [ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="6_rnrhb"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="7"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="8"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="9_qbaa8"] [ext_resource type="PackedScene" uid="uid://ca6c2h3xsflxf" path="res://assets/maps/holodeck_map.tscn" id="10_qlbta"] [ext_resource type="PackedScene" uid="uid://dgdb1texynduw" path="res://addons/godot-xr-tools/objects/virtual_keyboard.tscn" id="11"] [ext_resource type="PackedScene" uid="uid://nnse6wsxsjeo" path="res://scenes/pointer_demo/objects/display.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="12_yae1p"] [ext_resource type="PackedScene" uid="uid://bk34216s7eynw" path="res://scenes/pointer_demo/objects/color_change_cube.tscn" id="15"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_xm78w"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gifwh"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_sjb06"] +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_uwvgp"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2q313"] +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_x3p60"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_xm78w") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_gifwh") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_sjb06") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_uwvgp") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_2q313") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_v4bvk"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_c6gl0"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_m833o"] +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_v53to"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_nt003"] +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_vttd2"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_v4bvk") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_c6gl0") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_m833o") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_v53to") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_nt003") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_87ic1"] shading_mode = 0 albedo_color = Color(0, 0, 0.501961, 1) @@ -29,15 +95,87 @@ script = ExtResource("2_pbiwr") [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("3_j5kt2")] +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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_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) +bone_name = "Index_Tip_L" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_6fs7c")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_x3p60") + [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("7")] strafe = true +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("6_omyut")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("6_rnrhb")] +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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/RightHand/RightHand/Hand_Nails_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_6fs7c")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_vttd2") + [node name="MovementDirect" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("7")] [node name="MovementTurn" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("9")] +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("9_qbaa8")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("8")] [node name="FunctionPointer" parent="XROrigin3D" index="4" instance=ExtResource("5")] @@ -48,6 +186,8 @@ show_target = true target_radius = 0.02 target_material = SubResource("StandardMaterial3D_gdrki") +[node name="ControlPad" parent="XROrigin3D" index="5" instance=ExtResource("12_yae1p")] + [node name="HolodeckMap" parent="." index="1" instance=ExtResource("10_qlbta")] [node name="Teleport" parent="." index="2" instance=ExtResource("2")] @@ -72,3 +212,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2.5, -3) [node name="ColorChangeCube4" parent="." index="8" instance=ExtResource("15")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1.7, -3) + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R"] diff --git a/scenes/poke_demo/poke_demo.tscn b/scenes/poke_demo/poke_demo.tscn index a3623650..1884b4b4 100644 --- a/scenes/poke_demo/poke_demo.tscn +++ b/scenes/poke_demo/poke_demo.tscn @@ -1,86 +1,88 @@ -[gd_scene load_steps=35 format=3 uid="uid://u3tqif81v602"] +[gd_scene load_steps=37 format=3 uid="uid://u3tqif81v602"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="2"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_sgf8o"] [ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="3"] -[ext_resource type="Environment" uid="uid://bacqoq62qs27y" path="res://assets/maps/holodeck/holodeck_env.tres" id="3_k0om0"] [ext_resource type="PackedScene" uid="uid://bft3xyxs31ci3" path="res://addons/godot-xr-tools/functions/function_pose_detector.tscn" id="4_whmmd"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="5"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="6"] -[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="7_2052r"] [ext_resource type="PackedScene" uid="uid://clujaf3u776a3" path="res://addons/godot-xr-tools/objects/viewport_2d_in_3d.tscn" id="8"] [ext_resource type="PackedScene" uid="uid://bv46odvo22fuv" path="res://scenes/poke_demo/objects/canvas.tscn" id="9"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="10_3s3jo"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="11"] [ext_resource type="PackedScene" uid="uid://ca6c2h3xsflxf" path="res://assets/maps/holodeck_map.tscn" id="11_7xda8"] [ext_resource type="PackedScene" uid="uid://bshamb3vt6ocf" path="res://scenes/poke_demo/objects/instructions.tscn" id="11_570m5"] -[ext_resource type="PackedScene" uid="uid://cbcbffvk7xth4" path="res://assets/meshes/table/table.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://bwcpq6cuejbiy" path="res://assets/meshes/table/table.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="12_7jyap"] [ext_resource type="PackedScene" uid="uid://djkjuy7wct10q" path="res://scenes/pickable_demo/objects/grab_cube.tscn" id="13"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="14"] [ext_resource type="PackedScene" uid="uid://dc5t2qgmhb2nf" path="res://addons/godot-xr-tools/objects/hand_pose_area.tscn" id="14_qyy11"] [ext_resource type="Resource" uid="uid://ciw0f7mg4ai0k" path="res://addons/godot-xr-tools/hands/poses/pose_point_left.tres" id="15_08yhv"] [ext_resource type="Resource" uid="uid://bhvrpfo4ecbub" path="res://addons/godot-xr-tools/hands/poses/pose_point_right.tres" id="16_n1x7k"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_o1ekl"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_xl1gi"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_jmyes"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_6gubm"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_68bs5"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_7tsba"] 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_p6lny"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_auv36"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ef2px"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_g6blh"] 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_4weys"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_66tfg"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_o1ekl") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_xl1gi") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_jmyes") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_6gubm") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_68bs5") +nodes/Grip/node = SubResource("AnimationNodeBlend2_7tsba") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_p6lny") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_auv36") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_ef2px") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_g6blh") nodes/Trigger/position = Vector2(-360, 20) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_rm74q"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_aac8g"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_sypye"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_fghgc"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ove3h"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_l0pin"] 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_ggnbs"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_m7ghb"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_wtcst"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_wdvjc"] 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_s5ctd"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_kx4vt"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_rm74q") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_aac8g") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_sypye") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_fghgc") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_ove3h") +nodes/Grip/node = SubResource("AnimationNodeBlend2_l0pin") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_ggnbs") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_m7ghb") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_wtcst") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_wdvjc") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] @@ -89,7 +91,6 @@ size = Vector3(1, 0.5, 0.01) [node name="PokeDemo" instance=ExtResource("1")] script = ExtResource("2_sgf8o") -environment = ExtResource("3_k0om0") [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("3")] @@ -123,13 +124,15 @@ bone_idx = 9 transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] -tree_root = SubResource("AnimationNodeBlendTree_4weys") +tree_root = SubResource("AnimationNodeBlendTree_66tfg") [node name="FunctionPoseDetector" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("4_whmmd")] [node name="MovementDirect" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("11")] strafe = true +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="3" instance=ExtResource("7_2052r")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("2")] [node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature" index="0"] @@ -162,7 +165,7 @@ bone_idx = 9 transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] -tree_root = SubResource("AnimationNodeBlendTree_s5ctd") +tree_root = SubResource("AnimationNodeBlendTree_kx4vt") [node name="FunctionPoseDetector" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("4_whmmd")] @@ -170,8 +173,12 @@ tree_root = SubResource("AnimationNodeBlendTree_s5ctd") [node name="MovementTurn" parent="XROrigin3D/RightHand" index="3" instance=ExtResource("14")] +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("10_3s3jo")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("10")] +[node name="ControlPad" parent="XROrigin3D" index="4" instance=ExtResource("12_7jyap")] + [node name="HolodeckMap" parent="." index="1" instance=ExtResource("11_7xda8")] [node name="Teleport" parent="." index="2" instance=ExtResource("5")] @@ -187,8 +194,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, -1.581) [node name="Viewport2Din3D" parent="PokeCanvas" index="0" instance=ExtResource("8")] screen_size = Vector2(1, 0.5) -viewport_size = Vector2(1000, 500) scene = ExtResource("9") +viewport_size = Vector2(1000, 500) [node name="HandPoseArea" parent="PokeCanvas" index="1" instance=ExtResource("14_qyy11")] left_pose = ExtResource("15_08yhv") diff --git a/scenes/sphere_world_demo/sphere_world_demo.tscn b/scenes/sphere_world_demo/sphere_world_demo.tscn index 87f53027..30f0797e 100644 --- a/scenes/sphere_world_demo/sphere_world_demo.tscn +++ b/scenes/sphere_world_demo/sphere_world_demo.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=29 format=3 uid="uid://b5o25nkvyv8ho"] +[gd_scene load_steps=45 format=3 uid="uid://b5o25nkvyv8ho"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="Material" path="res://assets/wahooney.itch.io/green_grid_triplanar.tres" id="2"] @@ -8,24 +8,90 @@ [ext_resource type="Material" uid="uid://p0q2df2dmy62" path="res://addons/godot-xr-tools/hands/materials/ghost_hand.tres" id="4_3wr22"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://drs4eeq721ojn" path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="6_1i0ij"] [ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="7"] [ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="8"] [ext_resource type="PackedScene" uid="uid://clt88d5d1dje4" path="res://addons/godot-xr-tools/functions/movement_crouch.tscn" id="9"] [ext_resource type="PackedScene" uid="uid://chumpejwiub7f" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn" id="10"] [ext_resource type="PackedScene" uid="uid://c78tjrtiyqna8" path="res://addons/godot-xr-tools/functions/movement_grapple.tscn" id="11"] [ext_resource type="PackedScene" uid="uid://bk6ban0hctyym" path="res://addons/godot-xr-tools/functions/movement_wall_walk.tscn" id="12"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="12_wdnff"] [ext_resource type="PackedScene" uid="uid://bgts3vpmjn6bb" path="res://addons/godot-xr-tools/functions/movement_wind.tscn" id="13"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="16"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="16_k5a7v"] [ext_resource type="PackedScene" uid="uid://cvokcudrffkgc" path="res://addons/godot-xr-tools/functions/movement_glide.tscn" id="17"] [ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="18"] [ext_resource type="Environment" uid="uid://dd1kfsedti62a" path="res://scenes/sphere_world_demo/environments/constellations.tres" id="19"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="20"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="21"] [ext_resource type="PackedScene" uid="uid://dpjfart2qg8k7" path="res://assets/meshes/mound/mound.tscn" id="22"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="22_ri5hh"] [ext_resource type="PackedScene" uid="uid://bdc23valbh8gf" path="res://assets/meshes/ramps/ramps.tscn" id="23"] [ext_resource type="PackedScene" uid="uid://bu7s5v5ygr0aa" path="res://scenes/sphere_world_demo/objects/donut.tscn" id="23_nox6a"] [ext_resource type="PackedScene" uid="uid://cutuj4o2r75tg" path="res://scenes/sphere_world_demo/objects/tower.tscn" id="24"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qcqau"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_51gwd"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_fd23s"] +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_vv358"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_cqvvu"] +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_uwsp2"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_qcqau") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_51gwd") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_fd23s") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_vv358") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_cqvvu") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_h1uox"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_y11tb"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_5traq"] +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_xsit7"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_rawop"] +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_lp4qd"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_h1uox") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_y11tb") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_5traq") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_xsit7") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_rawop") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [sub_resource type="SphereMesh" id="1"] material = ExtResource("2") radius = 50.0 @@ -49,6 +115,43 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 50, 0) [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("4")] hand_material_override = ExtResource("4_3wr22") +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Glove_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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_Glove_low_L" parent="XROrigin3D/LeftHand/LeftHand/Hand_Glove_low_L/Armature/Skeleton3D" index="0"] +material_override = ExtResource("4_3wr22") + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Glove_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) +bone_name = "Index_Tip_L" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_Glove_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("6_1i0ij")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_uwsp2") + [node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("8")] ranged_enable = false @@ -63,9 +166,47 @@ jump_button_action = "ax_button" [node name="MovementCrouch" parent="XROrigin3D/LeftHand" index="5" instance=ExtResource("9")] crouch_button_action = "by_button" +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="6" instance=ExtResource("12_wdnff")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("10")] hand_material_override = ExtResource("4_3wr22") +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_Glove_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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="mesh_Glove_low_R" parent="XROrigin3D/RightHand/RightHand/Hand_Glove_low_R/Armature/Skeleton3D" index="0"] +material_override = ExtResource("4_3wr22") + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightHand/Hand_Glove_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_Glove_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("6_1i0ij")] +layer = 0 +mask = 4194304 + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_lp4qd") + [node name="FunctionPickup" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("8")] ranged_enable = false @@ -79,6 +220,8 @@ jump_button_action = "ax_button" [node name="MovementGrapple" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("11")] grapple_collision_mask = 3 +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="6" instance=ExtResource("16_k5a7v")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("3")] [node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("18")] @@ -89,6 +232,8 @@ grapple_collision_mask = 3 [node name="MovementWallWalk" parent="XROrigin3D" index="7" instance=ExtResource("12")] +[node name="ControlPad" parent="XROrigin3D" index="8" instance=ExtResource("22_ri5hh")] + [node name="Teleport1" parent="." index="2" instance=ExtResource("20")] transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 49.9, 0, 0) scene_base = NodePath("..") @@ -165,3 +310,8 @@ transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, [node name="DirectionalLight" type="DirectionalLight3D" parent="." index="7"] transform = Transform3D(1, 0, 0, 0, 0.258819, 0.965926, 0, -0.965926, 0.258819, 0, 60, 0) light_energy = 0.8 + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_Glove_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_Glove_low_R"] diff --git a/scenes/sprinting_demo/sprinting_demo.tscn b/scenes/sprinting_demo/sprinting_demo.tscn index 0260db27..196ffe5f 100644 --- a/scenes/sprinting_demo/sprinting_demo.tscn +++ b/scenes/sprinting_demo/sprinting_demo.tscn @@ -1,26 +1,92 @@ -[gd_scene load_steps=22 format=3 uid="uid://7lfa2oytnw7o"] +[gd_scene load_steps=38 format=3 uid="uid://7lfa2oytnw7o"] [ext_resource type="PackedScene" uid="uid://c2q5phg8w08o" path="res://addons/godot-xr-tools/functions/movement_jump.tscn" id="1"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_5a8oj"] [ext_resource type="PackedScene" uid="uid://rypqa6qcv0st" path="res://assets/maps/basic_map.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="5_euac3"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="6"] [ext_resource type="PackedScene" uid="uid://b4kad2kuba1yn" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn" id="7"] [ext_resource type="PackedScene" uid="uid://drs4eeq721ojn" path="res://addons/godot-xr-tools/functions/movement_sprint.tscn" id="8"] [ext_resource type="PackedScene" uid="uid://l2n30mpbkdyw" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn" id="9"] [ext_resource type="PackedScene" uid="uid://b4ysuy43poobf" path="res://addons/godot-xr-tools/functions/function_pickup.tscn" id="10"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="10_vwnp8"] [ext_resource type="PackedScene" uid="uid://bl2nuu3qhlb5k" path="res://addons/godot-xr-tools/functions/movement_direct.tscn" id="11"] [ext_resource type="Material" uid="uid://p0q2df2dmy62" path="res://addons/godot-xr-tools/hands/materials/ghost_hand.tres" id="12"] [ext_resource type="PackedScene" uid="uid://bxm1ply47vaan" path="res://addons/godot-xr-tools/functions/movement_climb.tscn" id="12_gkoml"] [ext_resource type="Resource" path="res://scenes/sprinting_demo/player_physics.tres" id="12_ureyg"] [ext_resource type="Material" path="res://assets/wahooney.itch.io/brown_grid_triplanar.tres" id="13"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="13_fes4q"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="14"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="15"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="16_3bcyp"] [ext_resource type="PackedScene" path="res://scenes/sprinting_demo/objects/ramp.tscn" id="17"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="17_k8kqb"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="17_yumhv"] [ext_resource type="PackedScene" path="res://scenes/sprinting_demo/objects/climbing_wall.tscn" id="18"] [ext_resource type="PackedScene" uid="uid://d2bvjxai7dke8" path="res://scenes/sprinting_demo/objects/instructions.tscn" id="19"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_s20ro"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_p2rmm"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_kf0y6"] +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_ihvif"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_ffboq"] +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_5lwdd"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_s20ro") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_p2rmm") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_kf0y6") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_ihvif") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_ffboq") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_omrs8"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_k1dbl"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_xxdp6"] +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_mgsov"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_23at7"] +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_uuokx"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_omrs8") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_k1dbl") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_xxdp6") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_mgsov") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_23at7") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + [sub_resource type="Curve3D" id="1"] bake_interval = 2.0 _data = { @@ -35,6 +101,40 @@ script = ExtResource("2_5a8oj") [node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("7")] hand_material_override = ExtResource("12") +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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_Nails_low_L" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="0"] +material_override = ExtResource("12") + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D" index="1"] + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("5_euac3")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_5lwdd") + [node name="FunctionPickup" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("10")] grab_distance = 0.1 @@ -46,9 +146,47 @@ jump_button_action = "ax_button" [node name="MovementSprint" parent="XROrigin3D/LeftHand" index="4" instance=ExtResource("8")] +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="5" instance=ExtResource("10_vwnp8")] + [node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("9")] hand_material_override = ExtResource("12") +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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="mesh_Hand_Nails_low_R" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D" index="0"] +material_override = ExtResource("12") + +[node name="BoneAttachment3D" type="BoneAttachment3D" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("5_euac3")] +layer = 0 +mask = 4194304 + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_uuokx") + [node name="FunctionPickup" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("10")] grab_distance = 0.1 @@ -59,11 +197,15 @@ grab_distance = 0.1 [node name="MovementJump" parent="XROrigin3D/RightHand" index="4" instance=ExtResource("1")] jump_button_action = "ax_button" +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="5" instance=ExtResource("13_fes4q")] + [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("17_k8kqb")] physics = ExtResource("12_ureyg") [node name="MovementClimb" parent="XROrigin3D" index="4" instance=ExtResource("12_gkoml")] +[node name="ControlPad" parent="XROrigin3D" index="5" instance=ExtResource("17_yumhv")] + [node name="BasicMap" parent="." index="1" instance=ExtResource("4")] [node name="Teleport" parent="." index="2" instance=ExtResource("15")] @@ -122,3 +264,8 @@ transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, [node name="ClimbingWall4" parent="Climbing" index="3" instance=ExtResource("18")] transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, -48) + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_Nails_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_Nails_low_R"] diff --git a/scenes/teleport_demo/teleport_demo.tscn b/scenes/teleport_demo/teleport_demo.tscn index c697cd99..032804b7 100644 --- a/scenes/teleport_demo/teleport_demo.tscn +++ b/scenes/teleport_demo/teleport_demo.tscn @@ -1,28 +1,172 @@ -[gd_scene load_steps=13 format=3 uid="uid://b7gwqyw63kd4x"] +[gd_scene load_steps=30 format=3 uid="uid://b7gwqyw63kd4x"] [ext_resource type="PackedScene" uid="uid://qbmx03iibuuu" path="res://addons/godot-xr-tools/staging/scene_base.tscn" id="1"] [ext_resource type="PackedScene" uid="uid://fiul51tsyoop" path="res://addons/godot-xr-tools/functions/function_teleport.tscn" id="2"] [ext_resource type="Script" path="res://scenes/demo_scene_base.gd" id="2_sq0a2"] [ext_resource type="Texture2D" uid="uid://ckw6nliyayo6a" path="res://scenes/main_menu/return to main menu.png" id="3"] -[ext_resource type="Environment" uid="uid://bacqoq62qs27y" path="res://assets/maps/holodeck/holodeck_env.tres" id="3_qc6yg"] +[ext_resource type="PackedScene" uid="uid://bq86r4yll8po" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn" id="3_f75tv"] [ext_resource type="PackedScene" uid="uid://diyu06cw06syv" path="res://addons/godot-xr-tools/player/player_body.tscn" id="4"] +[ext_resource type="PackedScene" uid="uid://bjcxf427un2wp" path="res://addons/godot-xr-tools/player/poke/poke.tscn" id="4_sv134"] [ext_resource type="PackedScene" uid="uid://b6bk2pj8vbj28" path="res://addons/godot-xr-tools/functions/movement_turn.tscn" id="5"] [ext_resource type="PackedScene" uid="uid://3a6wjr3a13vd" path="res://assets/meshes/teleport/teleport.tscn" id="6"] +[ext_resource type="PackedScene" uid="uid://bwr0eqi231lf0" path="res://assets/meshes/control_pad/control_pad_location_left.tscn" id="6_ccpk6"] +[ext_resource type="PackedScene" uid="uid://xqimcf20s2jp" path="res://addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn" id="7_1ild1"] [ext_resource type="PackedScene" uid="uid://ca6c2h3xsflxf" path="res://assets/maps/holodeck_map.tscn" id="7_nxeuw"] [ext_resource type="PackedScene" uid="uid://bdc23valbh8gf" path="res://assets/meshes/ramps/ramps.tscn" id="8"] [ext_resource type="PackedScene" uid="uid://bt5vh1mtil328" path="res://scenes/teleport_demo/objects/instructions.tscn" id="8_s8lss"] [ext_resource type="PackedScene" uid="uid://dpjfart2qg8k7" path="res://assets/meshes/mound/mound.tscn" id="9"] +[ext_resource type="PackedScene" uid="uid://deyk5frilshws" path="res://assets/meshes/control_pad/control_pad_location_right.tscn" id="9_5ab7n"] +[ext_resource type="PackedScene" uid="uid://ct3p5sgwvkmva" path="res://assets/meshes/control_pad/control_pad.tscn" id="11_xdv53"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7dc8o"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_c6eo5"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_edqgu"] +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_nxx88"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_i632k"] +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_xr8oh"] +graph_offset = Vector2(-536, 11) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_7dc8o") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_c6eo5") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_edqgu") +nodes/Grip/position = Vector2(0, 20) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_nxx88") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_i632k") +nodes/Trigger/position = Vector2(-360, 20) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_3ikr4"] +animation = &"Grip" + +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ljiim"] +animation = &"Grip" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_dy5fh"] +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_hscus"] +animation = &"Grip 5" + +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_f0ml7"] +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_437g0"] +graph_offset = Vector2(-552.664, 107.301) +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_3ikr4") +nodes/ClosedHand1/position = Vector2(-600, 300) +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_ljiim") +nodes/ClosedHand2/position = Vector2(-360, 300) +nodes/Grip/node = SubResource("AnimationNodeBlend2_dy5fh") +nodes/Grip/position = Vector2(0, 40) +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_hscus") +nodes/OpenHand/position = Vector2(-600, 100) +nodes/Trigger/node = SubResource("AnimationNodeBlend2_f0ml7") +nodes/Trigger/position = Vector2(-360, 40) +node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] [node name="TeleportDemo" instance=ExtResource("1")] script = ExtResource("2_sq0a2") -environment = ExtResource("3_qc6yg") -[node name="FunctionTeleport" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("2")] +[node name="LeftHand" parent="XROrigin3D/LeftHand" index="0" instance=ExtResource("3_f75tv")] + +[node name="Skeleton3D" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, -2.56577e-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/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.00022572, -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="MovementTurn" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("5")] +[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) +bone_name = "Index_Tip_L" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/LeftHand/LeftHand/Hand_low_L/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_sv134")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/LeftHand/LeftHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_xr8oh") + +[node name="FunctionTeleport" parent="XROrigin3D/LeftHand" index="1" instance=ExtResource("2")] + +[node name="ControlPadLocationLeft" parent="XROrigin3D/LeftHand" index="2" instance=ExtResource("6_ccpk6")] + +[node name="RightHand" parent="XROrigin3D/RightHand" index="0" instance=ExtResource("7_1ild1")] + +[node name="Skeleton3D" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature" index="0"] +bones/1/rotation = Quaternion(0.323537, 2.56577e-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.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/RightHand/RightHand/Hand_low_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) +bone_name = "Index_Tip_R" +bone_idx = 9 + +[node name="Poke" parent="XROrigin3D/RightHand/RightHand/Hand_low_R/Armature/Skeleton3D/BoneAttachment3D" index="0" instance=ExtResource("4_sv134")] +layer = 0 +mask = 4194304 +push_bodies = false + +[node name="AnimationTree" parent="XROrigin3D/RightHand/RightHand" index="1"] +tree_root = SubResource("AnimationNodeBlendTree_437g0") + +[node name="MovementTurn" parent="XROrigin3D/RightHand" index="1" instance=ExtResource("5")] + +[node name="ControlPadLocationRight" parent="XROrigin3D/RightHand" index="2" instance=ExtResource("9_5ab7n")] [node name="PlayerBody" parent="XROrigin3D" index="3" instance=ExtResource("4")] +[node name="ControlPad" parent="XROrigin3D" index="4" instance=ExtResource("11_xdv53")] + [node name="HolodeckMap" parent="." index="1" instance=ExtResource("7_nxeuw")] [node name="MainMenuTeleport" parent="." index="2" instance=ExtResource("6")] @@ -38,3 +182,8 @@ transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 6, 0, [node name="Mound" parent="." index="5" instance=ExtResource("9")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0, 0) + +[editable path="XROrigin3D/LeftHand/LeftHand"] +[editable path="XROrigin3D/LeftHand/LeftHand/Hand_low_L"] +[editable path="XROrigin3D/RightHand/RightHand"] +[editable path="XROrigin3D/RightHand/RightHand/Hand_low_R"]