New Standard Asset Characters - Third Person

UPDATE:

This is currently available in beta on Github, download it here -

https://github.com/Unity-Technologies/Standard-Assets-Characters

Hi all

I'd like to kick off a general discussion with you about games and their character controllers - now that we're starting development of new standard asset characters - aiming for a ship date aligned with 2018.2 in June.

I'll start a separate thread for it but rest assured we're making a new First Person controller, but this thread is to ask about Third Person Character controllers.

Please tell me your favourite character controllers in games, here's some food for thought to get you started - why you liked them, and what it is that makes you feel that the characteristics of that controller worked in the context of that particular game. Remember- only want to discuss third person character controllers in this thread, but that can be anything from input to animation to camera - anything you'd like to comment on.

Thanks everyone looking forward to discussing this with you!

Will

5 Likes

Link from Breath Of The Wild is probably my most beloved TPC in recent games. He is incredibly agile and can get practically anywhere, you just need to make him to. He just feels natural. That is the key point in it: he’s really responsive and he will do about anything you want given your input commands and his movement abilities (including beloved paraglider) are really well suited for exploring. He truly represents the player with all the great agility: you are given the rules and stats on how to effectively move around early in the game and you base your further logic on how to progress based on those rules. This feels awesome.

Some other notes: his animation and speed are really well adjusted based on the slope, indicating you early that the road ahead is bound to be hard to climb, so the game tells the player to prepare.
Camera is also quite good: it’s pretty much zoomed out and it gives you a nice look near Link so the player rarely needs to adjust the camera to take a closer look at something near him.
Also on that note: the camera’s speed is slow, but that makes it perfect. It makes targeting much easier and removes the need to tilt the stick slightly which can make you nervous really easy. It feel smooth and relaxing.

11 Likes

Prince of Persia or Tomb Raider might be the best third person characters controllers to date regarding the full range of movements they can employ. Being able to easily replicate all of those movements would be a HUGE help, currently I am having a lot of trouble with the whole wall walking thingy

2 Likes

@willgoldstone my personal favourite are the recent ND games and last one it think is from HZD. And for why, it's the responsiveness of the input and the fluidity of the animation and character response from the input. No delay,good transition between animation, stable/doesn't jitter in high frequency rough surface, and leg IK (come on, why your own unity character assets never have proper leg IK??!!)

I’m with @Kolyasisan on Breath Of The Wild. Link is easy to control, and looks pretty good while you’re controlling him. Riding a horse in that game is also fantastic.

BOTW is as much a game about vertical movement as a game about horizontal movement. You spend a lot of time climbing or paragliding. And both are fantastic. Link transitions between states based on what you’re moving him into without a single hitch. Move into a slope, he starts struggling. Move into a wall, he starts climbing. Jump onto the back of a horse, and you’re now riding.

When climbing, you feel completely in control over where you are going, and changes in movement are instantaneous.
Paragliding has a lot of conservation of momentum, but even if you miss a landing due to miscalculating the paraglider movement, it never feels unfair, due to consistent results and a very good camera.
They’ve also nailed the transition from water to flat land and water to climbing, as well as the transition from paragliding to climbing. It’s never awkward - and moving from water to land is awkward in every_single_game.

To achieve something like that, the controller needs to:

  • Have easy-to-access data about the geometry around the controller, so scripts can use that to make decisions.
  • Have easy-to-access data about current heading, speed, etc, again so scripts can use that to make decisions. This is especially important for eg. the paraglider or swimming
  • Have a good way to change between states. This should just be handing being replaced with a different controller gracefully. As an example, it should not be hard to maintain velocity when replacing a paragliding controller with a falling/walking one.

A final note: A good third person character controller needs to always respond to the player’s input as fast as possible. This sometimes means transitioning between animation states in ways that doesn’t look good. The alternative is situations like “I was holding back on the stick, but since my character needed to finish the forwards movement animation, I ran off the cliff in front of me and died”. For some good examples, watch about 2 minutes forwards from this video about Max Paine 3.

The design philosophy of the animator controller is the complete opposite of the correct thing here. Since all transitions happen due to pre-defined transitions, every single transition must be authored. This means that unless you define every possible transition, you get instances where movement feels bad.

This means that the character controller should in no way be hard-coded to assume how it’s going to be animated. Ideally, the packages should ship with examples for how to make them animate with the default Unity setup, as well as root motion, but ditching those things should not be a problem in any way.

11 Likes

@willgoldstone just fyi for the new character assets, please make sure the rig bone have a proper local axis, the rig for ethan have a messy axis

1 Like

For me, @Kolyasisan and @Baste have nailed it on the head for what makes an excellent Third Person Controller. The limitations that I have noticed for out-of-the-box functionality has forced me to re-think using the engine for certain game ideas. My ideal 3rd person controller is fluid, responsive to the environment and flexible to unusual transitions.

Games like BOTW show how the camera and animations don’t hinder the gameplay experience through rigid transitions, unflexible melee collisions, and glitchy camera work. The collisions, animator controller, and default camera assets need to be updated to reflect common modern game features at a basic level.

END NOTE:
I think it is wonderful that Unity is taking the time to ask users for suggestions for the ideal 3rd person controller so they can make a better Standard Assets pack. I hope all of our feedback will be taken and applied to the improved package.

2 Likes

Joint message from my programmer and I

