You have clear sound quality, you explained in a way that is easily understood, your keyboard is so pleasantly clicky AND you showed me the info I have been failing to find. You're like a youtube unity tutorial unicorn. I'm in, instantly subscribed! EDIT AND YOU HAVE TIMESTAMPS?! Bro, I'm not worthy!
This tutorial helped me a lot, quick and simple. I got a little bit lost when you explained the switch with priority because you continued the code used for the animator script method. But anyways it was everything there I just had to pay more atenttion to details. everything worked fine :D
Wow I really needed this, I actually made a top down game with the same assets as this video but couldn't figure out zooming the camera in and out smoothly. Also I think your characters a little drunk, the second camera at the start is very trippy.
Thanks for the high quality video! This actually teaches the basics you need to know to work with camera switching using the CM. You also saved my butt.
I prefer the priority switching if I have a ton of cameras, and only need to remember what camera I'm on, and what camera I'm switching to. It gets pretty messy, but doesn't require making a state for each and every camera (Especially if I'm creating new cameras and deleting them). Knowing about the animator functionality is really useful though, I can see it being used in conjunction with an character's actual animators, like for a special attack sequence.
Thank you so much! This was really helpful, and since I already had an animation controller for my camera with an event, all I had to do was basically plug and play to get it working!
i think its so the cinemachine brain understands how you want to move from camera to camera, so when it does sense a change that a camera is moving to another, it moves in whatever way you set it up
@samyam haha I had just unpaused your video after fiddling with my code, and the “samyam liked your comment” popped up. I was a bit startled for a moment... “How did she know?...” but then I remembered the comment I left. Hahaha! I am trying to make the StateDriven Cam transition when you enter a certain trigger collider. Do you have a video on that? I love your teaching style!
Not necessarily a video, but basically you can set up a collider in that area and set it to Trigger so the player can pass through, and on your player script you can make a OnTriggerEnter function that either changes the animation state, which goes perfectly with the state driven camera, or changes the priority of a camera, depending on your use case docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
I’d personally use the state machine camera and the animator for more than 2 cameras. You can switch to a camera via script, doesn’t have to be bound to a button press
Hi, I have a spaceship and I would like to have two cameras. One over the ship ald another from inside. State driven camera makes strange movements but other cameras are also not appropriate to this aim or do not have option for two child cameras. Is there any solution for that, because your method works and changing camera works fine?
I had one more question! :) if I wanted to make more camera switches with more cameras so I can have other key presses change different cameras how can I add to this to make this possible? Great video btw. It’s a huge help!
I love ur videos! I have a question. If ur learning a new topic in unity, for example when you first learned cinemachine, do you go through and read the documentation or do u have any other methods? Basically, how do you research that topic?
Thanks! Yes I typically look at the documentation first since it usually has all the information I need. If I’m stuck on something I may search up a tutorial to see how someone else did it and get a better idea. Basically Unity documentation and Unity forums are my go to, but it depends for every person :)
Unfortunately this wont work for what i am doing because i want the Vcam for cutscene to be in a different prefab than the player prefab with the default vcam. in otherwords i cannpt put them both as a child of a state-driven camera
I have a lock on system. I want to switch to 2nd camera only if a target has been found, not when I press the lock button. How can I do this through script? Thanks again
pls bro tell me how to make a ui button that when we press and hold it the camera rotates backward and shows back of the car and when we un press it it goes to its original position i want it for my car controller pls help
Thanks for the tut. I already have a project set up with unitys standard input system. Using the new input system messes up everything in my project (I suppose I'd rather not have to change all my code to work with this new input system). What changes would I have to make to get this working with the standard input system?
Actually, I’m a little bit lost again haha. If you could shed some light that would be great (no worries if not though, it’s not like I’ll unsubscribe or anything, your content looks too good for that, {kinda hoping flattery will see me through understanding unity here haha} Anyway if you have the free time feel free to continue reading! My project has a player set up in an isometric perspective (in a perspective view not orphograthic), for my players controls; I set the up input to move the player in the direction of the cameras transforms forward . After finishing this tutorial (your last advice really helped out!) I’m running into errors. When I press space, nothing happens and instead I receive three 3 error messages in the console. 1. Animator.GotoState: State could not be found UnityEngine.Animator:Play (string) 2. Invalid Layer Index ‘-1’ UnityEngine.Animator:Play (string) And finally 3. Look rotation viewing vector is zero UnityEngine.Transform:setforward (Unity.Vector3) Anyways, I don’t know if the information I’ve supplied you with helps a whole lot, but regardless; thanks for your time! Looking forward to watching any future videos you upload! ☺️
@@ThatMellon For the animator it seems to be a naming issue with your states, answers.unity.com/questions/937070/animatorgotostate-state-could-not-be-found.html And the rotation make sure you are not calling the rotation method towards a zeroed vector forum.unity.com/threads/simple-fix-for-look-rotation-viewing-vector-is-zero.411731/ We also have a discord you can join and ask there: discord.gg/SwCKB3Q
when u make a field pvt u need to add [SerializeField] to make it appear in the unity editor. pvt is used so that other scripts don't mess with your fields in the current script by some chance. it basically blocks access of other classes, and the variable is only able to be changed from the editor so if there is some error u now know where to go and what to edit rather than going to many scripts and checking which script is messing up.
Thanks for the video! I'm trying to switch cameras with a priority change method, but something is not right. I can see in "CinemachineBrain" component in "Live blend field" that it blends for 5 seconds, as i setted, but transition lasts for 2 seconds, but I want that transition lasts 5 seconds too. Can someone help?
how would I apply this to switch to a close up camera when my player performs a special attack. Once the special attack is over, I want to automatically switch back to the default camera. Thanks!
If you have an animation for it already you can use the State Driven camera and use that state to activate the new camera and back. If you are using code to change the priority directly you'll have to switch the priority when your animation starts and switch it back when the animation ends.
Very interesting video, thank you for uploading this kind of content! Unfortunately I have this issue, when the transition or blend happens, the position of the other camera I want to change, changes, and it doesn't focus the object I put to FOLLOW or LOOK AT. Do you know what is going on? or Did anybody run into this kind of issue? Thanks in advance ^^
@@samyam Thank you for your fast response! For the time being, this issue is solved by changing the camera from CinemachineVirtualCamera to a CM ClearShot. Apparently, the CVC takes as reference or point to work where the main camera is. In my case I wanted to change from the player camera, to the EnemyCamera to create a cinematic. I had as child of the Enemy a CinemachineVirtualCamera and changing that to ClearShoot fixed my issue. I hope this helps someone or you for explaining in case someone runs into this issue. Regards (๑╹ω╹๑ )
Thanks for your video. But when using the first method, i meet a error: InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.Cinemachine.AxisState.Update (System.Single deltaTime). I am sure that i did the same thing as that in video. Does anyone have a solution?
It means you are using both the old and new input system and you only have one enabled in your project settings (Project Settings>Player>Active Input Handling). Make sure you are using the Cinemachine Input Provider and if you are using UI to replace the Input Module to use the New Input System.
I am currently trying to make a third person controller using 2 cameras, where 1 camera is the "aim" camera, and the other is the generic movement camera. One issue I am having is that when the normal camera is enabled and moving around, the aim camera isn't. So when I aim in, it will transition to the spot where the aim camera is (old position) and this isn't desirable, as I want the aim camera and the normal camera to be in line with each other at all times. Do you know a good way of doing this?
If blending between the different cinemachine camera's has a large position offset, try the following: *Cinemachine Virtual Camera > Transition > Inherit Position // will inherit from the previous camera’s position
I probably won't get an answer, but is there a way to check if a virtual camera has finished blending? I want to have a button on the canvas disappear while the camera is blending
There's an IsBlending property on the Cinemachine Brain, CInemachine 3 may be better suited for it forum.unity.com/threads/oncameratransition-onblendcomplete-event.520056/
hi sorry i don't understand how it could work with more camera, and why we should use Input System (which complicates the task for me) i need to switch between 4 cameras around the player and i have 2 button to switch camera (one to the left and one to the right) Should i use Switch Priority part ?
The input system isn’t mandatory, I just use it because I like it and use the new input system in all my videos. You can add more cameras to the state machine cinemachine object and switch between them depending on a certain condition. If you have more cameras you should rework the Switch Priority depending on the condition you’d like to be met to switch to a certain camera. I’d honestly use the animator and have a state machine driven system if you have multiple cameras, depending on the state you switch to that animation and the cinemachine state driven camera will switch to that camera.
Hello I keep getting an error that says "Assets\CamSwitcher1.cs(18,18): error CS0102: The type 'CamSwitcher1' already contains a definition for 'vcam1' " any Idea how to fix this. I'm trying to change the Priority of the cameras.
You should use whatever you like best! I think it's super simple for setting up both simple and complex camera systems and I'm personally using it in every project that I can.
You have clear sound quality, you explained in a way that is easily understood, your keyboard is so pleasantly clicky AND you showed me the info I have been failing to find. You're like a youtube unity tutorial unicorn. I'm in, instantly subscribed!
EDIT
AND YOU HAVE TIMESTAMPS?! Bro, I'm not worthy!
😂 Glad you liked the video!!
Just found your channel, this is almost brackeys quality right here. Keep it going!
Thank you! 😁
I'm so stoked I found this channel!! I can't wait to see more
Omg every time I want to learn something and I realize its samyam I am so relieved.
😊
Again Samyam saving my life with surgical precision tutorials about every single detail i get stuck. Thank you so much
This tutorial helped me a lot, quick and simple. I got a little bit lost when you explained the switch with priority because you continued the code used for the animator script method. But anyways it was everything there I just had to pay more atenttion to details. everything worked fine :D
your keyboard hit sound is so satisfying! love the video thanks!
Your voice is the best voice I have ever heard in any tutorial video.Great work and tutorials
Thanks! 😄
Aw man, Cinemachine cameras have been covered in-depth on this channel, I think I want to change my current camera system haha
It's really easy to set up!
@@samyam Sounds awesome, I guess I'll give it a go, thanks!
Thank you for doing the work that Unity documentation lacks : clarity :'( !!
You're the best !
Wow I really needed this, I actually made a top down game with the same assets as this video but couldn't figure out zooming the camera in and out smoothly. Also I think your characters a little drunk, the second camera at the start is very trippy.
Thanks for the high quality video! This actually teaches the basics you need to know to work with camera switching using the CM. You also saved my butt.
🙌
Priority... SAVED ME! Thanks again samyam!
I had no idea I could do this with Cinemachine, thank you so much for the tutorial
Yeah it’s pretty neat!
I prefer the priority switching if I have a ton of cameras, and only need to remember what camera I'm on, and what camera I'm switching to. It gets pretty messy, but doesn't require making a state for each and every camera (Especially if I'm creating new cameras and deleting them). Knowing about the animator functionality is really useful though, I can see it being used in conjunction with an character's actual animators, like for a special attack sequence.
Yeah! The animator way is more meant for occasions regarding player animations and such. But you can use the one you prefer 👍
Subscribed because it's the only video I needed. Noice video🔥.
Also you were describing everything nicely and briefly thanks.
Thank you!
Thank you. I wanted to find a quick way to switch between cameras and this worked. Thank you.
Life-saver! I was doing this through like...camera follow speeds and junk. I knew there had to be a better way. Thanks!
Thank you!! This was very helpful to asign priority to my 5 Virtual Cameras (Re Clasic Cameras style)
Thank you so much! This was really helpful, and since I already had an animation controller for my camera with an event, all I had to do was basically plug and play to get it working!
Exactly what I was looking for. Thank you!
This is exactly what i needed after doing you fps camera
Fantastic! Thank you, concept helped a lot! :D
I like the Hard In again and again.
Interesting
I really like your video and how you explain everything
Thanks for all :D
You always post a video on what i need when i need it haha
Thanks for the superb tutorial. Helped me a lot setting up a smoother camera system. :)
Keep going!
Great! Thanks 😄
Wow! a great tutorial. and it made me sure that this tool is so complete!
I am just following her since 1k subs Now it's 8k hope one you will get enough as BRACKEYS.
Thanks for all .
You are True supporter of Game Developers
Thank you so much! :D
u're the best sam!! ♥
Perfect video, perfect explanation, really thanks!
You are amazing explaining 😍
thank you for putting this together!
This was great! Thank you!
Exactly what I was looking for, I almost coded this myself! thanks.
Loved your code. Amazing channel!
Thank you!
Great tutorial ! Thanks !
This was so, so helpful. Thank you!
Thank you again for your help!
you are great teacher !! !! !!
Thank you!
Nice tutorial! Well made.
Thanks!
Great tutorial!
Thanks!
Great tutorial, very clear. Thanks so much!
Awesome! Thanks 😄
Actually, I didn't understand why we created that custom blend in the beginning... Cuz Im not sure where we use it?
i think its so the cinemachine brain understands how you want to move from camera to camera, so when it does sense a change that a camera is moving to another, it moves in whatever way you set it up
Thanks for this excellent tutorial!
Fantastic tutorial! Thanks so much :D
Thank you!
Very nice tutorial, easy to follow, thank you.
great tutorial! thank you so much
Great video, thank you
That was very helpful! Thanks!
wow great video! earned you a new subscriber!
thanks!
@@samyam watching this video again! it's so helpful!
Glad to hear! 😄
Great video! Thank you!
@samyam haha I had just unpaused your video after fiddling with my code, and the “samyam liked your comment” popped up. I was a bit startled for a moment... “How did she know?...” but then I remembered the comment I left. Hahaha! I am trying to make the StateDriven Cam transition when you enter a certain trigger collider. Do you have a video on that? I love your teaching style!
Not necessarily a video, but basically you can set up a collider in that area and set it to Trigger so the player can pass through, and on your player script you can make a OnTriggerEnter function that either changes the animation state, which goes perfectly with the state driven camera, or changes the priority of a camera, depending on your use case
docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
Very helpful thanks.
you saved my life
good shot!, this helped me a lot, i made a more simple and scalable system, but the info an explanations are worth thousands!
wow this is so good
Super useful!!!
This is amazing , thank you !
thank you so much for this video
very nice tutorial
how am I just finding you? Really great video :)
great video!
Hey can you tell me that how can I change the cameras with a time limit like I want to switch from to another after 30 seconds btw nice explanation 🙌👌
Thank you so muuuch!!!
Nice tutorial. I use Playmaker to achieve the same results, so you don't need a state drive camera setup.
Thanks!
What has to be done blending through different cameras based on the camera angle? E.g. looking down blends over to a near-shoulder camera?
thank you!
Thanks for the tutorial. Just curious, what would you change/add if you wanted to cycle through 3 cameras?
Is there a way to either cycle through all available cameras, or to have different buttons switch to different cameras?
I’d personally use the state machine camera and the animator for more than 2 cameras. You can switch to a camera via script, doesn’t have to be bound to a button press
thank you, very pog
Hi, I have a spaceship and I would like to have two cameras. One over the ship ald another from inside. State driven camera makes strange movements but other cameras are also not appropriate to this aim or do not have option for two child cameras. Is there any solution for that, because your method works and changing camera works fine?
awesome thanks a lot
I had one more question! :) if I wanted to make more camera switches with more cameras so I can have other key presses change different cameras how can I add to this to make this possible? Great video btw. It’s a huge help!
Did you find a solution for this?
Very cool
Thank U :3!!
I love ur videos! I have a question. If ur learning a new topic in unity, for example when you first learned cinemachine, do you go through and read the documentation or do u have any other methods? Basically, how do you research that topic?
Thanks! Yes I typically look at the documentation first since it usually has all the information I need. If I’m stuck on something I may search up a tutorial to see how someone else did it and get a better idea. Basically Unity documentation and Unity forums are my go to, but it depends for every person :)
Thank you
Thanks! Did you get a chance to test which option is better performance-wise?
No I have not but I think the cost difference should be negligible since ideally you wouldn’t be switching the cameras on every frame
Unfortunately this wont work for what i am doing because i want the Vcam for cutscene to be in a different prefab than the player prefab with the default vcam. in otherwords i cannpt put them both as a child of a state-driven camera
I have a lock on system. I want to switch to 2nd camera only if a target has been found, not when I press the lock button. How can I do this through script? Thanks again
I like this tutorial, but how would I do this without using the new Input System? I just can't use it. I've tried but it's simply not my thing
4:03 just wondering, isn't 0 a 'higher' priority than 1?
thankyou!
pls bro tell me how to make a ui button that when we press and hold it the camera rotates backward and shows back of the car and when we un press it it goes to its original position i want it for my car controller pls help
Is it okay if I will use cinemachine brain for 3 cameras to switch between them by scene, not by the clicking button?
Thanks for the tut. I already have a project set up with unitys standard input system. Using the new input system messes up everything in my project (I suppose I'd rather not have to change all my code to work with this new input system). What changes would I have to make to get this working with the standard input system?
In the Player Settings you can set the Active Input Handling to Both so you can use both in the same project
@@samyam you are a GOD!
Actually, I’m a little bit lost again haha. If you could shed some light that would be great (no worries if not though, it’s not like I’ll unsubscribe or anything, your content looks too good for that, {kinda hoping flattery will see me through understanding unity here haha}
Anyway if you have the free time feel free to continue reading!
My project has a player set up in an isometric perspective (in a perspective view not orphograthic), for my players controls; I set the up input to move the player in the direction of the cameras transforms forward . After finishing this tutorial (your last advice really helped out!) I’m running into errors. When I press space, nothing happens and instead I receive three 3 error messages in the console.
1.
Animator.GotoState: State could not be found
UnityEngine.Animator:Play (string)
2.
Invalid Layer Index ‘-1’
UnityEngine.Animator:Play (string)
And finally
3.
Look rotation viewing vector is zero
UnityEngine.Transform:setforward (Unity.Vector3)
Anyways, I don’t know if the information I’ve supplied you with helps a whole lot, but regardless; thanks for your time!
Looking forward to watching any future videos you upload! ☺️
I’d like to add, I’ve triple checked my naming conventions for the states within animator, but that 3rd error message throws me a little.
@@ThatMellon For the animator it seems to be a naming issue with your states,
answers.unity.com/questions/937070/animatorgotostate-state-could-not-be-found.html
And the rotation make sure you are not calling the rotation method towards a zeroed vector
forum.unity.com/threads/simple-fix-for-look-rotation-viewing-vector-is-zero.411731/
We also have a discord you can join and ask there:
discord.gg/SwCKB3Q
Bro can you plz make a tutorial of first person touch controls
I'll put it on my list! This might help also
3rd person mobile joystick
ruclips.net/video/YV5KOZHsIz4/видео.html
Merci !
Quick question, why are you adding SerializeField to all those fields?
when u make a field pvt u need to add [SerializeField] to make it appear in the unity editor.
pvt is used so that other scripts don't mess with your fields in the current script by some chance.
it basically blocks access of other classes, and the variable is only able to be changed from the editor so if there is some error u now know where to go and what to edit rather than going to many scripts and checking which script is messing up.
@@TrippyGamer got it, thank you!
cameras are not appearing on custom blend settings, what do i do?
Thanks for the video!
I'm trying to switch cameras with a priority change method, but something is not right.
I can see in "CinemachineBrain" component in "Live blend field" that it blends for 5 seconds, as i setted, but transition lasts for 2 seconds, but I want that transition lasts 5 seconds too. Can someone help?
Under the default blend and also in your Custom Blend you can specify the time you want it to last
But how do you do it without pushing a button but rather traveling to a new location?
how would I apply this to switch to a close up camera when my player performs a special attack. Once the special attack is over, I want to automatically switch back to the default camera. Thanks!
If you have an animation for it already you can use the State Driven camera and use that state to activate the new camera and back. If you are using code to change the priority directly you'll have to switch the priority when your animation starts and switch it back when the animation ends.
Very interesting video, thank you for uploading this kind of content! Unfortunately I have this issue, when the transition or blend happens, the position of the other camera I want to change, changes, and it doesn't focus the object I put to FOLLOW or LOOK AT. Do you know what is going on? or Did anybody run into this kind of issue? Thanks in advance ^^
Try this:
Cinemachine Virtual Camera > Transition > Inherit Position
// will inherit from the previous camera’s position
@@samyam Thank you for your fast response! For the time being, this issue is solved by changing the camera from CinemachineVirtualCamera to a CM ClearShot. Apparently, the CVC takes as reference or point to work where the main camera is. In my case I wanted to change from the player camera, to the EnemyCamera to create a cinematic. I had as child of the Enemy a CinemachineVirtualCamera and changing that to ClearShoot fixed my issue. I hope this helps someone or you for explaining in case someone runs into this issue.
Regards (๑╹ω╹๑ )
Thanks for your video. But when using the first method, i meet a error: InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.Cinemachine.AxisState.Update (System.Single deltaTime). I am sure that i did the same thing as that in video. Does anyone have a solution?
when i click space, the error occurs.😩
It means you are using both the old and new input system and you only have one enabled in your project settings (Project Settings>Player>Active Input Handling). Make sure you are using the Cinemachine Input Provider and if you are using UI to replace the Input Module to use the New Input System.
ty
I am currently trying to make a third person controller using 2 cameras, where 1 camera is the "aim" camera, and the other is the generic movement camera. One issue I am having is that when the normal camera is enabled and moving around, the aim camera isn't. So when I aim in, it will transition to the spot where the aim camera is (old position) and this isn't desirable, as I want the aim camera and the normal camera to be in line with each other at all times. Do you know a good way of doing this?
If blending between the different cinemachine camera's has a large position offset, try the following:
*Cinemachine Virtual Camera > Transition > Inherit Position
// will inherit from the previous camera’s position
@@samyam Oh my god, this worked perfectly. Thank you so much. I took a shot in the dark here and this was just what I needed.
I probably won't get an answer, but is there a way to check if a virtual camera has finished blending? I want to have a button on the canvas disappear while the camera is blending
There's an IsBlending property on the Cinemachine Brain, CInemachine 3 may be better suited for it
forum.unity.com/threads/oncameratransition-onblendcomplete-event.520056/
@@samyam That works, thanks a lot!
hi sorry i don't understand how it could work with more camera, and why we should use Input System (which complicates the task for me)
i need to switch between 4 cameras around the player and i have 2 button to switch camera (one to the left and one to the right)
Should i use Switch Priority part ?
The input system isn’t mandatory, I just use it because I like it and use the new input system in all my videos. You can add more cameras to the state machine cinemachine object and switch between them depending on a certain condition. If you have more cameras you should rework the Switch Priority depending on the condition you’d like to be met to switch to a certain camera. I’d honestly use the animator and have a state machine driven system if you have multiple cameras, depending on the state you switch to that animation and the cinemachine state driven camera will switch to that camera.
@@samyam ok thank you for your answer 👍
@@samyam I managed to do what I wanted thank you very much ! 💛
Hello I keep getting an error that says "Assets\CamSwitcher1.cs(18,18): error CS0102: The type 'CamSwitcher1' already contains a definition for 'vcam1' "
any Idea how to fix this. I'm trying to change the Priority of the cameras.
Hm have you declared vcam1 twice in that class?
Thank you got it fixed now
It is a good job of explanation. The Cinemachine solution is a bit over-engineering and obfuscated for my taste
You should use whatever you like best! I think it's super simple for setting up both simple and complex camera systems and I'm personally using it in every project that I can.