We may earn an affiliate commission when you visit our partners.
Course image
Penny de Byl and Penny Holistic3D

Any self-respecting game developer knows that getting their third-person player character right is one of the fundamental keys to a great gaming experience. Not only this but the controller, once developed, can be transferred from one game to another, making the code reusable and scalable. In this course, you will learn how to put together your own third-person character from scratch using freely available 3D models and animations, which you will learn how to control with C# in Unity.  The idea behind this course is to take students through a series of workshops with the necessary tools to help them make a character, animate a character and program a character without the need of being able to model or animate and gain an understanding of the third-person character controller pipeline.

Read more

Any self-respecting game developer knows that getting their third-person player character right is one of the fundamental keys to a great gaming experience. Not only this but the controller, once developed, can be transferred from one game to another, making the code reusable and scalable. In this course, you will learn how to put together your own third-person character from scratch using freely available 3D models and animations, which you will learn how to control with C# in Unity.  The idea behind this course is to take students through a series of workshops with the necessary tools to help them make a character, animate a character and program a character without the need of being able to model or animate and gain an understanding of the third-person character controller pipeline.

This course uses Unity 2020.1 or 2020.2, Input System 1.0, and Cinemachine 2.6.3

Learn how to program and work with:

  • 3D Characters and Rigs

  • Humanoid Avatars

  • The Mecanim System

  • Avatar Masks

  • Animation Blend Trees

  • Unity's new Input System Package

  • Unity's Cinemachine Package for 'Character Following' Cameras

  • Adobe's Mixamo Service for Rigging and Animating 3D Characters

  • Third-Person Character Controllers

  • Mixing Root Motion with Physics Controls

What people are saying about Penny's courses:

  • Dr. Penny is a wonderful person and a true expert. All of her courses I've taken have been top notch and in my opinion there is no better teacher out there.

  • Allow me to say how hugely important this is for a person who is interested in certain types of game design. Creating games where you can create AI behaviors that support emergent situations.

  • I honestly love Holistic's teaching approach and I've never learned so much within a few hours about coding effectively with such detailed explanations.

This course focuses on the building of typical third-person character functionality including jumping, falling, weapon handling, shooting, and taking damage. By the end of this course, you will have a great third-person character controller that you can use in your own games or adapt for customized situations.

Enroll now

What's inside

Learning objectives

  • How to rig and animate a 3d character from a pre-existing library of high quality, motion captured animations.
  • How to create a state machine of character animations that are controlled via user input.
  • How to implement the unity input system.
  • How to use cinemachine to create a character following camera.
  • How to program from scratch a third-person player character controller for a game environment.

Syllabus

In this section students will obtain an overview of the course as well as cover some basic information and setup for study.

This lecture welcomes students to the course and provides and overview of the content.

Read more

How to contact us

Here's how to get the best experience from studying this course and answers to some popular student questions.

This article provides details for signing up with a free Mixamo account.

Join the thousands of other Holistic3D students on our social media channels.

In this lecture students will learn how to upload and download a character with Mixamo in a format suitable for use by Unity.

In this lecture students will gain insight on how best to select Mixamo characters and animations that will suit their games.

In this lecture students will learn about some advantages to humanoid characters as well as bring in some new animations readying their character for movement controls.

In this lecture students will learn how to implement the Unity Input package to capture user input for moving the character.

In this lecture students will learn how to write code to cause the character to accelerate to a maximum speed and build a blend tree to sync the speed with the animations.

In this lecture students will learn how to fix animations on a character when they seem to go wrong.

In this lecture students will learn how to extend a blend tree to allow the character to move forwards or backwards.

In this lecture students will complete the forward and backward blend with some extra animations from Mixamo.

In this lecture students will learn how to make a character turn using the x movement from the input.

In this lecture students will learn how to add cinemachine to their projects and create a camera that will follow the player.

In this lecture students will examine some of the more advanced settings available for the virtual camera to give a different interactive feel to the character controls.

In this lecture students will prepare their character with jump input and physics objects to create an advanced jump animation.

In this lecture students will learn how to create a dedicated jumping sub-state animation machine and start to write the code to trigger a jump.

In this lecture students will learn how to carve up and animation to get better control over when it runs.

In this lecture students will access the character's rigid body to push her up into the air using physics when she jumps.

