VR Expansion Plugin

hi thank you for all your help but when I copy and paste the vr character from the template he just falls through the map.

all I did was import my level into your project.

The regular demp level the guy can jump and walk but in my level he just falls through the floor.

How can I use the demo level character in my level without any issues?

By default the VRCharacter is set to only collide with the Static channel, your level must not be on the static channel. You can move it to that, or enable additional collision channels in the pawns capsule collision settings.

me and my soon ended up fixing the issue…it was silly…we had no floor… we just laid the corridors we made onto the see through lines. we ended up copying the map over to the default level and notice the guy falling off after your level. at rate me and my sons game will come out the 31st of nevuary but we sure are having a great time figuring it all out.

we noticed in your default level the pawn can pass through some objects in keyboard moving mode, like the table with all the hand held cubes, but it cant move through certain other objects, the pawn is the same way on my level also, it can pass through certain parts of the corridor and cant get through others, the pawn on our level says bad size also, is it because I didnt scale my my meshes down?

It says bad size because there is no room for spawning with the default player spawn, its not really a big deal, i have a VRPlayerSpawn in 4.20.

How did you make the slider component as solid as you did. Physics constraints dont seem to be as stable as i need for some objects. The doors kinda stretch from there henges, and drawers stretch off of there track. I know you have components for some thess objects but i really need more control over some of the components im making and i need them to stay inside there constraints.

There are many settings on constraints to increase stiffness and correct for over movement that you can adjust, the center drawer in the template for example was left as a physics constraint and the cabinet doors are physics constraints.

As for the slider, the slider/lever/dials are logic driven, they aren’t simulating and are hand coded to behave how they do. All of these manual logic interactibles use the Custom_Grip grip type to perform scripted logic.

Pushed a commit to both repositories.

A note on GripScripts btw, they need significant testing prior to merging into master, I will be making an overview video about them but need people to test on their
branch if possible and provide feedback.


**GripScripts mostly final form has been added to 4.20 GripScripts Dev branches in
both repositories. They need some testing and to be put through their paces prior
to merging into the master branches.**


Initial knuckles porting and profile setup - (not public for awhile)


Skipping some calls to slightly speed up nav agent retrieval


Adding OnFinishedLerping events to the slider and lever
Also enabling throwing slider progress events during lerping by default

Added dial lerping, lerping speed, Finished lerping event
Also added SetDialAngle function


Corrected the HMD offset for the dynamic navigation mesh generation with
a VRRootComponent.


Correcting an oversight where a grip could not simulate on client side
if replicate movement was never on the object.

Also if a child component is supposed to simulate on drop, we need to also set it clientside
if the component is not the root component, non root components do not replicate simulation
state by default so in that case the client also calls it now.


Defaulting welding to true for plugin attachment operations, didn't realize that the
default setting is inverse between c++ and BP.

Fixing socketing by adding a one tick delay after the socket and re-applying
the relative transform.  is only done if both the parent and the child are simulating
and is only there to avoid a race condition with the physics thread where the
original grip constraint can reset the transform out of order prior to destruction.


switched sweep detection on grips to component multi instead of sweep single.
That function automatically accounts for the pivot offset / collision local pose.


Worked around a physics replication issue that
Epic introduced in 4.20, physics replication period is acting kind of badly now. They moved to
a different (more efficient) system of handling the simulating position replication that
they ported from Fortnite, however it has some little issues like not ending a targeted
physics frame position setting when replication is turned on/off / when simulated or 
unsimulated.

Just uploaded a last full binary package zip for 4.19 with ported back fixes from 4.20.

Any additional back porting of fixes for 4.19 will remain on the locked source branch only so I can remove my 4.19 installation soon.

plug in a great, we havent even got into everything yet.

we are about to try to put arm and legs on the character and was wondering if there was some IK feature here? or can we use any IK tutorial to use it?

Any IK tutorial / plugin should work, you may have to adjust them for the specifics of the plugin (IE: attach to the parent relative attachment).

