Creating HUDs

From Second Life Wiki
Revision as of 08:15, 18 March 2010 by Boroondas Gupte (talk | contribs) (While every object can be attached to a HUD point, it's kinda strange to call them HUD even when they don't make any sense there.)
Jump to navigation Jump to search
Right-click an object in inventory and choose Attach to HUD > ... to make it a HUD

In Second Life, objects can be attached to one of the eight HUD (short for head-up display) attachment points. Objects specifically designed to be used like that, might themselves be called "HUD". Other than objects attached to "normal" attachment points, those attached to HUD points will not show up on the Avatar's body, but instead on the user's screen. Only the user wearing them can see them, but chat emitted by them will be visible to other users and other objects.

Common Uses

HUDs are often used as informational displays (e.g. a sim radar, or a health-meter for inworld combat systems) or as control panels for Animation_Overrides, scripted attachments (e.g. recolorable prim clothes/shoes/hair, animated neko tail/ears) or other devices.

Scripting HUDs

Most scripted functionality works with HUDs, with the following exceptions. (The list is not exhaustive!)

  • Particles do not work. Don't have HUD prims generate them. If a HUD attempts to generate particles, they appear at <0,0,0> in the current sim, annoying your neighbors.
  • If a sound is triggered using llPlaySound(), only the HUD wearer will hear it. If the land parcel they're over restricts sound entry/exit, the sound will not play.
    • If a sound is triggered using llTriggerSound(), the wearer and any bystanders will hear it.
  • The Sensor will not detect the avatar wearing the HUD.

Scripted movement of HUD pieces is relative to the attachment points. The position vector used by llSetPos() is interpreted as [DESCRIPTION MISSING!]. A depth of -1 will render in front of a depth of 0.

Since HUD attachments cannot be clicked thru even if they're invisible, the common solutions to getting them out of the way are moving them and shrinking them.

If you are trying to move the HUD around relative to its current position, use llGetLocalPos() rather than llGetPos().

example:

<lsl>llSetPos(llGetLocalPos() + (<0.25,0,0> * llGetLocalRot()));</lsl>


Solving problems with HUDs

HUD is invisible

This problem arises when the person who made the HUD (or gave it to you) has a screen resolution greater than yours: The HUD is attached at the position that it had on their screen, but that is outside your field of view. The solution is:

  1. Attach another HUD (one that you know works properly for you).
  2. Right-click it and select "Edit".
  3. Zoom out until you can see the other HUD.
  4. Left-click on the stray and move it back within the white rectangle marking your viewer's screen size. Note: use the arrowheads to move the HUD, clicking on the arrows' tails sometimes drops you out of edit mode.
  5. Close the Edit window to return to normal viewing.

This will only bring the HUD back into view temporarily. Once you close the HUD and reopen it, the problem will repeat itself.