VR Expansion Plugin

Nanite is probably not super performant either. But I’m not worried about performance yet. I’m solo, so by the time I’m ready to release anything (assuming I ever get there at all), hardware will have caught up :joy_cat: Just that it is supported so I can actually use it for development, is good enough for me.

Also, outside of VR, I get pretty reasonable GPU usage with or without Lumen (quite recent but not latest hardware), so I’m guessing there are still possible improvements even on software only.

1 Like

5.1 is live on master branch, patch notes here: 5.1 Patch Notes – VR Expansion Plugin

Great! Thank you!

Hi! I try make a grip a bow with primary hand and shoot with Event On Secondary Used. How to call secondary shoot? Function get me false and don’t want run a Secondary Used

Hello,

I tried to launch a VR Template in Unreal 5.1.

(First I tried the default Unreal “Blueprint Virtual Reality Template” and it works.)

But if I now quick launch or package APK the VRExpPluginExample (latest GitHub master version) on quest 2 I get these errors.
Any Ideas what to do?

Log:

LogPlayLevel: Error: UAT: LogWindows: Error: begin: stack for UAT
LogPlayLevel: Error: UAT: LogWindows: Error: === Critical error: ===
LogPlayLevel: Error: UAT: LogWindows: Error:
LogPlayLevel: Error: UAT: LogWindows: Error: Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\ShaderCompiler\ShaderCompiler.cpp] [Line: 4668]
LogPlayLevel: Error: UAT: LogWindows: Error:   /Engine/Private/LocalVertexFactoryCommon.ush:146:32: warning: conversion from larger type 'float4' to smaller type '__restrict min16float4', possible loss of data [-Wconversion]
LogPlayLevel: Error: UAT: LogWindows: Error:       Interpolants.TangentToWorld0 = float4(InTangentToWorld0, 0);
LogPlayLevel: Error: UAT: LogWindows: Error:                                    ^
LogPlayLevel: Error: UAT: LogWindows: Error:   /Engine/Private/LocalVertexFactoryCommon.ush:147:32: warning: conversion from larger type 'float4' to smaller type '__restrict min16float4', possible loss of data [-Wconversion]
LogPlayLevel: Error: UAT: LogWindows: Error:       Interpolants.TangentToWorld2 = float4(InTangentToWorld2, InTangentToWorldSign);
LogPlayLevel: Error: UAT: LogWindows: Error:                                    ^
LogPlayLevel: Error: UAT: LogWindows: Error:   /Engine/Private/LocalVertexFactory.ush:541:17: warning: conversion from larger type 'float3x3' to smaller type 'min16float3x3', possible loss of data [-Wconversion]
LogPlayLevel: Error: UAT: LogWindows: Error:       min16float3x3 LocalToWorld = LWCToFloat3x3(GetInstanceData(Intermediates).LocalToWorld);
LogPlayLevel: Error: UAT: LogWindows: Error:                     ^
LogPlayLevel: Error: UAT: LogWindows: Error:   /Engine/Private/LocalVertexFactory.ush:542:15: warning: conversion from larger type 'float3' to smaller type 'min16float3', possible loss of data [-Wconversion]
LogPlayLevel: Error: UAT: LogWindows: Error:       min16float3 InvScale = GetInstanceData(Intermediates).InvNonUniformScale;
LogPlayLevel: Error: UAT: LogWindows: Error:                   ^
LogPlayLevel: Error: UAT: LogWindows: Error:   /Engine/Private/LocalVertexFactory.ush:853:36: warning: conversion from larger type 'float' to smaller type 'min16float', possible loss of data [-Wconversion]
LogPlayLevel: Error: UAT: LogWindows: Error:       Intermediates.TangentToWorldSign = TangentSign * GetInstanceData(Intermediates).DeterminantSign;
LogPlayLevel: Error: UAT: LogWindows: Error:                                        ^
LogPlayLevel: Error: UAT: LogWindows: Error:   /Engine/Private/MobileBasePassVertexShader.usf:42:15: warning: conversion from larger type 'float3' to smaller type 'min16float3', possible loss of data [-Wconversion]
LogPlayLevel: Error: UAT: LogWindows: Error:       min16float3 WorldPositionOffset = GetMaterialWorldPositionOffset(VertexParameters);
LogPlayLevel: Error: UAT: LogWindows: Error:                   ^
LogPlayLevel: Error: UAT: LogWindows: Error:   Struct member does not have MatrixStride set.
LogPlayLevel: Error: UAT: LogWindows: Error: Failed to compile default material /Engine/EngineMaterials/DefaultLightFunctionMaterial.DefaultLightFunctionMaterial!
LogPlayLevel: Error: UAT: LogWindows: Error:
LogPlayLevel: Error: UAT: LogWindows: Error:
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb2448563e UnrealEditor-Engine.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb24483aa7 UnrealEditor-Engine.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb1ba80865 UnrealEditor-UnrealEd.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb1bb00e4d UnrealEditor-UnrealEd.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb1bb11517 UnrealEditor-UnrealEd.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb1bb10df5 UnrealEditor-UnrealEd.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb1b86ff70 UnrealEditor-UnrealEd.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb1b892473 UnrealEditor-UnrealEd.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ff74a01b0ce UnrealEditor-Cmd.exe!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ff74a012688 UnrealEditor-Cmd.exe!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ff74a01296a UnrealEditor-Cmd.exe!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ff74a015680 UnrealEditor-Cmd.exe!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ff74a0271b4 UnrealEditor-Cmd.exe!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ff74a0296f2 UnrealEditor-Cmd.exe!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb6e7574b4 KERNEL32.DLL!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error: [Callstack] 0x00007ffb703626a1 ntdll.dll!UnknownFunction []
LogPlayLevel: Error: UAT: LogWindows: Error:
LogPlayLevel: Error: UAT: LogWindows: Error: end: stack for UAT
LogPlayLevel: UAT: Took 40,2475899s to run UnrealEditor-Cmd.exe, ExitCode=3
LogPlayLevel: Error: UAT: ERROR: Cook failed.
LogPlayLevel: UAT:        (see [...] for full exception trace)
LogPlayLevel: UAT: AutomationTool executed for 0h 3m 56s
LogPlayLevel: UAT: AutomationTool exiting with ExitCode=25 (Error_UnknownCookFailure)
LogPlayLevel: Completed Launch On Stage: Cook Task, Time: 40.116831
LogPlayLevel: UAT: BUILD FAILED
PackagingResults: Error: Launch failed! Unknown Cook Failure

