
This video gives you a taste of what you can look forward to in this course.
Please download the zip archive and extract the Exercise Files folder to your Desktop. The files in this folder will be referenced as you progress throughout the course.
In this video we use Autodesk's Character Generator to create and customize a free 3D human character. We adjust facial and body blend shapes, select hair style and color, and choose clothing for the character. We then export a FBX file for use in Unity.
Here we create a unique human character using Adobe Fuse (beta). You see how to fine-tune the character's face, body, hair and clothes by dragging in the viewport and by dragging sliders that blend between many possible options. We save the native Fuse file locally.
Using Adobe Fuse, we export our character automatically into Adobe Mixamo with a few clicks. In Mixamo the auto-rigger builds a skeleton with constrained joints that fits within the skinned mesh created in Fuse. We then export the rigged character as an FBX file for Unity.
We use Mixamo to animate a rigged character. In this case we apply an animation clip called Standing Death Forward React to the character and export it as an FBX file for Unity.
In this video we import a character created in Autodesk's Character Generator into Mixamo where it is rigged. We then download this rigged character in T-pose as an FBX file for Unity and rename the new asset to differentiate the skin-only and skin with skeleton files.
Mixamo has many of its own characters that you can animate and export. The advantage of using the Mixamo characters is that they include many unique fantasy, cartoon and monster characters that generally require advanced skills in 3ds Max or Maya to create.
We explore RenderPeople's posed, animated and rigged 3D scanned and texture-mapped from life people and download free samples for use in Unity.
In this video we install Unity Hub and select the 2019.1.3f1 version, create a standard 3D project, launch the Unity Editor and configure a few options. We hide meta files, change the color space from gamma to linear and examine the external tool settings.
We drag and drop various user interface palettes around to set up Unity for the project. The Console, Navigation and Lighting windows are arranged together on the right, the Inspector is adjacent to the Project window and the Animator is up to with the Scene and Asset Store windows.
Here we import an FBX asset, create folders, and reorganize Assets with subfolders. We learn how to navigate in 3D space and create a ground plane that extends off into the distance.
In this video we import a selection of Unity Technologies' Standard Assets package. We assign the NavyGrid material to the ground plane and adjust its tiling so we can see a textured grid in the scene.
After adjusting the orientation of the directional light, we create a custom procedural skybox showing a warm glow on the horizon. We then verify that light map UV's have been generated and enable the static flag on the Architecture instance and all of its children.
Here we uninstall unneeded default packages and then intentionally install cinemachine and post processing packages.
In this video we configure two Cinemachine virtual cameras and see how they interact with the Main Camera through the Cinemachine brain component.
After bringing in a rigged FBX file into Unity, we create an instance of the asset in the hierarchy and configure the asset's model, rig, animation and material aspects.
We combine diffuse and opacity texture maps into a single PSD file with an alpha channel. We also combine specular and gloss in much the same way.
We change shaders and render modes on duplicate materials to best represent eyes and eyelashes.
Here we combine hair maps and configure the hair material and rendering mode.
In Gimp we combine texture maps using an alpha channel for hair opacity.
We explore the avatar and see how the bones can be adjusted to enforce T-pose.
Here we drag and drop the third person animator controller into our character's animator component to animate its avatar.
We unpack the character prefab and add the ThirdPersonUserControl script, which brings in additional dependencies. We configure the Capsule Collider and ground check distance.
We adjust the C# code slightly to cause the player to walk by default using the logical NOT and logical OR statements.
In this video we use a method that is part of the Vector3 class to normalize the character's motion to avoid running when two arrow keys are pressed.
Here we create a cinemachine free look camera and assign the character as the follow target. We create an empty game object, move it to the character's eye height and assign it as the look at target.
In this video we fine-tune the free look camera rig by adjusting its rigs' heights and radii. In addition we offset the middle and top rigs to get a full view of the character's body. We also make the look at target and the free look camera itself children of the character.
Using cinemachine example assets we swap out two animation clips in the character's animator controller. In particular we replace the idle and walk animations for more natural movement.
After importing an FBX file with an animation we add a new state to the animator controller. We also copy the character's avatar into the new asset and adjust the animation so the root transform in Y is baked into the clip. We create a Death parameter that triggers the transition from Any State.
Here we use a script that connects the character's behavior of falling more than a set distance threshold to the Death parameter, causing the character to die when falling from a reasonable height.
We import a new asset in the shape of ramps perfectly matching the geometry of the stairs. We generate colliders for the ramps but disable their mesh renderers so the character encounters stairs as ramps. We also adjust parameters to control walk, animation and jump speeds.
We bring Mei into Unity, a character exported from Autodesk Character Generator. Here we organize the project folders, and configure the model's assets including its avatar, materials and texture maps.
In this video we design an empty third person player and configure it with all the components necessary to control the character, which we child to this game object.
We toggle off the spotlights that come with the Autodesk character and connect the third person player to the FreeLook camera and LookAt targets developed earlier.
We strip off all the components on our first character Nicole any rely on the components on the third person player instead. Swapping characters is now as easy as replacing avatars and toggling active checkboxes.
Here we import a legacy character made prior to the advent of humanoid rigs and upgrade it for use with Mechanim. We upgrade the material, shader and more.
In this video we import a commercially produced 3d scanned and textured character from RenderPeople into Unity. We use Photoshop to edit the supplied texture maps and configure the material for the best appearance of the character.
We start by making the third person character generic and then make it a prefab. We then make each character a prefab and then add characters to the third person player as prefab overrides.
In this video we open a prefab and add an extension called Cinemachine Collider to the FreeLook camera in order to have the camera detect obstacles in the world and alter its path to avoid them.
Here we create a post processing profile, add a post process layer script to the main camera, create a new layer for this, and add a Cinemachine post processing extension that references the profile. We also use SMAA anti-aliasing.
Here we add and configure many post-processing effects including auto-exposure, ambient occlusion, bloom and color grading.
We bring in a free commercial asset from RenderPeople, configure its material and texture maps, create an animation controller, add its animation clip, and loop the clip and its pose to create an animated stationary character.
In this video we bring in a fantasy character that has a seated animation clip. We correct his scale problems and deal with his material and texture maps. We also create an animator controller and link it into the Animator component in the hierarchy.
Here we import a chair model, scale the model and non-uniformly scale the instance. We child the chair to the character and apply root motion in the character's animator component.
In this video we convert the character's rig from generic to humanoid and crop its animation clip using the traffic light symbols showing red, yellow and green. We also bring in a desk and transform it relative to the character.
In this video we import another rigged character and configure her material, texture maps and animator controller.
Here we add an AICharacterControl component and configure its dependencies including the Nav Mesh Agent.
In this video we build a navigation mesh that the Ai agents traverse. We set specific objects to navigation static and create both a NavMesh and a HeightMesh.
We rebuild the NavMesh to include hidden ramps superimposed over stairs by setting these objets to Navigation Static. We also adjust the size of the agent in the Nav Mesh Bake page.
By adjusting the Drop Height parameter and having Off Mesh Link flags set on static geometry we are able to bake these links into the Nav Mesh so our NPCs can take shortcuts.
Here we add a box collider and see how the Ai character runs into it. We then add a Nav Mesh Obstacle set to carve the NavMesh and we see how it is a better solution for Ai behavior.
We implement a high-cost area with a cube object that we designate navigation static and after we assign it a custom navigation area. This alters the behavior of the Ai-driven NPC, discouraging movement through the high cost area.
Here we abstract the Ai-driven NPC as a generic prefab that can be used with any number of skins and avatars.
In this course you'll learn everything you need to know to create a simple puzzle/chase game employing a third person player character that you control and an enemy non player character that's controlled by an artificial intelligence.
This course is for beginners who either have no experience or may have dabbled in Unity with characters and want clarity on how character creation, rigging, animation, finite state machines, character controller components, custom C# scripting, game controllers, Cinemachine, post-processing and much more comes together to make a playable game.
The software that I use in the course is all available free including Unity personal edition, Microsoft Visual Studio Code, Autodesk Character Generator, Adobe Fuse, Adobe Mixamo, and free samples from RenderPeople.
I happen to use Adobe Photoshop but you can use any image editor in the course including Gimp, which is free. Coordinating all of this is actually a lot easier than it sounds, but I'll take you step by step through this wide collection of topics and tools in the course of building a simulation which eventually evolves into a simple yet entertaining game.
To take this course all you need is a Mac or a Windows computer. Let's get started!