intro to unreal with framework and vr

62
Intro to Unreal Luis Cataldi – Epic Games, Education Evangelist

Upload: luis-cataldi

Post on 21-Apr-2017

2.508 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Intro to unreal with framework and vr

Intro to UnrealLuis Cataldi – Epic Games, Education Evangelist

Page 2: Intro to unreal with framework and vr

Unreal Engine For Academic Use

Page 4: Intro to unreal with framework and vr

Unreal Engine Learning Resources

Page 6: Intro to unreal with framework and vr

UE4’s Online Documentation

Improved metadata supportSkill levelEngine versionSitemap filtersCheckpoints

6

Page 7: Intro to unreal with framework and vr

Unreal Engine Release Notes:

Release Notes - LinkNew Features

Performance Improvements

Platform Additions

Bug Fixes

Enhancements

Changes

7

Page 8: Intro to unreal with framework and vr

UE4 For Unity Developers:

Unreal Engine 4 For Unity Developers – Link

Unreal Engine 4 Terminology – Link

Unreal Engine 4 Tools & Editors - Link

8

Page 9: Intro to unreal with framework and vr

Troubleshooting Guide:

Destructible Troubleshooting Guide – LINK

Troubleshooting Launcher Problems - Link

Lighting Troubleshooting Guide – LINK

Mobile Development Troubleshooting Guide – Link

Swarm Agent Troubleshooting - Link

9

Page 13: Intro to unreal with framework and vr

13

Game Samples & Free Content In the Learn Tab:● Content Examples● The complete A Boy and His Kite● Open World Demo Collection● Water Planes● Matinee environments and characters and content● Stylized Rendering environments and content● Realistic Rendering environments and content● Sun Temple environments and content● Particle Effects environments and content● Silly Geo complete game project and content● Multiplayer Shootout complete game project and content● Platformer Game complete game project and content● Swinging Ninja complete game project and content● Vehicle Game complete game project and content● Strategy Game complete game project and content● SciFi Bunk environments and content● Radial Impact complete game project and content● And more…

Page 14: Intro to unreal with framework and vr

14

The Entire Infiltrator Demo Now Available For Download  ○900 Textures○468 Materials○637 Static Meshes○20 Skeletal Meshes○69 Sound Wavs○181 Animation

 

These assets are perfect for use in academic projects including:○ Level design classes building high fidelity gameplay spaces.○ For high quality environment art and set dressing exercises. ○ For use in game jams and student games.○ Perfect for dissecting professional caliber AAA UE4 sample content.○ ...and much more.

 

Total Size: 4 GB

Dozens of free complete projects available through the Learn Tab:

Page 15: Intro to unreal with framework and vr

Dozens of free complete projects available through the Learn Tab:

15

Huge Infinity Blade Collection Now Available For Download 

Below is a list of specific content included in all the asset packs:  ○ 1911 Textures ○ 1051 Materials○ 1488 Static Meshes○ 176 Skeletal Meshes ○ 1064 Particles  ○ 16 Sound Wavs ○ 9 Sound Cues  ○ 6 Blueprints 

These assets are perfect for use in academic projects including:○ Level design classes building gameplay spaces

for mobile environments.○ For environment art and mobile set dressing exercises. ○ For use in mobile and traditional game jams.○ For use in student games.○ Perfect for dissecting professional caliber mobile UE4 sample

content.○ ...and much more.

Compatibility:4.9

Page 16: Intro to unreal with framework and vr

16

The Showdown Cinematic VR Experience Now Available For Download

Below is a list of specific content included in the download:○450 Textures ○189 Materials○161 Static Meshes○5 Skeletal Meshes ○19 Effects  

These assets are perfect for use in academic projects including:○VR design classes building playable spaces.○For VR environment art and set dressing exercises. ○For use in VR jams.○For student VR games.○Perfect for dissecting professional caliber UE4 sample VR content.○...and much more.

 

Total Size: 2.8 GB

