Skip to content

Case Study: WQ Cinematic System

You are here:
Estimated reading time: 3 min

Overview

Cinematics/cut-scenes play an important role not only in story progression but providing the player some helpful information that they were not aware of through visual or verbal representation. In WQ, the old cinematic system wasn’t even a system but a bunch of scripts doing repetitive tasks and few new functionality. Till Episode 10, it has 26 cinematics/cut-scene and for each of them we had to create a new script and start implementing it. It was getting cluttered and knowing that there are more cut-scenes/cinematics to implement would need more to manage more scripts for no greater good.

A new cinematic system was much needed that will use only one script to create as many cut-scene sequences as documented. It was designed keeping in mind that even a beginner level guy can use it by simply drag-n-drop components into their respective fields and to divide all the features into modules and each module can be expanded based on the requirements. The key benefits of NCS are:

 

  • Using a single script for all cinematics/cut-scenes including their episodes
  • Simple drag and drop system in the editorm can be reordered, components can be copy pasted, whole cut-scene along with its components can be reused into another cut-scene/cinematic 
  • No experience with coding needed and even beginners can work on it. Eliminated the dependency of a programmer working on them
  • NCS is divided into components and subcomponents making it easy to implement a well organized modular cut-scene/cinematic
  • Scalable to features and sub-features addition in future as they come by

 

 

Naming Convention

For the first ten cinematics including their episodes (that are already implemented), there exists a gameobject with the name CinematicHandler for each scene that has Cinematics.

For NCS (New Cinematic System) we will use the same hierarchical structure for NCS. All the cinematics and their episodes will be child of it with proper name and their gameobject will be resetted to 0. This is important as it will serve as parent of all the dependent NPC, transforms, Player Party Members etc.

 

  1. Create an empty gameobject and name it CinematicHandler, reset the gameobject to default 0,0,0 position /rotation and scale to 1,1,1
  2. Create a child rename it to Episode name followed by Episode part, then the actual name of the cinematic to get the gist of it
  3. Be sure to reset the transforms of both, same goes for the child objects
  4. Attach CInematicController.cs script on to Episode gameobject

 

 

 

Cinematic Controller Script

The script has few fields to specify which cinematic to play and whether it is trigger-able or not. In the last there is a component with the name C Scene which is used to add different components/features needed for cinematic implementation. To simply start adding a component, hit the plus sign on the right side of C-Scenes and it will add an option to choose from different features and only one feature/component could be selected to work on.

For each component, all the necessary checks, info boxes, and required fields are predefined to help with easy cinematic creation. The break down of each component is below:

 

  1. Trigger Sequence ID is the current story ID for each cinematic and it needs to be unique for every cinematic. The complete list of ID till episode 10 is already mentioned in the list: https://docs.google.com/spreadsheets/d/1MPwZm59QvlwgeG6Um_imDpIOUPXWxuds/edit#gid=851418876
  2. Timing is always set to Equal ( by default it will be selected to Equal, no need to change)
  3. Episode Number is the current episode number that is being implemented
  4. Episode Part is the current episode part number this is being implemented
  5. Is Cinematic Triggerable is set to true when cinematic needs to be launched through trigger, else it should be left unchecked (default value is unchecked/false) 
  6. C Scenes is the field to add new components. To add a component click on the plus sign on the right 
  7. Start by itself is self explanatory, whether you want the component group to start by itself when the cinematic gets active or you can activate it manually by disabling it
  8. Click the plus button on MyComponents to start adding components to this group.
  9. Copy and paste Conversation script from old cinematic to new one (this only applies to the first 10 episodes for the purpose of reusability. After 11, they will have to be added from scratch)

 

 

 

Camera

There are 12 features that can be used to create cinematics. First one is the camera.

 

Target Camera: Needs Level Camera assigned to it.

New Cam PPU: Default value is 100. Can increase or decrease it.

Camera Tween Time: Time it takes to tween to the required/defined position, default is 1

Follow player, Show/Hide Shades, Fading In/Out, Camera shake: Bool/check – Each selection will expand further to tweak values for each cinematic. Defaults are already implemented

Is Sequenced: An check/option at the end of each component.
Enabling it will wait for the particular sequence to complete then proceed to the next,
Disabling it will run it side by side other components in hierarchy

 

 

 

Overworld Unit
For NPC movement

 

 

 

GameObject
For general game-object related stuff

 

 

 

Controllable
For controllable object

 

 

 

Conversation
For cinematic conversation

 

 

 

SFX
For sound effects

 

 

 

Call Event
For calling any event from within the NCS

 

 

 

Call Battle
For initiating combat

 

 

 

Load Scene
For loading next scene and incrementing story ID

 

 

 

Player Party
For adding and updating player party member and its UI

 

 

 

Choices
For adding choices option and different choices to it

 

 

 

Quests
For adding quests and their calling it

 

 

 

Was this article helpful?
Dislike 0
Views: 3
Back To Top