Doorways

I designed and implemented a custom system for controlling character actions when entering and exiting a scene. I'll mainly be showcasing character intros as that is what the system was heavily used for versus character outros. Though it could also handle character outros, just not with as much showmanship.

Doorway Actors

Doorway actors are the actual physical places characters enter and exit from. They're like stage doors in a play for actors. Doorways will handle the queueing of characters, if multiple are trying to enter at a time, as well as all phases of an entrance. The phases of an entrance are conceptually separated as pre-entrance, entrance, and post-entrance. Pre-entrance is the point where characters are waiting to enter and are usually set to hidden. Entrance is the time where characters perform their level sequence with lighting and a pose while another character in the scene barks at them. Post-entrance optionally has the behavior of starting a conversation with a main character and the newly introduced character. After everything is done all in the post-entrance stage, the character gets sent to some random interaction in the scene.

Here is a video of the general default introduction for characters in our project. It also features a Plot Twist screen slam I animated.

Video 1. A character enters into a scene at the bar.
Staging Subsystem

The Staging Subsystem handled the management of all doorways in a scene, since a scene can have multiple doorways. It also manages tracking character states that are considered introducable or not. A StageDirection struct gets filled out and sent to the doorway with information on how to navigate throught the different doorway stages and who is the one actually entering.

The cheat manager had a really fun cheat where you could just "Enter New Character" and you can just watch the scene play over and over. The cheat manager was one system that used the staging subsystem to enter characters, but scenes that needed an introducable also used it.