top of page
UNIHUD Documentation

2. SURFACE Notecards In Depth

Updated: Mar 18, 2023



The SURFACE Notecard is the core Notecard that tells the receiver script about your product and how it is organized. Lets dive into how SURFACE Notecards work and what a "Surface" is.


Surface notecard OVERVIEW

The SURFACE Notecard contains two sections:

  1. Product meta content

  2. Surface assignments

The product meta content is everything that provides UNIHUD configuration and auxiliary settings for your product. This includes your:

  1. Product header texture

  2. Surface list texture

  3. Default normal material texture

  4. UNIHUD skin textures

The product header and surface list textures are mandatory as these display what the UNIHUD is linked to and present the available surfaces on your product. All other textures are optional.

Formalities

Surface Notecards can change over time with new features and updated formats. Due to this, each SURFACE Notecard has a version marker on the first line. Currently the the version marker is:

V2 

but this can change in the future with any relevant updates. This version marker aids in ensuring backwards compatibility across the UNIHUD Architecture.


An additional marker that is required is:

--SURF--

this marker indicates the division between the product meta content and surface assignments.


OPEN ORNAMENTAL STATUS LIGHTING PROTOCOL (OSLP)

If your product is designed for ornamental lighting such as cyberpunk style attire or an android component, you can define which surface is assigned to an OSLP channel.


When a surface is assigned to an OSLP channel, colour customization is disabled.


Below is an example of surface assignment to an OSLP channel.

LIGHTING 0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0

There are 4 OSLP channels. Each OSLP channel can mean a different state indicator or to provide creative expression for the customer. 0 as a channel number indicates that the corresponding surface is not assigned to an OSLP channel.


Each of the 16 elements in this LIGHTING entry represent the 16 surfaces in order from left to right.


You do not need all 16 channel numbers to be present but if you use surface 15 as your only lighting channel, you will need all previous 14 elements to be present and set to 0.


PARTY Key

If you decide to use your own texture HUD design along with the Oxhead headless HUD client, you will need to define a unique "Party Key" for your product. This party key enables a separate but secure channel for which your texture HUD exclusively communicates on.


Below is an example entry for a Party Key.

PARTY RanD0mVa1UeGoEsH3r3

The Party Key can be literally anything, however it must not contain spaces. Click here to generate an ideal Party Key.


Surfaces and Surface Assignments

For the UNIHUD to understand where changes and textures can be applied, surface assignments are used to define distinct set of related faces. Each line after the surface assignment marker represents 1 surface.

The UNIHUD architecture has a maximum of 16 available surfaces.


What specifically is a surface?

A surface is 1 or more pairs of link and face ids.

Example:

--SURF--
1_0
1_3 1_4
1_2 1_1 2_1
1_0 1_1 2_1 2_2 3_3 3_4

In this example we define 4 surfaces for a multi-linked product.


Lets start at the first surface assignment. This is the most basic surface as it indicates only one link face pair is assigned. Links are declared first, faces are declared after, separated by an underscore.


On the second surface two link face pairs are assigned. With the proceeding lines, you can see any number of link face pairs are defined. You can define an unlimited amount of link face pairs per surface.


With the 3rd and 4th assignments, the distinction of multiple links can be seen. This provides quite a liberal approach to defining what a surface refers to.


Take a jacket for example, all of the metal features such as fasteners / zips / strengthening trim can all be classed as a single surface, even if those features are separate linked prims with specific faces.


You may also notice that in the 3rd and 4th assignments, both surfaces refer to the same link face pair. Link face pairs are not mutually exclusive. You can share link face pairs with other surfaces where and when a product needs.


NOTE: On single prim products, the starting and only link ID is 0 On multi-prim products the starting link ID is 1

Surface Maker

For budding creators who are starting out or those who wish to have a product sanity check, within the kit is the Surface Maker script.





This script when dropped into your product, will allow you to interactively build a surface assignment line.


Once the script is in your product, it will turn white.


When clicking on each face of your product, the surface maker script will highlight the selection in blue and present the selected link face pairs in nearby chat. Select as many faces as you want and the surface maker script will present an updated surface line for you.


Once you are happy, copy from the nearby chat into your products SURFACE Notecard.


Clicking your product and holding it for 1 second will clear the current selection.


Don't forget to remove the surface builder when finished!


As you become more accustomed to the surface concept you will find it easy to define how your link face pairs are associated to your product surfaces. It is a good idea to follow a design convention for your products allowing you to rapidly define your surfaces for each product or even define a template. This will save you time for future products.


Finishing touches

Once you are happy with your SURFACE Notecard and you have provided at least the header texture and surface list texture UUIDs, save it in your inventory.


CAUTION: Second Life Notecards always update their UUID when saved. THIS IS IMPORTANT as if you update a Notecard for a released product - you will break any customers copy if they reset! DO NOT CHANGE NOTECARDS AFTER PRODUCT RELEASE!

COMPLETE EXAMPLE SURFACE NOTECARD

This is a full example you can copy to use to build your product's SURFACE Notecard contents. Delete optional parts where needed. Refer to the {REFERENCE} for what each texture skin name means.

V2
HUD_UI_HEADER 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_SURF_LIST 5748decc-f629-461c-9a36-a35a221fe21f
SURF_MAT 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BGND 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_TEX_BGND 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_RGBA 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_SHINE 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_SCAN 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_PREC 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_CHECK_SEL 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_CHECK_UNSEL 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_TEX 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_SAVE 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_LOAD 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_SLIDER_HNDL 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_VIS 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_INVIS 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_BLANK 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_FULLBRT 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_BTN_NOBRT 5748decc-f629-461c-9a36-a35a221fe21f
HUD_UI_SCALE_BGND 5748decc-f629-461c-9a36-a35a221fe21f
LIGHTING 0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0
PARTY RanD0mVa1UeGoEsH3r3
--SURF--
1_0 2_0 3_0
1_1 2_1 3_1
1_2 2_2 3_2
1_3 2_3 3_3




99 views0 comments

Related Posts

Comments


bottom of page