VR Expansion Plugin

Hello waslegit,

Any chance of sharing how you got this working please, as I am having a nightmare lol.

I am literally chasing my tail and getting nowhere fast :frowning:

Thanks mate and good luck.

Hey mate, you are a lifesaver, thank you so much for this plugin! I am having a slight problem when I migrate the files from the example template to my project because everything that is grippable suddenly does not work. The navigation works fine and I have checked all the project settings are the same as the example template. I am using UE 4.25.4 with the oculus 2 touch controllers. I can grip items using ‘B’ and trigger but it just pulls the object towards me and drops. Do you know what the problem might be? Here’s a short screen recording:

My guess is that you forgot to add the same gameplay tags that the example project had. Compare the gameplay tags section in project settings between the example project and your own to see what I mean.

yeah the template uses gameplay tag to provide a barebones per grippable button remapping setup for testing, if you port the content without porting the gameplay tags at the same time they get corrupted. Also it uses a custom trace channel to easily define what is and isn’t VR grippable, if you don’t port that config file definition then the traces will revert to a standard channel which may be blocked by things you attach to the hand.

I think they are the same when I compare them. I am using the “DefaultGameplayTags”? Here is the file if you needed to have look.…ew?usp=sharing

I meant in the actual code it can become corrupted and the gameplay tags dropped.

Sorry for asking possibly something very simple, but I can’t find the answer for this and can’t get it to work.

I would like to setup the vr.PixelDensity for the project in DefaultEngine.ini to be lower than 1.0, but vr.PixelDensity does not seem to have any effect when entered on ini file.
The in game slider for vr.PixelDensity works perfectly and I adjusted the sliders min value to 0.15 for test purpose and the slider changes the vr.PixelDensity perfectly.

Even executing console command vr.PixelDensity 0.15 in level blueprint or vive player blueprint does not change the vr.PixelDensity.

Does anybody know how to set the vr.PixelDensity in ini file? I’m trying to build for Oculus Quest.

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: 0 from an array of size 0

Anyone familiar or know why this is happening?
I think it might have something to do with a spline setup somewhere but I can’t be sure.
This is randomly happening on an holder 4.25 build.

I will replace it with the current one later and see what the results are.

Thanks in advanced from anyone with any info

Hey Mord,

Had a few questions I wanted to knock out all at once, hope you don’t mind giving me a brief point in the right direction for each. Would be much appreciated. If you don’t have the time to answer all this, no worries at all.

  1. How should I tap into the signature so that my VR character knows when your internal code calls a drop due to the break distance between an object and hand being reached? Right now, when that drop is called it leaves my character in a loop of dropping everything else I try to pick up from then on, because it seems to think (due to my own code I’m sure) that we’re still holding something. Having a rough time fixing this.

  2. I saw in another post you said you wouldn’t recommend the VRSlider for a bolt on a gun, although that is mentioned in the tooltip for it. What would you suggest for a bolt setup? One I’m planning involves rotation and movement on two different axes (sort of like a bolt action sniper rifle). Any way you go about that sort of thing? I currently can’t download your example project due to bandwidth limitations.

  3. am I correct in thinking your setup with the grip sockets is such that my character hand animations, if set up naturally, will fit to what I’m holding simply because of the nature of your plugin’s handling of snapping objects to the center of what assumably is a proper VR hand setup? E.g old school FPS animation would fit if I’ve put the VRgrip sockets appropriately in the mesh?

  4. finally, what would you suggest for limiting an object to being just dragged along the ground, not picked up. Using a plane constraint did not work, just glitched out heavily. Does your plugin have an in house solution for getting an object to behave like it’s heavy and only be dragged?

Thanks so much for all you do

The console command to execute it should be working, that is all that the slider is doing.

