Chancellor's Daughter animation capture test from "The Light Princess".
Character design by Katherine Chi, animation by Terry Hancock (this is
a still, click to view the GIF animation).
This animation was done pretty manually, and it was very difficult. AutoManga
will attempt to automate the steps involved in creating it (by scripting
SKencil) and provide means of showing such animations on demand using
PyGame.
|
AutoManga
AutoManga is a system for digital cel animation which can
used for running animation scripts or for displaying
game action in an interactive cinema game. AutoManga's
control abstractions are designed with Manga ("Japanese
Anime") style character animation in mind.
Since
interactivity is intended, AutoManga will not have a lot
of look-ahead buffering (as in playback-only systems),
but will instead be designed to use fast enough display
methods to maintain low latency with one-frame-ahead
audio and visual buffering.
Key (Planned) Features:
- Cel-Animation Layup Abstraction Model
- Parametric cel-selection and blending methods
- Emotion-based character expression control through
Emerald
- Lipsync
- XML resource files for cel resources and sequencing
- SVG (Scaleable Vector Graphics), PNG, and JPG cel and
background resources
- Implemented almost entirely in Python using PyGame (therefore
runs on all SDL-supported platforms).
Deliverables
As planned, AutoManga will not be a single package, but actually
several quasi-independent tools:
Skencil Authoring Tools (Scripts and/or Plugins)
- DigiTone
-
- Digital screentones script to create procedural effects like
the rub-on commercial screentones used frequently in Manga artwork.
- FlipBook
- Utility to classify and manipulate layers in a Skencil drawing,
allowing a drawing to be animated in the editor by toggling layer
visibility. Good for checking and tweaking animated bezier curves.
- Inbetweening
- An improvement on Skencil's existing Blend tool, which will allow
for correcting path orientation (CW/CCW) and adjusting "key nodes" to
match up, generating in-between nodes as needed (presently this must
be done by hand in order to make the Blend tool do in-betweening).
- SkeletalAnimation
- A 2D analog to the armature or skeleton techniques used in 3D
animation, this will allow a control curve to be attached to a curve
object, allowing it to be distorted in a controlled way.
- Manga Objects
- A collection of objects and plugins of use to AutoManga
animators, including such things as eyes (with tandem controls,
etc).
- Parametric Classification
- A tool for creating and attaching cel sequences to "sliders" that
the animator can control.
- Skencil2AutoManga
- A tool for converting the original Skencil drawing, along with the
markup from the classification and learning stages, to an AutoManga
resource file, using XML with embedded SVG cels.
Playback presentation (PyGame)
- Smart Sliders
- A neural net application, which will allow a set of animated
facial positions (or other animations) to be matched to a set of input
parameters. The net learns the relationships between the input sliders
and the output sliders, allowing the input sliders to be used to control
the face. This is how we will interface to Emerald "expressions". This
allows the animator to control facial expressions by example, rather
than trying to figure out the mapping themselves. Given enough correct
answers, the net should be able to figure out a good enough mapping.
- AutoManga Player
- Playback library to render AutoManga characters to PyGame (SDL)
surfaces, based on parametric input. Implements foveal zooming and
clipping (from VarImage plugin), transparency, and other useful
features for placing characters into PyGame contexts.
There will be no game engine based on AutoManga. The closest thing
will be the Universe,
which will be developed specially for "The Light Princess", and
is really just a thin "glue" layer for already existing packages.
History
Originally, I had a somewhat more ambitious plan for AutoManga, as
an entire game engine. However, the project was too ambitious,
and it stalled. I am now working on a lighter-weight game engine,
and developing AutoManga purely for aiding with digital cel animation
in PyGame, with particular reference to paremtrically-controlled
avatars for game characters, allowing them to show facial expression.
XML/SVG Resource Files
AutoManga will store cels as SVG when it is working properly. In order
to make this happen, we'll need a tool to render SVG into a PyGame
surface. It appears that it is possible to do this with
Cairo, using "libsvg-cairo"
and the SDL backend. We will have to use C or Pyrex for this, however,
as it appears not to be supported by the pycairo Python binding.
Project hosting by: