VR Expansion Plugin

So I imported a project that I’m working on into the template, but for some reason, I can climb anywhere in my level, even in thin air, I didn’t mess with any of the climbing settings, and it still works as intended on the Example level. Any idea why might be happening?

The gripping and movement and things should all work in multiplayer with the template, but the items with custom logic haven’t been worked over yet for multiplayer and I am not running any checks for if other players are holding objects yet.

You probably aren’t ignoring your actor in the trace and/or it is set to collide with your trace channel and you are climbing on your own hand.

? Did you mean to have more to ?

Also I added some helper functions for others gripping the same object through the interface now, the newer template versions have it in them.

How would I enable or disable deny gripping through blueprints?

Also found the Deny Gripping node but not sure how to set the return value?

If its a grippable object, just set the boolean in the GripInterfaceSettings struct to true/false.

If its a custom object that doesn’t come from that, then you can either directly set it in that interface function you pulled up in the first image, or attach a variable to the output and set that variable in your code, then every time someone tries to grip the object it returns the value of that variable. (Add a boolean, Get it and attach to that output node, set that boolean anywhere you want).

That is essentially what the pre-made grippable objects do, they hold a structure with a bunch of variables and just return those variables in the interface for you.

For that specific door actor though, the Door component itself also implements the interface, and since it does it gets checked first.

Image below has two different ways of setting deny gripping on that door specifically. Edit Image looks a little different because recently I changed how the door works so that it behaves in multiplayer correctly…simulating replicated components have to be the root component).

I think I almost got it, what you just showed me I never seen before. What is the node between the “Door” and the “Set members in BPInterfaceProps” ?

Quick update, worked out it was a getter “get VRGrip Interface Settings” it requires an actor and I have a component, not sure if I can convert a component to an actor? here is my project screen shot:

Just pull out a line from locker door and search in the context menu for VRGripInterfaceSettings, it doesn’t require an actor, its referencing the one in the object and you just pulled the one for the actor instead of for the component so it expects the actor.

get velocity return 0 for all components, I’m not able to get hmd speed to animate my character

Get physics velocity, not component velocity, failing that, calculate velocity by CurPosition - Lastframeposition.

Thank you for your time on , I got it working. Still a little fresh to blueprints, looking for some good training vids to get upto speed faster. Any way here is the result.

Hey, quick question. I am using your potion blueprint and using it for a champagne bottle you can “pop”. I imported the mesh and have imported an animated fluid sim using MS_SequencePainter_SequenceFlipbook. So far it works great, I can pick up the bottle and “uncork” it, and the fluid sim loops forever. BUT I want to be able to trigger the animation when I remove the “stopper” have the fluid sim come out of the bottle and then stop… Do you have any suggestions as to how to go about ?

I just started using unreal a couple of weeks ago and have been looking everywhere, isn’t necessarily a question about your plugin (which is fantastic!) but Any help anybody can provide would be really appreciated.

For the record the potion was a one off example, it isn’t the cleanest way to achieve that, but you can trigger a particle system when the “OnChildGrip” event is triggered if the child is the cork (on the first time it is removed).

Thats why the actor AND the components have the interface seperately, the actor can use the events to manage behavior of the components and each component on its own can have scripting for what happens when events are thrown.

So, I’ve got a build of the example project compiled and I’ve run it on two machines on the same network here in the office, but I can’t figure out how to get either computer to view a hosted game from the either. Is there a proper walk-through on or am I just missing something simple such as some console commands I need to enter such as manually entering the other’s IP? I haven’t touched advanced sessions before and was a little unsure of what to do next.

Also, am I correct that I can’t test multiplayer on the same machine and always need two machines?

Thanks!

Its steam by default (for remote testing) so if it is two computers it will expect them to be on steam accounts. If you go in to the 3D Widget for the hosting you can check UseLan on the create and join session nodes and it will work through lan. Might have to turn defaultsubsytem=Null in the defaultengine.ini config file though. I’ll probably add a check box on the widget to control soon.

Same machine multiplayer doesn’t really work well with VR in engine at the moment, the engine currently tries to connect to SteamVR no matter what and doesn’t play nice with multiple instances. Things can be tested with FPS derived pawns though in the editor and then fully tested later in headset.

Can someone help me get the template to work?

is what happens: (following the readme)

  1. Download and extract Unreal Project
  2. Right clicked and set version to 4.14
  3. Right click and generate visual studio file
  4. Opened VRExpPluginExample.sln (with Visual Studio Community 2015)
  5. Clicked Build Solution
  6. ERROR

Trying to run the Unreal project after that gives me the error:
VRExpPluginExample could not be compiled. Try rebuilding from source manually.

What did I do wrong?

Edit: After 2 hours of tweaking with , I give up. I think it has to do with 4.15 that is required now. I downloaded 4.15 and tried building in that version, but then it just stalls halfway the build without giving any errors but also without completing the build. I’ll wait for now until someone could look into . Much appreciated.

You downloaded the 4.15 version, it replaced

include “SteamVRPrivatePCH.h” // Need a define in here

With

include “SteamVRPrivate.h” // Now in here since 4.15

I don’t intend to keep separate copies of the template as generally files can be copied back to previous versions from it. The plugin itself has a 4.14 locked branch that can be downloaded but the climbing mode and several other improvements are 4.15 exclusive (though easy to port back, generally just uncomment the PrivatePCH.h’s I commented out and it should work in 4.14).

Due to header changes in the engine I split the plugin which means new versions don’t support 4.14 without adding the old headers back in, since header change is permanent I did not want to go in and define every file to include the old headers in older engine versions.

On my machine it takes about 15 minutes to compile the VRExpansionPlugin (I’m not using the AdvancedSessions plugin right now), so it is possible you just didn’t wait long enough. You could check out the Task Manager and see if the MS compiler is still consuming CPU time and if so, it is likely still working on it.

Thanks for the replies guys. I tried it again with 4.15 and after 22 minutes of seemingly non-activity, it finally finished compiling. Guess I wasn’t patient enough :slight_smile:

First build will be slow, ones after that should be fast. Also you can run in DebugEditor as well if you REALLY want the compilation to be speedy.