VR Expansion Plugin

Generally constant corrections is either severe packet loss, or improperly moving out of line with the movement component.

I put out a question to my community on discord if they think I should move to two seperate events for server correction there, that is kind of confusing how it currently works.

Yes, im using the normal VRDial component. Heres the setup:

https://forums.unrealengine.com/filedata/fetch?filedataid=191743&type=thumb&attachmentnodeid=

However, has been changed since i last posted that messgae. I swapped it from 90 Counterclockwise to 90 clockwise, and what happended was even weirder.

It rotates 90 degrees clockwise correctly. However, despite having 0 on the Counterclockwise dial angle, it still moves 180degrees in the counter clockwise direction. is similar to before however, as i had 90 in the counterclockwise direction yet it still moved 180 degrees. I really dontknow whats causing it.

And no, im not using your oringinal example, was a component i added into an actor ( i couldnt screenshot it as it exceeds the limit 0f 585kb.)

Ok, thanks, I was able to reproduce. I’ll have to track down what is going on, it didn’t used to do and there aren’t many recent commits to that object.

I just pushed a patch that should fix that for you, let me know how it behaves now.

I also added a bUseRollover setting that lets you increment the dial to abstract limits on positive and negative direction.

[video]https://i.imgur.com/zyjoSsR.mp4[/video]

plugin is great and I want to thank for his extensive work. I am currently using the plugin for a project and I am making progress very fast. I have a burning question for the author, is there an easy way or maybe a suggestion to how the object grabbing from a distance can replicate on the server if the client performs action?

There are a few ways.

  1. You can use a LerpToHand grip script to have it lerp to the player post grip.

  2. Have a grip pivot at the end of something and then bring it in manually

  3. Lerp the object back and grip it at the end of the lerp.

If you are talking about the laser beam “toss” in 4.25+, then that is a bit more fickle, you would have to run the logic entirely server side and I wouldn’t do any of the hand adjustments that it currently does but just run it once so it maintains the arc. Otherwise you’ll have to get into removing its physics replication and running the logic on all ends, or syncing things.

Edit I did modify it a bit to be server side and use a client request, in the end logic would probably want to be in a manager component in the character or something instead of in the teleport controller, right now its a proof of concept for people.

Thanks for the quick reply. I was referring to the laser beam “toss” and I think it’s a very good mechanic. I will try to use your advice and make it work.

The very latest has a bit of a setup for that, though rough.

Hi again,

Hi again,
if you find the time, can you post some screenshots on where i find the armswing nodes? Still didn´t got there…

Thanks in advance and have a nice weekend!

Edit: ah i see in the new example template the left hand seems fixed. Nice!

https://i.imgur.com/BQNQJkd.png

The relative velocities are updated in one of the tick functions if the movement mode requires them. I have a task card to go in and change how armswing handles its facing soon as well.

Yeah thanks a lot, i´ll check it out.

Sounds lovely, i´ll let you know if i manage to get something going with that.
Peacepeace

Any quick guidance/elaboration on the custom move action you mentioned here? Using the regular crouch action and offsetting the netsmoother as you mentioned isn’t very viable for MP.

Thanks again in advanced, and again for the work on the plugin

You can do the PerformMoveAction_Custom with a set of parameters that you want. Then when the move action is done (inline with the character movement, so not right at the time of calling it), it will call Event On Custom Move Action Performed so that you can perform your custom logic based on the inputs.

If you know statically what you want the crouch to do, then I wouldn’t use any parameters for the custom move action in order to keep network bandwidth optimized.

I have a question; is it possible to have a fully phsyics player, like in boneworks or project TX? Ive tried and tried, but i cant get it working. I realised that the root being a capsule may prevent the full body collisions. Does nayone here know if its possible, or am i wasting my time?

Nimsony’s work and boneworks are vastly different, boneworks still has a capsule, your legs don’t really “collide”, it uses mostly physical arms. Nimsony attached a camera to a fully physics driven body mesh and held it together with contraints and drove it with physics forces.

Sure you “can” do it, going to be a ton of work tweaking to get it in a state that you like. They had a helping hand with a common unity physical animation framework that took a lot of the pain out of it.

You wouldn’t be basing it off of the character class most likely though unless you wanted to ignore the pre-built movement anyway or deal with a lot of custom force application to it.

Just wanted to say thanks to everyone for creating and iterating on the VR Expansion plugin. I read some of the documentation, was pretty upset that I had spent as much time as I did getting arm swinging and snap turn working on my own, then tried out the demo and was pretty blown away by the number of features it lets you try out (not to mention that super clean and smooth arm swinging locomotion). The only thing that was missing was turning settings for using direct locomotion rather than teleporting, but I already saw that it’s built-in in the docs, so I’m not worried about that.

It’s really strange to me that thread isn’t stickied to the top of the VR board, though. I struggle to think of a UE4 VR developer that wouldn’t benefit from using plugin. The hand IK/grabbing system alone…

After messing with the demo, I was able to confidently move about half of my current pending tasks straight into the “done” column. All I have left are features that are maybe a little too unique for a plugin, maps, and things like the UI. I’ll be getting on that Patreon right away.

Thanks again. work is staggering.

I would promote project to be the VR template for the blank UE4 VR project, instead of being a plugin.

If Epic had sense they would arrange for it to be the VR example project for Unreal 5!

I have problem with compilation.
(4.24 -> 4.25 migration. VS2019)
Grippables/GrippableCapsuleComponent.cpp : 51 row

2>Q:\projects\UE\DHC-Visualizer\Plugins\VRExpansionPlugin\VRExpansionPlugin\Source\VRExpansionPlugin\Private\Grippables\GrippableCapsuleComponent.cpp(51): error C2275: ‘USceneComponent’: illegal use of type as an expression

2>Q:\projects\UE\DHC-Visualizer\Plugins\VRExpansionPlugin\VRExpansionPlugin\Source\VRExpansionPlugin\Private\Grippables\GrippableCapsuleComponent.cpp(51): error C2248: ‘USceneComponent::RelativeLocation’: cannot access private member declared in class ‘USceneComponent’

2> Q:\pf\EpicGames\UE_4.25\Engine\Source\Runtime\Engine\Classes\Components/SceneComponent.h(154): note: see declaration of ‘USceneComponent::RelativeLocation’

RelativeLocation is really private variable. Can you help, please?

I had that too, trying to compile my 4.24 project with 4.25. Create a project with 4.25 and copy over your content.