VR Expansion Plugin

Yep, I thought there was a specific reason why the base character was inherited, but is not a gigantic issue if I’m going to setup the character using Event Begin play to do all the attach and other stuff.
Yeah, the Z value sounds strange, but currently is the only proper solution I found ( using Mitch VR Template ) in order to have the Samsung Odyssey height properly set…I haven’t tested with the VR default template, so that could be an issue with the template itself…don’t know for sure.
I think that the major issue for me will be to switch between version of the engine…because if I do the setup I have in mind on 4.18.3 and then I have to switch to 4.19, if I migrate the Character BP and install the plugin to a 4.19 scene, you think it will work or not? I had so many compatibility issue with the plugin that is a miracle that I Was able to build a 4.18 version a while ago :smiley:

Assuming you are using the 4.19 version of the plugin, yes, besides things listed in the migration guide it should work just fine (I make architecture changes across engine versions to limit refactoring on set versions).

Most recent patches of the engine have seen large VR overhauls so its rare for the plugin to be directly compatible across versions, but there is always a build for the new version ready (4.19 is already up).

Not entirely sure why you have compilation difficulties though, considering it has been built on every platform with every configuration by other users (mobile/psvr/mac/linux/32/64 bit) and the entire windows build chain is processed each time I make the pre-packaged binaries.

Hi ! First of all, I would like to congratulate you and thank you for your amazing contribution, it’s been a huge help for my VR project.

I’d like to know if you could answer me , I’ve tried to find it in forum before posting it in case someone already asked you but I haven’t found anything:

I’m trying to get a cabinet with drawers on each side being able to get opened with the motion controllers, the side which is facing the postive X axis works fine if I change the LINEAR TRANSLATION on the details tab of the grippable object, but the drawers of the other side that are facing the X axis in the negative space don’t slide if I type the same value but negative, instead they just change their position from the original to the negative if the motion controller is pressed without any interaction, how can I achieve ? The same happens for a wardrobe with 2 sliding doors, the first door works fine but the other can’t be moved on the oppposite direction.

Thank you very much!

so actually which is the best method to put in place a replicated smooth turn movement based on controller trackpad/thumstick movement?
many thanks

Just set that setting to short and use MovementAction_SnapTurn or a custom move action. I need to go in a optimize movement actions so they use the delayed movement processing (FScopedMovement) of the CMC but it works as is.

Its only snappy with bytes because its not enough precision for the pivot and offset to not be noticeable, FPS games don’t require that kind of precision.

Regardless its a 1 byte difference on repped movement and only happens when it changes, so during turning or smooth movement.

Just tried your plugin for the first time, very nice features. Realised that the physics drawer has no physics when interacting. Neither in the demo, nor in the template project. I fixed it in the VRGrip Interface of the component Drawer1 with checking “Simulate on drop”.

It has full physics when interacting, that is the point of it (it can be effected by things inside of it / blocking it from closing).

But no I left it simulating off on release on purpose. If you want it to retain momentum on release simulate on release is correct but you also likely want to set some damping up on it.

Ah ok, thanks for clarifying what is meant by physics here. Obviously, I didn’t check blocking it to realize the build it constraints.

Amazing plugin. Thanks to it I saved a lot of time.

All the features I want are implemented.

I’m not use to English. but google translator helped me share it.

it works, ty

Just curious if anyone has set up properly with a full character skeletal mesh. I’ve added a skeletal mesh to my pawn, and I have properly configured the arms and head to track to the motion controllers and the HMD, but I was wondering about setting the appropriate height for the character and keeping him at an appropriate offset to keep his feet on the ground. Has anyone done it with the VivePawn?

I’d appreciate any help in the right direction.

Had a feature request specifically around that recently that was added, the ParentRelativeComponent now has a toggled mode “bUseFeetLocation” which will place it at the floor under the hmd instead of at the HMD itself. should make it significantly easier to root the feet.

Does have a magic component that excludes 3d widgets from post processing?

There is a Stereo 3D Widget component that renders the widget in a stereo layer instead of in world…so technically yes?

However stereo layers are currently broken in engine with the openVR beta.

Big list of unannounced changes, been doing a lot of things that never amounted to enough to publish in here before.
These were all pushed to their repositories in the past two weeks.

General Plugin Changes (4.18-4.19)


Corrected imprecision issue with inverse transforming of the interactibles
I use the inverse of the grip transform to get the hands original location relative to
the object on grip for the interactible calculations. I was getting precision errors
when getting FTransform::Inverse if the interactible was unevenly scaled on any axis.
Converting to a FMatrix, then inversing, then back to FTransform removed  precision issue.
I am still uncertain why FTransform::Inverse was misbehaving in  situation.

Added some events to the SliderInteractible (OnHitEnd)

Started working on bEnforceSplineLinearity to keep a slider in line on a spline
(Unfinished needs work).

Added bLerpAlongSpline to slider to smooth out the movement.

Added grip prio to all interactibles

Fixed teleport move grip node (one of the variables was output instead of input)

Added Re-calculate lever angle function to lever

Also made the ResetLever function re-calculate the angle as well.

Set character default rotation replication values to shorts

Changed how controllers copy a replicated relative grip from a deep copy to a shallow one.
 is to avoid overriding important local only variables.

4.19 Only Plugin Changes


Blueprint cleanup with pure/callable node choices, some nodes were returning multiple variables making
it more likely that people would abuse them and multiple call them as pure, converted these to callable.

OpenVRExpansionLibrary added "GetOpenVRHmdType" node that breaks down to the specific headset
connected in OpenVR.  is due to the module reporting as SteamVR type always.
I will need to manually added headsets in here as new ones come out, its a shortcut service
for my users.

Greatly reduced the characters CPU load when updating to the physics thread, removed one ticked update
that I had caused and three that Epic had caused that were extra.

Moved the application of the Input data to the control rotation to the character movement component.
 is so that I can have correct rotations prior to moving the character. Typical engine behavior
is to have the rotation done in the player controller AFTER all movement is applied,  can cause
issues due to our offset movements.

Converted the OpenVRExpansionLibrary device oriented nodes entirely over to index's and added some
Getter nodes for type / specific devices.  brings my node library directly in line to being compatible
with epics one as well as clears room for vive pro and devices where trackers and the like are activated
out of normal order.

Changed bIgnoreSimulatingComponents to just
ignore PhysicsBody channel objects for the floor check so I could avoid
the multi sweep I was doing (slower) before. If you intend to use  functionality
instead of just removing collision then be aware that the objects need to be on the PhysicsBody
channel now.

4.19 Template Changes


Secondary grips moved to client side and pre-checked, also secondary checked before primary.

Many other BP changes and cleanups for the characters.

hello I try the plugin in 4.18, but the engine crashes very often when I change something to blueprint!

for example i add a flip flop node to vive character no matter where compile and engine crash!

Its because of an engine bug that they introduced when using a c++ character with a BP subclass that also has its own BP subclass.

Just deleting the FPSVive_PawnCharacter will fix it for you for now, or going into project settings and unticking “Use BP Compilation Manager”.

Its fixed in 4.19, likely won’t see the fix in 4.18 unless they release a standalong hotfix.

Finished some VRSlider additions the last two days.

How i can to reduce Movements Modes? i want only 2

Well you likely want to remove the cycling anyway, but you just set the enum to which one you want. You can rip out the nodes for the ones you don’t use to de-clutter the workspace as well.