Skinning How To/Skin the viewer
This is a basic guide to skinning the Second Life viewer. Generally, creating a new skin for the viewer typically involves two steps:
- Recoloring the texture files (buttons, icons, toolbar, etc).
- Recoloring the viewer elements set in colors.xml (text color, window color, etc).
- The viewer's texture files are located in \SecondLife\skins\[SKIN]\textures (where [SKIN] is the particular viewer skin).
- icn_* files are icons.
- ff_* files related to the friends list.
- inv_folder* files are inventory folders.
- inv_item* files are inventory items.
- NOTE: This folder also contains files in the Jpeg2000 (.j2c) format. These are the OI HUD and miscellaneous viewer files. You will never need to edit them, except if you want to change the login screen (startup_logo.j2c). To do so, you need to have a program that can save Jpeg2000 Codestream files (any program that can write .j2c or .j2k files; the two extensions are interchangeable).
To recolor an image:
- Open it in your image editor.
- Apply a color mask.
- Save it, overwriting the original image.
This process is unique to the program you're using, but Yukiko Omegamu has provided a video tutorial for Photoshop.
All non-texture colors in the viewer are set in the xml file colors_base.xml. This file is located in \SecondLife\skins\[SKIN]\.
Colors are set using the following format:
R,G,B,Opacity are each in the range 0-255. For opacity, 128 is half opacity (ergo, half transparent).
- You can use the website http://www.colorschemer.com/online.html to quickly generate RGB values.
Editing colors_base.xml is not recommended, as any typo will cause the viewer to crash on startup. Instead, edits should be made in colors.xml, which can be found in the same folder. There are two ways to do so:
- Copy the entries you want to edit from colors_base.xml into colors.xml, then change them there.
- Use the fully commented colors.xml file on the wiki.
- NOTE: Not everything can be colored as of yet. If you're looking for an entry you cannot find, check out hardcoded limits in the xml files. It maybe listed there.