User:SignpostMarv Martin/Hair Plug
Hair Plug aims to create an open standard for dynamic prim hair
Real hair can be restyled, so why not virtual hair ?
History of Hair in Second Life
Prim hair was developed in response to the low fidelity of the hair that comes with the avatar mesh.
What is it ?
Rather than having tens of objects (possibly hundereds as time goes by) in your inventory that compile your "hair wardrobe", why not just have one or two "wigs" that can be restyled to suit your needs ?
Wigs
Within the proposed Hair Plug standard, there would be "wigs". These would be the basic collection of prims that can be restyled via llSetLinkPrimitiveParams into (hopefully) every conceivable hair style.
Styles
Since the way different hairstyles are represented in prims can differ vastly from style to style, the standard should allow for a variety of baseline wigs whose construction is more geared towards a specific style. Allowing for multiple baseline wigs is a good idea, as rearranging prims dynamically could lead to undesirable situations; strands of hair in the wrong place, wigs breaking apart, disappearing etc.
Visiting the Salon
Since a Hair Plug wig could be dynamically restyled between one style and another, you could visit a virtual hair salon, and watch your hair go through a virtual replica of the RL restyling process, complete with llRezObject() strands of hair piling on the ground!
Living Hair
As a result of the ability to control the wig via LSL, a Hair Plug wig could:
- grow over time, and need to be trimmed
- require regular maintenance, especially for more complex styles:
- Watch your avatar let it's hair down to retie a pony tail
- See loose strands of hair start to form, then use a brush & some hair spray to get rid of the strand
- Shampoo greasy hair
- Hair that goes gray as your avatar gets older
Proposed Hair Plug Components
Wigs
Each baseline wig would need to define each prim in the object as being a particular type of hair- fringe, loose strands, accessories etc.
Styles
Styles should be accepted from a variety of sources- chat, notecards, XMLRPC, HTTP
Commerce
For styles fetched over HTTP, the 402 HTTP status code could be used to indicate to a wig that the owner needs to make a payment before the wig is able to download the style.
- While [[llLoadURL|llLoadURL() could be used to support PayPal/Google Checkout etc, llLoadURL() should be used to indicate L$ payment until such a time as a llRequestMoney() function exists- for security reasons, to prevent Hair Plug users having their L$ balance wiped out by a malicious script