Dozens of free complete projects available through the Learn Tab:

Page 17: Intro to unreal with framework and vr

Working with AnswerHUB - LinkThere are 15 full time Epic technicians working to help folks on AnswerHUB at all times, but it's

important for people asking questions to AnswerHUB to do the few things listed below.

USE THE SEARCH FIRST!o There is a strong chance someone has run into similar or the same issue before.

Categories the issueo Is it a BUG? o Is it a problem with C++?o Is it a problem with Blueprints?o Is it a Rendering issue?o Etc...

Good submission make AnswerHUB worko Provide screenshots of the issue. People are visual. o List steps to reproduce the issue.o Take the time to be clear and explain carefully. o Use examples of what you wish to achieve (based on known games when possible)

AnswerHUB is community driven. Help and you will be helped. o Unreal Engine is open-source software driven by the community. o By being active in the community, your credibility grows as a developer. o More people help those who help others. o Become active in the community and build Karma Points in AnswerHUB. 17

Page 18: Intro to unreal with framework and vr

The Learn Tab:The place to go for help.

18

Better than Google because:

It searches all of Epic DocumentationIt searches the Community WikiIt searches AnswerHUB…provides you better answers.

** it is actually a Google gadget. ☻

Page 19: Intro to unreal with framework and vr

The Unreal Engine Framework

Page 20: Intro to unreal with framework and vr

20

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

Page 21: Intro to unreal with framework and vr

21

The GameInstance is a class who’s state persists switching of levels, game modes, pawns etc. Where classes like GameMode or PlayerController are being reset and data stored in those classes is removed. Any data that you want to keep beyond levels and matches, for example "what player did in specific moment so you can have consequence on other level" should be placed in the GameInstance.

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

Page 22: Intro to unreal with framework and vr

22

The GameMode is the definition of the game, including things like the game rules and win conditions. It only exists on the server. It typically should not have much data that changes during play, and it definitely should not have transient data that clients need to know about.

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

Page 23: Intro to unreal with framework and vr

23

The GameState contains the state of the game, which could include things like the list of connected players, the score, where the pieces are in a chess game, or the list of what missions you have completed in an open world game. The GameState exists on the server and all clients and can replicate freely to keep all machines up to date.

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

Page 24: Intro to unreal with framework and vr

24

A PlayerState is the state of a participant in the game, such as a human player or a bot that is simulating a player. Non-player AI that exists as part of the game would not have a PlayerState. Example data that would be appropriate in a PlayerState include player name, score, in-match level for something like a MOBA, or whether the player is currently carrying the flag in a CTF game. PlayerStates for all players exist on all machines (unlike PlayerControllers) and can replicate freely to keep things in sync.

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

Page 25: Intro to unreal with framework and vr

25

A PlayerController is the interface between the Pawn and the human player controlling it. The PlayerController decides what to do and then issues commands to the Pawn (e.g. "start crouching", "jump").

In some cases, putting input handling or other functionality into the PlayerController is necessary. The PlayerController persists throughout the game, while the Pawn can be transient.

For example, in deathmatch style gameplay, you may die and respawn, so you would get a new Pawn but your PlayerController would be the same. In this example, if you kept your score on your Pawn, the score would reset, but if you kept your score on your PlayerController, it would not.

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

Page 26: Intro to unreal with framework and vr

26

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

The HUD is the base object for displaying elements overlaid on the screen. Every human-controlled player in the game has their own instance of the AHUD class which draws to their individual Viewport. In the case of splitscreen multiplayer games, multiple Viewports share the same screen, but each HUD still draws to its own Viewport. The type, or class, of HUD to use is specified by the gametype being used.

Page 27: Intro to unreal with framework and vr

27

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

PlayerState Class

GameState Class

The Pawn Class is the base class of all Actors that can be controlled by players or AI. A Pawn is the physical representation of a player or AI entity within the world. This not only means that the Pawn determines what the player or AI entity looks like visually, but also how it interacts with the world in terms of collisions and other physical interactions.

