Skin Tone Masks Property - Floogen/FashionSense GitHub Wiki

What are Skin Tone Masks?

Skin tone masks allow mod authors to specify a list of RGB colors to be replaced by the player's skin tone shades. This is useful in situations where you want the player's skin tone to show, such as with sleeves.

If the SkinToneMasks property is excluded or left blank, then the no skin tones will be applied to the sprite.

Note: By default, Skin tone masks are affected by the player's appearance color choice. However this can be overridden by setting DisableSkinGrayscale to true.

Additional note: If the color given is not grayscale and DisableSkinGrayscale is false, then the skin tone overlay will be treated as additive. This means the resulting color will be a different hue compared to any grayscale counterpart.

Skin Tone Shades

Three colors can be given for the SkinToneMasks property, one for each shade of the player's skin tone. Their names reflect which part of the player's skin tone they will use (i.e. LightTone will replace the given color with the player's lightest skin tone).

The SkinToneMasks looks like so:

"SkinToneMasks": {
  "LightTone": [ 144, 144, 144 ],
  "MediumTone": [ 121, 121, 121 ],
  "DarkTone": [ 73, 73, 73 ]
}

Example Usage

Below is the Tentacles, found in the example pack.

{
  "Name": "Tentacles",
  "FrontSleeves": {
    "ColorMasks": [
      [ 56, 56, 56 ],
      [ 114, 110, 100 ],
      [ 212, 208, 197 ]
    ],
    "UseShirtColors": true,
    "DisableSkinGrayscale": true,
    "SkinToneMasks": {
      "LightTone": [ 144, 144, 144 ],
      "MediumTone": [ 121, 121, 121 ],
      "DarkTone": [ 73, 73, 73 ]
    },
    "StartingPosition": {
      "X": 0,
      "Y": 0
    },
    "BodyPosition": {
      "X": 11,
      "Y": -5
    },
    "SleevesSize": {
      "Width": 48,
      "Length": 32
    }
  }
}

Example sprite: