Single/Multiplayer, Touch & Vive blueprint only Template

Thanks for all the work you have put into this, much appreciated!

Some bugs I’ve found in the version 4.0. I’m only using ‘your’ avatars, not Oculus’ ones.

  1. Blue teleport box/arrow remain on screen.
    This one can be quite annoying sometimes: the teleport point, arrow and/or box sometimes remains on screen (to be clear: in VR too) after teleporting. This is only happening when using it multi user, no problems in single user mode. Teleport once more and the stuck teleport objects disappear mostly, but the new one(s) might remain on screen. These stuck teleportation boxes/arrows are only visible at the client side, not at the host. When in 3 user mode (host + 2 clients): same thing, stuck teleportation objects at the clients, not the host.

  2. Head color problem.
    [Edit - partially solved: solution added by (added delay in blueprint), but it still happens in 3 user mode] Tested: host has a Rift, client has a Rift. Also tested: Vive host, Vive client and Rift client (3 users in total). Steam connection. Host chooses the default blue avatar, client chooses a green avatar. Host sees client with a green head and green hands. Client sees himself (in a mirror) with a blue head and green hands. Seems to be solved in 2 user mode. When in 3 user mode, client 2 is shown to client 1 with a blue head and green hands.

  3. Vibration problem.
    Tested: host has a Rift, client has a Rift. Also tested: Vive host, Vive client and a Rift client. Steam connection. When client interacts with an object, his left controller vibrates, but his right doesn’t (although picking up objects with the right controller works), or the controller doesn’t vibrate at all (Rift). Host’s controllers vibrate both left and right as it should.

  4. ‘Old’ head remains on screen after leaving session and entering again.
    Tested with Rift and Vive headsets. Steam connection. Host and client are in the same room. Client leaves session and joins the match again (host is still in the same session): client’s ‘old’ head is still on screen. Sometimes his ‘new’ head is not shown, the host only sees his hands.

  5. Screen gets black as soon as client 2 joins a match.
    (I need to do more extensive tests on this one.) Tested: Vive host, Rift client 1, Vive client 2. As soon as client 2 joins, client 1 gets a black image (fades out). When client 1 or 2 teleports the image is back again. This may be a player start + relative position in the physical room problem: maybe client 2 is in client 1’s head?

[Edit: solved] I’ve tried updating my project to 4.20.1: I had to rename to some sections in DefaultEngine.ini to be able to package my project. In single user mode everything seems to work, but in multi user mode there is a problem: the teleportation square, dot and arrow is missing at the client side (host has no problems). At the client side you can only see a very short ‘beam’ where you are going to teleport.
[Edit: solution] In your project, edit config\DefaultEngine.ini. Rename [/Script/Engine.RecastNavMesh] to [/Script/Engine.NavigationSystem.RecastNavMesh] and rename [/Script/Engine.NavigationSystem] to [/Script/Engine.NavigationSystem.NavigationSystemV1]. Go to Project Settings - Engine. In Navigation Mesh - Runtime enable Force Rebuild on Load. In Navigation System: enable Allow Client Side Navigation.

Can you look at these problems please? Number 1 is the most annoying one.

Big issue!)

Steam not working
Update: I think it’s problem by multiple sessions from AppID.

New issue - IP Connect Menu: EditableTextBox has no events (IP always will be default: 0.0.0.0)

Can you program a ‘reset objects positions’ function? Sometimes an object is ‘out of sync’ in multi user: the interactive object is at one place at the host, but at another place at the client. The client is unable to pick it up, since it is not really there where the client sees it. A ‘resend positions’ or ‘reset to initial positions for all objects’ would solve this (on a button, or automatic resend positions every 10 seconds?).
[Edit] This happens mostly when one of the users has a wireless connection: I guess due to more network dropouts (stutter). Using cabled connections this issues happens a lot less, but it still occurs. Workaround for now is to let the host move the object a bit so it updates at the client. But a reset / resend button would be nice.

, since some months ago I’m running the template with Unreal on Mac, and building it for both MacOS and iOS. My master thesis is focused on mixing VR and AR, meaning I am currently able to enter MultiMap01 with an Ad-Hoc AR Pawn, and see in AR what happens between VR Pawns. I plan to release my work (which is a modification of yours) to the public as Open Source as soon as I will be graduated. Of course I would love to share what I have done with you, and exchange Ideas. I’m sure I could learn a lot :slight_smile:
If you or anyone is interested, PM me, as this is not strictly related to the current thread and not published yet.

Has anyone solve these issues?
Number 5 is a big issue for us as we are trying to do a 4 player game without teleportation.
Cheers.

Has anyone gotten to work with Leap Motion controllers? I want to use Leap Motion in a VR multiplayer project (4x HTC Vive with 4x Leap Motion), but I can’t even get it to work in with a single player.

When the latest template is downloaded (and installed according to the instructions) and used in the editor everything works fine. However, as soon as the project is packaged, the hands disappear. No error messages, nothing.

Any help/tips would be greatly appreciated!

Hey guys I tried packaging with PerceptionNeuron plugin, but I get this annoying error :
LINK : fatal error LNK1181: cannot open input file ‘C:\Users\m.bartolamei\Documents\Unreal Projects\OriginalProteusTemplate-master\Plugins\PerceptionNeuron\Binaries\Win64\UE4-PerceptionNeuronRuntime.lib’

