Custom editor tool breakdown
User Interface & Nodes
The interface which is derived from the Unity EditorWindow class, allows the user to set the sequence of the conversation, the dialogue, and camera composition. This is done by adding nodes and setting their properties.
The user can additionally save and load networks by using the buttons on the top left of the interface. JSON files are used for writing/reading dialogue networks. JSONUtility is used for this functionality.
User Interface - Example Dialogue Network
In the Start Node the user sets the actors in the scene and the name of the conversation.
In a Dialogue Node the user sets actor that is the focus of the shot, the shot properties, and the dialogue text
In a Decision Node the user sets the choices, the actor that is the focus of the shot and the shot properties.
The Go-To Node is jumps to another node in the network, allowing the conversation to loop. Allows the user explore other branches of the dialogue.
procedural Shot composition
The 3 types of shots are Portrait, OverShoulder, and FrameShare. The user can additionally choose the distance and Y-angle, creating variations of these shots. Shots are set in either a dialogue or decision node.
At runtime, the shots are calculated around the actor(s) depending on the actor's transform, shot type, and shot properties.
Portrait
OverShoulder
FrameShare