Giter Site home page Giter Site logo

vrmada / ultimatexr-unity Goto Github PK

View Code? Open in Web Editor NEW
443.0 20.0 58.0 717.39 MB

UltimateXR is a free, open source framework that facilitates the creation of VR applications.

Home Page: https://www.ultimatexr.io

License: MIT License

ShaderLab 1.05% C# 98.95%
framework open-source unity unity3d virtual-reality vr

ultimatexr-unity's Introduction

UltimateXR

Github

UltimateXR is a professional-grade, free, open-source framework and toolkit for Unity. UltimateXR's goal is to simplify the development of virtual reality applications; from simulators to videogames and from simple prototypes to full AAA-scale projects.

Main features:

  • Free and open-source under the MIT license.
  • Cross-device compatibility. Support for all major headsets.
  • State-of-the-art grab and manipulation mechanics.
  • Integrated hand pose editor.
  • Customizable full-body avatar representation with Inverse Kinematics.
  • Library of gender- and race-agnostic hands with special care on inclusion.
  • Support for multiple locomotion mechanics.
  • Advanced UI components including interaction and tweening.
  • Scalable architecture.
  • Clean code; fully documented using standard XML format.
  • Lots of tools, methods and extensions to make development easier.

Soon! (v1.0.0)

  • Full multiplayer support with many networking integrations.
  • Serialization.
  • New improved manipulation mechanics.

Installation

We provide the following ways to install UltimateXR:

Method 1: Using Package Manager for git users

  1. If UltimateXR was previously installed in /Assets using a .unitypackage, remove the /Assets/UltimateXR folder first

  2. Open the Package Manager using the Window menu -> Package Manager

OpenPackageManager

  1. Inside the Package Manager, click on the "+" button on the top left and select "Add package from git URL..."

AddFromGitURL

  1. Input the following URL: https://github.com/VRMADA/ultimatexr-unity.git and click Add.
  2. When the installation has completed, make sure to import the examples if it's your first time using UltimateXR.

Examples

Method 2: Downloading and installing the .unitypackage

  1. Delete the previous version from /Assets/UltimateXR first. Important! Not removing the folder before updating may result in incorrect files remaining after installation.
  2. Download the latest package (.unitypackage file) found in https://github.com/VRMADA/ultimatexr-unity/releases
  3. Double click the file to import the package to your project.

Method 3: Through the official Unity Asset Store

  1. Delete the previous version from /Assets/UltimateXR first. Important! Not removing the folder before updating may result in incorrect files remaining after installation.
  2. Go to the Asset Store and click Open in Unity to proceed with the installation.
  3. Remember to rate and review our asset if you liked it!

Learn UltimateXR

Installation and setup

Supported platforms

Main components

UltimateXR API

Unlock the full potential using the API.

Community

Join our community and get in touch with other developers.

ultimatexr-unity's People

Contributors

austin-io avatar entromp avatar foxytocin avatar klingone avatar nvandessel avatar smitdylan2001 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ultimatexr-unity's Issues

Quest 3 controllers not tracking in Unity3D 2022

I'm trying to work with a project built in Unity 2021 and brought into 2022 which is using UltimateXR framework version v0.9.6.
When it was in 2021 I had no difficulty using it with the Quest 2.
When I moved it into 2022 and am trying to use it with the Quest 3 I cannot get the controllers to track.
The controllers are recognized as input devices because the button mappings for the simulation still do what they are supposed to do, but the hands do not move.
I have Quest 3 selected under target devices in XR Management settings but no luck.
Will there be an update for UltimateXR Framework for Quest 3 compatibility? Or is there some other setting I am missing?
Thanks in advance.

Scaling Avatar

How to Scale Ultimate XR avatar ?
I'm having problem with scaling ,I tried changing scale to 2 and also changed "Eye Base height" and "eye forward offset". but nothing worked. Please guide us in scaling UXR Avatar.

Got it building on Quest in URP, but had to switch from gamma to linear (quest supposedly only can handle linear on openxr)...so it's too dark. Recommended solution?

Got it building on Quest in URP, but had to switch from gamma to linear (quest supposedly only can handle linear on openxr)...so it's too dark. Recommended solution?

