Single/Multiplayer, Touch & Vive blueprint only Template

@CSanderman

Usually you encounter this when you did not define a NavMeshBound Volume, since teleport project on it.

Simple solution: Put a NavMeshBoundVolume.

Complicated solution: modify the teleport function to teleport to something else (i.e. plane surfaces) without referencing a NavMesh volume.

Good news: Unstuck with Oculus compatibility. Seems that I had to modify PlayerController post-login settings to make it work.

  • Awesome! Does that mean there will be a revised and reuploaded template?

@CSandeman

For now I recommend very strongly to use the template with 4.14 since it’s on this version that I’ve developed it and tested it. I don’t think it will work directly with 4.15.

Seems that Oculus Rift initialization is a bit different with 4.15-packaged programs. I just lost few days finding all the bugs but now it’s ok. Wait for my new template before using it with 4.15.

Yep I am using 4.14.

I’m so close! I threw in a NavMeshBoundVolume into my level. I am now able to teleport but the teleportation arc is stuck. Is there a specific place I need to put the NavMesh? I basically copied how you placed yours in the MotionControllerMap. Thanks so much for your help I am really loving this template.

@CSandeman

This can be many things, all located within the BP_MotionController. I don’t recall having changed any teleportation function (everything under “Teleportation” in the functions list.

What I would recommend is to compare these functions to the ones found in the Epic VR template. Check if you missed something.

Look also on the components on the left, and check if everything is attached where it should be (arcspline, teleport cylinder, etc).

Finally check also if the SetupRoomScaleOutline function, I tweaked it a bit to accomodate Oculus Guardian.

Oh and one last thing I don’t think you work with the latest UE4-source version ("labelled as 4.16) but in future versions the function Project Point to Navigation will be updated and thou could cause a NavMesh projection problem if not changed.

@CSanderman

Finally, I’ve a strong feeling the problem is within your GrabSphere. Be sure to Generate Overlap Events, and OverlapAllDynamic, in the Collision settings

I find a lot of the issues I am running into deal with the collision settings. Whether that’s within the static mesh blueprint settings or project settings. Prior to incorporating the Oculus touch to my scenes, I would go into the project settings -> Engine - Physics -> Simulation -> and change the Default Shape Complexity to Use Complex Collision as Simple. Now obviously when I incorporate interactive blueprints this does not work. Do you have a better understanding of what project settings I should be using for the Shape Complexity? And then change the static mesh collision complexity on each individual static mesh?

Sorry for all the questions - just finding that most of the issues I am running into deal with the Nav Mesh Volume and the Collision settings.

thanks for all your help

@CSandeman

Usually I prefer working on collision on a per-mesh basis. Remember that less complexity is always better because complex collision meshes eat CPU at breakfast.

For the template the easy way I / Epic did collision detection (for grabbing and rumbling) is to use a collision sphere capsule attached to each controller, while the controllers and associated meshes don’t have any collision enabled.

You could also discard the sphere collision capsule and use the Physics Asset on the Mesh (Hand, Touch or Vive mesh) to attach some collision capsules to some bones.

Usually unless precision is not important I prefer discard initial collision envelope, and create a complex shape or, better, use a collision from static mesh.

That way, I don’t mess with Collision complexity Settings and simple collision requests use simple collision, and complex requests use complex collision; the “default” behavior.

From the image you provided it seems that your teleportation arc is stopped by colliding with something. Try turning on collision (Show Collision or Alt-C) to check that.

any idea, why none of the grip axis(for both Left and right controller) and grip2(for both Left and right controller) event node is getting executed ?
only grip1 event node works for both controller.
i am working on 4.14 binary build.

Hey , love the template!

I’m running into an issue. I’m wanting my Touch controllers to be able to grab a cabinet door that has physics and physics constraints (so that it swings like it’s on hinges) but the doors just don’t want to be grabbed.

Couple questions:

  1. I’ve copied the blueprint from a pick-up-able object to the doors. Where can I plug in a physics handle in there?
  2. Is there another way to do it?

Any help would be very appreciated!

@Muzaheed

That’s the way Epic mapped the Oculus Touch input.

“MotionControllerGrip 1 Axis” = Oculus Touch “Hand Trigger” and also HTC Vive Grip left

“MotionControllerGrip 2 Axis” = nothing Touch but HTC Vive Grip right

I’m working with 4.15 right now and you can map directly the Oculus Touch inputs. However I did it this way to facilitate mapping visually the input for each controllers

@Hoopera Ah physics constraints. I must say I worked with that but not in VR. But I don’t think there would be a big problem with it.

There’s a chapter on it in the new mitchemmc book and also on its youtube channel.

Know exactly where are your collision capsules and their interaction with physics objects

That’s the best advice I can give you right now. As soon as I have few hours ahead of me I’ll put a door in that template! You can take my word.

@jbusfield Are you talking about multiplayer, physics-objects?

It’s a problem in VR for what I know and experienced. From what I see in your picture the physics simulation is run independently on client and server, which is a correct scenario in certain cases. It should give slightly different behaviours of the simulated object between players.

Mixing Vive and Oculus shouldn’t be a problem.

I don’t know how you made the template multiplayer since I had to redo everything to make in multiplayer?

Anyway, I’ll release the multiplayer template tomorrow since I don’t have time tonight. Try the same scenario with the next template tomorrow.

hi. sorry. i forgot to say that i am using htc vive , not occulas.

thats node is not triggering for any of my htc controller

said>/// Anyway, I’ll release the multiplayer template tomorrow since I don’t have time tonight.///

Looking forward of this, thank you in advance if it solves my problems with multiplayer VR dev

Sorry! I meant to post this in mordentral’s thread. I’m looking forward to trying out your implementation.

** Template 2.0
March 9, 2017**

*Changelog

  • VR Multiplayer capable: works single player, LAN and Steam
  • Updated for 4.15
  • Fixed 1D Blendspaces for Hands & Touch controllers*

Sorry for the delay (I’ve received a lot of PM from individuals/companies).

I’ve been working all week on a sweet Lobby Map, similar to Oculus Rooms, but even if it’s 95% working there was still some glitches I didn’t like.

Figured that these glitches ran deep within code (related to having multiple 3D widgets in VR). So rather than spending maybe 2 weeks fixing it I decided to ditch the Lobby for now, and go directly from the MainMenu map to the main map of interest.

Important remark: As everyone know, multiplayer is an inexact science. Your performance/lag will vary depending on the quality of your network, and also on Steam if using it. Multiplayer in VR is a wild ride. I had fantastic sessions without lag, and at other times horrible lag.

Important remark #2: Pickup Cubes need to be improved to reduce lag on physics objects. I’m on it.

So now I’ll finish to adapt this template for Oculus Avatars, and I’ll release soon a Version 3.0, using Oculus Avatars (and Oculus Network).

Finally: I’m dying to improve the template and give it back to the community. You have improvements that I’ve been proven to work? Send me a message I’ll update the template

,

I’m trying to rotate the teleport arrow using gestures (turning/rotating) from the motion controller. I was able to get this working easily on template 1.0 but I am having difficulties recreating this in 2.0. In the first template I could target “Motion Controller” but in 2.0 there is MotionControllerL and MotionControllerR and I am unsure how to target both.

@CSandeman

1)Add MotionController Component and MotionControllerBP inputs to “Get Rotation from input”
2)Copy/paste " Get Roll difference since we initiated the teleport. (Allows Wrist to change the pawn orientation when teleporting)" function from Epic VR template, create the boolean “Use Controller Roll to Rotate”
3)Connect the wires
4) Voilà. Have a latte and enjoy. Dunno know why I removed that, I’ll put it back in an 2.01 update in 2-3 days

&stc=1

&stc=1

Hi , thanks for sharing your work it looks very promising and great contribution. I’m new to unreal so pardon me if my question is a bit dumb. If I choose to test the LAN approach for the multiplayer, where do pass the IP address for the machines that are trying to connect? I have closed STEAM package > windows 64 bit and one machine selected host and the other find match but no success.

Thanks so much and advanced
_G