One of the problems with having an external 2D view of the player's ship is that, while the action may be fun, it's not very conducive to storytelling, as the ship does not portray any sort of character. As I wanted Juggernaut to be quite a story-based game, I needed some way of telling the story without a) requiring FMV or b) full voiceovers because c) my budget is tighter than a gnat's anus.
Of course, this only really leaves some kind of text-based approach, but I really didn't want to assail players with walls of dry text. Instead, I decided on a comic-based approach, where the story is conveyed by the main characters talking to each other. Each character is vector-based, and may be posed in a variety of ways to portray emotion, with comic speech bubbles (and the emphasis therein) used to get across additional character.
The two primary characters are the protagonist Captain P. Tenuous (cookie to anyone who manages to work out *that* reference), a space trader undergoing a midlife crisis, and his belligerent navigational computer ARIADNE, who assumes the role of the deuteragonist. Most of the dialogue within the game will be plot points and general banter between these two characters, and also serve to break up the action. There is also a human antagonist who will be involved in dialogue less frequently.
Anyway, as a first character to implement in this system ARIADNE is the ideal choice, because its basic facial structure is so simple that it may be hardcoded. In the game world, ARIADNE's model comes with a wide variety of different and engaging personalities, but since Tenuous was too cheap to upgrade he gets an annoying cynic with a face made of 16 triangles.
Each character is defined as a mesh with a neutral pose and a number of different sub-expressions that define delta vectors for a subset of the mesh vertices. For example, ARIADNE has sub-expressions to raise its eyebrows, as well as close its mouth vertically/horizontally and move its eyes etc. Larger expressions (such as happy/angry etc.) can then be generated as a linear blend of these sub-expressions.
On the current test implementation of ARIADNE, the results look like this:
No comments:
Post a Comment