Every 3rd person controller i have used/tried in unity has always looked and felt somewhat strange. I really do not know how to describe this. there is a chunkiness to it. Maybe its the animation but I feel it is mostly the camera. Do anyone one have any insights to this?
Do you have examples of third person games that you've played that you feel don't suffer from the problems you're seeing? if it's hard to explain, perhaps some A/B vids of "this one feels bad" "this one doesn't" might help us understand what you are having problems with.
Every time I eat food, I feel things. Anybody know what this is about? Joking. There is a lot of subtle things that can make a controller feel good or awful. Some has to do with camera rotation and responsiveness, camera drag or bounciness (not technical terms), character gameobject response, animation timing, FPS... first, like others said, you need to define what "right" looks like.
Most likely due to the 'general' structure of all controllers that are not customized for specific games. Most readily available controllers have to be generalized enough so they can be later customized to fit many 'types' of setups. Without the work put in to add customized 'feel' to the controller - it will feel kind of chunky. Most fps controllers probably feel either too jarring or too floaty as well. This is the result of the same logic as 3rd person controllers. Without customizing the 'generic' controllers - they are going to feel 'off'.
For action games, I don't prefer physics-based player controllers. They may be more realistic, but I prefer responsiveness over realism. This is usually a low level design decision that can't be tweaked out with customization, at least not without rewriting the whole thing. I'm still curious what games @JohnHudeski would cite as good third person feel.
Imho simply noticing these puts you a little ahead of the curve already. The real challenge is fixing them. I think it's about noticing every little detail of the finely tweaked behaviour of a good reference controller, and then re-implementing that. It might help to capture 60fps camera footage with your input device and the game both in view, to do frame-by-frame analysis of how the 3rd person controller reacts to inputs. Depends on what genre you're going for. Of the top of my head I'm thinking Dark Souls, GTA V, Rise of the Tomb Raider (in no specific order).
For Good Feel i would cite Vanquish Tomb Raider Max payne I dont think Dark Souls is particularly good you are lost in the intensity of the game that you dont see how janky it can be sometimes but it is consistent with its rules Prince of persia and assassins creed do a good job but they are using multiple cameras and actually have camera programmer/directors Gears of war also does a pretty good job of it What I am trying to do is to have that close camera that frames the game well enough but still keeps your character as a priority on the screen Dead space is nice. I think there is also something about animation speed
Thanks for the humorous replies (Food ). It was a very gut reaction post and I needed to be a little vague to encourage a brain dump from willing participants
I like the feel of the Gears games and other games that clone that controller, like Mass Effect. Notice that there is no animation or camera lag. (And no physics simulation or root motion animation positioning.) I'm a keyboard and mouse player. If you look down and slide your mouse fast to the right, your character and camera will rotate clockwise without any delay. It's less realistic and causes foot skating, but it's more responsive. I prefer AI-controlled NPCs to use root motion, though, since it's easier to see foot skating on other characters than your own.
I actually forgot Mass Effect. But in terms of programming what are they actually doing differently. There is a different camera for locomotion (running and walking mode) Melee and shooting Apart from the starting position what else is different?
It's been a while since I played a Gears or Mass Effect game. But I've implemented a camera and controller in Unity that feels virtually indistinguishable, so it can certainly be done. (It was designed to emulate ME1's controls, if that tells you how long ago it was.) If I recall correctly, during gameplay there's only one camera. When the player sprints, they change the FOV. It's possible they use a different camera for scopes, but I think they just zoom and change the FOV. When the player gets hit, they do a camera shake. When the player rotates, the camera acts like it's on a rigid dolly over the player's shoulder. It follows immediately; it doesn't gradually slide into position. It will move in and slightly up or down to avoid clipping obstructions behind the player. It does a decent job of avoiding clipping. Level geometry is designed so the camera can always move right above the player's head in the worst case if the player backs up against a wall.
It's not published as an asset. It was for a game that got cancelled, actually the same game that the Dialogue System and Love/Hate came out of, but I didn't turn the player controller into an asset. And there are some really good third person controllers on the horizon such as Opsive's TPCv2 so there's no need now. I think it just used the default camera FOV except when sprinting and sniping.
I agree ME and GoW - both of them Gears and God o fWar have great 3rd person controls. I've not played a Gears game ever - but from extensive research and observation think that is one of the most cinematic 3rd person controllers ever created.
I think it would be a really great Unity Asset if someone recreated "Popular" cameras. Like the camera from Dark Souls? Here's those settings. Battlefront? Here's that. DOTA2? We got that camera too. Etcetera!
Most of the controllers in the asset store do way too much. I would be interested in purchasing a bare bones system that does just what i need. No more.
I'm just curious (since I don't plan to put yet another controller on the store) -- what is "just what you need"? Cover? Vaulting? Climbing? If so, you probably need a way to know when to climb and when to stop climbing (or when to fall and when to stop falling, etc.) Shooting weapons? If so, you might need a way to keep track of ammo, equip and unequip weapons, etc. The standard assets third person controller isn't great for action games. It's nice to study, but I'm not sure I would use it as a base.
Every thing you said but mostly just running couching aim down sight I'd imagine things like snap to cover work the same way as you would do interactions. Snap to objects The default controller in Unreal Seems so well grounded. You can just go in and do so much with little work. Great base
That's a lot, especially when you add interactions and weapons. There are some good controllers that do this already, like Opsive's TPC.
That's a bit counter to what the assetstore assets on average are aiming to do. If this is your frame of mind, imho you are usually better off just writing your own stuff exactly tailored to your own needs. By the way: I recently tried out this controller (first person, but you are looking for 3rd person, I know): https://github.com/Moe-Baker/Advanced-Rigidbody-FirstPerson-Controller And my first impression was that it's better than I expected from a gamefeel point of view. I didn't look at the code. It's on the assetstore as well: https://assetstore.unity.com/publishers/32349
Not meaning to be confrontational .... Just wondering - if the controller is such a good starting point - what are the factors keeping you in the Unity camp? I could say - blueprints are restrictive or C++ is like reading martian hieroglyphs compared to C#, or I'm invested financially in Unity - or I benefit more from the Unitys community assistance. I also would not change engines ONLY for a more streamlined default character controller, I'm just wondering what are your factors. With brief experience I think FinalIK is one of the best assets available to create modular character controllers - for numerous types of games, not only for one single game.
Ok, the truth is I have been asking myself the same question But I already have a large unity codebase and I havent actively used c++ in almost 10 years So yeah I am partially chicken As if the gods were mocking me