| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- 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
- ***************************************************************************
- 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> { <ObjectType> {barrier} } Invisible collision surface
- <egg> { <ObjectType> {trigger} } Invisible trigger polygon
- <egg> { <ObjectType> {floor} } Collides with vertical ray
- (used to specify avatar height and zone)
- <egg> { <ObjectType> {sphere} } Invisible sphere collision surface
- <egg> { <ObjectType> {trigger-sphere} } Invisible sphere collision surface
- <egg> { <ObjectType> {camera-collide} } Invisible collision surface for camera
- <egg> { <ObjectType> {camera-collide-sphere} } Invisible collision surface for camera
- <egg> { <ObjectType> {camera-barrier} } Invisible collision surface for camera and colliders
- <egg> { <ObjectType> {camera-barrier-sphere} } Invisible sphere collision surface for camera and colliders
- <egg> { <ObjectType> {backstage} } Modeling reference object
- <egg> { <Decal> {1} } Decal the node below to me
- (like a window on a wall)
- <egg> { <Scalar> fps { # } } 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
- VISIBLE SOLID EVENT
- ------- ------- -------
- <egg> { <ObjectType> {barrier} } X X
- <egg> { <ObjectType> {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.
- - 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 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 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}}
-
- 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 $PANDA/src/doc/eggSyntax.txt.
|