In this lecture students will learn how to add a landing animation that is triggered by a raycast.

In this lecture students will learn how to transition from one sub-state animation to another and begin to add in the animation to allow jumping when the character is moving.

In this lecture students will complete the jumping while running animation.

In this lecture students will learn how to change the landing animation based on the force with which the character lands.

In this lecture students will learn how to complete the falling animations with rolling upon landing and adding a falling state for just walking off the edge of a high object.

In this lecture students will learn how to add a weapon model to the scene and attach it to the character so it moves with the character's animations.

In this lecture students will learn how to attach and detach game objects from the bones of an animated character.

In this lecture students will learn how to change the parent of an object to player with different animations.

In this lecture students will learn how to use an avatar mask in a layer to blend and control animations.

In this lecture students will learn how to add a new key to the input controller and create the code to trigger the weapon pickup and firing animations.

In this lecture students will learn how to add rotations to a humanoid that override the animations.

In this lecture students will learn how to clamp the range of the mouse controlled rotations to limit unrealistic movement.

In this lecture students will learn how to use a line renderer to create a laser beam that shows where the player's weapon is aimed.

In this lecture students will learn how to add a couple of different types of cross hair effects to the scene to highlight the laser's target.

In this lecture students will learn how to use a spotlight to project a target point onto the object being aimed at.

In this lecture students will learn how to hide the mouse cursor and lock it as well as unlock it with the ESC key.  In addition they will create a navmesh to act as the battle ground between their character and AI bots.

In this lecture students will obtain an overview of navmeshes to bring them up to speed with the topic or as a refresher before continuing to the next lecture.

In this lecture students will learn how to import a package with preprogrammed navmesh agents and place them in the environment to act as enemies.

In this lecture students will learn how to blow up the orbs when they are fired upon.

In this lecture students will learn how to add in getting hit and death animations to the animator as well as program for them to make the character act appropriately.

In this lecture students will learn how to fix a bug that has arisen when the jumping animation is not in line with the code logic.

In this lecture students will learn how to add a forward force to a jump.

In this lecture students will learn how to change the weight of an animation layer with code.

In this video Penny provides a few words of congratulations for those who've finished the course and ideas of extra study areas.

In this video Penny provides an overview of her other courses.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Unity's Cinemachine package, which allows developers to create dynamic and intelligent camera behaviors for their games, enhancing the overall player experience
Employs Adobe's Mixamo service for rigging and animating 3D characters, streamlining the character creation process and providing access to a vast library of animations
Focuses on building typical third-person character functionality, including jumping, falling, weapon handling, shooting, and taking damage, which are essential elements in many games
Utilizes Unity 2020.1 or 2020.2, Input System 1.0, and Cinemachine 2.6.3, so learners should ensure compatibility with their existing projects or be prepared to work within these versions
Teaches how to mix root motion with physics controls, which is a technique used to create realistic and responsive character movement in games
Explores the Mecanim system and animation blend trees, which are fundamental tools for creating and managing character animations in Unity

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Third-person character controller with unity

According to learners, this course provides a solid foundation and a step-by-step guide to creating a third-person character controller in Unity using the new Input System, Cinemachine, and Mecanim. Many appreciate the instructor's clear explanations and calm teaching style, finding the lectures easy to follow. Students particularly highlight the course's focus on integrating various Unity systems and handling character animations using Mixamo. While the course covers essential mechanics like jumping and weapon handling, some reviewers note that certain sections, particularly regarding animation blending and physics interactions, can be challenging or require extra debugging. Overall, it's viewed as a practical and valuable resource for game developers.
Uses Unity 2020, Input System 1.0.
"The course uses Unity 2020.1/2020.2."
"It focuses on the Input System 1.0 package."
"Uses Cinemachine 2.6.3 as stated."
Covers character animation and blend trees.
"Excellent coverage of Mecanim and blend trees."
"Helped me understand character animation setup."
"Using Mixamo and setting up animations was a key takeaway."
Focus on combining Unity features is valuable.
"Loved seeing how to integrate Input System, Cinemachine, and Mecanim."
"Learning to combine different Unity systems was very useful."
"The course showed me how to bring all the pieces together."
Instructor's teaching style is highly praised.
"Penny's explanations are crystal clear."
"The instructor explains things really well."
"I found the lectures easy to follow thanks to the clear explanations."
Course builds a strong base for controllers.
"Provides a solid foundation and step-by-step instructions."
"Gave me a solid foundation for creating controllers."
"This course taught me the fundamentals I needed."
Some sections may require extra troubleshooting.
"Some parts, especially animation blending, were a bit tricky."
"I had to debug certain sections to get them working."
"Needed extra time to figure out some physics interactions."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Create a Third-Person Player Character Controller with these activities:
Review C# Fundamentals
Solidify your understanding of C# syntax and programming concepts before diving into the course. This will make it easier to understand the scripting used for the character controller.
Browse courses on C# Programming
Show steps
  • Review basic C# syntax and data types.
  • Practice writing simple C# scripts.
  • Familiarize yourself with Unity's C# API.
