Third Person Controller - Third Person, AI, Multiplayer, Mobile Framework

Third Person Controller
Version 2 Available on the Asset Store

This is so much more than just a smooth and flexible character controller. The Third Person Controller is your ultimate framework for creating ANY 3rd person game.

Featuring a character and camera controller, combat system, inventory management, and much more! Thousands of hours have gone into developing this framework so you can focus on the unique aspects of your game.

Use the editor scripts to create your character and items in seconds. Easily add new animations with the unique ability system.

Designed to scale, the Third Person Controller comes with mocap animations, mobile and Unity 5 multiplayer support. Any model (humanoid or generic) can be used. It is also integrated with many assets, including Behavior Designer to add life to your AI characters.

Features

  • Physics-based character controller

  • Smooth Camera controller

  • Character and item creation in seconds

  • Shootable, melee, throwable, and magic items

  • Over 300 Mecanim animations

  • Unity 5 Multiplayer support

  • Flexible inventory and item pickup system

  • Ability system for any set of animations

  • Move with or without root motion

  • Humanoid and generic model support

  • Health and respawner system

  • IK to correctly position limbs

  • Local coop support

  • Supports keyboard/mouse or controller

  • AI integration with Behavior Designer

  • Moving platforms

Programming Features

  • Mobile friendly
  • Script-based Animator controller
  • Event, scheduling, object pooling system
  • Zero allocations after initialization
  • Coding structure designed to scale
  • Heavily commented C# code
  • Includes full source code

Abilities:

  • Balance

  • Climb

  • Cover

  • Damage Visualization

  • Die

  • Dive (Underwater Swim)

  • Dodge

  • Fall

  • Fly

  • Generic

  • Hang

  • Height Change (Crouch, Crawl)

  • Interact

  • Jump

  • Ledge Strafe

  • Move Object

  • Pickup Item

  • Quick Movement

  • Restrict Rotation

  • Roll

  • Short Climb

  • Speed Change (Run, Sprint)

  • Swim

  • Vault

Demos:

Integrations:

  • A* Pathfinding Project

  • Adventure Creator

  • Apex Path

  • Behavior Designer

  • Cinema Director

  • Control Freak

  • Dialogue System for Unity

  • Easy Touch

  • Edy’s Vehicle Physics

  • Final IK

  • Gaia

  • Horse Animset Pro

  • ICE Creature Control

  • InControl

  • Inventory Pro

  • Morph 3D

  • ORK Framework

  • Playmaker

  • plyGame

  • PuppetMaster

  • Rewired

  • UMA

Overview
Demos
Documentation
Videos

1929429--160382--big.png

2 Likes

Nice, two question for the UI you use Ugui ? what assets do you plan to integrate soon?

The asset was submitted with 4.3 so it is still using OnGUI. I can later add a uGUI package but for now I just wanted to get the core third person framework out there.

In terms of other integrations, it’ll have basic Behavior Designer tasks at launch. I have a lot of plans for this asset and AI though so expect the integration with Behavior Designer to get a lot more extensive.

Not necessarily an integration but one of the first features that I plan on adding is networking support. Ideally I’d like to use Unity 5’s implementation but we’ll see if that works out or if I need to go a third party route.

For IK have you given it thought about integrating a more robust system like FINALIK?

I have definitely thought about it and it seems like a good thing to do. The IK that the Third Person Controller does is all within the CharacterIK component so it’s really easy to remove if you want to use FinalIK. As soon as this framework is a little bit more mature I’ll look into it.

Here’s a video on setting up your character. The Third Person Controller framework is very modular and when it is all said and done there are about 15 components added to a player-controlled character. The Character Builder is a small wizard which will walk you through setting up your character.

I also recorded a few other videos on creating objects and those videos can be found here.

Looking at your wizard I had an idea… would it be hard to also setup a wizard for your animations… There are so many great animation packs out there it would be great to be able to go through setting up animations by drag and drop in the setup wizard so if you have custom animations you can replace the defaults quick and easy.

1 Like

That’s a great idea! I don’t know how possible it is though - in Unity 4 the Animator Controller doesn’t expose too much through script. I know that they have improved it with Unity 5 though so it may now be possible. My first priority will be to fix any bugs that are found and then I’m going to start on networking with Unity 5. While I’m in there I’ll take a look and see if it’s possible to replace the animations in the states through script.

Fair enough…

Looking forward to your asset!

i havent see any info in the docs but does it include a pooling system? at list for projectile and throwable?

Yes, it does. It’ll pool any object that is instantiated which includes both GameObjects and objects derived from the System.object class such as the hit indicators that appear on the GUI which show you the direction that you got hit from.

On the Behavior Designer sample pages I just added the Third Person Controller sample project. In this sample project the AI Agent (Ethan) will shoot at you when you get within range. As soon as Ethan is out of ammo in the clip he will reload. The full lists of Behavior Designer tasks are located on this page. This is just the basics in terms of the integration with Behavior Designer and there will be a lot more to come. I’ll activate the link to the Third Person Controller tasks as soon as the Third Person Controller asset has been approved (I need a link to the icon for the Behavior Designer integration page).

I’m still waiting to hear back from the Asset Store but in the meantime I’ve been fixing bugs and just added the Doxygen documentation to the site - http://www.opsive.com/assets/ThirdPersonController/API. When the Third Person Controller is released I will be submitting a day 1 update that fixes the bugs that I’ve found and have been reported to me as well as a few new animations.

do you have already implemented a function to read/load an inventory layout?

On the Inventory component you can change the Default Loadout which will allow the character to spawn with the specified items when the game starts and on any respawns. Is this what you’re thinking of?
1935692--125111--DefaultLoadout.PNG

not sure now, for example i use an external inventory system, you have different types of items in my external inventory, ressources, weapons etc. you can drop IUsable items on your skill bar, when you click on one, it just switch your “weapon”. so what is important in fact its to set the items in your inventory list and their amount, the external inventory, would load a saved list then feed your inventory

so foreach items in my skill bar >add ID+amount into your inventory
would that be possible?

PS: this inventory https://www.assetstore.unity3d.com/en/#!/content/26310

I haven’t used that inventory system but we should be able figure out a way to have the two assets play nice with each other.

The two assets will have to be synchronized both when the character spawns and when an item is used. The Third Person Controller inventory system doesn’t implement any interfaces but that may be a smart thing to do to allow easier integration with other inventory systems. The only problem with this is that you would then have to modify the other inventory system asset to implement that interface which you may not want to do.

Another approach is to have an intermediate class that knows about the Third Person Controller inventory and the Inventory Master inventory. The Third Person Controller fires events when an item is used or when the character spawns so that intermediate class could listen for those events and then update the Inventory Master inventory. This would prevent you from having to modify any of the code within Inventory Master and allow you to easily update both assets without having to make any code changes.

Just appeared on the store. :slight_smile:

Man, you are quick. It literally appeared on the store 8 minutes before your post :slight_smile:

I’m uploading a new version right now so I was going to wait until that version is on the store before I said anything. I’ll post a link then :slight_smile:

As mentioned by @hopeful , the Third Person Controller has been approved and is now on the Asset Store! You can get it here. Let me know if you hit any problems or would like to see more documentation/videos on a particular topic.

The Behavior Designer integration page has been updated and you can get the Third Person Controller tasks on the integration page.