Give Me A Hand (Tracking)

Trying a new tutorial as the other ones seem to be going no where. https://skarredghost.com/2020/01/03/how-to-oculus-quest-hands-sdk-unity/ seems OK to get back on this horse – I need a viable project so as to work on something bigger and faster. However the tutorial is over a year old but I’ll still give it a go 🙂 Dang- it requires Unity 2019.2.10f1 – I’ll have to get back to this once it’s installed. Done. I’ll call this project TestQuestHands (to match the tutorial).

2019 builds have auto-generate lighting on – I wonder why 2020 and later seemed to be darker when scenes refreshed inside game? Dang. this won’t work as Oculus Integration needs Unity to be at least 2019.4.4. I’ll try with that version. Downloading. Let’s hope it still works.

I just fixed a major problem with the drivers which was stopping me from using Link Cable (still not my favourite as lag/refresh is nauseating) and probably other ways of connecting. True, Virtual Desktop is my preferred way (well worth the paltry $20 I spent on it- the buggy Air Link can kiss my assets), and I have made some inroads in making it work but haven’t truly put in the time to make it so). I doubt I will in the future. Here is how to fix graphical problems with your Link Cable and Rift Mode.

I updated the project and lets see if this works. Well I can import it – good start. Wow the import is taking ages (I had to update the Unity version but that wasn’t that time intensive). And we’re in. First problem – there is no “XR Settings” tab but there is an XR Plug-in Management which needs to be turned on anyway so I installed it and ticked the Oculus box as similar to the tutorial. Nope this crashed. I will try this again but with a more recent build. I’m going to use 2020.3.21f1 – TestQuestHands-0 Not working here either. I just get a black screen for no particular reason. I’ll try a different build… TestQuestHands-1 using 2020.2.1f1… This time I will NOT change the Texture compression (I normally change it to ATSC), I’ll leave the Compression Method (this time it’s set to LZ4), it looks like the minimum API level is 4.4 (API level 19) – that is the lowest setting anywayu, in this case the Vulkan API could be deleted (which it didn’t seem to exist in 2020.3.21f1).

Ah. There is a note about seeing a black screen- but those options were not available on the earlier build. OK I just found out Player Settings (from the Build Settings -> Player Settings) is the same as Project Settings (straight from the Edit -> Project Settings)- good to know. I installed the XR Plugin Management and set both PC and Android tabs to Oculus). However once I did that console got angry with me:

GUID [a57801270cf689244b48012cf9db1713] for asset 'Packages/com.unity.xr.oculus/Runtime/Android/arm64/libAudioPluginOculusSpatializer.so' conflicts with:
  'Assets/Oculus/Spatializer/Plugins/Android/libs/arm64-v8a/libAudioPluginOculusSpatializer.so' (current owner)
We can't assign a new GUID because the asset is in an immutable folder. The asset will be ignored.

It looks like the XR components are conflicting – nothing new there. It came through twice so they don’t play nice. I’ll try setting “both”. Unfortunately my trick with Active Input Handling (Project/Player Settings – Player) isn’t an option here. On the website () one person recommended deleting the Oculus folder from assets and reinstalling integration but I couldn’t and got an error message:

Some assets could not be deleted. Make sure nothing is keeping a hook on them, like a loaded DLL for example

I unticked “Optimize Buffer Discards (Vulkan)” as Vulkan has/is causing problems but I still can’t delete. As it turns out it x86_64 (Oculus/Spatializer/Plugins) folder and the Win64OpenXR (Oculus/VR/Plugins/1.66.0) folder which can’t be deleted. I went to the Package Manager and removed both XR and Oculus Integration but I still couldn’t delete the Oculus from assets. Ah, disabling VR and XR in Package Manager (built in) allowed me to delete the Win64OpenXR but trying to disable audio has too many dependencies (Director, Timeline, Unity Web Request Audio, Unity Web Request WWW, Video) in order to disable audio. I’ll try re-installing Oculus Integration again (after re-enabling the built in’s I shut down). OK, as soon as I ticked Oculus that’s when the errors came up. So that means I should try a different way forward. I’m going to try a different approach – this one is a tutorial that I paid for months ago but haven’t had the chance to try: Udemy (VR Development Fundamentals with Oculus Quest 2 and Unity).

It’s not sounding promising just yet but maybe I should keep going. He’s using version unity version 2020.2.6 (I’m happy he gave this info comparatively early). Once it has installed I’ll make sure it also has all the Android modules. He’s calling it VRDevelopmentFundamentals. He says XR interaction is easier to learn and offers better cross platform support than Oculus Integration (I believe him). Wow I have a lot of Unity versions – I wonder if I should store them…? Nah that’s a waste of local space. OK another lesson the hard way – uninstall removes the entire version – there isn’t a way to remove modules (at least where I am now) of Unity installs 🙁

Interesting to note that (as of this build in time) open XR did (does?) not support directly porting to Quest. Interesting, 2019.2.3 was the first with the XR Toolkit (if this works I’ll probably use XR for hands but I’ll stay the course). Wow, he set up the XR rig and controllers before adding the XR Plugin Management. Also interesting I am to tick the Oculus check box for XRPM on the Android tab (but he doesn’t mention ticking the Oculus box on the PC tab) and then skip over to the sub option of Oculus and keep all those settings at default.

A good place to check settings for VR- https://developer.oculus.com/documentation/unity/unity-conf-settings/

Oculus link cable is too jittery and makes me sick. Disabling Nvidia / GeForce Experience/ In-Game Overlay might help (an update had turned it back on) and downloading the Oculus Debug Tool (https://developer.oculus.com/documentation/native/pc/dg-debug-tool/) and turning off ASW might too. A YouTube video said I should set the OVRServer_x64 priority to high (I did everything OVR and Oculus to High- using task manager / details) and that helped a little but it was still bad. I think it’s from an incompatible frame rate. Using that tool I disabled the dynamic Bit rate and set my bit rate to 250 (as another website suggested) but still jittery (getting better though). Later it said enable it but it looks slightly worse so I’ll disable it. Changing the runtime engine from Oculus to SteamVR (inside if Virtual Desktop) didn’t help either. OK setting the rate to 72Hz in the app and reducing the rendering resolution from 1 to 0.9 helped but not in the home environment- shutting off the home environment might be better. NVidia drivers were OK, as were Windows, AMD said something could be repaired but… nevertheless I am running the AMD driver updater now. Nope- its still pants. Man I wish I could use VD for everything. I’ll try it one more time with a different cord (the substandard one I bought earlier) – hang on. How about I try the cord I was given at purchase?