In this post we will cover the basic strategy that we will use to create the character creation screen.
This topic was quite large and its split this into multiple posts, this is the first one.
- Overview for character creation (This post)
- Dealing with complex nested options
- Applying the options to skeletal mesh (using n-hance assets)
- Connect character creation to custom server
- Populate character selection screen from server
In further series, I will look to link this to a custom dedicated server and link with a create character flow.
Note that what we’re building is essentially using the same techniques here covered in chapter 10, but with a much more advanced use-case.
Rotation part of character in this screen is covered in chapter 15.
Overview
So in this post I’d like to cover ‘what’ it is that I am building and the high level of ‘how’. Where as the next chapters will go into the implementation details.
First question is, why is this complex? Will yours be complex too?
Basic answer is that customizations are hard. If you’re planning to just have 3 options to choose from, then you would not need to go into the same complexity. The issues arise when you have nested options.
This means that you may have few races. Those races can have few genders. Those genders then have different hairstyles. By the time you’re on the third layer, it’s already very complex.
The best ‘tool’ to deal with this complexity I found is the use of composite keys with a Map structure and we will go into detail about how we can leverage them to solve these complex problems.
I.e. you will want to avoid using many IF statements with arrays of data. I tried this and it goes out of hand quickly, it will be difficult to follow along in future.
For completeness, the assets that I was integrating in my example can be found below, note that I am not in any way affiliated with them or get commission, this is just for reference purposes.
Mini review: This was the best asset I could find for the genre I am after, but to be honest I think the documentation and ‘ease of use’ of this asset can be majorly improved. I’ve generally wasted days if not weeks figuring out several things and options. It came with no guide about use (other than linking it to UE mannequin). I used one of their previous versions and noticed after a while that they released an update, which also caused me to re-do a bunch of work. Quality of aesthetics of this asset is close to 5/5 for me, but ease of use is like a 2/5.
I also used the HONETi 2D GUI kit:
Mini review: This asset was pretty great. It came with many template examples that I could use and get a feel for before trying to integrate it in. The general quality was quite high and it also came with some sound effects which was a nice bonus. Quality of aesthetics of this asset was 4/5 for me, and the use of asset perhaps 5/5 as I think it was the easiest one I had contact with.
Pre-requisites
In order to get started, you will need to have some basic knowledge of creating a map and creating basic widgets. Nothing specific, empty map with any ground should do (where you will spawn your character mesh). Then for a widget, simply modifying game mode to allow mouse input and adding a new empty widget to a HUD should do.
I will cover some of these basics in the video for this episode.
Once you’ve done that, we can get onto next stage of populating options for your character selection screen.
Pingback: 21. Unreal Engine – character creation part 2 – complex nested options – The web tech journal
Pingback: 22. Unreal Engine – character creation part 3 – apply options to mesh (n-hance) – The web tech journal
Pingback: 23. Unreal Engine – character creation part 4 – connect to custom server – The web tech journal
Pingback: 24. Unreal Engine – character creation part 5 – select character with server – The web tech journal
Pingback: 24. Unreal Engine – logging into a custom server – The web tech journal
Pingback: Unreal Engine – Create character and Login with OWS – Unreal game dev with Yaz