| |
|
Organisation of directories |
|
|
The library is closely related to the filesystem.
If the main directory is .../gepetto, then :
|
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.
|
| | |