Also, is there something in scripts overriding quality settings? (anti-aliasing) I want to add some anti-aliasing, but it seems what I was setting wasn't showing in the build.

[0.8.2][Feature Request] Support "Disabled Domain Reloading" to allow for quickly entering Play Mode

Background info

By default, entering Play Mode will reload all assembly domains, which takes time depending on the project. Unity provides editor settings to disable domain reloading, which will reduce the time to enter Play Mode allowing for rapid iteration. Code must be written to properly support this. When domain reloading is disabled, static variables will keep their values after exiting Play Mode.

Problem

UltimateXR does not currently support disabling Domain Reloading. Entering Play Mode after the first time does not properly initialize any singleton managers. From my quick test, it appears that one issue is due to the use of is null on Unity Objects.

Destroying any type that extends UnityEngine.Object will treat this object as null for any UnityEngine.Object comparisons methods. The problem is that the object itself will still exist. Casting it to System.object will give different results, saying the object is not null.

Potential Solutions

Option 1

Changing usage of is null to == null in UxrSingleton.cs and UxrAbstractSingleton.cs solved the issue for me. Although, I am not familiar enough with the codebase to know if these two files are the only ones that need the change nor do I know the implications of how the rest of the code will handle this small difference.

Option 2

UxrAbstractSingleton appears to handle releasing the singleton when the object is destroyed. From my test in editor using the provided example scene, no singleton instances are ever set to null. Verifying the Editor Exit Play Mode case properly sets singletons to null may also fix this without changing any null comparisons.

Implement hand tracking for Quest 3

Hi,

I am unable to find a documentation on how to implement hand tracking with oculus sdk for quest 3. I see this, but not sure how do I implement this. There are no sample prefabs as well for hand tracking. Or am I missing something. Any help would be appreciated.

Problem using Quest 2 with SteamVR via virtual desktop

Hi,

I'm having an issue getting the Full Scene working with my setup where the hands are tracking and I can see finger movements when pressing buttons but there is no teleporting. I'm using the Quest 2 with SteamVR wirelessly via virtual desktop.
image

PICO Unity Integration broken

The Pico SDK has worked fine for me on their v2.0.7 version, however, the controllers no longer work when using their latest v2.1.1 update. The headset itself is being tracked as normal however the controllers are not being tracked or registering button clicks.

This was tested in a new 2022.1.18f1 unity project with URP and only Ultimate XR v0.8.4 & PICO Unity Integration SDK v211 installed.

Unity Ver: 2022.1.18f1 & 2022.1.17f1
Render pipeline: URP
Ultimate XR: v0.8.4
PICO Unity Integration SDK: v2.1.1

image

It is shown as not installed however this also happened in Pico SDK v2.0.7 but it was still working back then.

There is already a "hand library" of various hand models or is it only the 2 (small and big...yes, I did look)?

First I want to say "THANKS!!!!" for publishing a nice free and open source XR interaction framework!!! The styling is much more similar to things I make than other mobile VR frameworks I looked at before.

There is already a "hand library" of various hand models or is it only the 2 (small and big...yes, I did look)? Also, there is a tutorial on making Avatars using that IK style rig? (preferably a tutorial using mixamo for rigging somehow)

Thanks in advance!

Pico 4e - Inputs stop working after pressing home button

Hello, I'm experiecing an issue with an app built on Pico 4e. When I press the home button on the right controller to show the OS menu and I come back to the app, inputs do not work anymore. The same app built on Meta Quest 2 doesn't have this problem.

If I rotate the head, the view updates with no problems and even the controllers are tracked correctly as I can see the hands moving properly. But, since I can't press any button, I'm forced to restart the app.

I'm on Windows using Unity 2021.3.10f1, with UltimateXR 0.9.6, Pico Unity Integration SDK 2.2.0 and the latest version of Pico OS installed.

By the way, congratulations for this SDK. It simply works, it's really easy to use and it's well documented.

Hitquad wrong when using controller models

Hi,

I noticed that the hitquad gets rendered at the wrong location when using controller models with a custom forward transform.
This happens because the forward transform used to calculate the hitquad never gets updated when a controller is activated

