Over the course of the project,
we implemented several extensions to the core Virpet technology.
Some of the improvements were motivated by the requirements imposed
by our creative vision for Rift (or, indeed, for any non-trivial
piece of content). Others simply streamline the tools and make
them easier to distribute and use. Our technological improvements
are summarized below.
Additional Puppeteerable Actions
The following actions are now supported by the Stage, and available
to puppeteers:
- Scene changes (move to a new "set", reposition puppets,
cut to new camera view, etc.)
- Trigger pre-recorded sound clips (sound effects,
background music, dialogue)
- Camera motion (panning, zooming, dollying)
- Video-studio-style camera cuts (positioning multiple
cameras in a scene and cutting between them)
- Puppets that can be particles (LithTech particle system that can be controlled to change properties like color, etc)
Improved Performance Management
The process of designing, managing and performing a Virpet
performance has been significantly improved.
- Virpet Performance Description (VPD) -- lets the
user specify a sequence of scenes, each with its own SSF file.
- Expanded SSF files -- new information stored, including:
- Locations of multiple cameras
- List of sound effects, music and dialogue used in the
scene
- Recording
- Complex animations can be pre-recorded, edited and saved
as MIDI files, which are later piped to the Stage (through
the PuppetMaster) at performance time.
- triggering keyframe animations from 3DS Max, as always.
- Packet-level recording in The Stage allows for recording
and playing back entire scenes (as well as "layered" recording
of background animations).
User-friendly Tools
No more editing XML files by hand! We've improved the old PuppetMaster
and added a slew of new GUI tools to easily generate all the
necessary files for a Virpet performance.
- PuppetMaster 2.0
- Can saving PuppetMaster Settings (PMS) files!
- Supports automatic generation of skeleton PMS files
from SSF files
- VPM editor
- Takes a skeletal model as input
- Lets you specify which degrees of freedom are available
in the model
- Save the result as a VPM file
- SSF editor
- Specify which VPM files are to use in the scene
- Specify initial positions of models and camera
- Save the results in an SSF file
- VPD editor
- Specify a sequence of scenes for a performance
- Save the result as a VPD file
Easier Setup
The process of setting up a computer to work with Virpets has
improved by leaps and bounds! All obnoxious absolute paths have
been removed from the source code, giving much greater freedom
in choosing where to install the software. And for end-user
computers, all Virpet software (including all the files used
to create Rift) is packaged as a super-easy Windows installer!
Go from zero to Virpet in ten minutes or less!
The Wish List...
Of course, there is plenty of room for further refinement.
Some useful features and improvements we would recommend for
future Virpet projects include:
- Keyboard input for the PuppetMaster. The ability
to trigger events from keyboard presses would be extremely
useful. Most of the code is already in place, and only our
limited knowledge of DirectInput and Windows GUI programming
prevented us from getting it working in the end.
- Automatic mouth animation for speaking characters.
It would be nice to have a puppet automatically open and close
its mouth while a line of its dialogue is being played. It
isn't nearly as expressive as manual puppeteering of the mouth,
but in some cases the difference wouldn't be noticeable. And
it's one less thing for the puppeteer to worry about.
- An easier way to manage multiple performances. Right
now, all performance-related files live in the same directory.
Figuring out which files belong to which performance isn't
always easy, and specifying which performance to run could
be more streamlined as well.
- Implement a more easily editable recording subsystem.
The current recording system makes adding additional material
to an existing scene very easy, but deleting material is well-nigh
impossible. This could stand to be changed. Perhaps we should
coordinate with the IAI team, and migrate to their DMX format?
|