Getting Started

From Pavlov VR Wiki
Jump to: navigation, search



Download Unreal Engine

The default layout of the UE4 Editor

Register an Account and download the Unreal Engine Launcher at UnrealEngine.com
Once you downloaded and installed the lauchner you need to login with the Account you just created before.
Go to the "Unreal Engine" Tab and select "Library" on the left. ( DO NOT press "Install Engine" as this will install the latest Engine build. Pavlov currently only works with UE4.15.x )
In the Libraries window press the "+ Add Engine Version" and select UE4.15.x and press on the yellow "Install" Button. Specify the installation path and continue.
The engine will now download and install.
Wait for it to finish and proceed with the next step.


If you need further instructions on how to create an Unreal Engine Account and Installing the Engine please visit the official Unreal Engine Documentation "Installing UE4" website


Download the Pavlov Project Template (Workshop Tools)

Create an Github Account at Github.com
Go to your Epic Account connections setting page and fill in your GitHub Account name from the Account you just created.
Once the Accounts are linked, you'll recieve an email with a message to "Join Epic Games" on Github.
Accept the link and now you should be able to download the tools at the Pavlov Project Template Github Page
Press the green "Clone or Download" button on the right and then press "Download .zip"


If the link doesn't work and you see an 404 Error, please check your settings on your Epic Account and if you are properly logged in on GitHub with the linked Account.


Setting up a new project

Setup Example

Extract the downloaded .zip to your Unreal Project Folder ( Usually located at "\Users\*winuser*\documents\Unreal Projects" )
Doubleclick the Pavlov.uproject file (or restart your Epic Games Launcher and open the Project from the Libraries window)
Wait for the Editor to load ( This can take a while for the first time opening the Project)
In the UE4 Editor, the first thing you have to do is to go to "Window" and press the "Pavlov Workshop" Button.
In the new window, press the "Create New" button once and wait for it to finish. This will create a new and unique UGCXXXXX Folder inside the content\CustomMaps folder.
ALL Assets need to be inside the UGCXXXXX otherwise those assets will not be visible ingame later on. DO NOT delete or rename this folder.
Create a new Level asset somewhere inside the UGCXXXXX folder and save it.
Open the "Definition" file inside the UGCXXXXX folder and enter a Name, Description and the Mapfile. ( DO NOT change the UGC ID )
You can set a Thumbnail for the map by importing a 512x512px wide Image file.
Under Compatibility you can set the gamemodes your map will support.
Save the Definition file and you're ready to go.


For more information on how to develop a map and how Unreal Engine works, please visit the official Unreal Engine 4 Documentation "Getting Started" website


Migrating an existing map from another UE4 Project

Make sure you followed all the previous steps before doing this.
Open the project with the map you want to migrate.
Find your Level file in the Contentbrowser and rightclick on it and select "Asset Actions" > "Migrate".
You will see a foldertree with all the referenced files of the map. Just press "OK"
A Windows Explorer window will pop up. Select the "Content" folder of your destination Project ( Default path is \Users\*winuser\documents\Unreal Projects ) and press "OK"
Close the Origin Project and open the Pavlov Project you just migrated to.
Move the migrated Map file and all the extra folders that came with it somewhere inside the UGCXXXXX folder as its currently outside of it because of the migration from the other project.
Rightclick the Content root folder and select "Fix up redirectors" This will clean all redirectors and makes sure your cooked map works properly.


For more information on how to migrate Assets to other Projects, visit the official Unreal Engine 4 Documentation "Migrating Assets" website


Mandatory Entities and their Configuration

Light

Pavlov VR only works with static baked lightning so you have to use a "Directional Light" entity with the "Mobility" set to "Static"
Use a "Skylight" Entity for a realistic outdoor lightning. It also needs to be set to "Static".
For a more realistic look and better clarity in VR set the "Indirect Lightning Intensity" to a value between 2-6.
You can use as many "Point Lights" and "Spot Lights" as you like, as long as they're set to "static"


Spawns

To be able to play your map, you need to have valid Spawnpoints.
Use the "Pavlov Spawn" Entities from the "All Classes" category on the left in the "Modes" window, or use the searchbar at the top of the "Modes" window.
You need to configure them according to the gamemodes you want to support with your map.