Prototype Basic Movement
Practice implementing basic character movement in a separate Unity project. This will give you a head start when building the full controller in the course.
Show steps
  • Create a new Unity project.
  • Import a simple character model.
  • Write a script for basic forward/backward movement.
  • Add jumping functionality.
Review 'Game Programming Patterns'
Learn about common game programming patterns to improve the structure and maintainability of your character controller code.
Show steps
  • Read the sections on State and Command patterns.
  • Consider how these patterns apply to character control.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Document Your Learning
Reinforce your understanding by documenting your progress and key learnings throughout the course. This can be in the form of a blog, journal, or video series.
Show steps
  • Choose a platform for your documentation.
  • Summarize each lecture's key concepts.
  • Reflect on challenges and solutions.
Review 'Unity 2021 Cookbook'
Consult a Unity cookbook for solutions to specific challenges encountered while building your character controller.
Show steps
  • Identify a problem you're facing.
  • Search for a solution in the cookbook.
  • Adapt the solution to your project.
Explore Advanced Cinemachine Features
Deepen your knowledge of Cinemachine by exploring tutorials on advanced features like procedural camera movement and camera blending. This will allow you to create more dynamic and engaging camera systems.
Show steps
  • Search for Cinemachine tutorials online.
  • Experiment with different camera settings.
  • Implement a custom camera behavior.
Contribute to a Character Controller Project
Contribute to an open-source character controller project on GitHub. This will give you experience working with a larger codebase and collaborating with other developers.
Show steps
  • Find an open-source project on GitHub.
  • Fork the repository and set up your local environment.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Create a Third-Person Player Character Controller will develop knowledge and skills that may be useful to these careers:
