Documentation/Engine/Units/accessory paint job data

From SCS Modding Wiki
< Documentation‎ | Engine‎ | Units
Revision as of 09:24, 21 September 2016 by Smarty (talk | contribs) (...Still WIP. Not much time for wiki-ing today.)

Jump to navigation Jump to search

The accessory_paint_job_data unit class is used to define paint jobs for trucks and trailers (as of ETS2 1.25/ATS 1.4).

Usage

Airbrush

In the airbrush mode, the RGB of paint_job_mask is blended with the base color, using the alpha channel as the blend factor. This mode is active when the attribute airbrush is true.

Colormask

In the colormask mode, each of paint_job_mask's color channels (RGB) acts as a mask for a color being blended over the base texture. They are applied in the order blue, green, and red. So the red channel has the highest “priority”, followed by green and then blue.

TIP: Texture compression can lead to some minor aliasing at sharp boundaries between the mask channels. To avoid colors ‘bleeding through’ at these boundaries, try blending some of the lower-priority channel ‘under’ the higher-priority channel along their shared boundary. For example, at a sharp boundary between the red (255, 0, 0) and green (0, 255, 0) channels, a thin line of the base color may be visible. This can be mitigated by extending the edge of the lower-priority mask ‘under’ the higher-priority mask. So in the case where there is a sharp line between the red mask and the green mask, the green mask should be extended slightly into the area of the red mask. The resultant color looking at the RGB image would be yellow (255, 255, 0).

Flipflake

Attributes

Many common attributes are inherited from accessory_data.

Name Type Required/Optional Modes Description
mask_r_color float3 optional colormask Defines the default color applied to each channel of the color mask.
mask_g_color
mask_b_color
base_color float3 required all Defines the default color of the paint job.
mask_r_locked bool optional colormask When false, the player may change each channel's color via the color picker.
mask_g_locked
mask_b_locked
base_color_locked bool required all When false, the player may change the base color via the color picker.
flip_color_locked bool optional flipflake When false, the player may change the flip color via the color picker.
flake_color_locked bool optional flipflake When false, the player may change the flake color via the color picker.
flip_color float3 optional flipflake
flip_strength float optional flipflake
flake_color float3 optional flipflake
flake_uvscale float optional flipflake
flake_density float optional flipflake
flake_shininess float optional flipflake
flake_clearcoat_rolloff float optional flipflake
flake_noise string optional flipflake Path to the flipflake texture.
flipflake bool optional When true, flipflake (metallic/pearlescent) behavior and attributes are enabled. Cannot be used with colormask.
airbrush bool optional When true, airbrush behavior and attributes are enabled. Cannot be used with colormask.
alternate_uvset bool optional all When true, the resulting material will have the altuv flavor. This triggers usage of the alternate UV layout, if configured.
stock bool required all Defaults to true. This was previously used to mark paintjobs available when purchasing a truck when true, and only available from the upgrade shop when false. Currently must be set to false to avoid undesirable behavior.
paint_job_mask string optional colormask, airbrush Defines the path to the texture resource (.tobj) to be used for color masking (colormask) or for blending (airbrush).
base_texture string optional all Can be used to override the base texture of the truckpaint material. Requires that all truckpaint materials on the vehicle use the same base texture in the first place.

Raw Unit Definition

  "accessory_paint_job_data":{
   "superclass":"accessory_data",
   "attrs":{
    "name":{
     "type": "string"
    },
    "short_name":{
     "type": "string"
    },
    "icon":{
     "type": "string"
    },
    "info":{
     "type": "string_array"
    },
    "price":{
     "type": "s64"
    },
    "unlock":{
     "type": "uint"
    },
    "suitable_for":{
     "type": "string_array"
    },
    "conflict_with":{
     "type": "string_array"
    },
    "defaults":{
     "type": "string_array"
    },
    "require":{
     "type": "token_array"
    },
    "mask_r_color":{
     "type": "float3"
    },
    "mask_g_color":{
     "type": "float3"
    },
    "mask_b_color":{
     "type": "float3"
    },
    "base_color":{
     "type": "float3"
    },
    "mask_r_locked":{
     "type": "bool"
    },
    "mask_g_locked":{
     "type": "bool"
    },
    "mask_b_locked":{
     "type": "bool"
    },
    "base_color_locked":{
     "type": "bool"
    },
    "flip_color_locked":{
     "type": "bool"
    },
    "flake_color_locked":{
     "type": "bool"
    },
    "flip_color":{
     "type": "float3"
    },
    "flip_strength":{
     "type": "float"
    },
    "flake_color":{
     "type": "float3"
    },
    "flake_uvscale":{
     "type": "float"
    },
    "flake_density":{
     "type": "float"
    },
    "flake_shininess":{
     "type": "float"
    },
    "flake_clearcoat_rolloff":{
     "type": "float"
    },
    "flake_noise":{
     "type": "string"
    },
    "flipflake":{
     "type": "bool"
    },
    "airbrush":{
     "type": "bool"
    },
    "alternate_uvset":{
     "type": "bool"
    },
    "stock":{
     "type": "bool"
    },
    "paint_job_mask":{
     "type": "string"
    },
    "base_texture":{
     "type": "string"
    }
   }
  },