Spawnflags
TeamID 0 = Blue Team (Defenders) , 1 = Red Team (Attackers)
Dynamic Tick this for Deathmatch, This prevents spawning inside another person who occupies the spawn area
Only Team Use this Together with the TeamID parameter to only allow for a certain team to spawn. Search & Destroy (S&D) spawns needs this. Uncheck for random Deathmatch spawns
Special Tick this for marking the Spawn to be used for Search & Destroy gamemodes. Use only ONE spawn per Team.. Teams will spawn together at one spawn. Use together with TeamID

When using S&D "Special" spawns, make sure to leave some space to the right of it, as the other 4 Players will spawn in a line next to it.


Protip: Select a spawn and move it above the position where you like it. Then press "END" to drop it to the floor. This will make sure that you'll spawn correctly ingame without falling trough the floor.


Bot Navigation

The Navigation Mesh Visualisation in action

To make the Bots move on your map, you need to add a "Nav Mesh Bounds Volume", which you can find under the "Volumes" Category in the "Modes" Window.
The Volume needs to cover ALL of the walkable space of your map.
Press "P" on your keyboard to get a visual representation of the Navigation Mesh. The green area represents the walkable space for the Bots.
DO NOT make ANY changes to the settings of the volume in the "Details" window, since this will cause the Bots to not move at all.
The Bots will only move between areas that are clearly connected with the Navigation Mesh. (check the "P" Navigation visualisation)
To connect areas that don't connect to eachother but are wide enough to fit a player, you can use a "Nav Link Proxy"
Drag a "Nav Link Proxy" from the "All Classes" category in your map. The Proxy has two beacons that need to touch the green area of the Nav Mesh.
Press "P" to see the bounds and the connection indicator. Align the two beacons so they connect the two Nav Mesh areas. This way you can link a narrow doorway that won't connect to the Nav Mesh.
You can change the Nav Link to be one way by changing the "Link Direction" setting in the "Details" window.


Reflection Captures

A Sphere- and Box Reflection Capture

Reflection Captures are needed to have realistic reflections on all surfaces that are inside the reflection volume.
There are 2 Types of Reflection Captures avaiable. "Box-" and "Sphere Reflection Captures".
The only difference is the shape, so you can adjust the volumes to your level geometry.
Having Reflection Captures in your map prevents shiny and reflective surfaces from looking pitch black ingame. (e.g. Weapons)
Drag and Drop them into your Level from the "Visual Effects" Category of the "Modes" window.
Adjust the size to the aproximate size of your room on eye level.


Bomb Spots

Search & Destroy maps need at least one bombspot. You can have up to 2 seperate bombspots ( A and B ) But you can have as many Bomb Placement Spots for the two Spots.
Drag the "Pavlov Bomb Spot" from the "All Classes" category on the left in the "Modes" window into you map.
By default the Bombspots will be treated as bombspot "A". To change it, simply tick the checkbox "Is B".
The bomb will be placed at the root of the red arrow facing the direction of the arrow. Leave some space between the wall and the arrow, otherwise the Bomb will clip into the wall. (About 5 Units)


Blocking Volumes

Apart from regular walls, sometimes you want to use a "Invisible Wall" for blocking access to a certain area of the map.
To create a "Invisible Wall", drag a "Blocking Volume" from the "Volumes" catergory into your level and scale it to your liking.
The Geometry Editing Tool can also be used on this volume to easily adjust it to your Level Geometry.
Use Blocking Volumes as a ramp over staris to prevent the VR camera from aggressively hopping when walking up stairs.
You can also use them for Smoothing out narrow and busy areas to prevent getting stuck and assure smooth gameplay.


Killing Volumes

Put a "Pavlov Kill Volume" about 1000 - 2000 units under your map, that is a bit bigger than your playspace. This will kill players that somehow fell out of the map or gliched out of it.
You can also use the Kill Volumes for harzardous enviroments in that the Player should die when touching the Volume. (e.g. the front of a moving train or a pool of lava/deep water)


Pavlov Game Logic (Update 1.1)

Since the latest github update (1.1), Davevillz added a new actor called Pavlov Game Logic.
You must add this to your level or the map will not show up ingame.
Once you placed the actor in your level, you have to assign the definition file you created before.


Ladders (Update 1.1)

