BTW, do you have any tutorial/documentation on how to set up the plugin to work in a multiplayer game? I know the template has an example but I guess that you have to activate several things to make it work and I will have to replicate in my game.
I hope all is well. I was having an issue with the plugin, that i hope you could help me with. In my game i am testing the the ability to grab everything, so i left it the default values, but when i switched one of the controllers to ‘Dpadhover’ and ‘RunInPlace’, it creates what seems to be hovering in empty space and no gravity. I am not sure how to reproduce in any other level i have in my game, but i am trying to figure it out, i can post a video if it would make more sense. Thank you!
For the most part it works just like any other engine setup for multiplayer, the template covers plugin specific things but the setup in general is the same. I tried to keep the wokflow as close to vanilla as possible.
Edit are you talking about switching movement modes while climbing causing that? Sounds like you are stuck in Climbing movement mode, there might be a missed edge case for switching movements while climbing that isn’t covered in the template, its not really intended that games have all movement modes toggled by a button at all times as its actually kind of awkward, I just have that in the plugin for quick testing of the different modes.
I’ll look into it and see if it sticks to climbing movement mode when switching modes in some weird situation, otherwise its likely from you converting the character over and having a check missed.
I just checked, I deny movement mode switching during climbing, so the template doesn’t have a “changed movement mode during climb” check. Just put the pawn into falling or manually set them to the movement mode that you want / end climbing.
What I wanted to do is something more “natural”. You have an object in your right hand but you want to grab another object with your right hand so you switch hands just grabbing the object you have to your right hand with your left hand. Many vr games do (hope it make sense).
I have another problem. I have not tested a lot but when I’m running vr mode from editor and I select “Run dedicated server” it will launch the game spawning a “normal” actor instead of the vr actor. Why? It’s a problem of mine or it’s common?
…Yeah that is exactly what it does, “dropping” is just telling the hand to release it so that the other hand can pick it up without interference, if you drop/pickup on the same frame then it just switches hands, think of it like in real life where the one hand lets go when the other hand grabs.
If you try the template out every object can be swapped back and forth between hands seamlessly, the only things that don’t are two handed grip objects when you are gripping at a secondary point as it uses two handed interactions then. You just check if the other hand is holding the object when going to pick it up, and if so fire a drop command to that hand, and continue picking the object up.
Also the editor doesn’t support running in VR outside of the VR Preview mode, dedicated server mode may be broken in VR, I haven’t tried it as it generally isn’t fully functional anyway.
Thank you for your feedback. Just one more question, when i adjust the parent class of the movement BP to arm swing forsay, i get the controllers stuck on Teleport instead. Can you tell me how to adjust setting in your plugin template? Sorrry for the very noob question, im just a designer by trade.
In the template I have enums for the controllers that are set LeftControllerMovementMode / RightControllerMovementMode, when you press the grip buttons it cycles between these Enums, the movement logic changes depending on what the current enum value is for each hand.
When I free grip an object with a manipulation grip I am expecting it to create freely rotational constraint between the touch point of the grab sphere and the touch point of the gripped object.
What appears to happen is that the constraint is made to the location of the Grip Motion Controller instead of the touch point of the grab sphere. Also the orientation of the controller affects the gripped object and sends the object spinning madly.
When I try to counter spinning effect by making the object interactible with Ignore Hand Rotation ticked I get strange behaviour where the gripped object only behaves correctly when gripped at its origin.
Is intentional? I have a large crank wheel I want to turn by free gripping its circumference with the a rotationally free manipulation grip but can’t for the life of me get it working. It’s seems it should be simple.
I’m a bit confused. Its entirely possible I’m misunderstanding things. I’d appreciate some advice.
Manipulation grips offset is relative to where you grip it from, it makes a kinematic actor that holds the offset from the hand (the sphere location) and connects to the point on the object you are touching, it sounds like you are passing in an incorrect transform or not actually using the manipulation grip?
Also the manipulation grip does keep one axis of rotation, roll, as that allows for turning door handles and the like, but that shouldn’t effect a properly setup wheel.
You may want to turn off late updates on all Manipulation gripped objects, I used to force it off but decided that it was a bad idea to force any behavior like that. Late updates tend to break physics constrained objects like that as it will force them out of their bounds.
Thanks. I’ll go and check and double check the things you point out in my code. The problem with still having one axis of rotation still enabled with the manipulation grip is that a twist of the hand will turn a huge wheel right round, hence my experiments with Is Interactible and Ignore Hand Rotation (everthing else not limited, I’m using a physics constraint for the rotation.) does behave unexpectedly I think.
I’ll do a test in your template level and see if I can screenshot whats going on…
In your template level I set the free default grip type to be manipulation on the PotionMesh component in the PotionActor with no other settings changed. It behaves oddly (to me.) I’d expect it to just dangle there from the grip point (allowing for the hand rotation you mentioned.)
For me the gripped potion spins madly and appears to be attached to the motion controller component origin, not the grab sphere.
How strange. The only change from your downloaded template map was the grip type change to manipulation.
I wonder what I’ve messed up?
It’s 3:30am here, which probably doesn’t help me. I’ll experiment more tomorrow and post again. Thanks for your help, these issues are driving me nuts and now you and I seem to get different results on an identical project. What a headache.
Mmmmm, No I was able to reproduce by holding the very tip of the potion bottle, its just fighting the angle it wants to hold with controller roll. Removing the roll drive fixes it and it just swings loosely then.
I’ll remove the roll from the manipulation grip for now, it actually was never going to work as well as interactive components for that anyway consider it takes the controllers initial angle into account as well.
Edit I may have to look into manipulation grips root location for the constraint some, regardless I can’t push any changes live until I clean up some code for the Vive Puck and the Camera nodes tomorrow.
Thank you very much. Your post was my first ‘internet’ when I woke up and it has cheered me up lots! I’m not going mad after all.
EDIT: Also saw lots of BlueprintLog overlap messages when picking up the template gun on what I presume is your new stereo layer widget. Really cool. Made me feel like The Terminator.