Vespers3D: Adventures with NPCs, Part I
by Rubes · 06/30/2007 (9:04 pm) · 4 comments
Vespers3D: Adventures with NPCs, Part I
Vespers3D is our attempt to bring old-school text-based adventure games (interactive fiction) into the world of real-time first-person 3D - a new genre we are calling 3D/if (3D interactive fiction). It is based on Vespers, Jason Devlin's fantastic text IF game that won numerous awards from the IF community, including Best Game at the IFComp'05 and the 2006 XYZZY awards. Vespers provides a compelling setting and a powerful storyline for a game that will, in the end, be something akin to Myst but with a fully interactive 3D environment and good old-fashioned text command input and output.
Things have been moving forward lately with our NPC development, which has been a very gratifying experience. Watching a character go from a text description to a fully animated and speaking NPC model is something else. And as we move from one character to the next, incorporating each into the game, the whole project really starts to come to life. It sure as hell beats plugging away night after night on the nuances of text parsing.
It takes a lot of steps to go from point A to point B, and a number of people to make it happen, so I thought it might be interesting to review the procedure we went through for each NPC in the game. Vespers has six NPCs: five brothers and one village girl. This way, we can introduce each character while providing a little insight into our development process.
Matteo: From Concept to Character
Matteo was the first character we tackled, mostly because he has the smallest part in the game. In the text version of the game, however, there are very few detailed descriptions of the characters, so we didn't have a lot to go on initially. The one passage in the game that gives some background on his character (which, interestingly, was later removed for the final release) went as follows:
"Ah, Matteo. He was one of the first. Although he is a few years your senior, he remains obedient and helpful. He loves Saint Cuthbert's, almost as much as you. The loss of the brothers has been especially hard for him. He was as much a father to them as any priest."
So we began with an older, gentle, fatherly figure, and after some discussion with Jason Devlin (the author), we also decided on a person who is shorter and overweight. We presented this to N.R. Bharathae, our lead artist, who came up with his concept for Matteo.
Figure 1. Matteo concept sketch.
Once we had a good starting point, N.R. set to creating and revising the 3D model, and then applying the textures. We were going for a more realistic appearance to our models and, needless to say, we were very excited with the results.
Figure 2. Matteo model.
Figure 3. Matteo textures.
While this was going on, I was also working hard on the voice recordings. After a long process of auditions last fall, I went through the difficult task of preparing the scripts, setting up and performing the recording sessions, and then splicing and editing each of the lines into separate WAV and OGG files.
Fortunately, we were able to get a really talented actor, Alan Meyer, to do the voice work for Matteo. I asked each of our voice actors for a head shot, since I thought it would be fun to see each of them beside their final in-game NPC model. Here's a shot of Alan alongside Matteo, along with a short bio he wrote.
Figure 4. Alan and Matteo.
"As a voice actor, Alan Meyer enjoyed playing a role in Vespers tremendously. During his three decade acting career Alan has appeared in dozens of plays and films. He taught theater and video production classes at Bonneville High, in Ogden, Utah, for over fifteen years. His website http://speakingpart.com features his voice acting demos and current resume."
Finally, bringing him to life was our lead animator, Matt Chin. Matt was new to the Torque system of animation (as was I, of course), so it took us a little while to work out the kinks and the best workflow process. But once we were both comfortable with it, he was able to really breathe life into the model. It's not easy to show here, but Matt did a great job with a lot of the little details, including blinking, eyebrow movement, and even some lip sync. We ended up using mostly full body animations for Matteo (unlike some of the other NPCs), since we found little need for additional blend animations.
The final result, I think, is a fantastic combination of writing, modeling, texturing, animating, and voice work, the combined work of a small group of really dedicated and talented people. Here's a link to an extended video of the initial interaction with Matteo in-game if you're interested -- and I apologize for the video and audio quality:
Figure 5. Click image above to see Matteo in action.
Hopefully that gives you all some idea how we went through the process of developing Matteo from a character in an interactive fiction game into a 3D animated and speaking NPC model. Next time I'll introduce Constantin, who presented a series of challenges of his own.
Thanks for reading!