that pops up all the time, you kind of need to go into debug mode and figure out what array it is asserting on

  1. There is an OnDroppedGrip event for each motion controller that you can bind too, you can also override the OnObjectOutOfRange event on them and handle dropping objects for yourself instead. Generally for things like hand animations and handling cleanup, OnDroppedGrip is going to be your best bet and the nicest workflow.

  2. The slider normally involves no rotation, if you attach it to a spline then you can have it orient along the spline, but generally the best bolt behavior is going to be custom scripted using the CustomGrip mode. There is an interaction example of a blueprint scripted slider with rotation and linear offset in the template (I know that you said that you can’t download it, but that really is the best example of this) that people have used as a bolt base. It really comes down to how complicated you want your bolt interaction.

  3. Generally yes.

  4. Physics, the physics prop grip script has an example of it being used to enforce mass on grips, really anything that weighs more than the grips constraint strength can handle will act like it has mass. Setting the Linear and Angular Stiffness Coefficient in the advanced physics settings of an object to 1.0f will go the farthest here. Constraints in engine by default get stronger the farther away from their target they are, using that coefficient that I added for grips and setting it to 1.0f will make it so that the grips are a constant strength and it will be a lot easier to fine tune mass based behavior on the object in question. Also a plane constraint would totally work, if you wanted something literally enforced, sounds like you had something setup wrong.

hay, so I’m having an issue with controllers not appearing in build.
This happens on 1 out of 20 computers, so its not on all computers, rare but it happens.
on most computers the hands show up just fine, but some rare computers there are no hands (only in my vr expansion game, hands appear normally on those computers in every other VR game and app).

I tried to:

  1. uninstall and reinstall steam and steamvr.
  2. reset up vive pro.
  3. checked if the binding files are missing from the config\steamvrbinding directory (they are not, all there).
  4. checked to see if the user is admin in windows (maybe permission issue?) they are admin.
  5. recopy the binding files from a different computer where the hand show up, doesnt help.
    6.checked in steamvr->settings->controllers->ManageControllerBinding … its on default not custom, tried to switch to custom and do a custom binding, no luck, switched back to default, nothing.
    7.tried to move the build to c:\ (to avoid permission problems) no go.

the Build was created in unreal 4.25.4

As in the controllers don’t track, or the visible hands for them don’t show? Those are entirely different things.

hi, i just starting with the vr plugin, look amazing, but i cant do snap turn, i watched video tutorial and snap turn appars like a feature already done, i have oculus rift s, unreal engine 4,25 and tried whith the example project. thanks

Bind “PerformMoveAction_SnapTurn” to an input. Perform Move Action Snap Turn

The 4.26 template is getting a lot of that side of things re-done and has it by default already bound.

thanks for help, i will try to do, i am noob with unreal engine, but high experienced unity user

Hey, I encountered a problem and would appreciate any help. I added some buttons to a vr train and sometimes the buttons do not work (I have a hunch that is due to speed). I attached a video of this happening. Whenever train is moving faster than a certain speed the button stops working. In the video example the train brakes are engaged so it is gradually stopping and after few seconds the button starts to work. Is there a way to fix this problem? Maybe it is a problem from my side? Thanks!


You may want to specifically attach the character to the train in this case, character movement components “catch up” to moving objects they are standing on and due to things not ticking at the same time the hands would be brought out of overlap with the button. While in the cabin going high speeds you look like you are mostly stationary, so if you treat it like the SeatedMode of the example car you should move “with” the train and not be brought out of overlap.

Another solution would be to handle the overlaps with a delay before de-interacting, or to use a physically simulating button instead which would be brought back in line before the physics thread is ran.

Hi all,
sorry to post again, ref weapon holsters.

I am having a nightmare getting anywhere with it.
I either get issues with scale changing dramatically, the weapon preventing character movement or a complete failure in the nodes during compilation.

Does anyone have a screenshot of a working setup that I can look through please. Or is anyone able to breakdown the drop and socket functionality.

Thank you and stay safe.


Thank you Mordentral. I did find the issue. Seems that the console command vr.pixeldensity 1 was set up in the template at the start on blueprint Steam_VR_Player_Controller. After taking it off from there, the .ini set up for the vr.pixeldensity works fine.

I have some more questions, if you may.
How could I enable the hands to grab even, if there’s nothing near the hands? Now when I build the template for Oculus Quest, the hands do nothing while using the grip or trigger, when there’s nothing to be gripped near the hands. When I click play in vr on editor, the physical grasping hands work perfectly with the oculus quest hooked up with virtual desktop, but no gestures and animations after building on Quest.