Thanks for your advice

5.1 requires android NDK r25 You need to update your NDK

Though I do also need to set the example minimum ndk level higher too, Im currently changing some of the examples rendering settings and will upload a revised version.

2 Likes

To switch from UE5.0 to UE5.1 I have done the changes already:

Android Studio: Install the NDK 25.1.8937393
Android Studio: SDK Platform to 29 (Quest 2 is Android 10)
Android Studio: Android SDK Tools to 30.0.3
Android Studio: Command-line to 8.0 latest
Android Studio: CMake to 3.10.2.4988404
SetupAndroid.bat to Update SDK
UE5.1: Settings, Platforms, Android SDK change the NDK path
UE5.1: Settings, Platforms, Android change Target SDK Version to 29 (Android 10)
UE5.1: Platforms (Launch), Android, Quest 2 do Update Device and restart UE to get SDK Managment “Installed: r25b”

To make sure it works, I tried the default UE5.1 “Blueprint Virtual Reality Template” and it works.
So NDK is fine.
But compiling VRExpPluginExample I get the posted error message.

Thanks for your advice and uploading a revised version.

Oh the shader errors are bBuildForES31 needs to be false in project settings. i’m updating some of the rendering settings as per epics template settings in 5.1

2 Likes

Its uploaded, runs really well on quest 2 on 5.1 as well for that matter

2 Likes

Launched successful. Thanks a lot, so great!!

From the release / migration notes:

Example template has a WIP set of grasping hands using the new Manny hands for UE5 instead of the UE4 ones. They were intended to be implemented as the default prior to 5.1’s release but it released earlier than I expected. I will make the switch early on in 5.1.

