Difference between revisions of "Documentation/Engine/Units/accessory paint job data"
(Work in progress.) |
(Still work in progress. Brief writeup for colormask mode.) |
||
Line 4: | Line 4: | ||
=== Airbrush === | === Airbrush === | ||
− | In the airbrush mode, the RGB of | + | 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 === | === 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 coloring the edge of the }} | ||
=== Flipflake === | === Flipflake === | ||
Revision as of 04:42, 19 September 2016
The accessory_paint_job_data unit 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 coloring the edge of the
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" } } },