I am trying to put together a Third Person camera that will follow my player, look at it at all times and also allow the user to orbit around the player with the mouse or right joystick.
Very similar to these videos:
The problem I am having is the X-Axis rotation seems to work fine, but no matter what The Y-Axis just seems to zoom in and out of my player. I am looking for just a consistent mouse orbit on both axes that are always the same distance away from the player except when a collision is detected. I started using the Free Look camera which seems to be the right option to use, but just can’t find the right settings to get the look I want like in the videos above. Can this be achieved natively with Cinemachine or do I need to write some code for this as well?
Thank you to all in advance with any input or advice!
Try adjusting the orbits. They define the shape of the surface over which the camera can move. By default, they’re something like this (the 3 red horizontal lines and the arc connecting them. Actually the lines are really circles, but I’ve set up an ortho side view for clarity):
Changing the settings to this:
Results in this:
which is maybe closer to what you want. Note: my player height is 2, and the exact numbers will be dependent on your player dimensions.
Thanks for posting that! I do see some improvement with that, but the rotations during orbit still seem a bit odd and uncomfortable. It’s still not matching up to how it was in my original C# script or like in this video: https://www.youtube.com/watch?v=uDuPGgDEBI0
I guess I may need to keep experimenting and tweaking with settings until I get the feel I want.
“odd and uncomfortable” doesn’t help me diagnose. Can you post a video and say exactly what aspect of the movement you don’t like?
In your original script, it looks as though aim damping is being applied when you rotate the FreeLook. Most people don’t like this and want a more responsive camera, so there is special code in the FreeLook to make that damping go away. If that’s what you want to do, then you might need to modify some CM code.
After playing around with the orbit settings more I realized what was wrong. I had the radius for all 3 rigs at different scales which kept creating some odd zooming in and out of the player at different positions. After setting all 3 of them to the same radius it feels more consistent and is always the same distance away from the player now.
I actually accidentally had the aim damping turned on in that video in my script I shared with you and do not want that. I want a more responsive camera like you said. If I want to control the joystick sensitivity for the orbit would that just be the Accel and Decel time on each axis settings within the FreeLook inspector?
Thanks again! Everything you recommended in this post has helped me tremendously. I can’t thank you enough for the support and a wonderful product! I just upgraded to v2.2.0 and it is even more improved. Have a wonderful day!