Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Official Let's talk about the future of Cinemachine!

Discussion in 'Cinemachine' started by marc_tanenbaum, Feb 25, 2021.

  1. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Hi folks!

    For those I've not chatted with, I'm Marc, Product Manager for Cinemachine.

    While we always value your thoughts on the future of Cinemachine, I thought I'd create this thread as an explicit place to brainstorm on ideas. I tend to think Cinemachine is already very powerful, but perhaps you have ideas how it could be even more powerful. I also tend to think, based on all the posts in this forum, that it could be easier to learn and use. Am I right or wrong?

    So what ideas do you have? How can we improve the tools? Here are a couple ideas some people have given me to get us started:
    • I'd like to be able to navigate directly through a camera's "viewfinder" so I can set a shot just where I want it.
    • I'd like to be able to use a visual scripting tool to map/blend game variables to camera behavior.
    • I'd like Cinemachine to support real-world lenses and/or camera rigs in order to match my Cinemachine cameras with real world equipment (for virtual production).
    • I'd like more/better samples (or tutorials) to get me closer to the setups that I'll use in my project.
    Let me know what you think. We really want you to help us guide our future.

    UPDATE: May 2022
    We now invite you to bring any ideas you have to our new PRODUCT ROADMAP. You'll find stuff we're working on, stuff we're considering, and even a place to suggest ideas we hadn't yet considered!
     
    Last edited: May 31, 2022
  2. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    469
    Node based version of Cinemachine is pretty much my most wanted feature. Current version is very limited if you want more complex behaviour that is out of scope of single cinemachine component. For example if you want hard lookAt and pov at the same time. And you cant use cinemachine mixing camera for this because it doesn't have additive blending(if you set same mixing weights for both cameras you will get each camera behaving in half power)
     
  3. merpheus

    merpheus

    Joined:
    Mar 5, 2013
    Posts:
    202
    marc_tanenbaum likes this.
  4. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Thanks both @Onigiri and @m3rt32 for the suggestions. They've been logged to my list of ideas to consider.

    @m3rt32 could I ask you to give me a bit more detail? What specifically about Camera Cuts is better for you and will improve your workflow? You can of course achieve the same end result in Unity today, but what I hear you say is that this other approach is better. To help me understand the suggestion, please tell me what problem you experience in Unity today that this solves for you. (e.g., "I waste too much time doing X", or "In the current approach, I can't properly understand Y").

    Thanks again!
     
  5. merpheus

    merpheus

    Joined:
    Mar 5, 2013
    Posts:
    202
    Yes! By camera cuts, I am referring to camera perspective previews btw. So this is more of a QoL feature than a functional one. If I have a bunch of cameras, transitions, or actions during a cutscene, I have trouble following it without rolling back and forth by hand all the time. There are occasions where you are working on a very specific part of a sequence and you have a rather long cutscene. Then if you wanna check something(perhaps the position of camera2 at the middle of the sequence(not the last position), you need to leave the current part you are working on, roll back all the way to camera2's perspective and then come back.

    There are many little occasions as such so that increases the time to setup your cutscene. Having a Camera Cuts type of preview/cinemachine snapshot track can speed up the development and contribute greatly to creative process since it would work like a storyboard this way.
     
    marc_tanenbaum likes this.
  6. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    @m3rt32 Exactly the type of detail I was looking for. Thanks!!
     
    merpheus likes this.
  7. awiebe

    awiebe

    Joined:
    Oct 16, 2018
    Posts:
    14
    Cinemachine's weaknesses are not really in that it lacks behaviors that make it like a real camera, and indeed it works pretty well for cutscenes. Where it breaks down is trying to use a virtual camera for game logic.

    To be honest I just want more documentation, and more APIs. Right now it is kind of a pain to program for, but necessary to program for if it doesn't fit your need exactly.

    I find the microsite and extension development to be very cryptic compared to the core unity documentation on the main site, which is generally of very high quality and has plenty of examples. It is difficult to get on board with Cinemachine when every time it doesn't fit exactly in your use case it's really hard to figure out how to plug into it, and it also makes it difficult for community plugins that patch any shortcomings of Unity's built-ins to pop up. If I can't get the Cinemachine brain to behave by tweaking the inspector my only recourse is code.

    The bits and pieces are documented, but what I really need are examples to show me where I can plug in, and I need an overview diagram showing how the pieces fit together. Right now it is too difficult to know if a value is something you shouldn't touch or might get overwritten by some change in the next frame, so it needs to be much clearer how data flows through cinemachine's internal state into the final non virtual camera puppeteered by the brain. Otherwise you just have to intercept and alter values until you get the behavior you want and hop there isn't a case where that breaks.

    Here is a list of some things that I ran into trouble with (some still unresolved. I had to fight with it which is discouraging my adoption:
    • Increase heading re-centering speed when player is walking.
    • Fight with mouselook orientation, because there are no helpers for transforming its orientation coordinates ( I can reposition and teleport the virtual camera, but if I try to copy the orientation them mouselook camera vcam is overwritten by the x and y axis values.)
    • Calculate transition time based on virtual camera distance, so the camera moves at a "fixed speed" but actually I'm just changing the animation speed.
    • The mouselook makes no sense in world coordinate binding unless wrap is on and limits are -180 to 180, even if I actually want to restrict the camera cone. The limits only make sense when locked to target (no roll), which I kind of understand, but also this breaks the example camera relative movement logic in the 3DGameKit , and I have no idea why, because this page is very unhelpful in explaining exactly what those modes mean, and how it will affect camera relative logic. If you disable wrapping and limit from -90 to 90, then the orbit seems to be around an arbitrary heading that changes. https://docs.unity3d.com/Packages/c...achine.CinemachineTransposer.BindingMode.html

    Also some of the main advantages of using a Cinemachine aren't watertight enough which almost make me feeling like just using a Unity5 standard assets camera script and dropping some simple physics logic in it. In particular I thought it would have nice physics bumper obstacle avoidance.

    I have opened a specific bug/feature request about Cinemachine's obstacle avoidance.
    https://forum.unity.com/threads/cin...xtension-when-combined-with-freelook.1095499/
     
    unity_zL4mJaTePZ9bOg likes this.
  8. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Thanks @awiebe! We have a new draft of documentation in the works, and will see what more we can do, particularly with regards to extending CM.
     
  9. Michal_Stangel

    Michal_Stangel

    Joined:
    Apr 17, 2017
    Posts:
    151
    Hello, I would really like to have a feature for fading objects close to camera.
    I use FreeLook camera and Cinemachine Collider component. Only for basic layers, like terrain or walls, to prevent too much camera moving forward/backwards (which is a bit annoying from player's perspectives). But it doesn't look extra nice if player see inside of NPC's head and similar stuff when moves camera through :) I guess it would be nice feature for all sorts of games.

    https://forum.unity.com/threads/fade-out-objects-between-target-and-camera.877216/#post-5768080
     
  10. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    That's a great ask @Michal_Stangel and one I've seen mentioned before. Logging it in my notes. Thanks!
     
    radissonnahian likes this.
  11. Gregoryl

    Gregoryl

    Unity Technologies

    Joined:
    Dec 22, 2016
    Posts:
    7,658
    @Michal_Stangel Have a look at the FadeOutNearbyObjects sample scene that ships with CM. It shows how to implement exactly that, using shaders.
     
    ferverence, markvi and marc_tanenbaum like this.
  12. Sab_Rango

    Sab_Rango

    Joined:
    Aug 30, 2019
    Posts:
    121
    Hello!
    Currently I am shooting a virtual event in AltspaceVR.
    As a virtual operator, Right now, "an integrated smart system" of all CM components in play mode is crucial for me.

    That would be great if there are some quick system that controls several CM systems in real time via UI button or hardware buttons in play mode.

    So then, I will be a main director of several handmade virtual smart operators:);)


    On the other hand, I think it's time to bring CM to VR as well.
    Since it's easy to feel any CM camera view angle inside VR.
     
    marc_tanenbaum likes this.
  13. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Thanks @Sab_Rango ... I've noted it in our feedback docs.

    And, thanks for your review on the Cinematic Studio Sample as well! <3
     
  14. FuriousEX

    FuriousEX

    Joined:
    Mar 13, 2014
    Posts:
    51
    How about a full on gameplay example for a third person game? The current suite of samples are too simple, and such a project would help you guys dogfood cinemachine for gameplay.

    For example: a 3rd person camera rig that supports:
    • ADS/shooting
    • Camera colliders
    • Zone based camera framings (i.e. standard, wide, and narrow spaces)
    • Traversal event cam
    • Three point interest cam like the boss cam sample (e.g. temporary cinematic framing, but one that doesn't spin out when you get too close)
    • Transitions between all these

    Thanks, love the product.
     
    Last edited: Jun 16, 2021
    Gregoryl and marc_tanenbaum like this.
  15. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Thanks @FuriousEX. We always struggle a bit with having sufficient samples. I'll make note of this one.
     
  16. SolarianZ

    SolarianZ

    Joined:
    Jun 13, 2017
    Posts:
    229
    There are two very useful but missing features:
    • Complete current or incoming blend immediately
    • Complete current damp immediately
    When I first enter game, I will create player character and set it as vCam's target., but at this time, I'm not expect a blending or damping.

    I have implemented some of this feature in this thread : Help Wanted - How to make Cinemachine complete current blending immediately? - Unity Forum
    I'd much prefer to have an official solution.
     
    marc_tanenbaum likes this.
  17. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Thanks for the suggestions @SevenChars! I've added them to our request list.
     
    SolarianZ likes this.
  18. Gregoryl

    Gregoryl

    Unity Technologies

    Joined:
    Dec 22, 2016
    Posts:
    7,658
    @SevenChars "Complete current or incoming blend immediately" is implemented and will be in the next release of CM.
    "Complete current damp immediately" can be accomplished in the current CM version by setting
    vcam.PreviousStateIsValid = false
    .
     
    SolarianZ likes this.
  19. SolarianZ

    SolarianZ

    Joined:
    Jun 13, 2017
    Posts:
    229
    Thank you! This help me a lot. But it seems not work with TrackedDolly camera's ZDamping.
     
  20. Gregoryl

    Gregoryl

    Unity Technologies

    Joined:
    Dec 22, 2016
    Posts:
    7,658
    Yes it works. I've just tested it.
     
  21. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,294
    I need an easier way to preview camera shots in Timeline when the Camera isn't in the scene.

    We spawn in the main camera, together with the Cinemachine Brain when we start the game. There's a lot of levels, many of them are loaded at the same time, and just having a camera hanging out in each one is a major pain, so we avoid it.

    Our Timelines has a pretty simple script on them that finds the CinemachineBrain and assigns it to the
    CinemachineTrack on startup. Standard stuff.

    This means, though, that if we want to preview a Timeline using Cinemachine, we have to pull the Cameras prefab into the scene. The other parts of the timeline can be previewed in the scene view, but the shots cannot, since the game view is blank.

    This is both annoying to do, and dirties the scene unnecessarily, and we have to remember to find and delete the camera before saving.

    Ideally, the Timeline would be able to display the tracks in the game view without a camera. Some kind of temporary, don't-save camera object could do the trick.

    We can make that ourselves, but it would be a nice QoL thing to have it out of the box.
     
    jwinn and Peter77 like this.
  22. Gregoryl

    Gregoryl

    Unity Technologies

    Joined:
    Dec 22, 2016
    Posts:
    7,658
    @Baste Thanks for the suggestion. It's a pretty specialized usecase. Frankly, the simplest thing might be to do as you say: make it yourself. If you do, don't be shy about posting the code here for others.
     
  23. SolarianZ

    SolarianZ

    Joined:
    Jun 13, 2017
    Posts:
    229
    Sorry, I made a mistake. It was due to dolly camera's FindClosestPoint() method but not ZDamping.

    And there's one more question: in CinemachineCore.AddActiveCamera(), why use QueuePriority to find new camera's insert point but not Priority? When execute insert, cameras in mActiveCameras may already change their Priority, this will cause new camera be insert to a position ahead of actual position. If I invoke cinemachineBrain.ManualUpdate(), it doesn't seem to trigger a re-sort, so I may got a wrong highest priority camera.

    upload_2021-7-16_10-20-48.png
     
    Last edited: Jul 16, 2021
  24. Gregoryl

    Gregoryl

    Unity Technologies

    Joined:
    Dec 22, 2016
    Posts:
    7,658
    @SevenChars CinemachineCore.mActiveCameras is kept sorted at all times. Are you just asking out of curiosity, or are you actually seeing a bug?
     
  25. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,294
    I tried, but I ran into a bug (Case 1351075). Turns out that if a Camera is marked as HideFlags.DontSave, the game view doesn't update when you move it around.

    I'm pretty sure you're spawning some hidden cameras in Cinemachine, since I can remember bugs where they ended up not being hidden. Do you have any insight?
     
  26. Gregoryl

    Gregoryl

    Unity Technologies

    Joined:
    Dec 22, 2016
    Posts:
    7,658
    We're not spawning any hidden cameras in CM (although we do have some hidden GameObjects, but that's another matter).
     
  27. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,294
    @marc_tanenbaum do you have an entry for Cinemachine in the roadmap? I couldn't find one! If you don't have one, you probably should!
     
  28. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    Hey @Baste ... as it happens, that should go live tomorrow!!!!
     
    Baste likes this.
  29. Onigiri

    Onigiri

    Joined:
    Aug 10, 2014
    Posts:
    469
    Link? I can't find it there
     
  30. Gekigengar

    Gekigengar

    Joined:
    Jan 20, 2013
    Posts:
    738
    Just stumbled upon this, but this definitely would be amazing. +1
     
  31. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
  32. cp-

    cp-

    Joined:
    Mar 29, 2018
    Posts:
    78
    Hi @marc_tanenbaum and @Gregoryl , forgive me if I'm hijacking the wrong thread :)

    I've been following the github repo somewhat closely and it looks like there's some real progress with the spline integration and the UI/UX upgrades (on 3.0.0-pre.1). I wonder if a release of those features is already in reach -- in terms of a realistic release a few weeks from now?
     
  33. Gregoryl

    Gregoryl

    Unity Technologies

    Joined:
    Dec 22, 2016
    Posts:
    7,658
    Splines will be fully integrated into CM with the 3.0.0 release, scheduled for early 2023. We are planning a pre-release for September.
     
    DragonCoder likes this.
  34. marc_tanenbaum

    marc_tanenbaum

    Unity Technologies

    Joined:
    Oct 22, 2014
    Posts:
    637
    I'll just add to Gregory's comment...please always take such release dates as an expression of our intent. The reality can vary a little or a lot depending on a variety of factors.
     
    Gregoryl likes this.
  35. cp-

    cp-

    Joined:
    Mar 29, 2018
    Posts:
    78
    Thanks for your quick and honest reply. Early 2023, ok. Clearly not what I expected but I know there's a lot of work. Looking forward to the prerelease!

    Aye, mister safe harbourmaster, sir! ;)
     
    marc_tanenbaum likes this.