VR Expansion Plugin

Hello ,

Very impressive work so far and thanks for sharing it.
I have one question. Can i migrate or recreate the grabbable functionality of the gun in clear project, or i need to use the plugin?

Have a nice day ! :slight_smile:

If you mean could it be made without the plugin:

You could certainly recreate the use of an interface and double gripping and most of the functionality in a blueprint project yourself. But it wouldn’t be totally easy and some of the things like the direct late updates control isn’t possible without really hackish workarounds like attach/detach over and over.

Mitch’s tutorials are the current closest you can get to that. I would suggest you check them out if a plugin is too technical for you or you don’t want to deal with one.

**
If you mean could you port the gun directly into another project but without the plugin and get it to work:**

No

Pushed a new commit to the plugin and the example template for the 4.15 alpha branches

Plugin Changes



Added IsHeld and SetHeld to VRGripInterface, the plugin automatically calls SetHeld in the NotifyGrip function to send the gripping controller and boolean IsHeld
to the interface implementing actor.  is most useful when there are multiple characters to quickly check if an interface object is already gripped.

Added IsHeld and HoldingController variables to the VRGripInterfaceProperties structure.

All pre-made grippable actors / components fill out the new IsHeld and HoldingController variables.


Template Changes



Added a mirror actor that activates when you step in front of it, don't know why, sounded like fun

Added hand animations back in to the default hands, if the controller generation code is off they will function just like the Epic Template hands.

Made use of new IsHeld interface function to deny gripping on objects that other characters are already holding (for multiplayer)

Converted Epics pickup cubes so that they make use of the VRGripInterface (they are not GrippableStaticMeshActors though).  not only allows for checking for holding through
the interface on them, but it also shows a brief example of how to directly add the interface to a class that doesn't already implement it. Another way would be to store
your own GripInterfaceProperties structure and pass the values in like the default grippable actors and components do, but wanted to show direct function overriding.

All objects should be multiplayer compatible now

Added a server browser into the level to check for and connect / host multiplayer sessions.


Which part of the example involves sessions? As my project is just single player project and I want to remove the multiplayer related parts.

The server menu in the level is the only bit that matters that much, it is where it connects. If you intend to only do single player you can throw out all of the custom events that replicate and server side checks but they don’t cost much when you are already the server.

Pushed a new commit to the Template Repository for the 4.15 alpha branch



Fixed simple character not deriving from the simple character as of last night (oops)

Added in prelim Running in place and Armswinger locomotions.



First of all, excellent work on the plugin!
Also, great template, which I am currently using.

I am changing parts to fit my current project, but I have a slight question about your hovermovement.
I see that you are using joystick inputs atm, but could you help me out into changing it to actual values depending on X/Y? (0-.40= walk, .40-.95= run, for example)
Also, ideas on changing maxspeed, based on camera height? (crouch/prone)

Any input is highly welcome…
Thanks in advance

Both hover and the non hover modes already do the center = slower, edge = faster thing, I just have a scaler on them to pick the speed up a little bit that is adjustable, “DPadVelocityScaler” in the character blueprint under movement. It is set to ramp up the detection by 25% as the full gradient was really slow to get going, if you change that to 1.00 instead than it will be 1:1.

Also you can literally change the CharacterMovementComponents Maximum walking speed for crouch / prone work. Keep values for standing, crouched, prone speeds and swap them out when you detect the different states.

Hello again …

still working on my VR-project and today i had the problem that i was able to teleport to locations (it´s inside a building) where no navbound-mesh was !?
Do you have a idea what´s causing ?

I don’t have a fallback set up in the template, it just uses epics teleport system which checks for valid locations, so unless you disconnected their nav check it shouldn’t allow that. Are you sure there is no nav there though?

Verified that both the plugin and template work on the official 4.15 release version, then merged the 4.15 Alpha branches into each repositories respective master branch.

4.15 is now the “officially” support version for the template, and the working version for the plugin. 4.14 for the plugin has been locked to the last 4.14 compatible version as the engine header changes were enough for me to not want to support 4.14 - 4.15 together.

Hi mordentra, I have been thinking that maybe I could contribute to your project by making some tutorials. Only thing is I would probably need to ask you allot of questions. What you think?

I mean…do what you want. Tutorials would probably be appreciated since I tend to not like making tutorial videos myself.

I answer questions that I get asked regardless.

I think it would help people like my self to get up and running quicker.
Not videos.

The template is kind of already a non video tutorial. Its hard to put large quantities of blueprints into text posts honestly.

Need Help installing the plugin.

I am trying to install plugin (my first plugin install) and I am having a bad time of it. Attempting to follow the instructions from BitBucket.


Clone Or Download Zip and extract repository to a folder named “VRExpansionPlugin” in your “ProjectName/Plugins” directory, create directory if it is missing.

Add the VRExpansionPlugin to your projects PublicDependencyModuleNames in the projects build.cs if you have c++ code included.

IF you do not have c++ code, use the Add New button in the editor and add a blank c++ class to your project.

I’ve created a blank project and created a plugins folder and unzipped the file into VRExpansionPlugin folder inside of plugins and the project will not launch. I’ve also tried creating the c++ class first and then adding the plugins folder and it still will not launch.

Any advice would be greatly appreciated.

Thank you in advance

Hey i tried to use in a multiplayer game but i was never able to get it to work. when i start in multiplayer it i don’t see the other player and if i host a game it takes the first player into the map but when i go on the second players screen and look for the match it doesn’t find anything.

How to use Grippable Static Actor to produce the actor that can rotate around with limited angle by the motion controller ?

The second way, adding the c++ class first, then you add the plugin into a plugins folder “ProjectName/Plugins/VRExpansionPlugin”, then the project has to be built from visual studio as the launcher will not compile it.

Multiplayer sessions don’t work unless packaged, also the template uses steam for multiplayer (for remote testing) so if you are trying to use lan with that server browser you have to go into the config file and make the default subsystem NULL and set the session search to lan. Open IP should still work though.

bIsInteractive = true
bLockYaw/Roll/Pitch, set min / values.

In general though I prefer the physics approach.

Pushed a new (small) commit morning



Added IsHMDWorn blueprint node to the VRExpansionLibrary node set.

Implemented velocity smoothing over time for the RIP and Armswing locomotions, needs testing.
 should bring those two locomotion types closer to finished but still consider them prelim implementations.