Procedural Conversation System – The Lord Of The Rings: War In The North

One of my favorite accomplishments in WITN is the procedural conversation system. James Ross, a brilliant engineer, and I designed, tested, and implemented the system. The game had hundreds of conversations, delivering over 10,000 lines of dialogue. In addition, the team had virtually no resources to dedicate to the conversations.
 
The conversation system was designed to allow designers to create a dialogue tree, define the characters, and drop a conversation into a level. The conversation system automatically populated the conversation with the correct characters, counted how many actors were involved, and chose a pre-created camera library to apply to the conversation. The camera library consisted of 5 shots per actor (CU, Medium, Full, Wide, Long) which I animated.
 
The system used a set of rules to choose which shot to use based on the previous speaker and shot. It also analyzed if the previous shot was static, dollied in, or dollied out. Then it chose the next shot to create a cinematic experience for the viewer. Each shot had a 10 second animation that played in one direction. The camera animation was played forwards or reversed, or static in a random point in the animation based on the rule set. Our main rule set favored Medium and Full shots with occasional changes to CU and Wide shots. We also maintained the shot type across multiple actors so if we did a CU on one speaker we would do a CU on the next speaker.
 
Each actor plays random “listen_idle” and “speaking_idle” animations based on their dialogue state. We also added “look at” rules to make their heads and eyes look from actor to actor in a natural fashion. Lip-synch was done with FaceFX, a 3rd party software package. All dialogue was baked with automatic settings, then animators hand animated the high tier conversations (30%). The system also allowed for custom character and camera animations.
 
The result of this mainly procedural system is a highly cinematic experience of hundreds of conversations. This system became a life saver towards the end of production when almost no people were available to implement these conversations.
 

witn_11

witn_12

witn_13

witn_14

witn_15

witn_16

witn_17

witn_18

witn_19

conversation_system_rig