VR Expansion Plugin

Yes! That did the trick. In the end it was a simple problem - but when you have no idea what you’re doing, and the error messages look angry, it’s all a bit confusing! Thanks a heap !

Hi mortentral you have been a huge help so far and I hate to bother you again but hopefully is for the last time. In my game when I move up to an object or a wall it pushes it away instead of allowing you to walk through the wall which is great but it seems that the mesh that pushes back is bigger than me so it feels like there is about a foot between me and the wall. How can I change it so that I can reduce the distance my mesh pushes the world back?

Under VRRootCapsule on the character, set the capsule offset variable to -8 to -25 on the x axis, -8 is about as far as you can take it before the headset clips into the wall a little bit, -18 to -20 is what feels natural to me (capsule is at my actual feet). If you turn off “Hidden In Game” on the capsule you can see where it is and get a feel for the different settings. You just have to decide how much view clipping into walls is acceptable to you (could also detect headset intersection with geometry and darken view).

I tried doing separate collision for around the head area than around the body and it somewhat worked but without actual waist / foot tracking it wasn’t stable enough for me to merge.

Edit You can also change the capsule size itself to further tweak things.

Thanks. Ya I noticed that when I went above -8. Weird things started happening though if I tried to change the capsule size. Half your body ends up in the floor.

Make sure you are setting the floor as your tracking location, the plugin isn’t meant to be used with tracking based on eye height. Also I meant the capsule radius, but the height is fine too with room scale tracking set, my test bed resizes the capsule height at 30htz so that players can crawl underneath things.

Edit Also capsule size is different variables from capsule offset, I wouldn’t really ever touch the Z value of the capsule offset, I left it a full FVector variable in case someone someday found a use for Y and Z offsets.

Pushed a new commit



**10/03/2015**- Interface additions

Started making the VRGripInterface more of an official thing

Added Events for "OnGrip", "OnGripRelease", "OnSecondaryGrip", "OnSecondaryGripRelease", "OnUsed" to VRGrip Interface

If the passed actor implements VRGripInterface than the various grip/drop/secondarygrip/drop functions will automatically call the appropriate grip/drop events.

OnUsed must be called manually.


Added an optional bIsAlreadyRelative boolean to the "AddSecondaryAttachment" function that will automatically convert the transform to relative if it is false.
Defaults to true currently so as to not break implementations already in place.


I love your plugin. Its helped immensely.
However, I have to go back to 4.12 to make it work with an Arduino plugin. But I am having trouble getting it to work. I followed the step creating a new C++ class and installing it in the project plugins folder. It asks to rebuild, then it says
is could not be compiled. Try rebuilding from source manually.

Am I missing something?

Is there a separate 4.12 standalone plugin out there somewhere I can download?

There is a 4.12 specific branch, there was too many significant code changes in 4.13 for me to really keep supporting 4.12 and lower so I locked it off into a static branch.

https://bitbucket.org//vrexpansionplugin/get/4.12%20Locked.zip

Is the download for it, the 4.13 version is already slightly better and more polished but 4.12 was usable.

Yes, thank you. It worked! I went through the whole thread (which I should’ve done in the first place, sorry!) and had to get source tree… Thanks so much for making such a helpful plugin

Hello!
Seems like you have a great plugin but…

As a VR novice like me i dont really know how to make my own vr project with controllers and be able to move and pickup stuff like i see in your test project.
I have managed to get the plugin into my 4.13 project and added a VRCharacter blueprint extending from VRCharacter but then what?!

Is there a tutorial or a simple bare “test project” that i can learn from how to make my own?

Please help!
I have HTC Vive

The SteamVRTemplate in subsection has a character that uses my plugin that you can use as a reference (though it doesn’t use a lot of the features).

I still intend to release an example project but I don’t have the time at the moment. It takes a lot more effort to really go through and clean up my test bed to a readable state for others than to add features to the plugin when I have spare time.

Maybe weekend.

Hello ,

plugin is great! I am developing a VR game and it is going smoothly thanks to your marvelous work.
I have a question regarding the latest update about the VRgrip interface.
I have added the interface into one of my blueprint and I saw the new functions from the interface emerge.
However, I could not find the events that are suppose to come with the interface (event ongrip, etc).
The only thing I did was added the VRgrip interface to my blueprint in the class setting. Am I missing something?

Yeah add the interace to the class, then in the BP editor type in OnGrip/OnReleaseGrip, it should be there, might have to remove context for it. The alpha branch is extending it further as well, I expect to merge it in soon, I just need to finish a couple of features.

Thank you for your reply!
Unfortunately, I could not find the events even with the interface added to the class.


As you can see on the right hand side, I have added the interfaces but the OnGrip or OnReleaseGrip did not show up when I search for it.
Maybe I have missed out something obvious?

No that should do it, I did just test on a new static mesh actor and I had to hit compile on the blueprint but it showed up right afterwards.

Edit I will note that these changes were not back ported to the 4.12 locked version.

Pushed a new commit to master (previously was title UNSTABLE branch) - Documentation not yet updated



**10/10/2016**- Interface Additions - New Grip - Bug Fixes

Added additional Interface features including various Events that get called on UObjects that inherit the interface when gripping and dropping.
Also added an interactive object settings variable that can be passed in through an interface function,  is mostly working currently.
Can be used to limit/min limits that an object can be moved / rotated, currently custom pivot for rotations is buggy.
Most useful for creating components that you can grip on an object with limited movement ranges if you don't want to use physx constraints.

Overhauled sections of the controller code

Fixed lerp error causing extra latency in two handed grips when constant lerp (secondary scaler) is active

Added tick check for secondary grip component for if it is another motion controller, if it is then it polls location directly.
 fixes a one frame latency introduced by tick ordering in some situations.

Changed around sections of the Expansion Library and hid parts of it behind pre-processor definitions to allow for additional platforms.

Plugin now compiles and works on GearVR / Android builds, is no longer OpenVR specific (except for the Open VR Library functions)

Added new grip style (Interactive with Velocity) that is in the style of the Unity grip method. Still needs polish.

Fixed crash with physx constraints using grips.


Pushed a new commit to master:


**10/12/2016**- Added addition transform

Added a new transform variable to grip structures (hidden), can be set via "SetGripAdditionTransform".
 transform is automatically applied to the gripped actor, default is zero'd out (no effect).
Can be used to lerp / change grip locations client side (setting relative grip location directly is replicated).
Useful for things like client side Gun recoil or lerping between locations / to or from hands.

Easiest use is to "GetGripByActor" and pass in the grip structure to "SetGripAdditionTransform" with the holding controller and the new transform.


Also changed InteractiveWithVelocity grip to be more stable, still need testing but is closer to intended result now.


Hi Mordental,

First of all, thank you for great plugin and your investment for the community!

I’m using your VR Character Actor as my pawn, and it seems that the VRRootComponent Overlap events aren’t updating.
When my character spawns directly in a trigger, the “OnComponentBeginOverlap” is fired once but “OnComponentEndOverlap” is never called on exiting the trigger. Also, when the character spawn outside the trigger, nothing will fire at all on any movement (entering or exiting the trigger).
I’ve been searching around a lot (collisions channels are okay etc…).
Have I missed anything ? Thanks :slight_smile:

I’ll take a look at it, overlaps should be functional but I may have missed something.

Negative, just tested with both actor begin/end overlap and component begin/end overlap for the capsule and both worked as expected with a standard trigger volume. As far as I can tell it is functioning as it should.