VR Expansion Plugin

In main d**ocumentation,**i can’t find the step 7 to step 10,and i have troble to open “VRExpPluginExample” in 4.24

I am using plugin for the first time, and am encountering an error when following Tutorial 1 video.

I make it to the step of setting the visualisation for the left & right controllers, but as soon as I set it to ‘True’ the Unreal Editor crashes to crash report window.

I have tried using with both Raytracing on & off. I am also using a completely fresh project & scene. I have a HTC Vive.

Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Build++UE4\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 674] Array index out of bounds: 16 from an array of size 16

The controller visualization is a engine level feature.

How can I access custom event on currently grabbed actors?
I would like to fire custom event on grabbed item from vive_pawn_character event graph

Hi there! So I’m playing with amazing plugin, but having some (to me) strange issues with gripping stuff. I basically copied out the steam controller, vive pawn, and the bp_pickupcube from the example template into a default vr example template. Movement is working great, climbing is really cool, but when I try to grip the cubes I get the error "AttachTo: ‘/Game/VirtualRealityBP/Maps/UEDPIE_0_MotionControllerMap.MotionControllerMap:PersistentLevel.GraspingHand_C_0.SkeletalMeshComponent0’ root component cannot be attached to other components in the same actor. Aborting. "
Anybody know what I’m doing wrong? Thanks!
Also, awesome plugin. I’m absolutely loving it.

Sounds like you didn’t port the trace channel over and its defaulting to a normal channel and trying to grip the grasping hands components or something.

GetGrippedObjects and message it, or when the controller fires off its “OnGrippedObject” event, usually you would use an interface. The grip interface still has the OnInput message which you can fire off to act like a custom flag as well if you want to.

If its an actor that you have gripped you can also directly bind to the player controllers input and sample inputs in it if you are just trying to pass inputs on.

That was one thing, also the gameplay tags didn’t migrate over. So now I copied the gameplay tags, added in the channels, went through the vive pawn character and set all the gameplay tags up to what they are in the template, but I still can’t grip the cubes. I’ve been stepping through with the debugger to try and find out what’s wrong and different, I’m sure I’ll pin it down. Thanks for the tip, it led me to those two issues, hopefully I’ll get going soon.

