VR Expansion Plugin

Thanks for your reply,

After other tests, it seems that events are called, but the end overlap is firing right after the begin one :

LogBlueprintUserMessages: [MyCharacter_C_0] ON TP! : Plaque_TP_BP
LogBlueprintUserMessages: [MyCharacter_C_0] OFF TP!Plaque_TP_BP
LogBlueprintUserMessages: [MyCharacter_C_0] ON TP! : Plaque_TP_BP
LogBlueprintUserMessages: [MyCharacter_C_0] OFF TP!Plaque_TP_BP
LogBlueprintUserMessages: [MyCharacter_C_0] ON TP! : Plaque_TP_BP
LogBlueprintUserMessages: [MyCharacter_C_0] OFF TP!Plaque_TP_BP
LogBlueprintUserMessages: [MyCharacter_C_0] ON TP! : Plaque_TP_BP
LogBlueprintUserMessages: [MyCharacter_C_0] OFF TP!Plaque_TP_BP

Can’t understand what’s going on

Is the trigger causing an event of some kind? Or is it held by a controller? I was getting perfect behavior where I could even manually step in and out of the border to trigger the respective events.

Hey
you mention that makes your project multiplayer ready, how would you go about making your project multiplayer? is it built into the plugin or if not do you have/ know of a good tutorial to set up a multiplayer sever using your plugin?

Thanks in advance

The components replicate themselves, so you would set up a multiplayer game like any other and be sure to run grip commands on the server.

By grip commands what do you mean? like the logic for a player picking up an object ?

If you handle the gripping yourself then you have to do the multiplayer management of it. If you use the plugins grip functions they do it themselves.

For movement it uses the default engine replication for characters slightly modified to handle VR players.

oh ok, I noticed in an earlier post you said you have updated the grip functions. may be a n00b question but does your plugin update automatically?? if not how do I get your latest version of the plugin?

From the github link, you download the zip or check it out with a git program.

and then copy and paste it over the original plugin folder i have made?

There are full instructions on the bitbucket, follow them and you should be good.

Pushed a new commit - Documentation will be updated tomorrow


**10/17/2016**- Server side movement added back in (optional)

Made TickGrip function (handles grip movement) faster by not TArray indexing a hundred times and working off of a pointer instead.
Normally with a real array  would be a net loss but looking through TArray's indexing code it is far heavier so should be a net gain (though insubstantial).

Added in optional server sided movement options to the grip function (client side movement still default)

Added in new vrgripinterface functions (Stiffnes/Damping/Movement Replication).

Added in a boolean to turn on movement replication merging for vrmovementcomponent (bAllowMovementMerging).
Off by default as it may cause hitches in high player count servers, can be turned on to lower bandwidth requirements at the
possible cost of the potential for server position corrections (haven't had it happen yet but the potential should theoretically be there with it active).

Fixed some addition transform bugs, added a helper function (MakeAdditionTransform) so that you can calculate it once if you intend to lerp between it and a null transform.

Fixed some InteractionSettings bugs.

Latest info video

I forgot to talk about adding back in server side movement (as a non default option) and exposing the late update settings to the grip function for more control. Also the plugin is no longer an OpenVR exclusive plugin, if compiling for a non SteamVR platform it will simply not compile the SteamVR specific code. Can be used on mobile and oculus platforms now.

Hi ,

Been enjoying your VRExpansionPlugin, it is brilliant.

Some quick questions:

Is it normal that when reparenting the 4.13 VR Pawn to VRCharacter the thumb-rotation and controller-roll-rotation stop working when teleporting?
For some reason, when I pull the triggers, I get moved sometimes sideways, depending on which way I am facing. Pressing the grip buttons also moves me sideways sometimes. It is hard to explain, but I have tried even in a blank project and it is just really strange. Maybe I am setting something up wrong or Steam VR is being wonky?

Thanks, and I hope my questions aren’t too vague.

Best,

If you mean the template pawn, it spawns two extra controllers outside of the VRCharacter which has its own controllers and it handles things differently. I don’t remember what trigger and grip do in that template but you may be colliding with the spawned in controllers somehow? The VRCharacter uses full capsule collision so if you are running into something that is set to block a pawn it will stop you and “slide” on the obstacle like a normal character would.

I think the capsule is currently set to ignore everything except for static channel objects as well.

I wouldn’t suggest trying to reparent the 4.13 template pawn to a VRCharacter but rather copy over the blueprint code you want to the VRCharacter, it will make sure that you aren’t using the wrong systems. If you want to use the controllers from the template you can set the ones that come with the VRCharacter to not tick, keep in mind though that the default controllers don’t have any of the plugins functionality for replication or gripping.

Ah! Excellent info here , thank you. I have a strong hunch it is indeed the collision of the controllers colliding with the VRCharacter capsule now that you mention it.

I will try your suggestions today, they make a lot of sense.

Kind regards,

Hi !
Very good job with plugin !
I successfully set up the movement of my character but i have trouble implementing the grip functions. I don’t understand segment from the documentation "All actors to be gripped currently MUST have a UPrimitiveComponent derived component as the ROOT component "
I first think i understand but i dont know how or where i can achieve with the actor i want to be grippable. When i want to add a component, i dont seem to find UPrimitiveComponent. I feel that i am missing something very simple here but i ve been stucked
for almost two days now lol

Basically the first (or only) component on the actor must be a primitive (not just scene component). is because I have no way of knowing exactly what you want to pick up when picking up an actor so I pull the root as the target. Static meshes, skeletal meshes, basics shapes, these are all primitive components already, you just don’t want a “Scene component” as the root unless you are going to use the “GripComponent” function instead which allows you to target specific components.

Ok thanks !
Are there any templates i can find in order to analyse how it works ? Because even with the documentation i am having trouble making it work properly.

The SteamVR template in forum section uses it for one of the pawns.

My example project won’t come out until I am done freelancing for a bit.

Ok i ll go check the SteamVR template thanks

Pushed a new commit


**10/21/2016**- Added 4.14 preview 1 support

Added cross compatibility between 4.13 and 4.14, due to Enums changing behavior I foresee having to lockout the 4.13 compatibility after 4.15 as I already cannot use 
the new formats on 4.13 that 4.14 is starting to require.

I personally see 4.14 as the start of true VR support in the engine anyway.