A well built, comprehensive simply configurable character controller would be a godsend. It is, however, a non trivial task. One very important aspect of a modern character controller, that many character controller designers tend to forget, is to implement good client - server communications.

It is a problem, I agree to choose a framework that everyone agrees on, however currently uNet and Photon are the two that I feel are the most mature and utilised. The problem I find when choosing a character controller is that, as like most assets, they are largely black box - even if the code is available it is a chore to understand them implicitly enough to implement a good network layer, and even if you do, your work has to be redone every time that controller is updated. So, we are stuck with the dichotomy of building our own character controller, as none of them do exactly as we want, or accept their limitations.


Often times a badly setup Camera Controller is what will screw up a character controller. Given that Unity has recently bought and given so much effort to Cinemachine, I think it would be a perfect asset to include. I'm curious, if as baste mentioned, about the changes of animation states. There could be a system like final ik\puppetmaster that could put the playables API to work. [/URL]. It could patch in between the different animations states making things smooth, so we wouldn’t have to think up every instance of animation handoffs before hand.

In Mario 64 ds (maybe it is in the original but i have not played that one) you can press l to center the camera behind the player. That feature really helped the player and helped remedy the weird controls. In games where the characters already feel good to control it feels even better. So something kind of like that would be cool.

Horizon: Zero Dawn. I like controllers that flawlessly combine dual analog controllers, one for controlling the direction/movement, one for looking. I found this impossible to do with the 3rd person Unity standard assets. I mean it’s probably possible to do, it’s just well above my abilities - I tried for about a month and gave up. Had to go for another asset - it was lite version of a paid asset - and while it worked, ok, I wasn’t totally pleased with it and stopped working on that project.

1 Like

Please please please whatever you choose provide clean rigs!

Also, some quadraped rigs would be nice, its 2018 and the modern day after all! :)

1 Like

Hi all, just to let you know we now have a plan and that I’m reading all this feedback. We have included a broad team of industry veterans to feedback on the rigs and approach so we hope you’ll love what we’re putting together. I will post again soon with full details and our roadmap, thanks for your input so far!

1 Like

https://www.youtube.com/watch?v=eD-ZKyGfhsE

2 Likes

A few thoughts. General character controls I’ve enjoyed have been PS4 Shadow of the Tomb Raider and Metal Gear Solid V - both felt there was freedom of movement. Personally I liked the MGS double tap for run, rather than combination buttons. Tough some form of transitioning speeds (eg crawl-walk-jog-run) would be good.
Some time ago I played Resident Evil 4 (I think that was the one) on the Gamecube with it’s wild looking controller. I remember thinking at the time, that although it felt weird compared to other controllers, it felt by far the most comfortable to use once I’d settled with it.
Rigs - Male & Female for sure, but why stop there? i.e. Elderly characters and child rigs would be cool too (not every animation is a soldier!). Maybe also Rigs for people with special needs - such as wheelchair bound or with crutches etc

Oh and animals - not just a horse or dog… I mean there are so many , lets have a ‘Zoo Rig’ - included as standard - with a ton of included anims (lol - I’m being greedy) - Did you see that recent SIGGRAPH work on AI for Quadruped motion (

) . This is the type of level that would fit really good into Unity imo. Something where motions could be added and controlled with the need for hardcoding.

I remember when Biped came out for 3dsMax and then stagnated - It would be great to see a similar revolution in animation tools being developed by/for/with Unity - pioneering work, rather than catch up basics.

We’ve heard so much on the investment that goes into Unity - which is one reason I’m using it - it would be amazing (from my view) to hear a specific animation team being set up to bring new and advanced tools to Unity’s users… with regular updates on the progress etc

OH - obviously VR rigs as well (eg a range of hands/arms/legs/etc from user POV), but hopefully that goes without saying :wink:

LOL - ok I got a bit greedy there - looking forward to the standard player assets/rigs -

4 Likes

Hi Dave

Some great ideas here and really interesting to see the video too - I’m in Montreal this week with our animation team so i’ll be discussing this with them, thanks for sharing everything!

Cheers

Will

2 Likes

Unity actually already did some work around AI-based animation controller. At Unite Berlin will be talk about this technology. So i hope this tech will be utilized in new controllers. IK also will be very helpfull addition for character rigs.

1 Like

Last night I spent 9 hours grinding Mad Max - and it suffers from the same as the Batman games: while the fighting has snap-to for every hit, and is almost too easy, normal movement, climbing or jumping is stuff, unresponsive and just poorly executed. The jump-delay is almost a full second, which when running and trying to jump off a ledge onto some other means falling over and over again…

One of the best games when it comes to movement that makes one feel like one is in control…BOTW fits the bill, as does several other games.

This is is usually not the controller’s fault but the choices of the developer.

I would say the choice to animate slowly is controlled by the Controller, and a choice made the developer.

Either way - it is horrible.

narrows eyes

[quote=“Zarkow, post:19, topic: 698155, username:Zarkow”]
I would say the choice to animate slowly is controlled by the Controller, and a choice made the developer.
[/quote]If you mean the layer of animation and movement put on top of a raycast or rigidbody controller then you’d be right. And now I read Will is actually asking for inspirations from games we’ve played so he does not mean technical controller.

Otherwise a character controller, like the one included with Unity or Physx, has to be able to do instant movements, and therefore becomes developer choice if it plays badly… (usually badly done root motion, for example, no anim exists for a quick U turn or intercepting the root motion vector with your own).