Search Unity

Best way to choreograph a long shot????

Discussion in 'Cinemachine' started by JadeEmpire, Jan 2, 2019.

  1. JadeEmpire


    Oct 26, 2016

    I am currently doing a long shot(along a dolly track) with changing composer look at targets throughout the shot.

    I have tried 2 appraoches:

    1.Setting up different vcams with differnt look at targets, all following the same track. and blend them in a cinemachine track
    2.Choreograph 1 vcam that looks at an empty GO, and set up another animation track for the empty GO to choreograph the look at target position.

    In my shot, at one point the new look at target will be 180 degrees opposite to the current look at target. I tried the first approach and no matter how long I lengthen the blending time between two vcams, the change of angle always happens really fast almost like teleportating the rotation. I am guessing its because the look at target is not in the frame so the vcam is moving toward it very fast???

    I end up using the second approach as only it worked. It was ugly because I have to remember the keyframes on the targets and the vcam seperately. Ideally I'd like something like the first approach, with 2 seperate vcams with diffferent targets, much more modular and easy to manage.

    If you guys know better aproaches to a cinematic long shot with changing look at targets, and changing speed. I would be thankful to know the setups of both the body and aim.

    Also, I am wondering why the first approach resulted in jittering rotation, not working as expected(my expectation: by changing the blending time between two vcam shot clips in the cinemachine track, I should be seeing the rotation of vcam lerping smoothly, instead of always too drastic). My guess is that its because for the other shot, the target wasn't in the frame and on the complete opposite side??

    Lastly, I have a few other questions:
    1. when a blend happens between 2 shot clips A & B, is the A's blend OUT controlling the blend speed, or B's blend IN controlling the blend? Or do both matter?
    2.I'd like to create an autotrack dolly track to automatically cuts to the next shot after it has reached the end of its dolly. This will be used to create in game cameras, not a cutscene so I was ruling out timeline. So it is like clear shot, but cuts to the next one as soon as the auto track dolly reaches its end. Is there any way to hack around this without code?
    3.I am using a mouse to adjust the rotation of a vcam in realtime, based on other vcams's final results(such as a composer-dolly vcam), so all it does is it alows me to controll the final last bit of composition/movement with my mouse after vcams have done their parts. I have created a vcam that adds all its children's pos info and sned that to the brain. Is there something in the package that is already doing this 'adding the sums' part I could use???

    I know thats a lot of the question but thanks so much in advance!!!!!
    Last edited: Jan 3, 2019
  2. Gregoryl


    Unity Technologies

    Dec 22, 2016
    The way the default rotation blending works when the LookAt targets for the vcams differ is that the LookAt point is lerped from the first target's position to the second. If the targets are on opposite sides of the vcam, then the effective lookAt point will be along a line from the first target to the second, passing near (or through) the vcam. The vcam will not rotate as the lookAt point approaches from the first target, then will quickly spin as the point passes near (or though) it, and then will be still again as the point approaches the second target. That sounds like what you're seeing.

    The solution in this case is to set the blend hint on the vcams to "Screen Space Aim when Targets Differ", like this:


    When you overlap 2 clips, the A out and B in will be set to the same thing. You were probably confused because of the effect you were seeing, as described above. Changing the blend time did nothing to change the sudden rotation of the camera, because of the position lerping.

    One thing you could try is to create a trigger at the end of the dolly track, with a CinemachineTriggerAction script on it. When the vcam enters the trigger, activate the next one.

    I'm not quite sure I understand this. What children? If it's a vcam looking at something and you want to adjust the target's screen position with the mouse, why not simply map the mouse's movement to an adjustment of the composer's ScreenX and ScreenY fields?