It is obviously a problem with , since this plugin works fine in “Play in Editor” and in every other new fresh project I include it in.
The problem is that I do not know where to look to correct it. Has anybody ever experienced something similar?

so is this like a multiplayer template to play with others online with VR but only on 4.19?

@PRESSURE2000 The template should work fine with 4.20
@leadermax We have perception neuron kits here, I’ll have a look at the plugin
@jeremy.guijt.LY I’ve done a version with multiplayer Leap (think it was with 4.18), but it should be upgraded with the latest Leap plugin

Sorry for the lack of update, as our latest projects (since the last 2 months) were on Magic Leap, ARCore/ARKit and Oculus Go. That’s why I had 0 time to review the project.

If anyone is attending OC5 this week in San Jose, I’ll be available to review projects / debug.

If not, I’ll dedicate part of next week at looking at all bugs / 4.20 issues / new Oculus subsystem login plugin. Thanks!

Hello and Thanks for your great template.

I’m using your project as a reference for learning more about multiplayer and also VR.

I simply just created a blueprint pawn class and I’ve added a camera and attached static mesh for showing the HMD to that,

Then I’ve created one Rep Notify Variable to save camera transform and then use rep notify function to send it to other clients, and my setup in Tick and also rep notify function is like yours, but the problem is when I run my pc as server and my other laptop as client with another simple pawn(in non-VR mode), I can see the client movement in the server without any problem and also in client side I can see the VR pawn movement but in the log file I found there’s a warning in each tick about “no owning connection for actor…”

I’ve searched google for this error but I could not find any working answer for my case, that would be great if you can help me to find a solution.

This is the warning:


UIpNetDriver::ProcessRemoteFunction: No owning connection for actor BaseVRPawn_C_0. Function SetHeadPosition will not be processed.

nice to see you back! it was a problem with perception Neuron’s plugin! after some days of discussions with their tech they sent me a different plugin version for UE4.19 which is older than the one published on their website but works

I have this problem too if anyone can help that would be great, I think the reason is the client trying to set something like transform for other actors that not owning, but I don’t know how to fix this problem

Hi! I love this template! But I’ve had a couple of issues and, while I’ve resolved them, I think maybe there was a better way to do it.

**My first issue: **When starting a game, my Avatar pops up at the Player Start 1, but then moves to 0,0,0. I noticed that there’s a function “Set Start Position” that fires at the end of the spawning process. It seems to be moving the Pawn to “Player Start Position” transform in the VR_PlayerState. However, as far as I can tell, the Player Start Position never changes from the default of 0,0,0, so that function is just moving me to the middle of the world.

I disabled the function, and now I spawn correctly at PS1.

Was this the right thing to do? Or is there something I’m missing?

The second issue:
When the game starts, it spawns an Avatar, then Respawns it. This is supposed to destroy the first Avatar. However, it’s leaving a copy of the head and controllers models floating in space.

I found the EventDestroy event for the Avatar, and it destroys the ControllerBPs, but doesn’t destroy the Head. So I added this.

But the controller models were still being left floating in the scene. I found where they’re supposed to be destroying the models, and it’s only set up to destroy the Vive and Hands meshes. So I added a new variable for the Oculus Touch mesh and set it to destroy:

Did I do the right thing with these? Or is there something simple that I’m missing? It seems strange to me to see these bugs (if they are bugs) in a frequently-updated template like this. So I suspect something else is happening…

I’d love to know what it might be. :slight_smile:

Thanks!

Oh! I forgot one other issue.

My Touch models were facing the wrong way in-world. Changing the orientation or scale in the TouchController BP or Skeleton didn’t have any affect. So I ended up forcing it to turn 180 upon spawn, in the MotionController BP. See below.

Am I missing something here either?

Thanks!

Looks like you’ve found solutions for bugs 4 and 5 I mentioned in my post #441…! can you verify this please?
Do you have a solution for bug 1 perhaps? The first screenshot in your post seems to be missing, can you re-upload that?

I edited my post to fix the first image. I’m sorry, I don’t have a fix for you for your issue #1. I haven’t gotten far along enough in the process to encounter that error.

@
Hi! Thank you so much for providing . I’ve been working with this for almost two years now and our game is almost finished.
I want to release the game (the demo for now) on Steam, is there anything I should pay attention to? How should I credit you guys? Do you want to see the final game?

For people who were trying to figure out how to make the TELEPORT ANGLE work a little more intuitively:

If you set it to “Using Teleport Rotation from Controller” (in VRsettings), then you can add a bit of code to the Avatar function for rotating the teleporter. See below “Make rotation relative to avatar rot”

This will make it so that, regardless of how the avatar is rotated in the scene, a neutral controller rotation will give you a straight-ahead teleport landing angle. Instead of requiring extra twisting of the controller to try to find the right angle.

If that makes sense.

Hi All! Just starting to dabble with UE4 and this amazing VR template. How would I go about making the other objects in my scene cause the camera to fade to black while colliding? Works great on the Interactable objects but I can’t seem to get the same affect from purchased assets. Any help would be greatly appreciated!