@Joooe10, looks like you’re on a mac, I think VR is currently unsupported on the OSX version and the VR template is not included.
Hey, for you and anyone else who hasn’t been able to make network replication work, this is how I got it (In a player pawn/character):
-
On event tick (I know, I know), have a custom event called (ClientProcessHMD or whatever) that collects the current transform’s of whatever you are replicating, for instance the HMD.
-
ClientProcessHMD calls a custom event set to replicate on server (ServerProcessHMD), and passes the transform (and the current users pawn - aka self).
-
ServerProcessHMD then calls another custom event, set to replicate multicast to the clients (MultiCastProcessHMD), passing the transform and pawn again, then this event finds the HMD mesh inside the pawn passed along, and applies the Transform.
It’s not the most efficient way to do this, but I have spent days and days trying to find an alternative.
Some notes:
-
When you are doing player position, HMD position AND MotionController positions, it will get a bit chunky on the tick, so I made it count to 3 each time I did it, and only sent one of each per tick, so one tick sends player position, next sends hmd, next motion controller, and then start over again. This smoothed out everything quite a bit.
-
MotionController Component does not work for this…you have to use ‘Get Hand Position And Orientation’ blueprint node for each right/left controllers, and pass that transform. I use 0 index for the current pawn (I think thats how it works).
-
You have to use the above Client -> Server -> Multicast event structure to spawn the Pawns into the world also, so everyone can see each user.
LMK if you run into any weirdness, I will try to explain further, but know that networking is possible and works when this way.
@Shin_ji So I thought that the multiplayer issue was going to be resolved faster by the community. The reason why I did not finished the mp features is because I developed it with UE4.12 and back then 3D widgets didn’t work in VR (only since 4.13).
Thank you [MENTION=451049]Scott Hedstrom[/MENTION] for the suggestions.
What I plan to do
- revisit the latest the template (since we are heading for a vr/ar template) and fix small bugs
- update to 4.14
- enable once and for all the multiplayer aspect, since it’s becoming very important for our own work and make ELI5 docs
- add Touch controllers/gesture
I plan to do that on the 1st week of dec, since we are very busy till the end of the month.
Also, I plan to tap in the Oculus multiplayer+ Oculus Avatar SDK to enrich the multiplayer aspect as soon as I can test it
[MENTION=451049]Scott Hedstrom[/MENTION], thank you for such deep explanation. Once I get a chance I’ll definitely be willing to test out your approach, unless you’ve got some project with that basic setup laying around and don’t mind sharing
@Proteus That’s cool beans, can’t wait to test out the result and learn from the setup of yours. Good luck !
Cross-posting an issue I’ve had (also asked this on your UE forums post)… seems that the floor is a bit lower than it should be. For example, loading up the physics level and trying to pick something up off the ground will result in slamming your controller in to the real world floor before you can reach the object.
Are you sure that your room calibration is correct? Generally that is the fault of calibration.
Hi I was wondering if this is normal or perhaps we are doing something wrong. I noticed when teleporting the player is standing on top of the nav mesh and not the collision below it. Is this normal? I would like to know or if I am possibly doing something wrong in my setup of the template. Everything else as far as I can tell is working correctly. Thanks.
Hi,
convertin project from 4.11.2 to 4.13.2 i get error message:
The project could not be compiled. Would you like to open it in Visual Studio?
Running C:/Program Files (x86)/Epic Games/4.13/Engine/Binaries/DotNET/UnrealBuildTool.exe xyz_beta Development Win64 -project=“C:/xyz_qulle 4.13/xyz_beta.uproject” -editorrecompile -progress -noubtmakefiles -NoHotReloadFromIDE @progress push 5%
Parsing headers for xyz_betaEditor
Running UnrealHeaderTool “C:\xyz_qulle 4.13\xyz_beta.uproject” “C:\xyz_qulle 4.13\Intermediate\Build\Win64\xyz_betaEditor\Development\xyz_betaEditor.uhtmanifest” -LogCmds=“loginit warning, logexit warning, logdatabase error” -Unattended -WarningsAsErrors -installed
Reflection code generated for xyz_betaEditor in 5,1613111 seconds @progress pop
Performing 12 actions (4 in parallel)
[4/12] Resource PCLaunch.rc
PCH.xyz_beta.h.cpp
Module.VRGripMotionControllerPlugin.cpp
VRGripMotionControllerPlugin.generated.cpp
[5/12] Resource ModuleVersionResource.rc.inl
[6/12] Resource PCLaunch.rc
[7/12] Resource ModuleVersionResource.rc.inl
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(240): warning C4458: declaration of ‘OriginalPosition’ hides class member
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Public\GripMotionControllerComponent.h(89): note: see declaration of ‘UGripMotionControllerComponent::OriginalPosition’
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(241): warning C4458: declaration of ‘OriginalOrientation’ hides class member
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Public\GripMotionControllerComponent.h(90): note: see declaration of ‘UGripMotionControllerComponent::OriginalOrientation’
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(438): error C2039: ‘MotionControllerDevices’: is not a member of ‘UEngine’
C:\Program Files (x86)\Epic Games\4.13\Engine\Source\Runtime\Engine\Classes\Engine/Engine.h(541): note: see declaration of ‘UEngine’
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(440): error C2065: ‘MotionController’: undeclared identifier
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(440): error C2227: left of ‘->GetControllerOrientationAndPosition’ must point to class/struct/union/generic type
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(440): note: type is ‘unknown-type’
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(442): error C2065: ‘MotionController’: undeclared identifier
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(442): error C2227: left of ‘->GetControllerTrackingStatus’ must point to class/struct/union/generic type
C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Source\VRGripMotionControllerPlugin\Private\GripMotionControllerComponent.cpp(442): note: type is ‘unknown-type’
xyz_beta.cpp
jtchfc.cpp
MyClass.cpp
[11/12] Link UE4Editor-xyz_beta.dll
Creating library C:\xyz_qulle 4.13\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-xyz_beta.lib and object C:\xyz_qulle 4.13\Intermediate\Build\Win64\UE4Editor\Development\UE4Editor-xyz_beta.exp
ERROR: UBT ERROR: Failed to produce item: C:\xyz_qulle 4.13\Plugins\VRGripMotionControllerPlugin\Binaries\Win64\UE4Editor-VRGripMotionControllerPlugin.pdb
Total build time: 60,21 seconds
Hi everybody.
So basically, I’m still dissatisfied with the current UE4 VR implementation. Even my own templates that I find a little bit bloated and inelegant.
Not that Epic didn’t do a fantastic job since my DK1 days and Unreal 4.1… when the headset did not even turned on and it needed some Voodoo magic.
And with the VR template since 4.12, Stereo instancing and Forward renderer, that’s a big leap.
But I want more.
I want to easily set up a multiplayer, mixing Rifts and Vives, both local and internet
I want to access and use the Oculus Avatars, rooms and multiplayers
I want to have an elegant, easy-to-customize blueprints
I want to map and use Touch in Oculus and SteamVR inclu. haptics (thanks to the latest SteamVR update)
I want to integrate Oculus Boundaries like Vive Chaperones
And eventually, I want to be able to port it easily to the UWP on the Hololens and the Magic Leap if it’s not vaporware
and also anxiously wait for the UE4.15 for the mix-reality camera
So back to square one like in March when I was one of the few ones in town playing with the Vive in Unreal
So there’s my plan: I want to work with the latest Epic VR template in 4.14, and integrate these features + a few from my previous templates
- redesign hands from scratch in Maya and do gestures, my original files are corrupt :<
I’ll also play with the Oculus branch of UE4 since they presently integrate the Oculus SDK 1.10 (contrarily to the present UE4.14 launcher)
By the way, if anybody have any request for a feature to add besides that? I’ve got myself a few new trick to put into a new hyper template and
I’ve now got time that I did not have since a few weeks. And always here to help!
So that’s my statement tonight. Now back to Onward to be insulted by 14-years old.
Stay tuned!
Proteus
@ @Proteus another question from me, please don’t hate. I was wondering if it was possible with the plugin to grab an object (static mesh) that has more than one socket attached. I know there’s an integer that you specify (get from array) to tell which socket to grab, however I’m aiming to run through first available (with another sphere trace perhaps) socket and attach to that one instead of always grabbing the specified one.
I don’t know what version of the plugin this is using at this point, but the newer ones have a “GetClosestSocketInRange” helper function.
It shows ver. 1.0, so must be kinda outdated I guess.
I didn’t know about the improvements for stereo rendering in 4.11! It’s amazing to see Epic doing groundbreaking work and immediately sharing it. Makes it possible to actually create great games without 10 years of experience. Thanks for a great post!
Is it possible to, by using the plugin pickup pawn, grab the actor, snap it to socket but with modified mesh transform. Since the mesh we want to grab is at root, it’s transform cannot be modified. I assume it must be possible within BP actor of the grab-able mesh.
Basically what I’m going for is ability to grab an object when we rotate our hand (HANDS_R blueprint) upside down WITHOUT the mesh snapping in an upside down transform.
I came up with an solution by adding another socket to the mesh, rotate the socket -180 in X Axis and then feed the integer of the socket to GetArray in grab-able object BP with either 0 or 1. However it seems I cannot feed the int value straight off of either HANDS_R or Pawn blueprints. When I manually put int 1 in a GetArray node it does the trick (for the mesh to be snapped upside down), however my condition (which is my right hand up vector <= -0.1) for setting the socket int value to either 0 or 1 doesn’t want to pass that info onto GetArray node. Tried casting, referencing hands_r bp by creating component ref inside the object BP nothing seems to work.
It might be that I’m trying to overdo it. Maybe there’s easier way to achieve what I’m after.
Hi - I can’t seem to interact with the template objects or take control of the vehicle.
The plugin is working ok (shows up as installed), the gamemode has been assigned as VRGameMode_P.
I’m using 4.13 (I installed without starter content or templates - should that matter) ?
Any ideas ?
If anyone was wondering, I solved this issue of mine. Anyone willing to know more, let me know.
Hi, @Proteus the plugin rocks. However, I am struggling with something. I am following the docs to make grabbing objects and it goes fine. But whenever I make the object to inherit from another blueprint (for shared functionality purposes) I cannot grab it anymore. Though I notice that the StaticMesh becomes child of DefaultSceneRoot. Is that the cause of this problem?
Thanks
Hi - In the template when I press the right menu button to turn on the vehicle nothing happens.
I can grab and pick up the light sabre, hat etc but I can’t interact with the cubes - any ideas why the vehicle won’t work ?
I’m trying to use VRcharacter_P with trackpad motion
I migrated it and the other pawns to a fresh 4.14 VR template. All pawns work right away but this one just allows you to look around. Controllers don’t become visible. Can’t move around.
The blueprint seems to inherit a lot, from vrpawn_p I guess. Ghost mode movement from vrpawn_p is already in there. It seems to be setup correctly following https://bitbucket.org//vrexpansionplugin/wiki/VR%20Character%20Actor out of the box.
What am I doing wrong?
Have you tried doing doors, drawers with your grab setup @Proteus ? What I’m trying to do is to adapt mordental’s logic from his example template onto yours and having a bit of issues with that.