Do you consider the WIP usable in its current state? If not, could you give some indication on what elements still need work?

For the manny hands? The hand socket defaults and spawn offsets need tweaked since that skeleton is a different orientation.

If you mean 5.1 in general, there are still a lot of skeletal mesh physics bugs. But other than that its pretty darn stable.

And for that matter runs wonderfully on native quest2 compared to 4.27, not entirely sure why there.

The following modules are missing or built with a different engine version:
VRExpPluginExample
OpenVRExpansionPlugin
VRExpansionEditor
AdvancedSteamSessions
AdvancedSessions

Would you like to rebuild them now?

It then tells me when I say Yes:
VRExpPluginExample could not be compiled. Try rebuilding from source manually.

I downloaded and installed the latest from Android, dotnet, JAVA, and Visual Studio. I still get error.

I uninstalled previous versions of the Unreal Engine, only 5.1 remains now. All the files mentioned are where they are suppose to be. Why doesn’t it work?

I do
I download the template and the two binary pkgs
I unzip the template
delete the two source plugin folders
then I extract the two binary plugins and drop them into the plugins folder
I use the project renamer
and only then do I click on the project
then it only has to compile the main classes for the project
it doesn’t have to compile all the plugin binaries too
I find doing way it compiles
and if I try to build the plugins from source it will often choke.
I was very frustrated for a while as I could not compile it, until I stuck the binaries in the plugins folder.
Hope that method works for you
note that when it does compile the splash disappears and it will take up to 5 minutes to finish
during which time you will get no feedback and it will seem that nothing is happening
several times in the beginning I thought it had flaked or crashed and started to do it a second time
screwing it fully of course
you have to walk away for 5 min after it starts to compile

1 Like

You have to actually compile it IN visual studio, launching from the uproject doesn’t actually compile source.

That stall out on the splash is the engine compiling shaders.

I’m trying to get the Controller Type using the “GetOpenVRControllerType” blueprint function but it keeps throwing me DT Unknown Controller even through my Index Knuckles are tracking. Any idea why?

Really loving the plugin. The template is great.
It solves so many things for me out of the box.
I am using it as a starter template for most vr projects now.
Hopefully the engine stabilizes quick
but I am able to build stuff with it and its building stable
nice

hi for some reason i cant build i get these errors
Running C:/Program Files/Epic Games/UE_4.27/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -project=“I:/VRExpPluginExample-master1/VRExpPluginExample-master/VRExpPluginExample.uproject” -game -rocket -progress -log=“I:\VRExpPluginExample-master1\VRExpPluginExample-master/Saved/Logs/UnrealVersionSelector-2022.11.23-14.07.10.log”
Discovering modules, targets and source code for project…
While compiling I:\VRExpPluginExample-master1\VRExpPluginExample-master\Intermediate\Build\BuildRules\VRExpPluginExampleModuleRules.dll:
i:\VRExpPluginExample-master1\VRExpPluginExample-master\Source\VRExpPluginExample.Target.cs(12,9) : error CS0103: The name ‘IncludeOrderVersion’ does not exist in the current context
i:\VRExpPluginExample-master1\VRExpPluginExample-master\Source\VRExpPluginExample.Target.cs(12,31) : error CS0103: The name ‘EngineIncludeOrderVersion’ does not exist in the current context
i:\VRExpPluginExample-master1\VRExpPluginExample-master\Source\VRExpPluginExampleEditor.Target.cs(11,3) : error CS0103: The name ‘IncludeOrderVersion’ does not exist in the current context
i:\VRExpPluginExample-master1\VRExpPluginExample-master\Source\VRExpPluginExampleEditor.Target.cs(11,25) : error CS0103: The name ‘EngineIncludeOrderVersion’ does not exist in the current context
ERROR: Unable to compile source files.

You are using the 5.1 branch (master) with 4.27, download the 4.27-locked branch of the plugin

What would be the best method of upgrading my 4.27 project to 5.1? I have a blockout and some shader work done in a VRE 4.27 project, and I would like to upgrade to 5.1 of VRE without losing any work.