Hello everyone, I am brand new to Unity so as an initial project I have decided to work on developing a third person controller using Kubold's animations with a focus on flexibility, realism, and responsiveness. I opted to build a controller off of Kubold's animation sets as they seem high quality, and his background in the industry. I have limited programming experience from my degree and some limited work experience, as a result much of this is for my own personal learning. I have created a basic pivot in place and walk system to figure out how the mecanim system is set up. Essentially Kubold built his mecanim system for locomotion taking in four parameters, input magnitude, direction, rotation and is right foot forward. Right now I am using the input from a gamepad, however, I am working to keep the logic of the input system and the movement system separate so that I can use the same controller for AI. Here is a showcase of what I have so far. I am thinking I will reprogram this system as there are some interesting results that have arisen with how I have set the system up. For example, I have two (small) issues with my system. The first is that the character will walk a small circle before walking backwards, and the second is when pivoting in place the character can overshoot his rotation making him pivot a second time to get back to zero. The mecanim system is set up such that the input direction is given in degrees from the input relative to the direction the character is facing. Zero degrees means the input is in the same direction as the character (forwards), ninety degrees means strafing left or right and 180 degrees means backwards. I use a lerp function to smooth out any changes in input to keep the animations from jumping around. The issue is the lerp function always smooths from zero degrees, so if the controller is pressed backwards then the lerp function smooths from zero degrees through to 180 degrees causing a little semi circle to be walked. This can be seen at 30 seconds in the video I embedded. Another issue I run into is the pivoting in place function checks if the difference between the camera's X-Z plane orientation and the character's is less than five degrees, if so then the rotation speed of the player is set to zero to stop rotation, however, at times the float will be changing quick enough that the difference float cycles past this range making the character rotate back and forth slightly before stopping rotation. You can see the character starting to do this as 7 seconds into the video I embedded. Again I think the solution is simply to increase the bounds, but I was wondering if the more experienced programmers had any other insights. Finally, I was wondering if anyone had any advice on how to effectively program smooth animation transitions and controllers. Pretty much all of the character controller tutorials I have found focus little or not at all on producing high quality animations, so I have been left to try to work much of this out on my own. Any insight and/or tutorials would be appreciate. Obviously I won't be able to release this character controller because of the licence of the animations, however, if I get it to a state that I feel is to a high enough quality I would look into making a set of tutorials on how to set up a smooth animation system. Cheers!