Changes in AboutColors

Revision Differences of Revision 3

## Colors ¶

### Introduction ¶

This document describes the principle of player colors. ¶


### What are player colors (pl
ayercolor)? ¶

Imagine a game with 3 players. Each player has it's unique color (like blue, red and green). It would be terribly difficult if the units would look all the same. Imagine a fight between two soldiers; one soldier is owned by the green player, one by the red, but both soldiers look the same. So each unit (and building)
musthould have a player color.

Now, it would be very hard to draw each unit with each player color; therefore Widelands takes a different approach: each unit is drawn (usually in Blender) using 4a psingle "Player cColors" (whmatereiasl of a plight neutrcalr0 is thue dar(likes white) assigned plrto cler3tain iobjects or verthex lighteroups on t);he unit. When the unit's pic or anfigurmation frames are rendered, a python script is available tof simulthaneously ugenierate ta mask for each re RGB values of the used colors are noted (Or in the parent conf file, which is usually the conf file of the tribe). When Widelands draws now a unit for another playercolor as was used in the graphic, it will replace the colors with the correct colors for the player. ¶


### So how does it work? ¶

This depends on what you want to do: an animation/pic with its own config file or one without. ¶
Examples for animations with config-file are workers, bobs, critters.... ¶
Examples for animations without config-file are flags... ¶
For animation without config file the defaults (as defined in the world/conf or tribe/conf file in the section [defaults]) apply. ¶
Otherwise you have to look at the conf file for the animation/pic (or create on based on a similar from another animation/pic). Find the valid section (like ~np~[idle],[walk]~/np~ and so on). There you'll find (or have to add) the following commands: ¶


plrclr0\_r=123 # Darkest Plrclr RGB -- Red value ¶

plrclr0\_g=233 ¶

plrclr0\_b=99 ¶

plrclr1\_r=123 # Second Darkest Plrclr RGB -- Red value ¶

plrclr1\_g=233 ¶

plrclr1\_b=99 ¶

plrclr2\_r=123 # Light Plrclr RGB -- Red value ¶

plrclr2\_g=233 ¶

plrclr2\_b=99 ¶

plrclr3\_r=123 # Lightest Plrclr RGB -- Red value ¶

plrclr3\_g=233 ¶

plrclr3\_b=99 ¶


Just replace the integers with your own values (from the colors you've used) and you're done. ¶

If you do not overwrite one color (for example you only specify shadow colors), the other colors will be taken from the default conf file (world/conf or tribe/conf).
ndered frame to identify the playercolor areas or objects within the frame. The mask image file has the same name as the image file but with "_pc" at the end of its name. (Example: the Player Color mask file for idle_00.png would be named idle_00_pc.png) When Widelands draws now a unit for a specific player, it will replace the masked area(s) in the image(s) with the correct color for the player. ¶

### So how does it work? ¶

This depends on what you want to do: an animation/pic with its own config file or one without. ¶
Examples for animations and graphics with config-file are workers, bobs, critters, buildings.... ¶
Examples for animations without config-file are flags, frontiers... ¶
For animations/pics without a config file the "playercolor" variable is included with a value of "true" in the section(s) where the graphic files for the unit are identified with a "pics" or "dirpics" variable in its parent config file (the world/conf or tribe/conf file). ¶
Otherwise you have to look at the conf file for the animation/pic (or create one based on a similar file from another animation/pic). Find the valid section(s) (like ~np~[idle],[walk]~/np~ and so on). There you'll find (or have to add) the following command: ¶

playercolor=true ¶

This will signal the presence of player color mask files and Widelands will draw the unit with appropriate colors. ¶