Phantom
If an
object is
phantom, it means that the rules of solid matter do not apply to it. It does not
collide with anything except the terrain--
objects and
avatars can freely pass through it-- it does not become
transparent.
Phantom objects can be
physical, and they will collide with
land. Such collisions will trigger the appropriate
events (
land_collision,
land_collision_start and
land_collision_end). Setting a physical object to phantom lightens the load on the
sim because less collision calculations will be performed.
Objects can be set to phantom using
llSetStatus,
llSetPrimitiveParams, or a checkbox in the
editor dialog.
A phantom object will also not trigger a
collision,
collision_start or
collision_end event on any
scripts it contains. The exception to this rule is
llVolumeDetect. Setting it to
TRUE will cause solid objects to pass through the object, but
collision_start and
collision_end events will still fire. (
collision events are not triggered when
llVolumeDetect(TRUE) is set.)
If
llVolumeDetect is enabled,
llGetStatus(STATUS_PHANTOM) will still return
FALSE, however. A phantom object with
llVolumeDetect(TRUE) will
not trigger collision events.
Oddly, physical
llVolumeDetect-enabled objects will
not collide with land; they'll fall right through and go off-world. The reason is that
llVolumeDetect uses a feature of the
Havok physics engine which only works for objects that are totally collisionless.
For more, see the
llVolumeDetect page.
Prim |
Constants |
Collisions