*** empty log message ***

This commit is contained in:
gregw 2002-02-28 17:15:00 +00:00
parent 177c456373
commit bbc971a21f

View File

@ -0,0 +1,211 @@
9/16/97
MULTIGEN MODEL FLAGS
This document describes the different kinds of model flags one can place in
the comment field of MultiGen group beads. The general format for a model
flag is:
<egg> { <FLAGNAME> {value} }
The most up-to-date version of this document can be found in:
$DWD/doc/howto.MultiGenModelFlags
***************************************************************************
QUICKREF
***************************************************************************
FLAG DESCRIPTION
------------------------------- ----------------------------------------
<egg> { <Model> {1} } Handle to show/hide, color, etc. a chunk
<egg> { <DCS> {1} } Handle to move, rotate, scale a chunk
<egg> { <TexList> {1} } Handle to manage texture for a chunk
<egg> { <ObjectType> {barrier} } Invisible collision surface
<egg> { <ObjectType> {turnstile} } Invisible 1-way collision surface
<egg> { <ObjectType> {ghost} } Visible object, no collisions
<egg> { <ObjectType> {bubble} } Collision sphere around geometry
<egg> { <ObjectType> {missile} } Collision sphere with "missile" event
<egg> { <ObjectType> {trigger} } Invisible trigger polygon
<egg> { <ObjectType> {eye-trigger}} Trigger which collides with avatar center
<egg> { <ObjectType> {backstage} } Modeling reference object
<egg> { <Normal> { 0 1 0 } } Override and set normal for all verticies
<egg> { <Scalar> fps { # } } Set rate of animation for a pfSequence
<egg> { <Scalar> no-fog {1} } Immune to the effects of fog
***************************************************************************
DETAILS
***************************************************************************
The player uses several different types of model flags: HANDLES, BEHAVIORS,
and PROPERTIES. The following sections give examples of some of the most
common flag/value pairs and describes what they are used for.
********** HANDLES **********
These flags give the programmers handles which they can use to
show/hide, move around, control the texture, etc. of selected segments
(chunks) of the model. The handle is the name of the object bead in
which one places the flag (so names like red-hut are more useful than
names like o34).
<egg> { <Model> {1} }
Used to show/hide, change the color, or change the collision properties
of a chunk.
<egg> { <DCS> {1} }
Used to move, rotate, or scale a chunk of the model. Also can be used
(like the <Model> flag) to show/hide, change the color, and change the
collision properties of a chunk.
<egg> { <TexList> {1} }
Used to manage the textures of a chunk.
********** BEHAVIORS **********
These flags are used to control collision properties, visibility and
behavior of selected chunks. An "X" in the associated column means:
VISIBLE the object can be seen (see NOTE below for invisible objects)
SOLID avatars can not pass through the object
EVENT an event is thrown whenever an avatar collides with the object
VISIBLE SOLID EVENT
------- ------- -------
<egg> { <ObjectType> {barrier} } X X
<egg> { <ObjectType> {turnstile} } X X
<egg> { <ObjectType> {ghost} } X X
<egg> { <ObjectType> {bubble} } X X X
<egg> { <ObjectType> {missile} } X X X
<egg> { <ObjectType> {trigger} } X
<egg> { <ObjectType> {eye-trigger} } X
<egg> { <ObjectType> {backstage} }
Descriptions:
- BARRIERS are invisible objects that block the avatars. Use these
to funnel avatars through doorways, keep them from falling off
bridges, and so on.
- TURNSTILES are also invisible objects that block the avatars.
Unlike barriers, however, avatars approaching from behind the
turnstile will smoothly pass through, instead of being forcefully
yanked to the front. These are intended to implement a one-way
wall, through which the avatar can go forward but not back (to
create a one-way hallway or alley, for example)
- GHOSTS are visible objects that the avatars can move through. Any
objects that have been surrounded by barriers should use this flag
to avoid unnecessary collision calculations.
- BUBBLES and MISSILES surround a specified chunk with a collision
sphere whose center is at the average of all the vertices.
Missiles throw an event called "missile"
- TRIGGERS can be used to signal when avatars have entered a certain
area of the model. One could place a trigger polygon in front of
a door, for example, so the player can tell when the avatar has
moved through the door.
- EYE-TRIGGERS check for collisions with the *center* of the mover
(and not its bounding sphere). This is useful for visibility
calculations.
- BACKSTAGE objects are not translated over to the player. Modelers
should use this flag on reference objects that they include to help
in the modeling task (such as scale references)
IMPORTANT NOTE:
It is not necessary, and in fact some cases it will actually cause
problems if you set the transparency value for the invisible objects
above (barrier, trigger, eye-trigger) to 0.0. These objects will
automatically be invisible in the player if they have been flagged as
one of these three invisible types. If you wish to make it clear in
MultiGen that these objects are invisible objects, set the transparency
value to some intermediate level (0.5). Again, do not set the
transparency value to 0.0.
********** PROPERTIES **********
These are used to control properties of selected chunks.
<egg> { <Normal> { 0 1 0 } }
Sets the normal of all vertices in a chunk to the specified value.
{ 0 1 0 } is the value used for ramps which the avatars need to walk
up. NOTE: You must have a space between values (i.e. 010 is not valid)
<egg> { <Scalar> fps { frame-rate } }
This specifies the rate of animation for a pfSequence node
<egg> { <Scalar> no-fog { 1 } }
This specifies that the geometry will be immune to the effects of fog
***************************************************************************
NOTES
***************************************************************************
1) Combinations
Multiple Flag/value pairs can be combined within an single <egg> field.
For example:
<egg> { <Model> {1}
<ObjectType> {barrier} }
Generally, the <Model> flag can be combined with most other flags
(except DCS). Each bead, however, can only have *one* <ObjectType> flag.
2) Newlines, spaces, and case (usually) do not matter. This above entry
could also be written as:
<egg>{<model>{1}<objecttype>{barrier}}
A notable exception to the space rules is with the values of the
<Normal> flag. There must be a space between the three components of
the normal
<egg> { <Normal> { 0 1 0 } }
is valid
<egg> { <Normal> { 010 } }
is *not*
3) Where to place the flags
All model flags except <Normal> flags are generally placed in the
topmost group bead of the geometry to which the flag applies.
GROUP <- place flags here, except <Normal>
|
---------------------------
| | |
OBJECT1 OBJECT2 OBJECT3 .....
| | |
polygons polygons polygons <- place <Normal> flag here
Flags can also be placed in object beads, though for consistency sake
its better to place them in the group beads.
4) Flags at different levels in the model
Flags in lower level beads generally override flags in upper level
beads.
5) For more detailed information see $DWD/doc/eggSyntax