Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/publish-demo-on-push.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ on:
# Environment variables
env:
# Configure Godot version
GODOT_VERSION: 4.3.0
GODOT_VERSION: 4.6.1

# OpenXR Vendors version
OPENXR_VENDORS_VERSION: 3.1.1-stable
OPENXR_VENDORS_VERSION: 4.3.0-stable

# Butler API Key (comment to disable)
BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }}
Expand Down
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ Official releases are tagged and can be found [here](https://github.com/GodotVR/
The following branches are in active development:
| Branch | Description | Godot version |
|----------|-------------------------------|-----------------|
| main | Current development branch | Godot 4.2+ |
| main | Current development branch | Godot 4.6+ |
| 4.2 | Godot 4.2 development branch | Godot 4.2-4.5 |
| 4.1 | Godot 4.1 development branch | Godot 4.1 |
| 3.x | Godot 3.x development branch | Godot 3.5+ |

Expand All @@ -26,6 +27,10 @@ This project uses the following assets:
- [Godot XR Tools](https://godotengine.org/asset-library/asset/1515)
- [OpenXR Vendors](https://github.com/GodotVR/godot_openxr_vendors)

> [!NOTE]
> OpenXR Vendors is not included in the repo but will be downloaded by CI scripts.
> When cloning this repository, manually download the version correct for the version of
> Godot you are using.

# Getting Started

Expand Down
5 changes: 5 additions & 0 deletions VERSIONS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# 4.5.0
- Upgrade Godot XR Tools to 4.5.1
- Upgrade to using Godot 4.6
- Update CI accordingly

# 4.4.0
- Upgrade Godot XR Tools to 4.4.0
- Add CI publish scripts
Expand Down
31 changes: 24 additions & 7 deletions addons/godot-xr-tools/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,35 @@ The main author of this project is [Bastiaan Olij](https://github.com/BastiaanOl
https://github.com/GodotVR/godot-xr-tools

Other people who have helped out by submitting fixes, enhancements, etc are:
- [Florian Jung](https://github.com/Windfisch)
- [RMKD](https://github.com/RMKD)
- [Alessandro Schillaci](https://github.com/silverslade)
- [jtank4](https://github.com/jtank4)
- [Malcolm Nixon](https://github.com/malcolmnixon)
- [Sam Sarette](https://github.com/lunarcloud)
- [Henodude](https://github.com/Henodude)
- [Miodrag Sejic](https://github.com/DigitalN8m4r3)
- [Andy Maloney](https://github.com/asmaloney)
- [Carlos Padial](https://github.com/surreal6)
- [Cube Whidden](https://github.com/septuagint)
- [Daniel Espinosa](https://github.com/esodan)
- [Daniel Kinsman](https://github.com/DanielKinsman)
- [Dave Hakim](https://github.com/davehakim)
- [David Snopek](https://github.com/dsnopek)
- [Florian Jung](https://github.com/Windfisch)
- [Gaël Fenet-Garde](https://github.com/GaelFG-Anderon)
- [Gavin John](https://github.com/Pandapip1)
- [Henodude](https://github.com/Henodude)
- [Ian Young](https://github.com/duffrecords)
- [Jamie-Pate](https://github.com/jamie-pate)
- [Jason Morgado](https://github.com/jasonmorgado)
- [jtank4](https://github.com/jtank4)
- [Julian Todd](https://github.com/goatchurchprime)
- [Kai Tödter](https://github.com/toedter)
- [Malcolm Nixon](https://github.com/malcolmnixon)
- [Miodrag Sejic](https://github.com/DigitalN8m4r3)
- [NetroScript](https://github.com/NetroScript)
- [Pietru2004](https://github.com/pietru2004)
- [Rahul Ghosh](https://github.com/SYBIOTE)
- [RMKD](https://github.com/RMKD)
- [Sam Sarette](https://github.com/lunarcloud)
- [Squidt](https://github.com/squidt)
- [Suriya Palaniswami](https://github.com/Suriya-Palaniswami)
- [Tanner Probst](https://github.com/Ritter7124)
- [Teddybear08](https://github.com/teddybear082)
- [Tomaaron](https://github.com/tomaaron)

Want to be on this list? We would love your help.
19 changes: 19 additions & 0 deletions addons/godot-xr-tools/VERSIONS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
# 4.5.0
- Minimum Godot version changed to 4.4
- Added UIDs for all classes
- Improve material handling in Viewport2Din3D
- Improve performance by avoiding force_update_transform on grab driver
- Don't trigger haptics when primary interface is null
- Fix 'create_snap' desync
- Fix grab with scaled pickables by swapping inverse for affine_inverse
- Fix "UP" direction in player movement
- Gracefully handle freed objects with collision exceptions
- Added support for using grip or palm pose instead of aim pose
- Various bits of code cleanup
- Improved player body collisions so players can move over tables
- Fix: Stash sound should not play on scene load (minor breaking)
- Fixed node process mode issue for XRToolsInteractableAreaButton
- Renamed controler to controller in various classes (minor breaking)
- Demo now has an optional spectator view for PCVR
- Fixed issue with setting the ranged collision mask

# 4.4.0
- Minimum Godot version changed to 4.2
- Add pickable action_released signal
Expand Down
4 changes: 2 additions & 2 deletions addons/godot-xr-tools/audio/area_audio.gd
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ extends AudioStreamPlayer3D


# Add support for is_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsAreaAudio"
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsAreaAudio"


# Called when the node enters the scene tree for the first time.
Expand Down
1 change: 1 addition & 0 deletions addons/godot-xr-tools/audio/area_audio.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://bmqrm3opvrbgq
2 changes: 1 addition & 1 deletion addons/godot-xr-tools/audio/area_audio.tscn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://duqehif60vcjg"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/audio/area_audio.gd" id="1_q1jr0"]
[ext_resource type="Script" uid="uid://bmqrm3opvrbgq" path="res://addons/godot-xr-tools/audio/area_audio.gd" id="1_q1jr0"]

[node name="AreaAudio" type="AudioStreamPlayer3D"]
unit_size = 3.0
Expand Down
1 change: 1 addition & 0 deletions addons/godot-xr-tools/audio/area_audio_type.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://bg0vquffh1cr4
4 changes: 2 additions & 2 deletions addons/godot-xr-tools/audio/pickable_audio.gd
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ extends AudioStreamPlayer3D


# Add support for is_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsPickableAudio"
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsPickableAudio"


# Called when the node enters the scene tree for the first time.
Expand Down
1 change: 1 addition & 0 deletions addons/godot-xr-tools/audio/pickable_audio.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://cl6ayr6145cwi
2 changes: 1 addition & 1 deletion addons/godot-xr-tools/audio/pickable_audio.tscn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bikkxsbo8x7sd"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/audio/pickable_audio.gd" id="1_cfg1k"]
[ext_resource type="Script" uid="uid://cl6ayr6145cwi" path="res://addons/godot-xr-tools/audio/pickable_audio.gd" id="1_cfg1k"]

[node name="PickableAudio" type="AudioStreamPlayer3D"]
unit_size = 3.0
Expand Down
1 change: 1 addition & 0 deletions addons/godot-xr-tools/audio/pickable_audio_type.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://dcdtk842mf1h5
4 changes: 2 additions & 2 deletions addons/godot-xr-tools/audio/surface_audio.gd
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ extends Node


# Add support for is_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsSurfaceAudio"
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsSurfaceAudio"


# This method checks for configuration issues.
Expand Down
1 change: 1 addition & 0 deletions addons/godot-xr-tools/audio/surface_audio.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://mc4dmfy38nqa
2 changes: 1 addition & 1 deletion addons/godot-xr-tools/audio/surface_audio.tscn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://c8jtmtuihfujs"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/audio/surface_audio.gd" id="1"]
[ext_resource type="Script" uid="uid://mc4dmfy38nqa" path="res://addons/godot-xr-tools/audio/surface_audio.gd" id="1"]

[node name="SurfaceAudio" type="Node"]
script = ExtResource("1")
1 change: 1 addition & 0 deletions addons/godot-xr-tools/audio/surface_audio_type.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://bsk5funnj0084
6 changes: 0 additions & 6 deletions addons/godot-xr-tools/desktop-support/controler_hider.tscn

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
@tool
@icon("res://addons/godot-xr-tools/editor/icons/function.svg")
class_name XRToolsDesktopControlerHider
class_name XRToolsDesktopControllerHider
extends Node

## XR Tools Controler Hider
## XR Tools Controller Hider
##
## This script hides controler if XR is not active.
## This script hides controller if XR is not active.

var _pointer_disabler := false
var _last_xr_active := true
Expand All @@ -26,8 +26,8 @@ func _ready() -> void:
_pointer_disabler = true

# Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsDesktopControlerHider"
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsDesktopControllerHider"

func _process(_delta: float) -> void:
if Engine.is_editor_hint() or !is_inside_tree():
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://hyiqt6os3ud6
6 changes: 6 additions & 0 deletions addons/godot-xr-tools/desktop-support/controller_hider.tscn
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://chb848dtavews"]

[ext_resource type="Script" uid="uid://hyiqt6os3ud6" path="res://addons/godot-xr-tools/desktop-support/controller_hider.gd" id="1_6xusf"]

[node name="ControllerHider" type="Node"]
script = ExtResource("1_6xusf")
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,8 @@ var _world_scale : float = 1.0
"XRToolsStaging"),"StartXR","Node")

## Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsDesktopFunctionPointer"
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsDesktopFunctionPointer"


# Called when the node enters the scene tree for the first time.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://dycttwespa005
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[gd_scene load_steps=6 format=3 uid="uid://42xbeno6pt3y"]

[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/pointer.tres" id="1"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/desktop-support/function_desktop_pointer.gd" id="1_fkfo7"]
[ext_resource type="Script" uid="uid://dycttwespa005" path="res://addons/godot-xr-tools/desktop-support/function_desktop_pointer.gd" id="1_fkfo7"]

[sub_resource type="BoxMesh" id="BoxMesh_ctrty"]
resource_local_to_scene = true
Expand Down
5 changes: 2 additions & 3 deletions addons/godot-xr-tools/desktop-support/mouse_capture.gd
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ extends XRToolsMovementProvider


# Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsDesktopMouseCapture" or super(name)
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsDesktopMouseCapture" or super(xr_name)


# Perform jump movement
Expand All @@ -48,4 +48,3 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled:
elif (!xr_start_node.is_xr_active() and capture):
Input.mouse_mode=Input.MOUSE_MODE_CAPTURED
return

1 change: 1 addition & 0 deletions addons/godot-xr-tools/desktop-support/mouse_capture.gd.uid
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://71ls6bjad8tp
4 changes: 2 additions & 2 deletions addons/godot-xr-tools/desktop-support/mouse_capture.tscn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://bkse5rxsx5tb3"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/desktop-support/mouse_capture.gd" id="1_po4v8"]
[ext_resource type="Script" uid="uid://71ls6bjad8tp" path="res://addons/godot-xr-tools/desktop-support/mouse_capture.gd" id="1_po4v8"]

[node name="MouseCapture" type="Node" groups=["movement_providers"]]
[node name="MouseCapture" type="Node3D" groups=["movement_providers"]]
script = ExtResource("1_po4v8")
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ var _crouch_button_down : bool = false


# Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsMovementCrouch" or super(name)
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsMovementCrouch" or super(xr_name)


# Perform jump movement
Expand Down Expand Up @@ -81,4 +81,3 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled:
player_body.override_player_height(self, crouch_height)
else:
player_body.override_player_height(self)

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://onavg33r434i
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://d2iqcc25yvk61"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_crouch.gd" id="1_4rbnc"]
[ext_resource type="Script" uid="uid://onavg33r434i" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_crouch.gd" id="1_4rbnc"]

[node name="MovementDesktopCrouch" type="Node" groups=["movement_providers"]]
[node name="MovementDesktopCrouch" type="Node3D" groups=["movement_providers"]]
script = ExtResource("1_4rbnc")
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ extends XRToolsMovementProvider


# Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsDesktopMovementDirect" or super(name)
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsDesktopMovementDirect" or super(xr_name)


# Perform jump movement
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://ciqexxqb7lxs4
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://6uusxts6n6gm"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_direct.gd" id="1_e8v0q"]
[ext_resource type="Script" uid="uid://ciqexxqb7lxs4" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_direct.gd" id="1_e8v0q"]

[node name="MovementDesktopDirect" type="Node" groups=["movement_providers"]]
[node name="MovementDesktopDirect" type="Node3D" groups=["movement_providers"]]
script = ExtResource("1_e8v0q")
strafe = true
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ var _flight_button : bool = false


# Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsDesktopMovementFlight" or super(name)
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsDesktopMovementFlight" or super(xr_name)


func _ready():
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://te6vlh1cbi7o
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://cfa5gsol863rv"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_flight.gd" id="1_exmlf"]
[ext_resource type="Script" uid="uid://te6vlh1cbi7o" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_flight.gd" id="1_exmlf"]

[node name="MovementDesktopFlight" type="Node" groups=["movement_providers"]]
[node name="MovementDesktopFlight" type="Node3D" groups=["movement_providers"]]
script = ExtResource("1_exmlf")
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ extends XRToolsMovementProvider


# Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsDesktopMovementJump" or super(name)
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsDesktopMovementJump" or super(xr_name)


# Perform jump movement
Expand All @@ -41,4 +41,3 @@ func physics_movement(_delta: float, player_body: XRToolsPlayerBody, _disabled:
# Request jump if the button is pressed
if Input.is_action_pressed(jump_button_action):
player_body.request_jump()

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://b0l4n05yrf11b
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dluln6777mmh3"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_jump.gd" id="1_tccpc"]
[ext_resource type="Script" uid="uid://b0l4n05yrf11b" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_jump.gd" id="1_tccpc"]

[node name="MovementDesktopJump" type="Node" groups=["movement_providers"]]
[node name="MovementDesktopJump" type="Node3D" groups=["movement_providers"]]
script = ExtResource("1_tccpc")
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ var _direct_original_max_speed : float = 0.0


# Add support for is_xr_class on XRTools classes
func is_xr_class(name : String) -> bool:
return name == "XRToolsDesktopMovementSprint" or super(name)
func is_xr_class(xr_name: String) -> bool:
return xr_name == "XRToolsDesktopMovementSprint" or super(xr_name)


func _ready():
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
uid://dskqlyywoylkm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://dgm5op1hausw5"]

[ext_resource type="Script" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_sprint.gd" id="1_md0f7"]
[ext_resource type="Script" uid="uid://dskqlyywoylkm" path="res://addons/godot-xr-tools/desktop-support/movement_desktop_sprint.gd" id="1_md0f7"]

[node name="MovementDesktopSprint" type="Node" groups=["movement_providers"]]
[node name="MovementDesktopSprint" type="Node3D" groups=["movement_providers"]]
script = ExtResource("1_md0f7")
Loading
Loading