gepetto
Main home page
Send an e-mail
  
 Content |  Introduction |  Control center |  Library |  Routine |  Stage |  Movie |  Technical 
 
 

Organisation of directories
 
The library is closely related to the filesystem.

If the main directory is .../gepetto, then :

  • the routines are stored in the routine directory.
    Each class (left part of the Library window) is stored in one directory using the name of the class.
    Then the heiarchy use for the categories in mapped from this directory.

  • the poses are stored in the library directory.
    Each class (left part of the Library window) is stored in one directory using the name of the class.
    Then each type (Arm, Body, Foot, Leg, Pose and Position) are stored in one directory using the name of the type.
    Inside each directory, the poses are stored using the following convention for the filename : pYYYYmmmDDHHMMSS.ppm, where YYYY is the year, mmm the month, DD the day, HH the hour, MM the minutes and SS the seconds of creation or modification of the file.

    The special file index is used to store the order defined by the user for the icons. It is a simple list of the files, in order.

Format of the routine files
 
All the data used by Gepetto are based on a file in ASCII describing the routine. The GUI is only a nice way to manipulate those data ;-).

This allows for extension (e.g. writing a converter to import file from motion capture systems).

The following table describes the format. To really see how it works, just read some examples as the syntax was designed to be easily understood.

Literals
Comments # ... The comments are all the line (end of line) after the character #
Strings "..." Each type a string is required, it must be enclosed with quotes. The string may contains escape character as in C (\n, \t, ...)
Description of the routine
Syntax beats = n Required
Number of atomic beats (real beats * 1000).
rhythm = n Default 4000
How to group the beats. Used for display and for computation of animation speed.
bpm = n Default 30
Bar per minute used to compute speed of animation.
dancers= {[sex, ] [string type, ] string}, ... Default sex Man, default type White
Description of the characters (sex, type for the colors and name).
name = string Optional
The name of the routine.
description = string Optional
The description of the routine.
copyright = string Optional
A copyright string.
text = string Optional
A free text for the end user. Never interpretated.
Initial positions of characters
Syntax init(n) = {
    [cog:X = value]
    [cog:Y = value]
    [cog:Z = value]
    [cog:rX = value]
    [cog:rY = value]
    [cog:rZ = value]
}
Optional
Define the initial position and angles for characters.

n define character n in the list defined in dancers.

Keyframes defined for the routine
Syntax key(n) @ [start,end] = {
    track = value@time
            [linear|bezier(...)value@time ...]
            [,value@time ...]
}
Optional
Define the differents values for the tracks at the given time.

n define character n in the list defined in dancers.

The tracks are :

  • pelvis:X, pelvis:Y, pelvis:Z
  • same for torso:X,Y,Z, head:X,Y,Z
  • arms are left:shoulder:X,Y,Z,TY, left:elbow:X,Y, left:wrist:X,Y,Z
    (replace left with right for the other arm)
  • legs are left:hip:X,Y,Z, left:knee:X, left:ankle:X,Y,Z, left:foot:X
    (replace left with right for the other leg)
  • the position cog:X,Y,Z,rX,rY,rZ

The interpolation between the points are either linear or defined by bezier parameters. (internally, all is handled as bezier interpolation).

Severals parts of keys may be define using a comma to split the list. For example, you can have :
    0@0 linear 10@1000, -10@2000 linear 0@3000
this will leave a gap between the beats 2000 and 3000.

Figures inserted in the routine
Syntax routine(file) @ [start,end] = {
    map(n1,n2,...)
    [color = color]
    [includenotes]
    [reject] -- TOCOMPLETE --
    [with] -- TOCOMPLETE --
}
Optional
Define the figures inserted in the routine.

file is the filename of the routine, either an absolute path or a relative path from the routine top directory (see above for organization of directories).

map defines the mapping between the character of the inserted routine and the characters of the current routine. (-1 if the character of the inserted routine is not used).

color is color used to display the figure in the Routine Editor.

includenotes is an optional attribute used to force inclusion of the notes of the inserted routine.

reject is an optional attribute used to indicate which tracks should be rejected (either because of a conflict or as selected by user).

with is an optional attribute indicating the modifications to apply to the original inserted figure.

Notes defined for the routine and the characters
Syntax notes(n) =
    string @ [ start,end]
    [, string @ [ start,end] ]
}
Optional
Define the text of the notes.

n define character n in the list defined in dancers. The value -1 is used for the comments (notes for the routine).

Movies
Syntax movie(string) = {
    center = point> @ time
               [bezier(point,point) point> @ time]+
    eye = point> @ time
               [bezier(point,point) point> @ time]+
}

where point = <x,y,z>

Optional
Define the movies.

string is the name given by the user.
There is one entry for each defined movie.

center is the 3D point use as the center of the screen.
eye is the 3D point use as the eye of the user.
Using this two variables you can define all the moves of the camera. They define two path, each one is a set of points with bezier curves between them.

    
   

Copyright © 2000 Laurent Riesterer.
Last modified on Aug 14, 2000.