I fixed it like this in my fork but since I changed some other things in the LaserPointer I did not want to open a pullrequest.
And maybe there also is a cleaner way to implement it which does not include checking the parent transform all the time
KlingOne@fb3947c

Add Support for XR Interaction Toolkit

Currently it doesn't seems like UltimateXR Supports Unity's XR Interaction Toolkit which is something I would very much like to have while using the SDK.

It would be great if support for XR Interaction Toolkit could be added to the sdk which would make the developer experience much better.

Quest Controller Input does not function in Unity Editor

I have integrated both the UltimateXR Framework and Oculus SDK via the SDK Manager within Unity (followed all documentation on UltimateXR site)

My current platform is set to Android and I can successfully build and run to the device, and can see controller input working just fine.

However, when running through editor via the Quest Link, the controller input does not seem to work.
The Avatar hands do not respond and just float in space.

I don't understand why input works in just the build, but not in editor.

Controllers not working when trying to target SteamVR & Oculus for different platforms

This could just be user error on my part.

For my project I'm attempting to target Steam VR for desktop, and Oculus for Android (Quest 1/2) but it seems that input fails to register when targeting OpenVR Loader for PC in XR Plug-in Management.

I started by testing Oculus in desktop mode, which worked. After that I then followed the SteamVR Plugin steps in the documentation but when playing with OpenVR Loader, the controller's don't work at all. No input tracking and no button presses.
image

If I then switch back to Oculus in XR Plug-in Management, everything works again.

Is there anything I can try to fix this? Or is there a limit to how many VR SDK's I can target at once?

Script error when using HDRP

Scripts/Rendering/FX/UxrMagnifyingGlassUrp.cs

Your last update to this script to avoid hard URP didn't seem to account for this line.

line #268
UniversalRenderPipeline.RenderSingleCamera(context, refractionCamera);

This will create a compile error when using HDRP stopping play mode even if not being used in my Scene. This seems to happen sometimes and sometimes not in projects not using it, At least for me.

Custom Avatar Hands Twitchy

Hi All

I've noticed that when I use a custom avatar (my own rig and model from Blender) the hand movements seem very "sensitive" almost overly twitchy.

I jump into your sample scene and your demo character (robot) hands seem to move slower and with less sensitivity.
To try troubleshoot I have actually made sure all the Uxr Avatar settings are the same (outside of bone mappings) and for some reason cannot get rid of the sensitivity on my own avatar.

Is this possibly something to do with the IK for hands/arms? Is there a movement senstivity setting anywhere I might be missing as your sample works great and mine... pretty bad.

NOTE: This is on a Quest 2

Some warnings when import

I started to try UltimateXR now and found some import warnings.
They include decoding errors, obsolete, and so on.

Just in case, I share them below:

Assets\UltimateXR\Scripts\Avatar\UxrAvatar.cs(1275,22): warning CS0114: 'UxrAvatar.Reset()' hides inherited member 'UxrComponent.Reset()'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword.

Assets\UltimateXR\Scripts\Devices\Integrations\UxrUnityXRControllerInput.cs(809,56): warning CS0618: 'CommonUsages.thumbrest' is obsolete: 'CommonUsages.thumbrest is Oculus only, and is being moved to their package. Please use OculusUsages.thumbrest. These will still function until removed.'

Assets\UltimateXR\Scripts\Devices\Integrations\UxrUnityXRControllerInput.cs(816,56): warning CS0618: 'CommonUsages.thumbTouch' is obsolete: 'CommonUsages.thumbTouch is Oculus only, and is being moved to their package.  Please use OculusUsages.thumbTouch. These will still function until removed.'

Assets\UltimateXR\Editor\Avatar\UxrAvatarEditor.cs(390,17): warning CS0618: 'EditorGUILayout.ObjectField(GUIContent, Object, Type, params GUILayoutOption[])' is obsolete: 'Check the docs for the usage of the new parameter 'allowSceneObjects'.'

Warnings during import of AudioClip Assets/UltimateXR/Examples/FullScene/Audio/ShotgunPump02.mp3
FSBTool WARNING: This source file was truncated.  Length reported 110592 bytes, length decoded = 95232 bytes.

