Using Accessory Customization

Accessories can have special customization data that users can modify per outfit

  • Platform Gear Specifies the type of custom data on the set of accessories

  • Outfit Data holds the players chosen customization's on the server

  • Custom Acc Setter components use the data and apply it to the graphics

Customization Options

Currently there are two types of custom data. Colors and Variants

Colors - Colors can be used by the setters to modify any visuals needed. The key is the value displayed to the user and the value used to save into the outfit. The color is what color the setter will use. The scheme determines what color swatches to display in the avatar editor.

Variants - Versions of accessories that swap out based on the users chosen index.

Custom Options in Avatar Editor

When selecting an accessory to equip the available customization options will display if available.

Colors display as a set of swatches and a color picker.

Variants display as buttons with 1 selected at a time.

Accessory Prefab Setters

Accessory Components have optional references to color and variant setters. These setters are made in C# and will update the graphics whenever new customization data is set on the accessory. More setters can be made as artists determine new accessory needs.

Colors

Add the component CustomAccSetter_Color to your AccessoryComponent prefab

Colors can be set per renderer or by shader using our custom color mask shader.

  • Using Material Color URP per renderer

    • For each color key, specify a list of MaterialColorURP references

    • The Material Color index specifies what material index the MaterialColorURP will use (Set to -1 to apply to every material)

  • Using RGB Color Masks shader

    • Make sure your materials are using the LitOpaqueRBGColorMask

    • Fill the Color Mesk Renderer list with renderers that use the mask

Variants

Add the CustomAccSetter_Variant to your AccessoryComponent prefab

The variant setter can swap meshes or materials on renderers

  • Add renderers that will change to the Affected Renderers list

  • Add an element per possible variant

    • Specify the new mesh (optional)

    • Specify the new material (optional)

Last updated