This is an in-development toolkit for basic VR interactions using the Godot game engine.
The main target of this toolkit is native Oculus Quest development but it also supports the Godot OpenXR plugin, WebXR export and DesktopVR (via the OpenXR, OpenVR and Oculus Godot modules). Most of the implemented features are not platform specific.
You can try a Web-Exported version of the tookit at https://neospark314.itch.io/godot-oculus-quest-toolkit
The current version of the toolkit in this repository was build/tested with Godot 3.4.5.
If you have questions or run into problems please open an issue here or contact me on discord.
There is a discord server specific for users of the toolkit. Feel free to join: https://discord.gg/JtTpFk9852
For general discussions about VR in godot you can also join the official Godot Discord #XR channel.
A list of links to projects and prototypes that use the Oculus Quest Toolkit that I'm aware of. If you are using the toolkit and would like to be here you can ping me or open an issue with a link to your project and I will add it.
The toolkit contains several demo scenes in the Demo Scene Folder that can be inspected to see how the individual features work.
In addition there is also a more complete example in the Demo Games Folder. It is a beat saber clone called BeepSaber; you can watch a video here. This demo game now also exists as a fork (with some additions/improvements in its own repository at https://github.com/NeoSpark314/BeepSaber)
- Touch controller button handling and controller models
- 2D UI canvas with controller interaction and Virtual Keyboard
- Joystick locomotion and rotation (smooth and step)
- Rigid body grab
- Basic Player Collision
- Falling and Climbing logic
- Oculus Mixed Reality Capture Integration
- Hand Tracking support with included hand models and basic gesture detection
- VR Simulator and VR Recorder (for easier testing on desktop)
- Several utilities to accelerate prototyping and debugging (Log, Labels, ...)
- Jog in Place detection
The documentation is in the project wiki. It includes a more detailed getting started section and an overview of the included features.
As this is a very early version there are some known issues that are not yet resolved. If you know a solution feel free to open a github issue to further discuss it or catch me on the official Godot Discord: @NeoSpark314.
- No shader precompilation/caching. This means there will be a very noticeable hiccup when new objects/materials are rendered for the first time (like showing the UI pointer or when transitioning scenes). This will be essential to resolve for actual applications!
- No mip-mapping for UI canvas (thus text looks very bad at some distance)
There are a lot of potential extensions and missing features. Some of the things I think I will tackle next are on this list; but if you have some other suggestions feel free to open an issue to discuss it.
- Jumping of ledges while climbing
- Grabbed objects
- handing over objects
- interaction trigger
- Improvements to the labeling system
- Physics interactors (levers, rotators, buttons, maybe doors)
- The Medieval Town scene was created by fangzhangmnm: Sketchfab Page; released under [CC Attribution] (https://creativecommons.org/licenses/by/4.0/). The lightmap applied to the scene was baked in Blender.
- The Music Track used in the BeepSaber demo game is Time Lapse by TheFatRat (https://www.youtube.com/watch?v=3fxq7kqyWO8)
The Godot Oculus Quest Toolkit and the demo scenes in this repository are licensed under the MIT License. The Oculus Touch controller 3d models the hand model and the Oculus Mobile SDK contained in this repository are copyright Oculus, see http://oculus.com for license information. The Roboto font used is licensed under an Apache License and available at https://github.com/google/roboto.