Creating a Third Person Camera using Cinemachine in Unity! (Tutorial)
HTML-код
- Опубликовано: 20 июн 2024
- In this video, we’re going to look at how we can set up a third-person camera using the new Aiming Rig of Cinemachine 2.6, and how we can use Impulse Propagation and Blending to create additional gameplay functionality for our camera controller.
Download this project here!
on.unity.com/36nVNzt
Learn more about Cinemachine 2.6 here!
on.unity.com/2ZWVZlQ
Download the Unity Royale Project here!
on.unity.com/33NaJoh
Unity Version user 2019.4 Игры
You can download the final project with the camera setup here:
on.unity.com/36nVNzt
Thank you so much.
I had a question about the camera, is it possible to rotate the character without the camera rotating with it? (like when I press "A" the character rotates to left)
I tried to do it but my camera rotates with my player character.
@@samankargar6708 I also ran into this. Haven't you found a way to remove camera rotation while following the player?
@@samankargar6708 Try moving the LookAt out of the player hierarchy, and then attaching a quick script to the LookAt to make just the transform equal to the player's transform (and not the rotation). Worked for me :)
@@joshuablazer123 Thanks for the help
It works now.
Now Brackeys has quit. You are my only hope.
Agreed
lmao
😆😆
Dont worry. Someone new will "replace" him very soon. I'am sure.
@@bezoro2008 Documentation 🤣
Good joke. Its just to time consuming.
@@bezoro2008 Well actually I think there isnt rly much more which Brackeys could have tell us.
Maybe a reason more why he stopped.
He already has a tutorial or an tutorial LIKE video about nearly everything you can show which isnt deep.
So it was never a channel which advanced ppl needed.
Very impressive stuff, unity is making it easier and easier to make more complex games. Before I never thought about creating a full 3d game alone, but now its looking possible.
Absolutely, unity is a god send, how is your journey doing?
he's dead @@LunarBulletDev 💀
thank you so much for linking the Unity Royale Project. I've seen so many Unity tutorials use assets from there, but didn't know where the project was.
Gogo unity teach us everything... Brackeys gone for a while ... ♥️
For a while? I think for ever^^
;-;
@Lengko Gaming he quit youtube
He will be back with brackeys 2.0
He try another thing like content maybe he would switch on unreal engine
Wow, they actually listened and made almost real tutorial with an explanation on what is going on, nice👏
Yeah really!
The key word is "almost"
@@kisstepan1996 Exactly!
Good video tutorial. After the aim status, you can use a virtual camera to follow a short time range the arrow even shows the effect on the target. The change of camera for aim staus need to be short.
Wow, I think I found the golden tutorial, can’t wait to try it out.
Thank you so much for the bit of information about what object the camera should rotate starting around the 3:32. I've been trying to get my rpg camera controller to pan around the player if I hold left click, and to drive the player movement direction when I hold right click. Your solution is so simple and I was overcomplicating it.
Rotate the target object! That's a good trick. A lot simpler than what I have been doing.
this is the 8th time I am watching this video,
every project it comes back all over again xD
Great video please keep making more. Tilemap system seems unfinished, would love an update for that and tutorials.
This actually worked well! Thank you!
Nice Cinemachine tutorial! 🤓🧡
Great video. Also I don't know if it's worth to say, but I love the way the host is talking. He sounds like a great guy 👌
Excellent work.
Very well done! Thanks!
So satisfying just watching this gameplay and all effects 🙂
I love that character!
Amazing video, thank you so much
Thanks Unity, really cool!
Awesome video!
Great Video. Thanks.
I was trying to replicate this tutorial, but since in this proyect (the Unity Royale Project ) there are not the same assets ( I mean the scripts PlayerInput, PlayerMovement, PlayerAimController and so on...) it is being quite a bit difficult, since I needed start by programming something similar. It would help if you give us this scenario.
Thanks a lot, and anyway this is a great tutorial.
unitys particle system is life
cool tutorial, thx you
This is awesome, than you so much
BROOOO I NEEDDED THIS. I feel like there are alot of things in Unity without a Tutorial. Like how to use the particle effects in detail, what every litle thing does, things like that.
Justo lo que necesitaba
man. Thank you!
We need more of 3rd person shooter
Please make a tutorial about particle system with more details.
I really need some knowledge about it.🙏🙏🙏🙏
Oh my god! Unity is so good ☺☺! Keep going unity workers, 👍👍👍 to u,
Respect ur efforts!
In my testing, the camera did not automatically move to and focus on the player's forward position. I ended up making the look-at-target the Follow Target game object to get my camera to look that way. I'm not sure if I messed up somewhere, but this was the only way I could get it looking in the right direction.
This needs to be updated for the Unity 2021 . Cinemachine installation changed a bit etc
only 11 minutes and some seconds. You Ujnity Tech people are really amazing.
Me when I code:
"I need this to go fast... let's try Uhhhh.... 1500... No... *700... No... 400? Yeah that looks ok."
Unity:
"343 meters is the speed of sound."
Me:
".../cough/ yeah I knew that...."
I've seen that you can change the cinemachine camera priority to switch between different camera angles, is enabling/disabling them more efficient?
can you share the rotation mouse look
3:43 where i can script like that?
Project link is does not contain this scene, please upload the project shown in the video thanks
hahaha...
I can also see my seeker stone missing, please upload it in a moment, thanks in advance
This is all good, but i dont know... cross hair seems off to me
Guys, if you can't find the third person follow option, it could be cause you're using the latest cinemachine version. Don't forget he's using the 2.6.0 versión in the package manager
Thanks! Just updated to beta 🤞
Potát Approve :D
Need a similar video for a Diablo like camera :)
Pleeeease
Dude just make it a top-down camera that follows the player by lerping the camera coordinates. It's much easier than a third-person camera, it doesn't even need to rotate.
The tutorial was almost perfect. The code just didn't show what _look was so I had to download the project to find out what that was.
When would ECS will be available in stable release? It's not present in my 2020.4
Hey there! We don't have any ECS updates to share at this time, but rest assured it is something the team is still actively working on!
Please keep an eye on our Blog, as we’ll be sharing regular development updates.
blogs.unity3d.com/
Thank you!!!
Does the Royale project has this cool character showing arrows?.
We are unity !!
Hi! Good video! I cannot find cinemachine impulse listener, cinemachine 3rd person aim, cinemachine volume settings in my project. I have cinemachine installed and I'm using it, the camera works fine but I think I need those components to create the aim mechanic in my game. Any help? :)
Thanks unity.
That's a good tutorial thanks.
Please, in the Editor my cinemachines are great but on a build they are pretty slow(very slow)and that's not the whole game just the cinemachines camera, how can I make my cinemachine smoother after making a buid
After around 4 minutes, I have no idea what's going on as far as coding and the additional settings go lol other than that, this was a great video
Thanks
Do u have video how to set up character mesh to aviche aim effect. I mean, while u aiming and move camera then ur character also move top (head, torso, schoulders, bow).
RE the aiming camera or target/projectile offset 9:00 - might help someone else to know that Resident Evil 2 solved this using hit-scan from the camera not from the player model.
Please make more tutorials because brakeys left
Can Cinemachine cameras be cut when targets warp or position changes?
In my project right now, in this case, there is a problem with the camera chasing the target with a fast damping speed.
//Compute the delta position of your character: it's just the difference between the current position and the new one
Vector3 deltaPos = endPoint.transform.position - player.transform.position;
//Warp your character to the new position. In this example I'm moving it to the endPoint
player.transform.position = endPoint.transform.position;
//Pick your cinemachine camera and warp it to the new position using the delta and the OnTargetObjectiveWarped method.
CinemachineCore.Instance.GetVirtualCamera(0).OnTargetObjectWarped(player.transform, deltaPos);
Cool
Please share the Project Files, along with this the finished implementation of this tutorial (so we can review/references it)! cheers :)
3:22 Anybody understood how to set up the mouse movement script? I didn't get that part.
@Unity could you help us understand this?
The Github project does not contain the actual code presented in this video?
The script you mentioned for rotating the camera, can you share that?
yeah i need that too
The whole project is available for download in the description.
I'm not trying to be disrespectful, but I'm not so sure that this tutorial is in my wheel house. A lot of the variables and things presented here, went really fast in the video so I wasn't able to really pick up on anything besides some of the basic camera setups in the beginning.
I understand we can download the final project, but I'm not as much interested in the base files as I am in learning the fundamental aspects of this through a more regulated pace(aka: Learning to construct the scripts from scratch so I can learn the process without having to download a bunch of unnecessary files that I won't be using for my project anyways), so maybe this wasn't the right source to go to for a beginner? I'm not one to make judgement though.
I am not calling this tutorial bad(because it certainly is not, it touches upon a lot of great subjects), I'm only stating that it was a little too rapid for me. Does anyone have a link to a video that might be a bit more mild-paced for beginners?
Brakeys
yeah, same I just couldn't get what he said and as you said everything was explained too quickly.
@@abuUthmani you can pause it. And then after you understand, hit play again. This way it will be explained at whatever speed you want.
Because you are dumb
Hi, how did u made the bow and arrow function? Plz make a tutorial
watch the video.. or download their files and look for yourself
i love your vidios (copy past this to make this happen)
😍😍😍
How do you change the camera distance in C# while using the 3rd Person Follow?
How about the collision of camera with obstacles? I'm curious.
Same
Can someone tell me where to download the project files
look before u ask, its in the description
You forgot to mention that by enabling and disabling, the cameras keep the last position before disabling
3:43 Wait you have to do this manually now? What happened to the Component "Cinemachine FreeLook Camera"?
What OS systems do cinemachine support? Thanks you
man i want that ik bow aiming tutorial lol
how do we do that?
can someone help me, I'm trying to learn how to use the scripts but I don't know where to add them as components? mainly my character isn't moving - any advice on this?
All I want is a simple fly through. Can you do a video on that? or anyone know if there is a good video on this?
this is good, with free cam is worst, thanks unity
How to use cinamachine brain
And create cut scenes in the game
Or use cut scenes made in 3d render engine into mp4format like resident evil 4 tekken 4 did ?
I am thinking changing priority number in code .
So there needs to be a script if 3D cutscene or your cg starts
Cinemachine state is already done
I want to see how powerful cinemachine brain is
How do we get hold of those camera scripts?
I opened the project but I can't move the player or the camera? Do I need to do something before?
Will I be able to tilt my camera for wallrun? I was having rotating tha players
I don't understand where the scripts shown at 4:00 comes from, is that their script? Or we have to make it? How is it applied????
Make sure you select the main camera in your scene before clicking Create Virtual Camera!
Its unclear to me where you put the first script that was created.
Can't figure out why, it always ends up as a first person camera. I tried what you suggested and the result is the same :X
@@ivandamyanov Check if you installed the 2.6.0 version of Cinemachine. I had the same problem and installing the same version version as the tutorial (2.6.0) solved it :)
I tried downloading this project, it says "Insufficient permissions", and there's nothing I can do about it. Any other alternatives?
its priceless. the slickness and the passion of the devs. priceless. what is cheaper and better than soft? Piracy is NOT the answer if you
Great explanation.
Question to anyone that might be able to help:
How would I make the character rotate towards the direction of where it's going (right, left, backwards) without the camera snapping to behind the character when he does.
Thanks in advance :)
Hi Wob Zone,
I too was experiencing this problem and it annoyed me. I have a solution that feels slightly hacky but I don't think it compromises performance and it is pretty intuitive.
The Problem: The transform.rotation value of the player is being set instantly, which leads to player snapping away from the camera when the player starts moving. This is undesirable behaviour. We want a smooth rotation from the player's current rotation to that dictated by the camera.
The Solution: First, make sure your follow target is NOT A CHILD OF THE PLAYER. If the follow target is parented to the player, this approach will fail. Next, give your movement script a reference to the followTarget transform. In the mover's update function, always set the position of the followTransform to that of the mover. Then, only when the mover is moving (MoveInput != Vector2.zero), Lerp the mover's transform from its current rotation to that of followTransform (only on the y axis). Unlike the video, I never reset the followTransform's y rotation to zero.
See the pseudo code below and let me know of any questions. Happy to Help!
public class Mover : Monobehaviour
{
[SerializeField] private Transform followTransform;
private float rotationSpeed = 10;
private Vector2 MoveInput;
public void Update()
{
followTransform.position = transform.position;
...
if(MoveInput != Vector2.zero)
{
Quaternion targetRotation= Quaternion.Euler(0, followTransform.rotation.eulerAngles.y, 0);
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * rotationSpeed);
}
}
}
@@blgamedev thanks, this is just what I needed
guys i had a question please help :
do game developer needs to learn VFX or VFX maker is a different with coder? and
does VFX need any coding?
cuase i hate graphic works and love coding
tnx for you help and sorry for my bad grammar .
Very cool tutorial. I also like the stylized characters, building and environment. I didn't found that kind of any stylized human characters in unity asset store. If someone sell it, I would love to buy it.
Is your player snapping when it rotates? Does that annoy you? I responded below to a comment about the character snapping to the followTarget's rotation. Reposting it here for more visibility.
The Problem: The transform.rotation value of the player is being set instantly, which leads to player snapping away from the camera when the player starts moving. This is undesirable behaviour. We want a smooth rotation from the player's current rotation to that dictated by the camera.
The Solution: First, make sure your follow target is NOT A CHILD OF THE PLAYER. If the follow target is parented to the player, this approach will fail. Next, give your movement script a reference to the followTarget transform. In the mover's update function, always set the position of the followTransform to that of the mover. Then, only when the mover is moving (MoveInput != Vector2.zero), Lerp the mover's transform from its current rotation to that of followTransform (only on the y axis). Unlike the video, I never reset the followTransform's y rotation to zero.
See the pseudo code below and let me know of any questions. Happy to Help!
public class Mover : Monobehaviour
{
[SerializeField] private Transform followTransform;
private float rotationSpeed = 10;
private Vector2 MoveInput;
public void Update()
{
followTransform.position = transform.position;
...
if(MoveInput != Vector2.zero)
{
Quaternion targetRotation= Quaternion.Euler(0, followTransform.rotation.eulerAngles.y, 0);
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * rotationSpeed);
}
}
}
Thank you so much!!! It took me days to find a solution to this problem.
How to point camera to CG pictures or mp4cutscenes in the scene
Place your Picture or Video inside an Invisible Object, like a Cube, make the camera point to the 3d Object which contains your video, picture
What is the asset name for the archer and all?
I want to revolve the camera around avatar on mouse drag. I have used the virtual camera. On the main camera object i have achieved this functionality by a script but when I used that script on virtual camera its not working. any solution for that..??
What about camera occultation and collision?
I keep creating the virtual camera but it's in the ground or too close to the character, nto sure what I'm doing wrong here.
I had that, cinemachine 2.7.3 or something, i uninstalled and went to 2.6.0. Worked like the video. However i cant get the scripts working so its a bust overall.
I will be very happy if you make a tutorial about shooting games bots AI
don't you wanna make me happy ? :)
how do I make it move with the mouse?
Hey everyone, I used the script but my camera automatically TP to the feet of the player, any idea where it could have came from ?
Ok but where do I get the variable _look?
why did you leave out the fact that you have to add a CinemachineBrain to the main camera?
can someone tell me where is he getting the nextRotation value? like what type of variable that is? I know its Quaternion but where is he declaring it?
Let me know if you find answer to that.
it's declared in the PlayerMovementInputController script (line 18): public Quaternion nextRotation. Unfortunately, it's not visible in the video.