Warnings during import of AudioClip Assets/UltimateXR/Examples/FullScene/Audio/ShotgunPump01.mp3
FSBTool WARNING: This source file was truncated.  Length reported 46080 bytes, length decoded = 40448 bytes.

Oculus Quest 2 controllers not showing up

Hi,
I tried in both editor and on Oculus Quest 2 device run the InputVR scene.
In the editor I can't do anything and it looks like this:
image
On Oculus device I could see only virtual hand but without controller. And when I clicked grip button animation of the hand was fired up, but that's it.
My config:
Unity: 2021.3.4f1
Oculus: 3.0.2
Settings:
XR Plug-in Management:
Desktop:
Initialize XR on Startup: True
Oculus: True
Open XR: False
Mock HMD Loader: True
Android:
Initialize XR on Startup: True
Oculus: True

Please let me know how can I actually use the virtual controllers in the editor and on Oculus Quest 2 device? I am not sure if this is some kind of bug or maybe I missed something in configuration part?

Biped mesh's shoulder are flipped (armpit is rotated to shoulder side) on a biped mapped with UXR Avatar. Recommended solutions?

Got most things functioning properly with UXR Avatar (although planning to look into how to animate legs with smooth joystick locomotion and also when stepping like in FinalIK).

However, sadly the biped mesh that was rigged with mixamo and mapped with UXR Avatar (I inspected it thoroughly and all the joint assignments look correct) has the mesh's shoulders flipped on play. So basically the armpits are rotated to where the shoulders should be. Any recommendation on how to solve that?

Thanks in advance!

PS: Seems it could maybe be a gimbal lock issue.

Linux support?

Hello, I don't know much about VR development, but I wanted to ask (since Unity editor works under Linux), does this framework support developing a game on Linux OS?

BRP Avatar Prefabs reference Additional Camera Data component

The avatar prefabs for the BRP have a reference to the "Additional Camera Data" component on the camera. This component is only available when using URP and should be removed from any BRP prefabs.
This currently results in a missing script component when not using URP and thus breaks the prefab variant creation of avatars.

SteamVR with CloudXR to HTC Focus 3

When using CloudXR to stream a scene, SteamVR reports the controllers as Oculus Rift S, however UltimateXR SteamVRControllerInput shows the controller model connected as Oculus Rift S and then says Device not recognized as input. Is there any way to make this configuration work?

help url's in components

Could add helpurls to components
image

then can click (?) button to directly access ultimatexr docs
image

Hand.shader compiler error in URP

Steps to reproduce:
Create a new URP Template project from Unity Hub using Unity 2021.3.2f1.
Import in the 'UltimateXR_0.8.1' Unity package file downloaded from website.
Switch the editor's build platform to "Android".
Install XR Plugin Management and set plugin provider to "Oculus" for both Android and desktop.
Set Oculus render settings to Single Pass Instanced/Multiview.
Build and Run to Quest 2 headset.
Both "Build", install with ADB tool and "Build And Run" options result in compiler errors.

Compiler error with the following message: Shader error in 'UltimateXR/Hands/Hand': invalid subscript 'sh' at line 7003 (on gles3)

Unity 2021.3.2f1 and URP 12.1.6

Capture

Shadergraph Inspector window for Hand.shadergraph:

Capture

The compatibility with mixamo rigs could be better. Some focus on enhancing that is recommendable.

Thanks again for posting that framework! Better compatibility for mixamo rigs is recommendable, as that seems to be the most popular auto-rigger for rigging Unity bipeds right now. Basically found that it doesn't rig properly with the "Automatic" option in UXR, although did get a usable starting point mapping with the other mapping option ("Try to" option or similar) in UXR.

In the interim, any tips for making a smoother apply of UXR to a biped rigged with mixamo? Thanks in advance!

PS: Been pondering if maybe making hand models a separate rig from a Unity avatar's body could be better, because those mesh issues when doing the wrist rotations were bleh. Recommended to basically use the rigged UXR hand models with a biped model that is rigged and modeled up to wrist? Is that how the Cyber character was done basically?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.