`Would be better off re-doing the process with the gameplay tags and trace channel in before you open

I actually tried adding the tags and channels and re-migrating from the template with my project closed and idk why but it didn’t seem to work. I just got everything working, by going through the template (searching for ‘gameplay tag’) and adding all the values to the nodes in my project, and now it’s all working. If nothing else I learned a lot about how to do things (I’m pretty newbie to ue4 in general), and it taught me how I should go about doing some things I’ll want to do next. All in all it was a great learning exercise. Again thank you, you really did point me in the right direction there - getting me looking for references to the trace channel made me realize the gameplay tags weren’t filled in either (and I’m sure both things were an issue), which made me learn about channels and tags (ideas that make sense now but I had no idea they existed before).

Well the channel is important in general, its good to have a dedicated collision state for gripping and tracing with VR interactions specifically. The gameplay tags are just an easy way for the template to test different interaction mechanics, which enough people have found useful that its stayed in. Gameplay tags have some downsides in that its hard to change them without breaking references and manually re-tagging things and if you lose the tag settings it will just wipe them from nodes, they store them as FNames and not their tag ID on objects unfortunately.

Thank you for your help, but I still can’t figure out.
Could you please take a look below?
Here I have the Vive pawn character blueprint and I’m trying to fire the custom event “Get and set ammo” on another blueprint actor, if it’s currently gripped when the event fires on Vive pawn character. The another blueprint "AK47 is a copy of the “Gun Base” blueprint.

I got it to work with modification, but I guess is not the best approach?

Its perfectly fine to trigger OnUsed on things, curious why you are setting ammo directly from the character in the first place though.
As for why you couldn’t call your event, you would have had to cast to a base class of yours that contains it, grips are stored as UObjects since they can be both components and actors. is why I suggested that you create an interface that you add to your objects to allow cross type communication.

OnUsed kind of provides that cross communication, however its generally supposed to be an actual use event and not setting a var, however suites you is fine though.

Thank you.
The reason I’m doing it way, is because it was the only way I could think of as a UE4 newbie coming from Unity. I thought the player character would be the best place to store ammo for different types of guns and update the total ammo count on gun with running custom event on gun to check ammo on player character. I’m trying to think of suitable solution to get working with multiplayer, where every player has own ammo on them and will be used by gun they pick up.

So I might be on very wrong track here, but it works. I can’t find next to any tutorial for things I plan to do for Unreal Engine and just trying my best to get things working.

I’m currently working on some survival shooter prototype, that will have few different kinds of ammo types stored on player character and bunch of different kinds of guns in game. I’m just loving how is coming up with excellent plugin of your! Absolutely awesome! The tools you’ve provided are next to perfect.

Ah, well in that case its fine to do that yeah.

Posted new accumulated patch notes (I forgot to mention the last ones here as well).

https://vreue4.com/4-26-patch-notes?section=4-26-1-euro-algo-changes-12-27-2020
https://vreue4.com/4-26-patch-notes?section=misc-fixes-and-changes-1-11-2021

Also added a couple new games to the projects page.

Hello Community
I like plugin but i encounter a problem during packaging:

********** BUILD COMMAND STARTED **********
UATHelper: Packaging (Windows (64-bit)): Running: E:\UE_4.25\Engine\Binaries\DotNET\UnrealBuildTool.exe Archipel Win64 Development -Project=F:\VRExpPluginExample-master\Archipel.uproject F:\VRExpPluginExample-master\Archipel.uproject -NoUBTMakefiles -remoteini=“F:\VRExpPluginExample-master” -skipdeploy -Manifest=F:\VRExpPluginExample-master\Intermediate\Bu
ild\Manifest.xml -NoHotReload -log=“C:\Users\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UE_4.25\UBT-Archipel-Win64-Development.txt”
LogSlate: Took 0.000202 seconds to synchronously load lazily loaded font ‘…/…/…/Engine/Content/Slate/Fonts/DroidSansMono.ttf’ (77K)
UATHelper: Packaging (Windows (64-bit)): Parsing headers for Archipel
UATHelper: Packaging (Windows (64-bit)): Running UnrealHeaderTool “F:\VRExpPluginExample-master\Archipel.uproject” “F:\VRExpPluginExample-master\Intermediate\Build\Win64\Archipel\Development\Archipel.uhtmanifest” -LogCmds=“loginit warning, logexit warning, logdatabase error” -Unattended -WarningsAsErrors -abslog=“C:\Users\AppData\Roaming\Unreal E
ngine\AutomationTool\Logs\E+UE_4.25\UHT-Archipel-Win64-Development.txt” -installed
UATHelper: Packaging (Windows (64-bit)): Reflection code generated for Archipel in 5,1240963 seconds
UATHelper: Packaging (Windows (64-bit)): Writing manifest to F:\VRExpPluginExample-master\Intermediate\Build\Manifest.xml
UATHelper: Packaging (Windows (64-bit)): Building Archipel…
UATHelper: Packaging (Windows (64-bit)): Using Visual Studio 2019 14.28.29336 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333) and Windows 10.0.18362.0 SDK (F:\Windows Kits\10).
UATHelper: Packaging (Windows (64-bit)): Building 30 actions with 20 processes…
UATHelper: Packaging (Windows (64-bit)): [1/30] Default.rc2
UATHelper: Packaging (Windows (64-bit)): [2/30] PCH.OceanPlugin.cpp
UATHelper: Packaging (Windows (64-bit)): [3/30] Module.OceanPlugin.cpp
UATHelper: Packaging (Windows (64-bit)): F:/VRExpPluginExample-master/Plugins/OceanPlugin/Source/OceanPlugin/Private/OceanManager.cpp(116): error C2440: 'static_cast’�: impossible de convertir de ‘ElementType *’ en ‘FColor *’
UATHelper: Packaging (Windows (64-bit)): with
UATHelper: Packaging (Windows (64-bit)):
UATHelper: Packaging (Windows (64-bit)): ElementType=uint8
UATHelper: Packaging (Windows (64-bit)): ]
UATHelper: Packaging (Windows (64-bit)): F:/VRExpPluginExample-master/Plugins/OceanPlugin/Source/OceanPlugin/Private/OceanManager.cpp(116): note: Les types point�s n’ont aucun rapport entre eux�; conversion n�cessitant reinterpret_cast, cast de style C ou cast de style fonction
UATHelper: Packaging (Windows (64-bit)): [4/30] Module.OceanPlugin.gen.cpp
UATHelper: Packaging (Windows (64-bit)): [5/30] SharedPCH.Engine.ShadowErrors.cpp
UATHelper: Packaging (Windows (64-bit)): [6/30] Module.OpenVRExpansionPlugin.gen.cpp
UATHelper: Packaging (Windows (64-bit)): [7/30] Module.OpenVRExpansionPlugin.cpp
UATHelper: Packaging (Windows (64-bit)): [8/30] Module.VRExpansionPlugin.gen.9_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [9/30] Module.VRExpansionPlugin.gen.1_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [10/30] Module.VRExpansionPlugin.gen.6_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [11/30] Module.VRExpansionPlugin.gen.2_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [12/30] Module.VRExpansionPlugin.gen.3_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [13/30] Module.VRExpansionPlugin.gen.4_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [14/30] Module.VRExpansionPlugin.gen.7_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [15/30] Module.AdvancedSessions.gen.2_of_2.cpp
UATHelper: Packaging (Windows (64-bit)): [16/30] Module.VRExpansionPlugin.gen.12_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [17/30] Module.AdvancedSessions.gen.1_of_2.cpp
UATHelper: Packaging (Windows (64-bit)): [18/30] Module.VRExpansionPlugin.gen.8_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [19/30] Module.VRExpansionPlugin.gen.5_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [20/30] Module.VRExpansionPlugin.gen.10_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [21/30] Module.AdvancedSessions.cpp
UATHelper: Packaging (Windows (64-bit)): [22/30] Module.VRExpansionPlugin.gen.11_of_12.cpp
UATHelper: Packaging (Windows (64-bit)): [23/30] Module.VRExpansionPlugin.4_of_4.cpp
UATHelper: Packaging (Windows (64-bit)): [24/30] EmptyClassForProject.cpp
UATHelper: Packaging (Windows (64-bit)): [25/30] Archipel.cpp
UATHelper: Packaging (Windows (64-bit)): [26/30] Module.VRExpansionPlugin.3_of_4.cpp
UATHelper: Packaging (Windows (64-bit)): [27/30] Module.VRExpansionPlugin.1_of_4.cpp
UATHelper: Packaging (Windows (64-bit)): [28/30] Module.VRExpansionPlugin.2_of_4.cpp
UATHelper: Packaging (Windows (64-bit)): Took 126,8589676s to run UnrealBuildTool.exe, ExitCode=6
UATHelper: Packaging (Windows (64-bit)): UnrealBuildTool failed. See log for more details. (C:\Users\AppData\Roaming\Unreal Engine\AutomationTool\Logs\E+UE_4.25\UBT-Archipel-Win64-Development.txt)
UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=6 (6)
UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
PackagingResults: Error: Unknown Error

Hope you can help me!
Thank you.

Already answered in discord but in case anything else wants to know it was the ocean plugin having issues.

Hay, so I’m working on a multiplayer game using the VR expansion.
in the game i an trying to add a real-time scoreboard.
if one of the players places an actor he/she is holding on the right trigger Box a point is added to that player on the scoreboard for him and every other player to see.
for that i need the server to know what player controller held the actor when it was placed on the right trigger.
How do I get the Player controller from the “IsHeld” Node?