The Pawn represents the physical location, rotation, etc. of a player or entity within the game. A Character is a special type of Pawn that has the ability to walk around.

Page 28: Intro to unreal with framework and vr

28

Object Base building blocks in the Unreal Engine

Page 29: Intro to unreal with framework and vr

29

Object

Actor

Base building blocks in the Unreal Engine

Any object that can be placed into a level

Page 30: Intro to unreal with framework and vr

30

Object

Actor

Pawn

Base building blocks in the Unreal Engine

Any object that can be placed into a level

Subclass of Actor and serve as an in-game avatar

Page 31: Intro to unreal with framework and vr

31

Object

Actor

Pawn

Character

Base building blocks in the Unreal Engine

Any object that can be placed into a level

Subclass of Actor and serve as an in-game avatar

Subclass of a Pawn that is intended to be used as a player character

Page 32: Intro to unreal with framework and vr

32

Pawn Controller1-to-1 Relationship

Page 33: Intro to unreal with framework and vr

33

CharacterMovementComponent

Pawn

Character

CapsuleComponent

SkeletalMeshComponent

Etc.

Controller1-to-1 Relationship

Page 34: Intro to unreal with framework and vr

34

CharacterMovementComponent

Pawn

Character

Default Pawn

CapsuleComponent

SkeletalMeshComponent

Etc.

SpectatorPawn

DefaultPawnMovementComponent

StaticMeshComponent

CollisionComponent, Etc.

Controller1-to-1 Relationship

Page 35: Intro to unreal with framework and vr

35

CharacterMovementComponent

Pawn

Character

Default Pawn

Wheeled Vehicle

CapsuleComponent

SkeletalMeshComponent

Etc.

VehicleMovementComponent

SkeletalMeshComponent

PhysicsHandle

Etc.

SpectatorPawn

DefaultPawnMovementComponent

StaticMeshComponent

CollisionComponent, Etc.

Controller1-to-1 Relationship

Page 37: Intro to unreal with framework and vr

Unreal EngineBest Practices for VR

Page 38: Intro to unreal with framework and vr

VR Learning Resources for Unreal Engine:  Docs:

▪Getting Started With VR▪UE4 VR Index Page▪VR Best Practices▪VR Cheat Sheets▪Oculus Quick Starts▪GearVR Quick Starts

Video:▪Integrating the Oculus Rift into UE4 ▪UE4 Support Stream - Developing for VR ▪2015 UE4 - VR and Unreal Engine▪Unreal Engine 4 Training Stream: Up and Running with Gear VR

Presentations:▪ UE4 VR - Niklas Smedberg▪ Lessons from Integrating the Oculus Rift into UE4

Links:▪ Getting Started with VR in Unreal Engine 4

38

Page 39: Intro to unreal with framework and vr

Things to keep in at the front of your mind:World ScaleGetting the scale of your world correct is one of the most important things to help deliver

the best user experience possible on VR platforms. Having the wrong scale can lead to

all kind of sensory issues for users and could even result in Simulation Sickness. Objects

are most easily viewed in VR when they are in a range of 0.75 to 3.5 Meters from the

player's camera. Inside of UE4, 1 Unreal Unit (UU) is equal to 1 Centimeter (CM).

This means that object's inside of Unreal are best viewed when they are 75 UU to 350

UU away from the player's camera when using VR.

39

Distance Distance in Unreal Units(UU)

1 Centimeter 1 Unreal Unit

1 Meter 100 Unreal Units

1 Kilometer 100,000 Unreal Units

Page 40: Intro to unreal with framework and vr

Things to keep in at the front of your mind:World Scale

You can adjust the scale of your world in the World to Meters variable that is located under World Settings in side of UE4. However exercise caution when adjusting the scale of your world as again, selecting the wrong scale could lead to a disconnection between the world and the user which could lead to simulation sickness.

40

