VR Template w/ - Sept 29 - Live from Epic HQ

WHAT
joins us to discuss the new VR Template and all of the cool features built in. With this update to 4.13, you will be able to craft immersive virtual worlds with easy interactions. Come and learn all about these tools as explores and explains the nuances of designing in VR.

WHEN
Thursday, September 29th @ 2:00PM ET Countdown]

WHERE

WHO

  • Game Programmer - @t_looman]()

Feel free to ask any questions on the topic in the thread below, and remember, while we try to give attention to all inquiries, it’s not always possible to answer’s questions as they come up. This is especially true for off-topic requests, as it’s rather likely that we don’t have the appropriate person around to answer. Thanks for understanding!

Archive:

Typo in the ‘When’ I think, should read Thursday.

Looking forward to it.

I’d really like to see a gameplay orientated player pawn instead of a “ghost with floating head and hands”. A VRCharacterActor that has full level collision like a standard Character where the collision follows the HMD. What would be the best way to achieve this?, and is it something you’ll be looking to include in a VR Template in the near future?

Issues that I would love to see discussed.

#1 How do you connect/replace an object to the controller sockets? (Vive) Example pick up a gun and have it stick until you drop it.
#2 How do you disable the rotation effect when teleporting? (Vive)
#3 Talk about the rendering options that have been disabled. (Vive/Rift)

Question: How can you manually add extra throwing power when throwing physics objects? For example, I made a grenade, but it requires me to swing a ridiculous big arc to throw it far enough.

This! I’ve been wondering the exact same thing myself!

One VR template topic I’d like to see discussed…

What is the recommended approach to allowing the player to teleport onto objects besides the floor (boxes, platforms, etc.)?

Wouldn’t it be great if the Muse of Coding looked down upon this event and instilled in us the knowledge oh how to get MULTIPLAYER VR working?

The icing on the cake would be how to get the monitor output during playback to be larger than the standard, low-res, squarish view.

I second that!! Would really love to see a simple example of multiplayer with this template!!

Good catch! Fixed it.

Thanks for all these great questions! Keep 'em coming!

I agree with this. I’d like a full body template. (which you can complete with a full body IK system to make sure the arms/body are bending nicely with the hand/head movement or whatever other VR controls you use) I’ve always preferred “True” first person even in non-VR games. Floating Arms with no body always felt like sliding along on ice, not to mention how unnatural it looked turning in older games. I realize it goes against the minimalist “template” mentality, but on the other hand the more you leave out, the more people will have to spend time implementing what some consider basic requirements. Granted there’s a line between template and making someone’s game for them.

IMHO Room scale VR support should definitely be kept in mind since Oculus supports up to 4 sensors now, not to mention other recent factors will be driving more people to Vive probably.

Also hoping to hear about how Forward Rendering is progressing.

Modifying the Blueprints

For both #1 and #2, the answers are in the sweet, sweet Blueprints which have been created for this template.

**#1: This is already happening when you pick up the blue cubes in the “MotionControllerMap” found under “Content/VirtualRealityBP/Maps”.
**
If you notice when the motion controller “hand” gets close to an object, it changes pose, rumbles, and most importantly allows you to pickup and drop the blue cube it is close to. This is all outlined in the “GrabActor” function of the “BP_MotionController” blueprint found in “Content/VirtualRealityBP/Blueprints”. You might have also noticed that you cannot pickup just any actor in this level.

So if you want to be able to pickup/drop a gun, you will need to:

  1. Make an actor similar to the “BP_PickupCube” found under “Content/VirtualRealityBP/Blueprints”. You can simply duplicate the blueprint, give it a fancy gun name (I like “MasterBlaster”), then open it replace the mesh to your gun mesh and (optional) update the collision mesh from sphere.
  2. After you create the new gun blueprint, just place that new blueprint in the level (make sure it is above the ground!)
  3. Launch and have fun!

#2: There are two blueprints which are affecting the teleport rotation: “BP_MotionController”, which looks to be the meat and potatoes of the actual rotation functionality and “MotionControllerPawn”, which looks to be giving the other blueprint instructions on how to rotate.

So knowing that, you can either change the instructions that are being given (MotionControllerPawn) or change how those instructions are being received (BP_MotionController) or some combination of both.

The easiest way is to change the instructions being given so that it is always giving the rotation you want (0,0,0).

To change the rotation being given:

  1. Open MotionControllerPawn found in “Content/VirtualRealityBP/Blueprints”.
  2. In the Event Graph, you will see a setter for “Teleport Rotation”. What this is doing is setting the 'Teleport Rotation" value of the “BP_MotionController” blueprint to the value received from the motion controller thumbstick (Vive touch pad).
  3. To stop this from happening, you can make sure that it always sets it to nothing. To do this, use the “Make Rotator” and then connect it to the “Teleport Rotation” input of the setters for both the right and left hand sections.

To change how the rotation is being received:

  1. Open the “BP_MotionController” blueprint found in “Content/VirtualRealityBP/Blueprints”.
  2. If you look at the variables tab, you will see a variable named “TeleportRotation”. Right-click on this and select “Find References”.
  3. The search will return 2 places this variable is being used in this specific blueprint: “UpdateArcEndpoint” and “GetTeleportDestination”.
  4. So under the “Teleportation” category of the Functions, you will see “UpdateArcEndpoint” and “GetTeleportDestination”.
  5. Open each and you will find how that “Teleport Rotation” value is being used.

Hope this helps and check out the Twitch today for the answer to #3!

  • J-Small

Looking forward to this.

I’d like to know:-

  1. Exactly what bits and pieces need to be migrated from the template project to a completely blank project to allow MotionController (gripping hands) and Teleportation. I have ‘just about’ managed to get a new level set up within a VR Template, but I’d like a clean start.

  2. How I can Teleport on top of a box or stairs (I am coming at this from an architectural visualisation background so need to navigate around large buildings)

Nvidia currently has a branch of 4.12 that supports the full VRWorks library Unreal Engine 3D Creation Platform | NVIDIA Developer

  1. Do you know if they are currently working on a 4.13 branch? Is UE4 trying to implement any of it into their branch?
  2. Could you give us a couple gotcha’s to be aware of when working with VRWorks? Like only a certain type of lighting will run …or certain effects won’t play nice?

I already have fun with VR template ; )

https://giant.gfycat.com/GiganticKlutzyAidi.gif

Hah! That’s awesome :slight_smile:

This looks awesome, can’t wait to try it out!

, I missed the livestream. Will the session be posted anywhere? Thanks.

I have been looking for something like this as well. I know we can’t do collision on stuff they walk into, but leave it to the devs to decide what hits what, eh?

+1

Also, has anyone tried to package the vr_template? I have created a new project, selected it and just tried to package and I get fatal error in 2 secs.

Here is a link to my problem : Packaging fails - fatal error LNK1181: cannot open input file 'tbbmalloc.lib' - Platform & Builds - Epic Developer Community Forums