Quick Start Guide - whoisEllie/Project-Isolation GitHub Wiki
Quick Start Guide
Welcome to the Quick Start Guide! If you're trying to use Project Isolation assets in a project created as BP Only, or are unfamiliar with C++, but wish to use the C++ assets from this repo, fear not! All of Project Isolation is designed with Blueprint interfacing in mind - all the values you'd ever need to tweak are exposed and editable in Blueprint classes.
To get started with Project Isolation you'll need the following:
- A recent release of Unreal Engine, either 4 or 5 (the project is built on 4.27 - it may work with other versions but I'd recommend sticking to 4.27, just to be sure)
- An IDE for use with C++ (don't worry, you don't need to write any code!). I recommend JetBrains Rider across all platforms,
- A C++ project in UE4 (If you created your project as BP Only, don't worry! It's possible to switch over to a C++ project)
- git installed on your computer (not strictly necessary, only if you want easier version control)
The first thing you'll want to do is to create a project if you haven't already. Make sure to do this with the C++ starter project (hence, the requirement for an IDE). This will create a /Source/MyGameName
folder in your MyGameName/
folder (so the path would be MyGameName/Source/MyGameName
). Inside this directory, you may see 2 folders: Private
and Public
. These correspond to the folders backed up in this repository, and they include the header and C++ files for the provided classes. If the folders exist and have files in them (i.e. you've already created C++ classes and sorted them into these 2 folders), you can move the .h and .cpp folders into their respective folders. If the folders don't exist (or are empty, if so you can delete them), then you can just drag and drop the Private
and Public
folders into Source/YourGameName
. You'll also need to add some dependancies to your YourGameName.Build.cs
file. If you open it with your IDE of choice (or hell, even a text editor like notepad will do), you'll see what should look like the following:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }
You'll have to add "Niagara" to the dependancies here (so that we can work with Niagara particle systems), and if you're going to be using the code on a Mac, you'll also have to add "PhysicsCore"
, as this is required for using Physical Materials. In the end, you should see something like this on Windows:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "Niagara" }
And like this on Mac:
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "Niagara", "PhysicsCore" }
That's all the C++ (I know part of it is c#, shh) that you need to deal with :)
Now, if you open your project, you should see, well, nothing yet :p We need to set up our blueprint classes first. To make a blueprint of our C++ classes, simply add a blueprint class like you normally would, but instead of choosing one of the generic classes, open the drop down menu at the bottom of the creation window, and enter the class that you'd like to create into the search bar, such as SCharacter
. This will create a Blueprint, based off of the SCharacter
class, which will inherit all the variables declared in C++. From here, if you look into the details panel, you'll be able to define your custom variables, assign meshes and animations, and make use of the project isolation files as the base of your next project! If you're wondering what a variable does, you can either hover over the variable itself, which will show you a short description of what the variable does, or head over to the Class Overview, which includes the full list of Classes, and a more detailed overview of their functions and variables.
Finally, it's time to set up your inputs.
If you're starting from a totally fresh project, you can go ahead and use DefaultInput.ini
in isolation-game/Isolation
. This contains all of the inputs I've set in my project file, and is plug-and play with the rest of the provided code. If not, you'll have to set up the following input:
Axes:
-
MoveForward
-
MoveRight
-
LookUp
-
LookRight
Actions:
-
Crouch
-
Sprint
-
Jump
-
PrimaryWeapon
-
SecondaryWeapon
-
Fire
-
Reload
Note that these are case-sensitive, as they correlate to our input mappings within SCharacter
. You can of course change these, and choose whatever actual inputs you'd like to correlate to the mappings.
Well, that's it, have fun!