Page 41: Intro to unreal with framework and vr

Things to keep in at the front of your mind:VR Character Settings

The setup for a character using a VR headset is slightly different than for a standard character. Things like character Height, Width, Speed, and Camera Location all need to be slightly modified to accommodate a VR character.

41

Page 42: Intro to unreal with framework and vr

Things to keep in at the front of your mind:VR Character Settings

Character Height & Width

Character Height & Width should mimic real life measurements as much as possible. Using sizes that are too big or two small could ruin the emersion that you are trying to achieve.

42

Property UE4 Default Recommended VRHeight: 192 CM 176 CMWidth: 84 CM 68 CM

Page 43: Intro to unreal with framework and vr

Things to keep in at the front of your mind:VR Character Settings

Movement Speed

VR movement speed is a difficult property to recommend a setting for because the movement speed that you choose will mainly be determined by the type of experience that you are trying to achieve. In the Elemental VR demo for example, the movement speed was cut to about 1/4 normal speed.

43

Property UE4 Default Recommended VRMovement Speed: 60 M/S 24 M/S

Page 44: Intro to unreal with framework and vr

Things to keep in at the front of your mind:VR Character Settings

Camera Location

The VR camera needs to be positioned slightly lower than the base eye height to compensate for being at the characters eye level.

44

Property UE4 Default Recommended VRBase Eye Height: 180 CM 160 CM

Page 45: Intro to unreal with framework and vr

Things to keep in at the front of your mind:

Make sure your project is running at your HMD's target

frame rate before you build or add anything to your world.

 

45

Page 46: Intro to unreal with framework and vr

Things to keep in at the front of your mind:

Check your performance constantly to ensure that you are

hitting your VR performance targets.

46

Page 47: Intro to unreal with framework and vr

Things to keep in at the front of your mind:

○ Maintain a very simplistic approach to making your

content.  ○ Minimize complex shaders as best possible. ○ Add detail to the mesh within reason in lieu of relying of

complex shaders for surface details.

47

Page 48: Intro to unreal with framework and vr

Things to keep in at the front of your mind:

LOD's and aggressive culling are a must to ensure that you

are hitting your VR performance targets.

48

Page 49: Intro to unreal with framework and vr

Known issues and possible workarounds:

Screen Space Reflections(SSR)

SSR will work in VR but not give you the results that you want and instead

you should look into using reflection probes.

49

Page 50: Intro to unreal with framework and vr

Known issues and possible workarounds:

Normal Mapping Issues  

When viewing Normal maps on objects in VR, you will notice that they do not

have the impact that they might have once had. This is because normal

mapping does not account for a binocular display or motion parallax. Because

of this, Normal maps will come out looking flat when viewed with a VR device.

To get around this, you can do one of two things.

50

Page 51: Intro to unreal with framework and vr

Known issues and possible workarounds:

Parallax Mapping  

Parallax mapping takes Normal mapping to the next level by accounting for

depth cues, Normal mapping does not. A Parallax mapping shader can better

display depth information, making objects appear to have more detail than

they do. This is because no matter what angle you look at, a Parallax map will

always correct itself to show you the correct depth information from that view

point. The best use of a Parallax map would be for cobblestone pathways and

fine detail on surfaces.51

Page 52: Intro to unreal with framework and vr

Known issues and possible workarounds:

Tessellation Shader Displacement  

Tessellation Shader Displacement will displace 3D Geometry in real time by

adding details that are not modeled into the object. Tessellation shaders do a

great job of displaying information because tessellation shaders actually

create the missing detail by creating more vertices and displacing them in 3D

Space.

52

Page 53: Intro to unreal with framework and vr

New Project Settings:When creating a new project for VR it is best to create a project that uses the Mobile /

Tablet setting with Scalable 3D or 2D and No Starter Content. If you need content

you should port / import only what you need and not everything you have.

53

Page 54: Intro to unreal with framework and vr

Launching VR Preview:Testing out your VR set is very straightforward, simply select “VR Preview” from the Play

