In this lesson, you'll create a third person character. It will look like this one in the video below:
In this lesson, you'll create a third person character. When you're done, it will look like this one in the video below:
(You'll learn how to swap out the character so that you can use any that takes your fancy.)
Let's get started.
Unity Starter Assets
Unity have recently released some new Starter Assets. These replace the old Standard Assets, which are now deprecated. The new ones consist of a first and third person controller. These uses the new input system.
So, start a new project. Add a Plane to the scene, and a material for the Plane.
Now we need to download the Starter Assets from Unity. Click on Window > Asset Store from the menus at the top of Unity. Then go to this page:
(Or type Starter Assets in the search bar at the top of the Asset Store.)
Download and install the Third Person Character Controller.
While you're on the asset store, let's download a sword. You can do a search for swords. But we went for the ones on this page:
Adding the Third Person Character
In the Project area at the bottom of Unity, have a look for a folder
called Starter Assets. Expand the folder called ThirdPersonController,
then click on the prefabs folder. You should see an item called PlayerArmature:
To add the character to your scene, you could just drag and drop it. But there is another way. Click the Tools item on the menu at the top of Unity. From the Tools menu, select Starter Assets > Reset Third Person Controller Armature:
You should now see a robot in your scene:
Click the Play button at the top of unity. Use the WASD keys to move around (or the arrow keys). Press the spacebar and the robot will jump. Hold down the left shift key to run. Make sure to move your mouse around to get a feel for the way the camera works.
Of course, you probably don't want a robot. You want your own character. You'll learn how to swap it out shortly. For now, take a look at the way the cameras work. If you click on the Main Camera item in the Hierarchy, you'll see that it has a Cinemachine Brain component. Cinemachine is a cameras system that can be used to do all kinds of things, such as the Dolly tracking you see in complex cutscenes. You should find that there's an entry for Cinemachine added to the Game Object menu at the top of Unity:
Also in the Hierarchy, notice the item called Player Follow Camera. When you click on this item, notice the Inspector on the right. It has a Cinemachine Virtual Camera component added. You can tweak the settings for your camera here:
There's a lot of settings here. But try adjusting the ones highlighted in the image above, Camera Side and Camera Distance¸ and see what they do.
Swap out the Third Person Robot
Now let's swap out the robot for a character of your choosing. It's easy enough to do!
We'll get a model from Mixamo. So, head on over to this site:
We've already downloaded animations from this site in previous lessons. This time, we'll grab a character. If you haven't done so already, sign up for an account. You can, of course, use any character you like. But we're going to use one called Eve by 3D artist J Gonzales. So, click on the Characters links at the top and do a search for Eve.
Download the FBX file to your computer (select with skin from the dropdowns). Once it's on your computer, drag and drop the FBX file into the project area of Unity. You can create a folder called EVE, like we've done. We'll place animations in here, as well. Click to select the file:
With the file selected, have a look at the Inspector on the right. Click the Rig tab at the top and switch the Animation Type from Generic to Humanoid. Set the Avatar Definition to Create From This Model. Then click the Apply button at the bottom:
Now expand the eve item in the Projects area by clicking the arrow, circled in red below:
Notice the item on the end. This is the Avatar that we'll need to replace the robot.
Now look at the Hierarchy on the left. Select the PlayerArmature item. The item text is blue. It's blue because it's a prefab. However, we'll need to delete the robot. This can't happen while it's still a prefab. However, you can unpack a prefab. So, right click on PlayerArmature. From the menu that appears, select Prefab > Unpack Completely:
When you unpack the prefab, the text for PlayerArmature will turn white, indicating it is no longer a prefab.
Expand the PlayerArmature item in the Hierarchy. Now expand the Geometry item. Click on the Armature_Mesh to select it:
With the Armature_Mesh selected, press the delete key on your keyboard to get rid of it (or right-click and select Delete from the menu). Now drag and drop your Eve model onto the Geometry item to replace Armature_Mesh:
With the eve_j_gonzales item still selected in the Hierarchy, have a look at the Inspector in the Hierarchy. Locate the Avatar item. Click the tiny circle indicated by the red arrow below:
Clicking the tiny circle brings up a Select Avatar box. Double-click the eve item from the list:
The Avatar area should now read eve_j_gonzalesAvatar:
Still in the Hierarchy, click on the PlayerArmature item. In the Inspector, do the same - switch the Avatar to the eve one:
And that's it - you're ready to go! Play your game and you should see the eve character moving around instead of the robot, as in the short video below:
Placing a Sword in Eve's hand
We need to drill down in the Eve model in the Hierarchy. We're looking for right hand. So, expand the eve_j_gonzales item in the Hierarchy. You'll see items for Hips and Mesh. Expand the Hips item and then keep going through these items:
Now right-click on RightHand. From the menu that appears, select Create Empty. Rename the empty object to SWORD. In the project area of Unity, drag and drop your sword onto the SWORD empty game object:
Select the Wakizashi item. The sword will be pointing up, so you'll need to reposition and rotate it. This is a little bit fiddly. But a rotation on the Y of 95 seems to work OK. For the X, Y and Z positions in the Inspector, we went for values of 0.13, 0.023, and -0.011. It looked like this in Scene view:
It looks slightly misaligned, in the image above. However, when playing the game, it looks like this:
Close enough! Now let's do the animations. For this, we'll need to hack the code a little, and add something to the input controller.