Indie Game Developer
An independent game developer works on all aspects of game development, often including programming, art, and design, usually in very small teams. This course addresses a crucial element of many games: the third-person character controller. The course teaches you how to create this controller from scratch, using free assets and C# in Unity. The intention behind the course is to give students the tools to create a character, animate it, and program it without having to model or animate and to understand the third-person character controller pipeline. For an indie game developer, gaining these skills can significantly accelerate game development.
Game Programmer
A game programmer brings game concepts to life through code. Game programmers write the code that controls character movement, game mechanics, and artificial intelligence. This course that teaches how to create a third-person player character controller directly relates. The course allows you to learn how to program movement and character action. This course may be particularly appealing because it uses C# in Unity, skills demanded by many studios. Taking this course helps build a foundation in player character controller development, a crucial aspect of game programming, giving you a head start.
Gameplay Engineer
The gameplay engineer focuses on implementing game mechanics and player interactions. This individual needs a strong understanding of character controllers, player input, and game physics. This course, focused on creating a third-person player character controller, perfectly aligns with the responsibilities of a gameplay engineer. The course's coverage of the Unity Input System, Cinemachine for camera control, and implementing character movement provides a strong foundation. Moreover, the course covers weapon handling, shooting, and taking damage, which are all pertinent to good gameplay.
Unity Developer
A Unity Developer uses the Unity game engine to create games and interactive experiences. Given that this course uses Unity to create a third-person player character controller, any aspiring Unity developer will find it valuable. The course covers not only character control but also utilizes important Unity packages like the Input System and Cinemachine. Furthermore, the course delves into C# scripting within Unity, which is a fundamental skill. Becoming proficient in character creation and control in Unity is a great way to become familiar with the engine at large.
Technical Animator
A technical animator bridges the gap between artists and programmers, ensuring that character animations work seamlessly within a game engine. They often work with rigging, skinning, and implementing animations into the game. This course, which focuses on creating a third-person player character controller, fits perfectly. It explores rigging and animating pre-existing 3D characters, implementing animation state machines, and mixing root motion with physics, all vital skills. The course also teaches how to deal with avatar masks and animation blend trees. The section on attaching game objects to the bones of animated characters is also especially apt.
Serious Games Developer
Serious games developers create games for purposes beyond entertainment, such as education, training, or healthcare. Character interaction is still relevant. This course teaches how to create a third-person player character controller in Unity. It also shows you the skills needed to create characters that move and interact naturally. The skills taught in this course will help serious games developers create more engaging and effective learning experiences.
Simulation Developer
A simulation developer creates realistic simulations for training, research, or entertainment. Character control is important in simulations where users interact with virtual environments. This course teaches how to create a third-person player character controller in Unity. It also shows you the skills needed to create characters that move and interact naturally. Because the course also covers Unity's Cinemachine package, a simulation developer will create camera systems that enhance the user experience.
VR Developer
Virtual reality developers create immersive experiences. In many VR games, players control a character in a third-person perspective, so the material in this course is very useful to the VR developer. The ability to implement realistic character movement and interactions is crucial for VR. This course covers the Unity Input System and Cinemachine, which can be adapted for VR input and camera control. VR developers will learn to create compelling character interactions and movement within a virtual environment.
Animator
Animators create the movement and behavior of characters and objects in games. This course focuses on programming and implementing a third-person character controller, but animators will better understand how their animations are used in a game engine. The course delves into animation blend trees, state machines, and how to control animations via user input. The fact that this course teaches how to work with Mixamo is also very useful. The animator will work more effectively with programmers to achieve a desired look and feel.
Augmented Reality Developer
Augmented reality developers create applications that overlay digital content onto the real world. While AR experiences are often different from traditional games, character interaction can still be relevant. This course teaches character control and animation, which can be adapted to create engaging AR experiences. The lessons also show how to use the Unity game engine, a skill that is very useful for creating augmented reality software.
Character Artist
A character artist creates the visual appearance of characters in games. While this course does not directly teach character modeling or texturing, it may be useful for character artists to understand how their creations are rigged, animated, and controlled within a game engine. Character artists will better understand the limitations and possibilities of character design, and they will be able to work more effectively with programmers and animators in how to implement their designs. This course may be particularly useful as it covers rigging and animation of 3D characters.
AI Programmer
An artificial intelligence programmer creates the behavior of non-player characters in games. While this course does not directly teach AI programming, understanding how player characters are controlled is beneficial. AI programmers need to understand player interactions and movement. This course, which teaches the third-person character controller, may be useful because it provides insight into how player actions are implemented. AI programmers can use this knowledge to create more believable and challenging non-player characters.
Motion Capture Technician
A motion capture technician specializes in capturing and processing motion data from actors to create realistic animations for games and films. While this course doesn't directly involve motion capture, understanding how motion data is used to drive character animations within a game engine is beneficial. This course covers the implementation of animations within Unity, including blend trees and state machines. The motion capture technician can better understand the animation pipeline.
Game Designer
A game designer is responsible for the overall vision and design of a game. Although they do not code, a game designer benefits from understanding the technical aspects of game development. This course teaches how to create a third-person player character controller. It also shows you the capabilities and limitations of character movement and animation. The sections on weapon handling, shooting, and taking damage are also particularly relevant. This course may prove useful for game designers to communicate their ideas effectively with programmers and artists.
Software Engineer
A software engineer designs, develops, and tests software applications. While game development is a specialized field, the core principles of software engineering apply. This course, which focuses on developing a third-person player character controller in Unity with C#, may be helpful for software engineers looking to broaden their skills. It provides practical experience in software development, problem-solving, and working with a game engine. The course also covers important programming concepts. The course can apply to software engineering at large.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Create a Third-Person Player Character Controller.
Provides practical solutions to common Unity development problems. It covers topics such as character movement, animation, and camera control. This book useful reference tool for quickly finding solutions to specific challenges. It adds more breadth to the existing course.
Provides a catalog of useful design patterns specifically for game development. It covers patterns applicable to character controllers, AI, and other game systems. While not strictly necessary, understanding these patterns can lead to cleaner, more maintainable code. This book is valuable as additional reading to improve code design.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser