Started adding some additional interactive objects to the level (Lever, Button, Push dial). Will be iterating over them and adding more in order to think about if I need to change any of the plugins workflow to
make creating such things easier or not.
Edit 05/03/17
Changed the dial to also support a wrist twist spin, allowed me to provide an example of choosing between two grip types based on a variable as well as implementing a custom grip.
Would also like to note that the Template being on 4.16 in master already was a mistake, I ran into some engine bugs in 4.16 that I wanted to track down and report and merged it early by accident.
Normally my procedure is to keep the new engine version in a separate branch until it is released and then merge it into master for the template.
The plugin repository itself is still currently on 4.15 for master with a 4.16 alpha branch as is the intended workflow.
I would like to restart game when player falls into a Killz volume. I think the simplest and most effective way is to create the following:
However i can’t, because when i add an “Event Destroyed” node in the Vive_PawnCharacter, it is already taken up by something called “Remove Steam Camera Handle on destroy”.
Just remove the SteamVR camera code if you aren’t using it, its there as an example only. Also you could just connect the OpenLevel-PrintString after the camera shutdown and it would work fine.
Just search for EventDestroyed in the node graph, it already exists is all, use the one already there or delete it.
I’ve been working with the last 4.15 compatible version of VRExpansionPlugin, and wanted to bring up a couple of requests while you’re working towards the 4.16 release:
I finally got around to using the YawTolerance property on UParentRelativeAttachmentComponent, and found that it didn’t work as I expected (I just had the wrong expectations, that’s all). It appears that YawTolerance causes the component to snap rotate to its value, like a polar angle grid. What I was hoping it would do is stop the component from rotating while the HMD was within a YawTolerance pie wedge, but then rotate with the HMD once the HMD goes outside of wedge. Like the HMD is pushing up against the wedge’s wall, forcing it to move. And when the HMD rotates in the other direction, the component doesn’t being to rotate until the HMD pushes up against the opposite wall of the wedge. Hopefully I’m explaining well enough.
would allow for some free movement of the HMD without impacting the UParentRelativeAttachmentComponent yaw, but once the player really starts to turn, it drags the UParentRelativeAttachmentComponent’s yaw along with it.
I’m mainly using C++ while working on my game, with minimal Blueprints. There are a lot of great events defined in VRGripInterface.h such as OnGrip(), or OnSecondaryGrip(), but they are defined as BlueprintImplementableEvent. It would be great if all of these events were moved over to BlueprintNativeEvent to match the rest of IVRGripInterface, as I could then make use of these events from C++. I know is a breaking change for anyone that is currently using IVRGripInterface from C++ as they would have to implement the event stubs to recompile. As we’re currently in the transition to 4.16 with VRExpansionPlugin, hopefully would just be a minor annoyance compared to the benefit.
I’ll likely get around to both of these myself eventually, but it would be great to get them into the mainline plugin if you’re still looking for suggestions.
If you ever get around to handling like you want post me the code or pull request it and i’ll directly incorporate it. The description is simple to implement but is a request that I doubt anyone else will be looking for and I have a lot of upcoming stuff on my plate.
It’s possible to implement inherited BlueprintImplementableEvent functions in C++. Simply declare them in your header as BlueprintNativeEvent and then define them in your source file like:
I talked about it in my last video, but I added OutputLog data to it and wrapped it up in an interactive tablet using some of the generic controls I was providing samples of.
So here is my proof of concept Console/OutputLog viewer / editor for in VR use.
Perhaps. I’ve not looked at the generated code before, but it seems in the class.generated files BlueprintNativeEvent generates the exec and implementation declarations while BlueprintImplementableEvent only generates the function name declaration. In the intermediate project.generated file both UFunctions are constructed almost identically (FUNC_Native flag missing from a BlueprintImplementableEvent) and are found on the calling UObject by name, which is shared with the base class’ UFunction.
Certainly it makes sense to specify them BlueprintNativeEvent in the first place to avoid any possible issues.
4.16 version looks great… is it already uploaded ?
Problem… since i am a noob with blueprints for door opening interaction i am cloning you door and replacing the mesh… Currently you have 1 door attached . What should i do if i have double door. I also have an instance with 4 doors .
Also when replaced my mesh with your door mesh there seems to be delay in the interaction. the door is not opening with the hand controller… kind of spring delay
please help
Pretty new to VR development and just recently came across your work and would love to have the 4.15 template. How would I go about pulling the template commit before the 4.16 upgrade? I don’t know how to use bitbucket so i’m totally lost. Thanks!
You need to setup the BP at your desired case. 4 “Grippable Static Mesh” (Doors) independent and a PhysicConstraint for each. Every PhysicConstraint has a different position (for the axis rotation and location, acts like a hinge), and the right and left Meshes (Door) has different angular rotation (+/- Z) for their constraint.
Yeah the “door” example is kind of best for actual player doors, it is specially setup because of its ability to block player movement and its requirement to be somewhat sync’d. For cabinet doors it would be far simpler and more straight forward.
Edit Added an example cabinet to the template to help out, made a video showing off the console/output log actor.
(Basically, just edit the bitbucket-url with the commit tag/id to bring up the download for the repo at the time of the commit.)
In short, you can use link to get a zip of a template that’ll work with UE4 4.15.1.
(I’m not sure if it’s the latest one right before the 4.16 implementation, but I think it’s pretty close.)
I’ll assume you’re running Windows:
①Download that zip above and extract it wherever you want.
② [Optional] Once extracted, rename the “-vrexppluginexample-cbaf5b16589d/-vrexppluginexample-cbaf5b16589d” folder to something shorter, like “VRExample” or whatever.
③ Cut or copy the folder (shown in red in step ② / i.e., “VRExample”) containing 4 folders and 3 files (“VRExample” folder in step) and paste it **in **your “Unreal Projects” folder; usually <Myusername>/documents/Unreal Projects/
④ Follow the stepson 's bitbucket page (namely, install Visual Studio, generate the sln, build the sln).
Having done that you will be able to launch the template project. Note that the project name will be VRExpPluginExample.
Wanted to post a quick update for my VR stealth project “Espire 1: VR Operative”.
game is built 160% on top of the VRExpansionPlugin - clearly built upon the sliding locomotion & climbing from the template. The GripInterface, everything is being used.
The VR pawn is working great with both the Vive and the Rift, and the plugin’s VRAIController makes using a VR pawn with AI targeting a breeze. I have also been able to migrate the project from 4.11 (from memory) to 4.15 with very little issues or work in maintaining the plugin components.
is such a fantastic plugin and I hope to support it in any way I can. Of course if Espire 1 is able to be released I hope you will be happy to discuss a royalty for the use of the plugin if that is possible - no support requested in return. It is only because of the plugin that a budding VR designer like myself could test and prototype gameplay mechanics in such a short time. It is also a huge learning resource in the many ways to approach VR interaction, multiplayer replication and more.
Huge thanks for everything you do and I do not understand how you can commit so much time to a project and share the results with the whole world for free. I hope the generosity will be payed back to you tenfold!
Very interested to see what others are doing with the plugin. I will be making regular videos like the one above and will feature the VRexpansionPlugin and how it is being used. I wont post again on here about that to avoid derailing the thread, just wanted to chime in and say thanks again!
Cool update. Thanks for share your all your great and continuos work…
I wish to check because I need to add or modify some behaviours for my purpose in the way to grab it or interact with the constraited actors, following the nodes the scope is till Grip Object by Interface I suppouse all that things are managed between that and VRGrip Interface, all done in C++ and not possible to manage by BP, isn’t it?
What exactly are you looking to modify? I have CustomGrips for things so far out there that none of the current options allow for it that let you do all of the logic yourself for that object (the dial in the 4.16 template uses ).
Also the settings for the grips can be altered during the grip itself so most things are achievable between that and adjusting constraints on the simulating object.
I’m open to considering opening the physics grips up more to blueprint if you have found a need for it that can’t be solved another way currently, I have been debating how much to expose the constraint settings already.
Thanks, I forgot to reply to him
Good to hear, i’m glad everything is working out so far. Its really nice to see you using a Rift in your video as I can’t fully test the plugin with that hardware and have to make some assumptions about compatibility.
No need to avoid posting here though, its actually generally a good idea to provide what others are doing with the plugin for reference of its capabilities, my template isn’t an actual game and doesn’t play like one so its not the full picture.
I’d actually like to eventually make a list of all of the projects that I know of using it and post them with links in the OP eventually.
Some thing I need to do is grab a object with the two hands, but secondary fixed in a specific position (grippable sphere for example), maybe just could be rotated for then launch a skeletal animation, not like the Gun example, moveable the second hand along the mesh.
On the other hand, there are a mini tutorial up to the interface cases? I’ve realized in the template, the BP_PickupCube doesn’t neet to be “Grippable actor”, just a static mesh but with the “VRGrip Interface”, but the Gun, Potion, Door and Drawer actor is based on the Grippable base…
Thumbs up if all you think also than Epic should donate a Rift to ****