dropdown button. By default the head tracking will work right away without any changes

to your existing project or template.

54

Page 55: Intro to unreal with framework and vr

Using VR in Blueprint:Using VR in Blueprint is very straightforward.

You will need a Camera Component and optionally one or two Motion Controllers Components. By default your Camera is already set up for HMD support, if you wish to disable rotation changes from the HMD you can disable “Lock to HMD” in the Component’s properties.

55

Page 56: Intro to unreal with framework and vr

Performance Considerations:

For the VR experience to feel smooth, your game needs to run on 75 hz (Oculus DK2) or even 90 hz. (HTC Vive and Oculus CV1) depending on the device. To see the current framerate type in “stat fps” or “stat unit” (for more detailed breakdown) in your console when running the game.

56

Page 57: Intro to unreal with framework and vr

GPU Profiling:To capture a single frame with GPU timings press Ctrl+Shift+, or type in “profilegpu” in the console. This command dumps accurate timings of the GPU, you will find that certain processes are a heavy burden on the framerate (Ambient Occlusion is one common example) when using VR.

The GPU Profiling & Performance and Profiling docs are a good place to learn about profiling your game.

57

Page 58: Intro to unreal with framework and vr

Instanced Stereo:The latest 4.11 release introduces Instanced Stereo Rendering, check the video below for a comparison video of how that works.

“Basically, we’re utilizing hardware instancing to draw both eyes simultaneously with a single draw call and pass through the render loop. This cuts down render thread CPU time significantly and also improves GPU performance. Bullet Train was seeing ~15 – 20% CPU improvement on the render thread and ~7 – 10% improvement on the GPU.” – Ryan Vance.

58

To enable this feature in 4.11 and above, go to your Project Settings and look for “Instanced Stereo” under the Rendering category.

Page 59: Intro to unreal with framework and vr

Disable Heavy Post-Processors:Due to the demanding requirements of VR many of the advanced Post Processing features that you normally use should be disabled. To accomplish this you will need to do the following in your level.

• Add a Post Process(PP) volume to your level if there is not already one there.• Select the PP volume and in the Post Process Volume section enable the Unbound option so that the settings in

the PP volume will be applied to the entire level.

• Expand the Settings of the Post Process Volume and then go through each section and disable any active PP settings by enabling that property by clicking on it and then set the value from the default, usually 1.0, to 0 to disable the feature.

• When doing this you will not need to hit every section and set all the properties to 0. Instead first disable the really heavy hitting features like Lens Flares, Screen Space reflections, Temporal AA, SSAO, and anything else that might have an impact on performance.

• While a lot of the features are disabled by setting things in your .INI this ensures that nothing will happen to performance if someone deletes the .INI by mistake. 59

Page 60: Intro to unreal with framework and vr

Static, Stationary and Dynamic Lighting:

You should always use Static lighting and lightmaps when making a VR project as this is the cheapest option to render. If you need to use dynamic lighting make sure to limit the amount of dynamic lights to as few as possible and make sure that they never touch one another. If you have an outdoor scene set your directional light to dynamic instead of stationary and then turn on Cascading Shadow Maps and set then adjust the settings to be as low as possible while still giving you shadows. This is going to take a lot of trial and error to get correct.

60

Page 61: Intro to unreal with framework and vr

Fake shadows if you can:

Using things like fake blob shadow drop to simulate dynamic shadows are a good general rule in order to keep VR project running at frame.

61

Blob shadow example. Image by Eric Chadwick

Page 62: Intro to unreal with framework and vr

VFX in VR:

Some VFX techniques like using SubUV Textures to simulate fire or smoke do not hold up well when viewed in VR. In many cases it can be more desirable to use static meshes emitters instead of 2D sprite particles to simulate VFX's like explosions or smoke trails.  Near field effects, or effects that happen very close to the camera can work well in VR but only when the effects are made up of Static Meshes particles.

62