Specifically the one I saw you talking about with VRMarco would require that as it wasn’t meant for roomscale.

oh ok, I am a little confused on to which blueprint needs to be edited, When I hit play, the FPS guy comes out and I can move with the WSAD but thats just for editing which blueprint is the one that we are suppose to add the code to to see health and such on the final HTC VIVE controls?

Im guessing the FPS is not the vive that will be used in game to actually play the game, if we edited adding widgets and health meter stuff would it show up on the vive guy used to play in game?

You would have to add it to the base character class, FPS_Pawn is just a subclass of that one for FPS testing.

Posted a new informational video about the new plugin feature coming out (Grip Scripts)

so your default weapon base blueprint, is the one we copy and use to build our own weapon?

I imported a rigged weapon and it came in as a skeleton mesh I then made it into a static mesh, and try to put it in but it doesnt work

when I change the static mesh on your blueprint the gun loses all its functions when I hit play it just floats I can grab it but it falls down and through the floor.

I thought I could just change the mesh and build on the base one?

You can, it sounds like like you have improper collision on it or something went wrong with your conversion. You can spawn a GrippableSkeletalMeshActor and use that instead with your original skeletal mesh.

How can I setup the level blueprint such that it starts the level with the pawn on a car?

Do you even need a full pawn? Or is it just a racing game?

If you need a full pawn then use the SetSeatedMode on load on the car.

Hi and other developers-

I’ve been exploring using tool for a game I’m currently working on in VR. It’s our first VR experience, but we’ve run into a sort of roadblock. Our game requires us to have a pawn with a single skeletal mesh that can be manipulated via the HMD and the motion controllers. It seems like the VRSimpleCharacter is exactly what we’ve need, and I’ve implemented some IK logic in the mannequin included with the third person template that works for movement. We have a fairly significant problem, however.

I added my VRSimpleCharacter to the project, gave it a mesh attached to the camera, and dropped it into the world with updated animation blueprints. However, the camera it uses is not the camera attached to the pawn, but rather a different camera that can be controlled with the arrow keys. When I went to fix by adding a gamemode and changing to the included player controller and everything, my camera worked but suddenly my mesh was broken. Are there any available examples of characters built with plugin that have sort of movement- one skeletal mesh attached to all three control points?

I tried looking through the wiki but couldn’t find anything. I’m somewhat of a novice at all of so I apologize if someone has already asked or if my question has an easy solution.

Hi , thank you again for the plugins and example project.

I’ve attempted to package your example project in 4.20 but unfortunately received errors when I try to package with ‘cook only maps’ unchecked in the project settings (log is attached). However when ‘cook only maps’ is checked, package is a success.

What could be the issue here? Hoping to be able to get a package out with the setting unchecked. Any help would be appreciated!

Assertion failed: !PinRef->bWasTrashed is a common and re-occuring assertion on packaging since engine version 4.15 or so. There are multiple bug reports with fixes committed for different variations of it. Congratulations you found another one! It appears to be a stale trace pin somewhere in the blueprints where it doesn’t know what kind of trace it is doing, there are no hints of exactly where but if I get time tonight i’ll try to load the engine with debug symbols and track down the name. It may be in old content imported from the original Epic template that I didn’t delete since its obviously something that is never used in the maps.

Yes it is very common to run an IK skeletal mesh on the two different characters, I can’t comment on specifically what is going wrong with yours since “it breaks” isn’t very descriptive and its just down to whatever logic you implemented for your IK. I’ll note that while I have the simple character move with the HMD linearly, I do not have it follow in rotation, so if you want the mesh to auto rotate with the HMD you will need to attach it to the ParentRelativeComponent. That is the main difference between the simple character and the full one, the simple one moves with the HMD while the full one does not and retains the default offset.

Your first issue was that you were controlling the wrong pawn (your gamemode was setup incorrectly), as for the plugins player controller class, while I suggest using it since it provides a couple of extra features and allows the navigation movement, it isn’t required to actually use the characters.