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:
$PANDA/src/doc/howto.MultiGenModelFlags
Quick reference
FLAG |
DESCRIPTION |
|---|---|
|
Handle to show/hide, color, etc. a chunk |
|
Handle to move, rotate, scale a chunk |
|
Invisible collision surface |
|
Invisible trigger polygon |
|
Collides with vertical ray (used to specify avatar height and zone) |
|
Invisible sphere collision surface |
|
Invisible sphere collision surface |
|
Invisible collision surface for camera |
|
Invisible collision surface for camera |
|
Invisible collision surface for camera and colliders |
|
Invisible sphere collision surface for camera and colliders |
|
Modeling reference object |
|
Decal the node below to me (like a window on a wall) |
|
Set rate of animation for a pfSequence |
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.
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
FLAG |
VISIBLE |
SOLID |
EVENT |
|---|---|---|---|
|
X |
X |
|
|
X |
||
|
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.
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.
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 in 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>{ <Scalar> fps { frame-rate } }
This specifies the rate of animation for a pfSequence node.
Notes
1) Combinations
Multiple flag/value pairs can be combined within a 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. The above entry could also be written as:
<egg>{<model>{1}<objecttype>{barrier}}
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 it is 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 $PANDA/src/doc/eggSyntax.txt.