This post is about a mobile premium game we are developing in-house, called Ma'kiwis.
Long story short, Ma'kiwis is a adventure game for mobile devices where you play as a shaman leading mini tribe people to safety.
This week sprint was about adding few items to the game and make the firsts cutscenes into the game, so we could start testing the game workflow with them inside the game. I was assigned to work on the cutscenes that gives the player an introduction to the game's plot and gameplay, basically the tutorial.
Story boards of the cut-scenes in Level 1
Maya animations + Unity's Animation System was too messy
After trying for a few days I felt the system we were using previously was a bit limiting and it wasn't letting me do basic things like blend the cameras or time events like camera shakes or starting and stopping Particle Systems. We even had to animate the character interaction together as a single GameObject using Unity's Animation system.
The thing I disliked the most of this previous system was the inability to blend between pre-fixed cameras.
This meant that we couldn't go back to the Main Gameplay Camera after a cutscene which resulted in cuts every single time; either that or fades to black. This felt too repetitive in my opinion since there are a lot of other camera cuts when simple events occur ingame, like activating a switch or picking up a collectible. I wanted something a bit more dynamic that attracted the player's attention, hence the blending between cameras was really needed.
After talking with the rest of the team, we decided to upgrade the current Unity version we were using e (from 5.6.4f1 to 2018.2.0f2) so we could use the Timeline (Timeline was included in Unity 2017.1) + Cinemachine.
Example of the Popping problem when using Animator
Cinemachine is a free Asset developed by Unity that brings a lot more of freedom and a more cinematic look to the Unity camera system, allowing you to control the Field of View, Depth of Field, Camera Collision and the so needed blending between cameras, among other great features.
Cinemachine + Timeline is a very powerful combination!
This is done because we actually blend between the Main Camera to the position of the Cutscene Camera, which caused a stutter because of the Following script wanting to go back to the gameplay position. Basically there were two parts telling the camera what to do: the Following script was telling it to stay aiming for the player and the Gameplay one (which we were blending to) was telling it to follow the spline/bezier until the position was the Cut-scene cam position.
This way we always have the position of where the camera should be during gameplay to blend back after a Cutscene.
Another possible solution could be to have a Master Camera and using the Gameplay Camera as a Cutscene one, so the Master could blend between them without stutter, but that would've meant that the whole camera system would have to be changed and we couldn't afford that.
Hope my struggle with the cutscenes can help someone. :)
Alex Bielsa is a junior 3D artist working at Polygonal Mind's in-house team.