VR Expansion Plugin

Also I’m curious, does anyone have any requests for the template? It is fairly easy to add content to it.

Thank you ! Your plugin and the new demo content is a great inspiration for me. Is there any way to send you a donation? I feel kind of bad using it for free - you put so much effort, work & time in the whole thing…

Cheers

Terry

Hey . You have awesome plugin, but i can’t to install it. Can you filming “How to install it” and add on youtube? I’am begginer =(

Can’t figure out something with the drawer by interaction example. If I rotate it 180 degrees, I don’t appear to be able to pass it a linear translation that will constrain it such that it moves outward in the desired direction (-x instead of +x). -25 for the X instead of 25 doesn’t work, am I missing something?

My personal requests:

  • A bow
  • Two-handed items like jars with stoppers

Interesting thought! Have you tried prototyping anything like with the existing physics? I have just been noodling around with an old school telephone prop and with the right kind of custom collision meshes on, the two pieces of the phone behave exactly as you’d hope; you can pick up the phone base / cradle and the handset rests on top of it easily. Add on some physics constraints and cables and it behaves like a real old fashioned phone.

But I suppose you wouldn’t want the stopper just falling out if you tip the jar over. Hmm.

Dear , You suggested adding an example of putting items on the player’s Hip / Pockets to the template.
I would love to see that!

For a bow I would suggest just following epics bow guide, but throwing out the tracking code and using a Secondary Attachment from the bow hand to the draw hand when the arrow is nocked, that way the bow would rotate to follow the rear hand. It isn’t that high on the list of things I would implement since I don’t have the meshes for it and Epic already covered those bases pretty well.

Two handed jars are fairly simple, same concept as gun clips, I will likely add something of the sort fairly soon. The basic concept is easy enough, either two grippable components in an actor or two grippable actors, when the stopper hits an overlap area on/inside of the neck you ungrip it and attach it at that location with a physics weld, when gripping it again you make sure it calls un-attach on itself (OnGripped Event lets you know when to do ) and it should just function normally, if the grip is physics it should unattach itself.

Edit To further clarify use the OnGripped event to get the controller holding the stopper (it is passed in through that event), when the stopper overlaps the area the stopper itself can then tell its holding controller to drop it and it can attach itself.

Sure I intend to add that next, I can’t do any work tonight but it is very very easy with the VR Character as it uses my Parent Relative Attachment Component. If you want to try it yourself in the mean time just attach (or place in the character blueprint) anything you want to the parent relative attachment at the location relative to the HMD that you want it to stay. The PRAC automatically maintains the correct distance and offset for any child components to it. That is how my demo world was holding the arms at shoulder height, I just attached them to the PRAC at what felt like shoulder height and offset and then ran IK to the controllers.

That “Drawer” example is just an actor constraint, the correct way to do it would be as a component in an actor using a constraint component in relative space so you could rotate the actor however you like and it would work. I couldn’t for the life of me find a free domain drawer chest with separated drawers from the body, otherwise I would have already done it the “Correct” way, I intend to revisit it and if I have to mock up a desk in cad or something.

Edit I am adding locking to the doors next time I get time to work on the template, but for the record it is straight forward. There is a “deny grip” boolean on the grippable static mesh component that is the door. You just set that to true and when the door is unlocked set it to false so the door can be opened.

I should be able to get some stuff implemented tomorrow, I am taking care of my newborn tonight :stuck_out_tongue:

Hey , Great release!

Quick noob question: Does the Nvidia PhysX 3.4 update in 4.14 have any influence on your plugin?
So would it be better to use your plugin in 4.14?

Thanks again!

Cheers.

Yes, considering that I am promoting (although not requiring) physics usage for VR interactions due to it being more realistic and natural the Physx update is great. Best of all having CCD available on kinematic actors now and better performance, the CCD with kinematic actors makes things like golf/pingpong or other projectile type games much better.

That being said I would suggest 4.14 for other reasons, the forward renderer and bug fixes / optimizations for VR, I consider 4.14 the first REAL VR version of the engine IMO since I was able to remove a bunch of patches and temporary fixes from my source version with 4.14.

Edit Also the live GPU profiler is a godsend for VR

Thanks for the great plugin
I have a feature suggestion in case you want it, but I does not sound easy to implement.
A second capsule could be added in camera.
If both the root capsule and the camera capsule collide in the environment, the push back works as it does now.
If only the root capsule collides and the camera capsule does not (eg. player stands in front of window),the player can still move for some distance to simulate lean in. With some smart full body IK, it would look really good in multiplayer games too.

I actually already implemented that a while ago, There were numerous issues with it and multiplayer environments that caused me to throw it away. It also introduced either the head effecting the floor finding code or throwing the head out for that and being able to clip into walls from above or below them using the head, would have taken a rather large re-write of the character movement component (even more than it is already) and trashed the efficiency of it.

With how it behaved and the fact that it would have required even more replicated variables to let the server know what is going on with the head collision during character movement I threw it out at least for now.

Its on my "Revisit " list but my secret hope is that we have chest / foot / waist trackers soon enough that it would be a waste of time.

Edit With how it works currently my suggestion is having things like tables either not have collision or having inset collision. That or moving the capsule offset to -15 or more in X and accepting that heads can clip into walls slightly then and handling that if needed.

Yeah it sees like a really hard challenge. At least I can make a local solution for windows by adding invisible platforms outside of them and have the player capsule walk on them. Then I will freeze the root of the player skeletal mesh and do some IK. Not yet sure how good it will look though.

Here’s the prototype desk I have been fooling around with that you can include freely in your template, it has a main drawer and two sets of side drawers. No UVs, but they have the appropriate collision hulls. Make sure you import with auto-generate collision and one convex hull per UCX unchecked.

https://dl.dropboxusercontent.com/u/4726438/tempdesk.zip

Could there be a problem with the available download? It shows as being just over 1GB, but what I actually get is only a few kb and of course doesn’t work. Could I be doing something wrong? I’m trying to download from here: https://bitbucket.org//vrexpansionplugin/downloads

Thanks, that actually simplified my work tonight a lot.

I have decided to add a check box for interactive components to throw out controller rotation on grip so they behave more like the manipulation physics grip for people that don’t want to use physx constraints for all their drawers and objects. I will add that in soon.

Otherwise, minor plugin patch tonight and a bunch of your requested examples were added to the plugin template. Overview video as well for some of the behind the scenes explanations and talking about how some of it was implemented.

Template Change Log



**11/17/2016**- Examples

Added a potion bottle with removable stopper

Added an inventory example that can have the potion bottle attached to it.

Added a chest of physx constrained drawers (thanks gausswerks).

Finished gun interactions (see video for explanation of )

Added laser beams to the controllers



Plugin Change Log



**11/17/2016**- Feature fix

Changed order of operations for when OnGripRelease events are called so that if desired components can be set to simulate physics or not AFTER dropping in their own blueprints.
(Due to setting  after calling OnGripRelease events in the prior version it would override attempts to change physics simulation states in the event).


Overview video

Hey. Just wondering does come under a MIT licences?

Are there any plans for adding basic multiplayer to the template? A starting point would be rad, and I think it would help push the community towards making more amazing multiplayer games. Like a server browser style like Onward.

The plugin is under MIT yes.

I packaged my Advanced Sessions Plugin into the template so that I could go in and add server based multiplayer later quickly. The plugin itself is multiplayer by default but the examples will need to be modified to behave correctly. Things like the door and the like I would probably make server side movement and some of the item events will need to be server verified (the gun really is the only thing that should need major work to get going in multiplayer as I will have to spawn the projectiles on both and do collision detection on the server).

How to install plugin?

Hey. Your plugin is awesome, but i’am beginner and i can’t to install it. I would very happy if you will film on youtube “How to instal plugin”:o