VR Expansion Plugin

I may re-think how the limits work with interaction enabled components, it is a little messy and overly complicated at the moment. But with how it works currently you would want to set the MINIMUM limit, that is how far in the negative direction that it is allowed to go (relative to starting location). Maximum limits only effects positive movement. The naming is…not ideal, and I would like to restructure it entirely eventually but since it works atm I have been looking at other things.

Probably I should throw out the starting location and just keep minimum / maximum values instead, think that would make more sense in the end.

Oh no way, I can’t believe I missed that. My bad - I miss-understood what the minimum limit did. Thanks for the quick reply!
When testing out the limits in positive values the interaction with the motion controllers has been so smooth.
Can’t wait to try it out evening. Thanks again!

Using GetOrientationAndPosition and offsetting my actor plus “stereo on” after character class is valid does work for my purposes of staying correct to the hmd location in roomscale with SimpleVRCharacter at BeginPlay. Thanks for that. I’m curious to know though what the “soft rules” are that you are breaking with the VRCharacter because it looks like it is a little more appropriate for my setup with it’s ability to offset capsule. I’d like to offset the capsule to a derived pelvis location. All is working with the SimpleVRCharacter, but if it doesn’t sound too dangerous, I think I will switch over to VRCharacter for the more versatile capsule treatment.

Oh ****, duh. I haven’t started my project yet, was just curious after reading lefty plights online. Good to know. I prefer hand agnostic style.

Well technically the root component is supposed to be the “root” of the actor and is regarded as the zero point of it. The VRCharacter offsets the collision and movement foot position to a relative location from that zero point. Its possibly more unstable because it means I had to go in and manually revise most of the movement functions to make it work, it also accesses the physics thread every tick to re-position the physics collision capsule to account for it, all means that it is slightly more CPU intensive than a standard character (though barely).

That being said, should VRCharacter prove stable longterm, I prefer it over the simple one as it opens up more possibilities.

Edit Also sorry to everyone that plugin updates have been slow past two weeks, I have a big project at work that is taking up a lot of time. Will have plenty of time over my two week vacation coming up though to bash out some new stuff.

Thanks for making awesome plugin :slight_smile:
One question please: is there a way to change the mass/speed of the thrown objects? I’ve tried changing the mass scale but it doesn’t seam to have any effect. Thanks!

The issue with vr is that unless you want to add latency/slowdown to the movements of held items they are going to be affected by an infinite mass / infinite force influence (the controllers), players have no actual force feedback so they don’t get slowed down by the weight of objects and it is unnatural to have it happen because of .

If you want to simulate drag on heavier objects you can change the release velocity of them based on their mass, there is a “Optional linear velocity” / “Optional angular velocity” option on the drop node where you can plug in the velocities you want, so you could take the velocity of the released object and scale it by an amount based on its mass to simulate throwing heavier objects less far.

I didn’t automate because it is heavily gameplay influenced and there are a ton of different possibilities.

If you wanted to fake difficulty picking up heavy items you could also lower the stiffness of a physics enabled grip way down to where it does not easily rigidly hold an object.

Hey , just letting you know that there seems to be a small problem with the move to AI node when using the VR pawn. At the end of the path the character freezes for a couple of seconds as you can see from the video. The problem is probably the Z distance from the goal from what I can understand.

I will work around it by adding a service in my behaviour tree that aborts the movement command

You are using AI nodes for a VR pawn without a possessing character? Is there a reason why its a VRcharacter?

I’m just curious because I didn’t touch AINavigation in the VRCharacter due to not seeing it as likely to be used, the Simple Character should work with it out of the box. If there is a common use case for AI Navigation for the VRCharacter I could probably go in and fix it up.

@
Thanks for the quick reply, I’ll check out your suggestions. My main problem was that, when I throw a large object, it lands almost right in front of me and I couldn’t find a way to make it lighter.

Thanks again, hopefully I’ll dig out some solution with velocity change.

Oh you actually had an object heavy enough that the physics constraint couldn’t move it? Or did it move with your hand normally but just fall down when released?

If its the latter then you may be passing in a really low Optional Velocity to the object causing it to just fall down, because if it moves it should be able to be released with the velocity of the movement just fine.

Sorry for bringing back your deleted post but I wanted to actually respond to it.

The VR Player Controller overrides the PathFollowingComponent to be one that uses the correct offsets for vr, if you are using an AIPlayerController it doesn’t do so the path following will all be based off of the actors zero point. I could make a derived AIController that forces my path following component but I don’t want to bloat even more classes into the plugin unless it is really needed and I actually think would promote bad practices.

Currently for the functionality you desire you could:

  1. Manually path there using the movetolocation/extendedmovetolocation nodes on the vrcharacter

  2. Use a simple character since its zero point is still the actors zero point

(better)
3. Use a different character for the ai controlled pawns that is replaced when possessed, would prevent the overhead of all of the extra components and on tick events. AI is already fairly expensive and you really shouldn’t be adding more cost to an AI pawn if at all possible.

I deleted my comment because i realized that i was using an old version of the plugin without the simple character. I just downloaded the plugin again, re parented my characters and it works great

Hi, I have a quick question here. When I enable simulate physics on the VRRootReference it throws my character super fast into the air. It does that even on a “virgin” VRCharacter. I’ve tried every movement modes in the VR movement component but the problem remain. The idea here is that I want to climb a wall and throw myself into the air to climb another wall. Without simulate physics on the VRRootReference capsule my character does not have lateral movement when I throw myself. Any idea how to resolve ? Thank a lot for your good work!

Go into flight movement mode and add velocity (character movement add impulse / add force) in the direction you want to go…don’t use simulate physics on a character with a movement component for VR. When you turn on physics it locks out the movement component from control and acts on its own, will be terrible for VR.

Hello,
I tried FPSVive_PawnCharacter and it works, except the rotation. There are InputAxis Turn and LookUp, they’re hooked up to Add Controller Yaw/Pitch Input, but the camera stays locked. Why is it locked? Is there an easy fix for ?

Its not locked for me, do you have the camera ticked to follow HMD or something?

I do all of my testing when away from home with that character.

Quoting myself because there is a better way, go into falling movement mode instead and add impulse / force upwards for the self thrown vector, then it obeys gravity and transitions to walking mode on landing.

Literally spent the last two weeks avoiding plugin - because I didn’t like plugins - even though SteamVR is a plugin itself…

So I fidgeted around with the VR Template and attempted to get everything to work properly…

So very glad I came back to download . Cheers m8!

Going to get some things added / worked on tomorrow as I have some free time then. Still plan on a lot of work over my two weeks off but that is still a week off.

I’ve attached my child blueprint to my Parent Relative Attachment, and I’m able to grab it and use it fine from there!

However, when I drop it; Is there any way to attach it back to where it was?

Make some sort of socket system or have it remember its last location relative to the parent relative attachment.