Since the 1.1 update, you're able to have vertical ladders in your level.
Basicly you just drag the Pavlov Ladder actor and place the edge of the ladder against an object ie. a vertical or angled ladder.
A tip: you can use the Geometry Editing (Shift+5) to edit it more easily.


Bullet Penetration - Physical Materials (Update 1.1)

Show Plugin Content

To enable bullet penetration, you first have to show the Plugin Content. Do this by selecting the View Options in the Content Browser and enabled Show Plugin Content. Next open your material, go into the General tab and select the Phys Material based on the object you're using.
There are two options, normal and thin. Thin will be penetrable.
Physical materials will also change the physics of the objects so metal sounds like metal, wood sounds like wood.


Testing your Map

Before you Test your map, save your work and close the Editor.
Go to your Project Folder ( Usually \users\*winuser*\documents\Unreal Projects\ ) and delete the "Build", "Saved" and "Intermidiate" folder inside. Then open up the Editor again.
To Test your map, open the "Pavlov Workshop" window by clicking on "Window" > "Pavlov Workshop"
Click on the "Testing" Tab and then press the "Stage" Button and wait for it to finish.
This will create a local .pak file in your game folder, so you can load up the map offline for testing.


Submitting and Updating your Map

Before you Submit your map, save your work and close the Editor.
Go to your Project Folder ( Usually \users\*winuser*\documents\Unreal Projects\ ) and delete the "Build", "Saved" and "Intermidiate" folder inside. Then open up the Editor again.
To submit your map, open the "Pavlov Workshop" window by clicking on "Window" > "Pavlov Workshop".
Click on the "Deployment" Tab this time and press the "Submit" Button after you typed in some changenotes.
To update the Thumbnail or the map information, simply edit the "definition" file and press the "Sync Metadata" Button on the Setup Tab of the "Pavlov Workshop" Window (Where the "Create New" Button was before)
By default, the Steam Workshop page is set to "Hidden" ( A orange promt will notify you), visit the Workshop page of your map on steam and set the visibility to "Public".


Protip: Add some screenshots to your Steam Workshop Page and choose a Thumbnail that represents the map, as the Thumbnail is used in the map selection screen ingame. To add screenshots, visit your Workshop Page on Steam and click on the "Add/edit images & videos" button on the right.


Creating an overhead map image

Add a Camera Actor to your map, preferable high (1000 units roughly) above your map
Rotate the camera -90° on the Y (green) axis so the camera is looking down
Change the Projection Mode to Orthographic
Press G (Game View) which will hide editor stuff
Right click the CameraActor and select Pilot 'CameraActor'
Change the View Mode from Wireframe to Lit
Change the Ortho Width so your whole map is in screen
If you want to remove some ceilings from of the camera, increase the Ortho Near Clip Plane untill the ceiling you want to be removed is hidden

For taking a screenshot: Press F11 (Immersion Mode), press the arrow in the top left and choose "High Resolution Screenshot"
Press the camera at the bottom right to create your screenshot. The screenshot will be saved in ../YourProject/Saved/Screenshots/Windows/ folder

Stop piloting the CameraActor and delete the CameraActor. If you don't do this, your map will not load.


Troubleshooting

FAQ
The "Create New" Button is missing Steam needs to be open and the used Account needs to have Pavlov purchased. Also check your firewall settings if it blocks any UE4 application
The Map does not update ingame or on the Workshop page Restart Steam, close the Editor and go to your Project folder, delete the "Intermidiate", "Saved" and "Build" folder. Restart the Editor and try updating again
Loading the map ingame leads back to the Lobby Check the Definition file if the map is linked properly
Error "Definition not found" Check if your UGC ID matches the UGC ID in the Definitions file. The definitions file needs to be directly inside of the "UGCXXXXX" folder
Map not loading ingame Check if you have added a Pavlov Game Logic and assigned the definition file to it
Textures or Models are not showing ingame Use "Fix up redirectors" and delete the "Build", "Saved" and "Intermidiate" folder inside the Project folder. Also make sure ALL Assets are inside the UGCXXXXX Folder
I lost my definition file First make sure it's really gone, if it is, add a new Data Asset in the UGCXXXXX folder. Right click in the UGC folder, Miscellaneous > Data Asset > Choose Pavlov_Map > Name it definition (all underscore). Fill in your Unique Id which is your UGC foldername ie. UGC123456789


Thanks for Reading!