ArmA 2 Forum, ArmA 2 Home, ArmA 2 Config, ArmA 2 File Formats, ArmA 2 Missions, ArmA 2 3D Modeling, ArmA 2 Scripting, ArmA 2 Terrain, ArmA 2 Texturing, ArmA 2 Tools
ArmA 2 Custom Face
This is how you add custom faces to your soldiers.
BIS CfgFaces config can be found on Dta\bin.pbo config.
class CfgFaces { class Default { class Default { name = ""; head = ""; material = ""; texture = "#(rgb,8,8,3)color(0.5,0.5,1,1)"; east = 0; west = 0; identityTypes[] = { "Default" }; }; class Custom { name = ""; head = ""; material = ""; texture = "#(rgb,8,8,3)color(1,1,1,1)"; front = "#(rgb,8,8,3)color(1,1,1,1)"; side = "#(rgb,8,8,3)color(1,1,1,1)"; back = "#(rgb,8,8,3)color(1,1,1,1)"; east = 0; west = 0; identityTypes[] = {}; }; }; };
And then more in the characters.pbo
class CfgFaces { class Default { class Custom; }; class Man : Default { class Default { name = $STR_CFG_FACES_DEFAULT; texture = "\ca\characters\hhl\hhl_46_CO.paa"; head = "defaultHead"; identityTypes[] = {}; material = "\ca\characters\heads\male\defaulthead\data\hhl_white.rvmat"; }; class Custom : Custom { name = $STR_CFG_FACES_CUSTOM; texture = "#(argb,8,8,3)color(0.596,0.412,0.365,1)"; head = "defaultHead"; identityTypes[] = {}; material = "\ca\characters\heads\male\defaulthead\data\hhl_white.rvmat"; }; class Face01 : Default { name = "$STR_FN_Man_Face01"; texture = "\ca\characters\hhl\hhl_01_CO.paa"; disabled = 0; identityTypes[] = { "Default", "", "", "Head_RU", "Head_RU_CO", "Head_CDF", "Head_CDF_CO", "Head_INS", "Head_GUE", "Head_CIV", "" }; }; class Face01_camo1 : Face01 { head = "defaultHead_camo1"; name = "$STR_FN_Man_Face01_camo1"; material = "\CA\characters\Heads\Male\DefaultHead\Data\Camo1_hhl.rvmat"; disabled = 1; identityTypes[] = { "", "", "Head_RU_Camo", "Head_RU_CO_Camo", "Head_CDF_Camo", "Head_CDF_CO_Camo", "Head_INS_Camo", "Head_GUE_Camo" }; }; class Face01_camo2 : Face01_camo1 { head = "defaultHead_camo2"; name = "$STR_FN_Man_Face01_camo2"; material = "\CA\characters\Heads\Male\DefaultHead\Data\Camo2_hhl.rvmat"; disabled = 1; };
ArmA 2 CfgFaces
Used in conjunction with setFace.
person SetFace "cfgFaces.ClassName"; // quotes required this SetFace "Marylin"; soldier1 SetFace "Face33";
“Face01” to “Face107”.
A subset of 6 Camo faces are available for each of above.
The full set of class names for “face77” would be:
Face77, Face77_camo1, Face77_camo2, Face77_camo3, Face77_camo4, Face77_camo5 and Face77_camo6
class CfgFaces { class Default; // held in engine's ca_bin class Man: Default { class Default; // held in ca_chars class FaceWhatever: Default { name = "$STR_Whatever"; // every class, different string name texture = "\some\texture\somewhere.paa"; // THE face for this head = defaultHead; //classname in cfgHeads material = "\some\rvmat\somewhere.rvmat"; disabled = false; // always TRUE for inherited camo faces }; class OneOfSixCamos: FaceWhatever { /* uses the same face texture (obviously) */ disabled = true; // always name = "$STR_UniqueName"; head = "alwaysOneOf6Classes"; // changes wounds material = "\AlwaysOneOfSix\Different\FacePaints.rvmat"; }
One single head model is used for ALL faces. On which, a different base texture is applied for EVERY 'face'.
Separately, each of these faces have different face paint, and they, require a separate head class to reflect the different wound appearances.
ALL of the camo derivatives use one of six common face paints.
Specifying \root and .paa extension are essential.
head = inevitably leads to one, single, defaultp3d held in \ca\characters\man\defaulthead\defaulthead.p3d;
The above 107 faces are duplicated, class wise in black and green masks also a women models, and, a few face models for some special US soldiers.
Camouflage subclasses are not required.
class CfgFaces { class Default; // held in engine's ca_bin class Man: Default { class Default; // held in ca_chars class FaceWhatever: Default { disabled = false; // should be part of default, but was overlooked name = "$STR_Whatever"; texture = "\some\texture\somewhere.paa"; // THE face for this identityTypes[] = { "Default", "Head_USMC", "Head_USMC_CO", "", "", "Head_CDF", "Head_CDF_CO", "", "Head_GUE", "Head_CIV", "" }; };
African black faces for characters
African names:
class CfgWorlds { class GenericNames { class PMC_Somali_Names { class FirstNames { adalberto = "Adalberto"; //etc }; class LastNames { morales = "Morales"; // etc
Face configs:
class CfgFaces { class Man; class PMC_Somali_Faces: Man { class Default { name = "$STR_CFG_FACES_DEFAULT"; texture = "\ca\characters\hhl\hhl_31_CO.paa"; head = "BlackHead"; identityTypes[] = {}; material = "\ca\characters\heads\male\BlackHead\data\hhl_black.rvmat"; }; class Custom: Default { name = "$STR_CFG_FACES_CUSTOM"; texture = "#(argb,8,8,3)color(0.596,0.412,0.365,1)"; head = "BlackHead"; identityTypes[] = {}; material = "\ca\characters\heads\male\BlackHead\data\hhl_black.rvmat"; }; class Face26: Default { name = "$STR_FN_Man_Face26"; texture = "\ca\characters\hhl\hhl_26_CO.paa"; disabled = 0; identityTypes[] = {"Default","","","Head_USMC","Head_USMC_CO","Head_CDF","Head_CDF_CO","Head_INS","Head_GUE","Head_CIV",""}; }; class Face27: Default { name = "$STR_FN_Man_Face27"; texture = "\ca\characters\hhl\hhl_27_CO.paa"; disabled = 0; identityTypes[] = {"Default","","","Head_USMC","Head_USMC_CO","Head_CDF","Head_CDF_CO","Head_INS","Head_GUE","Head_CIV",""}; }; // etc
Then in character's class you make:
genericNames = "PMC_Somali_Names"; faceType = "PMC_Somali_Faces";