xrtk / com.xrtk.oculus Goto Github PK
View Code? Open in Web Editor NEWThe Oculus platform components for the XRTK
Home Page: https://github.com/XRTK/XRTK-Core
License: MIT License
The Oculus platform components for the XRTK
Home Page: https://github.com/XRTK/XRTK-Core
License: MIT License
Multiple plugins with the same name 'ovrplugin' (found at 'Packages/com.oculus.unity-integration/Runtime/VR/Plugins/1.61.0/Win64/OVRPlugin.dll' and 'Packages/com.xrtk.oculus/Runtime/Plugins/1.61.0/Win64/OVRPlugin.dll'). That means one or more plugins are set to be compatible with Editor. Only one plugin at the time can be used by Editor.
No conflicting plugins
Conflicting Plugins
The default configuration profiles for the Oculus platform are broken, this is how the profiles appear in dev:
Yet, this is how they appear in a new project:
Somehow both the configuration and layout of the controller scene seem to be messed up in a brand new project.
Steps to reproduce the behavior:
The state in development should replicate in a new project
It's very curious why only the Touch configuration and layout are broken, yet the Go and Remote config & screens seem fine?
When a hand looses tracking, the hand stays locked in the scene until tracked again
Hand model should disappear when tracking is lost, same as controllers
Hands remain until switching to controllers or hand tracking resumes
There is a new version of the Oculus plugin available which adds APIs to get dominant hand e.g.
XRTK should always look to get to the latest available and stable version as fast as possible.
When importing Oculus Package assets a NRE is thrown once the import has finished.
NullReferenceException: Object reference not set to an instance of an object
XRTK.Editor.PackageInstaller.AddConfigurations (System.Collections.Generic.List`1[T] profiles) (at Library/PackageCache/[email protected]/Editor/PackageInstaller.cs:146)
XRTK.Editor.PackageInstaller+<>c__DisplayClass1_0.<TryInstallAssets>b__0 () (at Library/PackageCache/[email protected]/Editor/PackageInstaller.cs:125)
UnityEditor.EditorApplication.Internal_CallDelayFunctions () (at <a8e33794c0064f2aa201ade069162226>:0)
Mixed Reality Toolkit -> Packages -> Install XRTK.SDK Package Assets
Mixed Reality Toolkit -> Configure...
MixedRealityToolkit -> Packages -> Install Oculus Package Assets
NRE is thrown and logged once step 6 has completed.
No NRE thrown.
NRE thrown.
After creating a new project and importing the Oculus platform, the Input Action Mapping is missing / missconfigured
Configuration should be mapped "out of the box"
No input action mapping for Oculus Touch Left and Right controller.
Oculus Go and Remote, unaffected
I created a new blank project with latest xrtk packages installed.
Trying to build project console shows error:
Library/PackageCache/com.xrtk.oculus@3ae186b0f5bc2ddcd455bd18dacc3620338f7268/OculusApi.cs(78,20): error CS0246: The type or namespace name 'OVRControllerGamepadMac' could not be found (are you missing a using directive or an assembly reference?)
Removed and added all packages and installed Oculus Desktop/Android 1.38.1, still same error
Oculus has released the V13 asset package and dll's. Can the Oculus support be updated to include it.
The OculusControllerDataProvider
always spawns both controllers, even if one of them is not even tracked / connected to the device.
Only the controller that is actually being tracked or at least is connected to the device is being spawned.
I just told you in "Describe the bug".
Since the firmware updates on the Quest to default to run as an Oculus GO, XRTK doesn't run as default. Granted the developer can simply configure the manifest and run in Quest mode, but this doesn't sit with XRTK's "Open -> Configure -> Run" ethos.
When I build a new solution for the Quest, It should both:
Users have to manually force the Manifest update to get it to work.
Oculus recently updated the firmware on the Quest to support Oculus Go apps. sadly they made this the default option for any title running on the quest.
The Oculus quest defaults to only use an Oculus Go controller
Create a project for Oculus using their native API (creating Oculus Native Controller Mappings) and run on a Quest
Oculus Quest should support Oculus Touch controllers
Oculus Go is detected
Linked to the following issue in the Native Oculus repo
#13
Also described on the Oculus forums here:
https://forums.oculusvr.com/developer/discussion/79152/project-issues-with-latest-firmware-integration-update#latest
This is a known Oculus platform issue introduced with API 1.39 with Oculus Quests updated to the latest firmware. Compounded by the fact that Unity packages take priority over plugins in the Unity project (where Oculus place it), causing older DLL's to be used over newer versions.
Currently, the default configuration for Oculus does not deploy a configuration profile for the Camera provider. This results in the user of the Default configuration supplied by the SDK.
However, Due to the current wireframe shader implementation, the Quest cannot run at the default "Ultra" quality setting that is defined by the Default camera configuration. Thus, Oculus needs it's own default configuration setting the quality level to "Medium"
Deployable builds for Android
Boom
Known issue with the Wireframe shader, situation to also be reviewed once we move to URP,
If you create an Oculus only configuration with Oculus Camera and Oculus Controllers, there is a significant height difference between running on Standalone (aka, Oculus Link/Rift) and running natively on the Quest.
Camera height should remain static across platforms
User is on stilts on some platforms
The following exception occurs at step 3 of the Testplan provided below when importing the Oculus module via UPM:
IndexOutOfRangeException: Index was outside the bounds of the array.
XRTK.Editor.PackageInstaller.AddConfigurations (System.Collections.Generic.List`1[T] profiles) (at Library/PackageCache/[email protected]/Editor/PackageInstaller.cs:142)
XRTK.Editor.PackageInstaller+<>c__DisplayClass1_0.<TryInstallAssets>b__0 () (at Library/PackageCache/[email protected]/Editor/PackageInstaller.cs:125)
UnityEditor.EditorApplication.Internal_CallDelayFunctions () (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:209)
Follow Testplan https://github.com/XRTK/XRTK-Core/blob/development/articles/testplans/TP-01_Import-XRTK.Oculus-Without-XRTK.SDK.md
the error will happen at step 3.
Upon targeting Windows Universal and trying to build I get the following error:
Plugin 'OVRPlugin.dll' is used from several locations:
Packages/com.xrtk.oculus/Plugins/1.42.0/Win/OVRPlugin.dll would be copied to <PluginPath>/OVRPlugin.dll
Packages/com.xrtk.oculus/Plugins/1.42.0/Win64/OVRPlugin.dll would be copied to <PluginPath>/OVRPlugin.dll
Please fix plugin settings and try again.
As the error message suggests the issue can be solved by fixing the plugin settings for the OVRPlugin DLLs to exclude WSAPlayer when building.
The Oculus quest defaults to only use an Oculus Go controller
Create a project for Oculus using their native API (creating Oculus Native Controller Mappings) and run on a Quest
Oculus Quest should support Oculus Touch controllers
Oculus Go is detected
Also described on the Oculus forums here:
https://forums.oculusvr.com/developer/discussion/79152/project-issues-with-latest-firmware-integration-update#latest
This is a known Oculus platform issue introduced with API 1.39 with Oculus Quests updated to the latest firmware. Compounded by the fact that Unity packages take priority over plugins in the Unity project (where Oculus place it), causing older DLL's to be used over newer versions.
The OculusManifestPreprocessor
generated a broken AndroidManifest.xml when used via MRT -> Tools -> Oculus -> Create Ouclus Quest compatible AndroidManifest.xml
It generates a manifest with a duplicate entry for hand tracking:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto">
<uses-feature android:name="oculus.software.handtracking" android:version="1" android:required="true" /><!-- Request the headset DoF mode -->
<uses-feature android:name="oculus.software.handtracking" android:required="false" /><uses-permission android:name="com.oculus.permission.HAND_TRACKING" /><!-- Request the headset handtracking mode -->
<application...
Note how there is two lines with the same content except one says android:required="true"
and the other one android:required="false"
.
Remove any existing AndroidManifest.xml and regenerate it using the manifest menu item.
The hand tracking entry is only added once.
The hand tracking entry is added twice.
In a new project using the Oculus package, an error is reported in the console, likely due to the absence of a running Oculus platform on a PC
Steps to reproduce the behavior:
Error Free
The following error is reported in the console
OVRPlugin
at (wrapper managed-to-native) XRTK.Oculus.OculusApi.ovrp_GetUserEyeHeight()
at XRTK.Oculus.OculusApi.get_EyeHeight () [0x00001] in C:\LocalDevelopment\XRTKTesting\XRTK-Release27-Testing\Library\PackageCache\[email protected]\OculusApi.cs:126
at XRTK.Oculus.Controllers.OculusControllerDataProvider.Initialize () [0x00015] in C:\LocalDevelopment\XRTKTesting\XRTK-Release27-Testing\Library\PackageCache\[email protected]\Controllers\OculusControllerDataProvider.cs:46
at XRTK.Services.MixedRealityToolkit.InitializeAllServices () [0x00095] in C:\LocalDevelopment\XRTKTesting\XRTK-Release27-Testing\Library\PackageCache\[email protected]\Services\MixedRealityToolkit.cs:1160
UnityEngine.Debug:LogError(Object)
XRTK.Services.MixedRealityToolkit:InitializeAllServices() (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:1164)
XRTK.Services.MixedRealityToolkit:InitializeServiceLocator() (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:572)
XRTK.Services.MixedRealityToolkit:ResetConfiguration(MixedRealityToolkitConfigurationProfile) (at Library/PackageCache/[email protected]/Services/MixedRealityToolkit.cs:123)
XRTK.Inspectors.MixedRealityToolkitInspector:<OnInspectorGUI>b__4_1() (at Library/PackageCache/[email protected]/Inspectors/MixedRealityToolkitInspector.cs:103)
UnityEditor.EditorApplication:Internal_CallDelayFunctions()
Identified a while ago by @StephenHodgson but seems the issue is still not resolved.
Building an Android / Quest application and running it on device started requesting access to documents and media on the device by default. This should not be the default behavior, since not every application requires this permission.
Build an XRTK Android or Quest build.
No prompt for access to device storage appears.
A prompt for access to device storage appears.
Oculus controllers or hands are not recognised in a UPM project from the editor.
THankfully, on device/android works fine
Create a new UPM project for Oculus, run in editor.
Controllers
None
When using packages that have OVRplugins there can be guid conflicts.
Package should play well with others
Package does not play well with others
Oculus just updated their API/Unity asset to a .1 release. Would not usually trigger the need to update the API, however, the major note of this release is they added Oculus Quest 2 support.
Update Oculus Interface to be able to consume the newer Oculus XR Package, the older OVRPlugin is being deprecated from 2019 onwards.
https://developer.oculus.com/blog/oculus-all-in-on-openxr-deprecates-proprietary-apis/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.