Jump to content
Vespa

Arma3 Characters Modding Tutorial

Recommended Posts

Hi, I am having trouble with getting my custom vest textures to work... I keep getting this error:

Warning Message: No entry 'bin\config.bin/CfgWeapons/example_PlateCarrier1_rgr.disposableWeapon'.

Here is my config:

enum {
DESTRUCTENGINE = 2,
DESTRUCTDEFAULT = 6,
DESTRUCTWRECK = 7,
DESTRUCTTREE = 3,
DESTRUCTTENT = 4,
STABILIZEDINAXISX = 1,
STABILIZEDINAXESXYZ = 4,
STABILIZEDINAXISY = 2,
STABILIZEDINAXESBOTH = 3,
DESTRUCTNO = 0,
STABILIZEDINAXESNONE = 0,
DESTRUCTMAN = 5,
DESTRUCTBUILDING = 1,
};

class CfgPatches {
class example_retexture_config {
units[] = {};
weapons[] = {};
requiredVersion = 0.1;
requiredAddons[] = {"A3_Characters_F_BLUFOR"};
};
};

class CfgVehicles {

class B_Soldier_base_F;

class Example_Soldier_F : B_Soldier_base_F {
_generalMacro = "B_Soldier_F";
scope = 2;
displayName = "Uniform Test Soldier";
nakedUniform = "U_BasicBody";
uniformClass = "Example_CombatUniform_mcam";
hiddenSelections[] = {"Camo"};
hiddenSelectionsTextures[] = {"\fiftyinfive\data\digicamoclothing.paa"};

linkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
respawnLinkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};

};

class cfgWeapons {
class Uniform_Base;
class UniformItem;

class Example_CombatUniform_mcam : Uniform_Base {
scope = 2;
displayName = "Example Mcam uniform";
picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

class ItemInfo : UniformItem {
uniformModel = "-";
uniformClass = "Example_Soldier_F";
containerClass = "Supply20";
mass = 80;
};
};

class ItemCore;
class HeadgearItem;

class example_HelmetB : ItemCore {
scope = 2;
weaponPoolAvailable = 1;
displayName = "Example helmet";
picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\fiftyinfive\data\digicamoequipment.paa"};

class ItemInfo : HeadgearItem {
mass = 100;
uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
modelSides[] = {3, 1};
armor = 3*0.5;
passThrough = 0.8;
hiddenSelections[] = {"camo"};
};
};

class U_B_CombatUniform_mcam;
class U_B_CombatUniform_mcam_tshirt;
class U_B_CombatUniform_mcam_vest;
class U_B_HeliPilotCoveralls;
class V_Rangemaster_belt;
class V_BandollierB_khk;
class V_BandollierB_rgr;
class V_BandollierB_cbr;
class V_PlateCarrier1_cbr;
class V_PlateCarrier2_rgr;
class V_PlateCarrierGL_rgr;
class V_ChestrigB_rgr;
class H_HelmetB;
class H_HelmetB_paint;
class H_HelmetB_light;
class H_MilCap_mcamo;
class Vest_Base;
class VestItem;

class example_PlateCarrier1_rgr : Vest_Base {
scope = 2;
displayName = "Example Platecarrier";
picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

class ItemInfo : VestItem {
uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
containerClass = "Supply100";
mass = 50;
armor = 5*0.5;
passThrough = 0.7;
hiddenSelections[] = {"camo"};
};
};
};

Dirty Haz

Share this post


Link to post
Share on other sites

@Dirty Haz,

The code relating to vests that I use looks like this:

 class STKR_Osprey_R: V_PlateCarrier1_rgr
{
 scope = 2;
 displayName = "Assault Osprey R";
 picture = "\STKR_BritMTP\icons\Osprey_R_ca.paa";
 model = "\STKR_BritMTP\equipment\Osprey_R";
 class ItemInfo: VestItem
 {
  uniformModel = "\STKR_BritMTP\equipment\Osprey_R";
  containerClass = "Supply100";
  mass = 50;
  armor = "5*0.5";
  passThrough = 0.7;
 };
};

I'd assume that by inheriting from the "V_PlateCarrier1_rgr" instead of "Vest Base" I've avoided a lot of errors so it might be worth trying your end.

Share this post


Link to post
Share on other sites

Thanks surpher! I am now having troubles with getting/using multiple textures from one config. The first three uniforms work and the rest work too but they just show the original default uniforms for some strange reason... Here is my config:

enum {
DESTRUCTENGINE = 2,
DESTRUCTDEFAULT = 6,
DESTRUCTWRECK = 7,
DESTRUCTTREE = 3,
DESTRUCTTENT = 4,
STABILIZEDINAXISX = 1,
STABILIZEDINAXESXYZ = 4,
STABILIZEDINAXISY = 2,
STABILIZEDINAXESBOTH = 3,
DESTRUCTNO = 0,
STABILIZEDINAXESNONE = 0,
DESTRUCTMAN = 5,
DESTRUCTBUILDING = 1,
};

class CfgFactionClasses
{
class Default;
class USMC;
class CDF;
class RU;
class INS;
class GUE;
class CIV;
class CIV_RU;
};

class CfgPatches {
class Retexture_Config {
units[] = {};
weapons[] = {};
requiredVersion = 0.1;
requiredAddons[] = {"A3_Characters_F_BLUFOR"};
};
};

class CfgVehicles {

   class I_Soldier_base_F;

   class fifty_woodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "British Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_woodcamo_fatigues"; //the uniform item
       hiddenSelections[] = {"Camo"};
       hiddenSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothing.paa"};
   };

   class fifty_belwoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Belgium Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_belwoodcamo_fatigues"; //the uniform item
       hiddenSelections[] = {"Camo"};
       hiddenSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingBelgium.paa"};
   };

   class fifty_denwoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Denmark Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_denwoodcamo_fatigues"; //the uniform item
       hiddenSelections[] = {"Camo"};
       hiddenSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingDenmark.paa"};
   };

   class fifty_crowoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Croatia Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_crowoodcamo_fatigues"; //the uniform item
       hidcroSelections[] = {"Camo"};
       hidcroSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingCroatia.paa"};
   };

   class fifty_gerwoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Germany Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_gerwoodcamo_fatigues"; //the uniform item
       hidgerSelections[] = {"Camo"};
       hidgerSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingGermany.paa"};
   };

   class fifty_icewoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Iceland Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_icewoodcamo_fatigues"; //the uniform item
       hidiceSelections[] = {"Camo"};
       hidiceSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingIceland.paa"};
   };

   class fifty_irewoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Ireland Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_irewoodcamo_fatigues"; //the uniform item
       hidiceSelections[] = {"Camo"};
       hidiceSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingIreland.paa"};
   };

   class fifty_norwoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Norway Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_norwoodcamo_fatigues"; //the uniform item
       hidiceSelections[] = {"Camo"};
       hidiceSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingNorway.paa"};
   };

   class fifty_swewoodcamo_fatigues: I_Soldier_base_F {
       _generalMacro = "I_Soldier_F"; //unsure what this does
       scope = 2;
       displayName = "Sweden Woodland Body";
       nakedUniform = "U_BasicBody"; //class for "naked" body
       uniformClass = "fifty_swewoodcamo_fatigues"; //the uniform item
       hidiceSelections[] = {"Camo"};
       hidiceSelectionsTextures[] = {"\WoodlandCamo\data\WoodlandClothingSweden.paa"};
   };



};

class cfgWeapons {
   class Uniform_Base;
   class UniformItem;

   class fifty_woodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "British Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_woodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };
};

   class fifty_belwoodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "Belgium Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_belwoodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };
};

   class fifty_denwoodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "Denmark Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_denwoodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };
};

   class fifty_crowoodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "Croatia Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_crowoodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };
};

   class fifty_gerwoodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "Germany Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_gerwoodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };
};

   class fifty_icewoodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "Iceland Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_icewoodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };
};

   class fifty_irewoodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "Ireland Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_irewoodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };
};

   class fifty_swewoodcamo_fatigues : Uniform_Base {
       scope = 2;
       displayName = "Sweden Woodland Fatigues";
       picture = "\A3\characters_f_beta\data\ui\icon_U_IR_CrewUniform_rucamo_ca.paa";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "fifty_swewoodcamo_fatigues"; //would be same as our made soldier class
           containerClass = "Supply20"; //how much it can carry
           mass = 80; //how much it weights
       };


   };
class ItemCore;
class HeadgearItem;

class fifty_woodlandcamo_MICH : ItemCore {
scope = 2;
weaponPoolAvailable = 1;
displayName = "Woodland MICH";
picture = "\A3\characters_F_Beta\Data\UI\icon_H_I_Helmet_canvas_ca.paa";
model = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\WoodlandCamo\data\Woodland_Helmet.paa"};

class ItemInfo : HeadgearItem {
mass = 100;
uniformModel = "\A3\Characters_F_Beta\INDEP\headgear_helmet_canvas";
modelSides[] = {3, 1};
armor = 3*0.5;
passThrough = 0.8;
hiddenSelections[] = {"camo"};
};
};

class Vest_Camo_Base;
class VestItem;

class fifty_woodlandcamo_vest : Vest_Camo_Base {
scope = 2;
displayName = "Woodland Platecarrier";
picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_2_CA.paa";
model = "A3\Characters_F_Beta\INDEP\equip_ia_vest02";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"\WoodlandCamo\data\Woodland_Equipment.paa"};

class ItemInfo : VestItem {
uniformModel = "A3\Characters_F_Beta\INDEP\equip_ia_vest02";
containerClass = "Supply100";
mass = 50;
armor = 5*0.5;
passThrough = 0.7;
hiddenSelections[] = {"camo"};
};
};
}; 



class U_B_CombatUniform_mcam;
class U_B_CombatUniform_mcam_tshirt;
class U_B_CombatUniform_mcam_vest;
class U_B_HeliPilotCoveralls;
class V_Rangemaster_belt;
class V_BandollierB_khk;
class V_BandollierB_rgr;
class V_BandollierB_cbr;
class V_PlateCarrier1_cbr;
class V_PlateCarrier2_rgr;
class V_PlateCarrierGL_rgr;
class V_ChestrigB_rgr;
class H_HelmetB;
class H_HelmetB_paint;
class H_HelmetB_light;
class H_MilCap_mcamo;
class Vest_Camo_Base;
class VestItem;

Dirty Haz

Share this post


Link to post
Share on other sites

It could be that you are using the same class name for unit and uniform, best to have them named differently. You should also add the _co suffix(WoodlandClothing_co.paa) when you save your textures as paa's. Also noticed you do not have a uniform class for unit fifty_norwoodcamo_fatigues

Share this post


Link to post
Share on other sites

Working now, thanks again surpher!

Dirty Haz

Share this post


Link to post
Share on other sites
I can probably make something up for that sure.

---------- Post added at 14:04 ---------- Previous post was at 12:56 ----------

-Basic Retexturing Tutorial of Arma 3 content

So, this will be a quick tutorial of how to get the retextures working.

of course this also means you have some basic knowledge of how to extract the content

of the arma 3 pbo files and making new pbo files and making configs with proper classnames.

and the structure of a proper addon

Using Eliteness would probably work best in my opinion.

https://dev-heaven.net/projects/mikero-pbodll

the textures that would be used for these example items

would be found in the characters_f.pbo and in the bluefor/data folder

Uniform = clothing1_co.paa

Vest = vests_rgr_co.paa

Helmet = equip1_co.paa

the basis is to add to the main class of the thing to retexture (if not already present)

hiddenSelections[] = {"camo"};

hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

and seems that you only need one of them in the class iteminfo.

hiddenSelections[] = {"camo"};

-Vests

so the basic vest config would be added to CfgWeapons

	class V_PlateCarrier1_rgr : Vest_Base {
	scope = 2;
	displayName = "Example Platecarrier";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";

	class ItemInfo : VestItem {
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100"; //how much it can carry
		mass = 50; //how much it weights
		armor = 5*0.5;
		passThrough = 0.7;
	};
};

and adding the hidden selections it would be

	class V_PlateCarrier1_rgr : Vest_Base {
	scope = 2;
	displayName = "Example Platecarrier";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

	class ItemInfo : VestItem {
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};

Example full config would be like this

Download

class CfgPatches {
class example_vest_config {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F_BLUFOR"};
};
};

class cfgWeapons {
class Vest_Base;
class VestItem;

class example_PlateCarrier1_rgr : Vest_Base {
	scope = 2;
	displayName = "Example Platecarrier";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

	class ItemInfo : VestItem {
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
};

-Helmet (once its working)

would look like this in the cfgweapons.

	class H_HelmetB : ItemCore {
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Example Helmet";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

	class ItemInfo : HeadgearItem {
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};

full config example

Download

enum {
 //  = 2,	// Error parsing: Empty enum name
DESTRUCTENGINE = 2,
DESTRUCTDEFAULT = 6,
DESTRUCTWRECK = 7,
DESTRUCTTREE = 3,
DESTRUCTTENT = 4,
STABILIZEDINAXISX = 1,
STABILIZEDINAXESXYZ = 4,
STABILIZEDINAXISY = 2,
STABILIZEDINAXESBOTH = 3,
DESTRUCTNO = 0,
STABILIZEDINAXESNONE = 0,
DESTRUCTMAN = 5,
DESTRUCTBUILDING = 1,
};

class CfgPatches {
class example_helmet_config {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F_BLUFOR"};
};
};

class cfgWeapons {
class ItemCore;
class HeadgearItem;

class example_HelmetB : ItemCore {
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Example Helmet";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

	class ItemInfo : HeadgearItem {
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};
};

-Uniforms

Uniforms seem to be working a little bit diffrent from what i gather they are in fact soldiers

and when switching uniform the game just switches class/model on your soldier.

so one would have to make a new soldier aswell as a new item.

this example will put your soldier under bluefor as Uniform Test Soldier

for the soldier its in CfgVehicles.

	class Example_Soldier_F : B_Soldier_base_F {
	_generalMacro = "B_Soldier_F"; //unsure what this does
	scope = 2;
	displayName = "Uniform Test Soldier";
	uniformAccessories[] = {};
	nakedUniform = "U_BasicBody"; //class for "naked" body
	uniformClass = "Example_CombatUniform_mcam"; //the uniform item
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};


};

and then the uniform item linking it to the soldier class

making it an item in the gear menu without this it works as regular arma 2

and it will show no uniform in gear.

	class Example_CombatUniform_mcam : Uniform_Base {
	scope = 2;
	displayName = "Example Mcam uniform";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

	class ItemInfo : UniformItem {
		uniformModel = "-";
		uniformClass = "Example_Soldier_F"; //would be same as our made soldier class
		containerClass = "Supply20"; //how much it can carry
		mass = 80; //how much it weights
	};
};

full config example

Download

enum {
 //  = 2,	// Error parsing: Empty enum name
DESTRUCTENGINE = 2,
DESTRUCTDEFAULT = 6,
DESTRUCTWRECK = 7,
DESTRUCTTREE = 3,
DESTRUCTTENT = 4,
STABILIZEDINAXISX = 1,
STABILIZEDINAXESXYZ = 4,
STABILIZEDINAXISY = 2,
STABILIZEDINAXESBOTH = 3,
DESTRUCTNO = 0,
STABILIZEDINAXESNONE = 0,
DESTRUCTMAN = 5,
DESTRUCTBUILDING = 1,
};

class CfgPatches {
class example_uniform_config {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F_BLUFOR"};
};
};

class CfgVehicles {

class B_Soldier_base_F;

class Example_Soldier_F : B_Soldier_base_F {
	_generalMacro = "B_Soldier_F"; //unsure what this does
	scope = 2;
	displayName = "Uniform Test Soldier";
	nakedUniform = "U_BasicBody"; //class for "naked" body
	uniformClass = "Example_CombatUniform_mcam"; //the uniform item
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};
};

};

class cfgWeapons {
class Uniform_Base;
class UniformItem;

class Example_CombatUniform_mcam : Uniform_Base {
	scope = 2;
	displayName = "Example Mcam uniform";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

	class ItemInfo : UniformItem {
		uniformModel = "-";
		uniformClass = "Example_Soldier_F"; //would be same as our made soldier class
		containerClass = "Supply20"; //how much it can carry
		mass = 80; //how much it weights
	};
};
};

And a full config with everything in it and all gear on the soldier.

testing this ingame though without texture will make all parts invicible ;)

Download


enum {
 //  = 2,	// Error parsing: Empty enum name
DESTRUCTENGINE = 2,
DESTRUCTDEFAULT = 6,
DESTRUCTWRECK = 7,
DESTRUCTTREE = 3,
DESTRUCTTENT = 4,
STABILIZEDINAXISX = 1,
STABILIZEDINAXESXYZ = 4,
STABILIZEDINAXISY = 2,
STABILIZEDINAXESBOTH = 3,
DESTRUCTNO = 0,
STABILIZEDINAXESNONE = 0,
DESTRUCTMAN = 5,
DESTRUCTBUILDING = 1,
};

class CfgPatches {
class example_retexture_config {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F_BLUFOR"};
};
};

class CfgVehicles {

class B_Soldier_base_F;

class Example_Soldier_F : B_Soldier_base_F {
	_generalMacro = "B_Soldier_F"; //unsure what this does
	scope = 2;
	displayName = "Uniform Test Soldier";
	nakedUniform = "U_BasicBody"; //class for "naked" body
	uniformClass = "Example_CombatUniform_mcam"; //the uniform item
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

	linkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
	respawnLinkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};

};

class cfgWeapons {
class Uniform_Base;
class UniformItem;

class Example_CombatUniform_mcam : Uniform_Base {
	scope = 2;
	displayName = "Example Mcam uniform";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

	class ItemInfo : UniformItem {
		uniformModel = "-";
		uniformClass = "Example_Soldier_F"; //would be same as our made soldier class
		containerClass = "Supply20"; //how much it can carry
		mass = 80; //how much it weights
	};
};

class ItemCore;
class HeadgearItem;

class example_HelmetB : ItemCore {
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Example helmet";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

	class ItemInfo : HeadgearItem {
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};

class Vest_Base;
class VestItem;

class example_PlateCarrier1_rgr : Vest_Base {
	scope = 2;
	displayName = "Example Platecarrier";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pathtoyouraddonretexturefile.paa"};

	class ItemInfo : VestItem {
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
};

How add more uniforms and equips in the same config? The vests doesnot work for me.

---------- Post added at 15:16 ---------- Previous post was at 14:51 ----------

This is my config.cpp

enum {

// = 2, // Error parsing: Empty enum name

DESTRUCTENGINE = 2,

DESTRUCTDEFAULT = 6,

DESTRUCTWRECK = 7,

DESTRUCTTREE = 3,

DESTRUCTTENT = 4,

STABILIZEDINAXISX = 1,

STABILIZEDINAXESXYZ = 4,

STABILIZEDINAXISY = 2,

STABILIZEDINAXESBOTH = 3,

DESTRUCTNO = 0,

STABILIZEDINAXESNONE = 0,

DESTRUCTMAN = 5,

DESTRUCTBUILDING = 1,

};

class CfgPatches {

class example_retexture_config {

units[] = {};

weapons[] = {};

requiredVersion = 0.1;

requiredAddons[] = {"A3_Characters_F_BLUFOR"};

};

};

class CfgVehicles {

class B_Soldier_base_F;

class Example_Soldier_F : B_Soldier_base_F {

_generalMacro = "B_Soldier_F"; //unsure what this does

scope = 2;

displayName = "BRASIL UNIF";

nakedUniform = "U_BasicBody"; //class for "naked" body

uniformClass = "Example_CombatUniform_mcam"; //the uniform item

hiddenSelections[] = {"Camo"};

hiddenSelectionsTextures[] = {"\brazil\blufor\data\clothing_fabs.paa"};

linkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};

respawnLinkedItems[] = {"example_PlateCarrier1_rgr", "example_HelmetB", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};

};

};

class cfgWeapons {

class Uniform_Base;

class UniformItem;

class Example_CombatUniform_mcam : Uniform_Base {

scope = 2;

displayName = "UNIFORME BR";

picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";

model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";

class ItemInfo : UniformItem {

uniformModel = "-";

uniformClass = "Example_Soldier_F"; //would be same as our made soldier class

containerClass = "Supply20"; //how much it can carry

mass = 80; //how much it weights

};

};

class ItemCore;

class HeadgearItem;

class example_HelmetB : ItemCore {

scope = 2;

weaponPoolAvailable = 1;

displayName = "CAPACETE BR";

picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";

model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";

hiddenSelections[] = {"camo"};

hiddenSelectionsTextures[] = {"\brazil\blufor\data\equip_fabs.paa"};

class ItemInfo : HeadgearItem {

mass = 100;

uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";

modelSides[] = {3, 1};

armor = 3*0.5;

passThrough = 0.8;

hiddenSelections[] = {"camo"};

};

};

class Vest_Base;

class VestItem;

class example_PlateCarrier1_rgr : Vest_Base {

scope = 2;

displayName = "COLETE BR";

picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";

model = "\A3\Characters_F\BLUFOR\equip_b_vest02";

hiddenSelections[] = {"camo"};

hiddenSelectionsTextures[] = {"\brazil\blufor\data\vests_rgr_co.paa"};

class ItemInfo : VestItem {

uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";

containerClass = "Supply100";

mass = 50;

armor = 5*0.5;

passThrough = 0.7;

hiddenSelections[] = {"camo"};

};

};

};

How i add two or more uniforms and equips? Vests doesnot work for me?

Share this post


Link to post
Share on other sites
Vest_Base is now Vest_Camo_Base

class Vest_Camo_Base;

class VestItem;

class example_PlateCarrier1_rgr : Vest_Camo_Base {

scope = 2;

displayName = "COLETE BR";

picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_C A.paa";

model = "\A3\Characters_F\BLUFOR\equip_b_vest02";

hiddenSelections[] = {"camo"};

hiddenSelectionsTextures[] = {"\brazil\blufor\data\vests_rgr_co.paa"};

class ItemInfo : VestItem {

uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";

containerClass = "Supply100";

mass = 50;

armor = 5*0.5;

passThrough = 0.7;

hiddenSelections[] = {"camo"};

};

};

};

Lines are correct? How do i add more 4 clothing, 4 equi, 4 vest and 4 hemlmets in same config.cpp? For now thanks for your reply mate!!!

Share this post


Link to post
Share on other sites
Lines are correct? How do i add more 4 clothing, 4 equi, 4 vest and 4 hemlmets in same config.cpp? For now thanks for your reply mate!!!
Lines look fine, did it work?

Here is an example config, just three of everything but you should get the idea.

enum {
destructengine = 2,
destructdefault = 6,
destructwreck = 7,
destructtree = 3,
destructtent = 4,
stabilizedinaxisx = 1,
stabilizedinaxesxyz = 4,
stabilizedinaxisy = 2,
stabilizedinaxesboth = 3,
destructno = 0,
stabilizedinaxesnone = 0,
destructman = 5,
destructbuilding = 1
};

class CfgPatches
{
class yourTag_config 
{
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F","A3_Characters_F_BLUFOR"};
};
};

class CfgVehicles
{
class B_Soldier_base_F;

class yourTag_Soldier_F_01 : B_Soldier_base_F
{
	_generalMacro = "B_Soldier_F";
	scope = 2;
	displayName = "Soldier_01";
	nakedUniform = "U_BasicBody";
	uniformClass = "yourTag_Uniform_01";
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pboName\data\uniform_texture_01_co.paa"};
	linkedItems[] = {"yourTag_Vest_01", "yourTag_Helmet_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
	respawnLinkedItems[] = {"yourTag_Vest_01", "yourTag_Helmet_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};
class yourTag_Soldier_F_02 : B_Soldier_base_F
{
	_generalMacro = "B_Soldier_F";
	scope = 2;
	displayName = "Soldier_01";
	nakedUniform = "U_BasicBody";
	uniformClass = "yourTag_Uniform_02";
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pboName\data\uniform_texture_02_co.paa"};
	linkedItems[] = {"yourTag_Vest_02", "yourTag_Helmet_02", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
	respawnLinkedItems[] = {"yourTag_Vest_02", "yourTag_Helmet_02", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};
class yourTag_Soldier_F_03 : B_Soldier_base_F
{
	_generalMacro = "B_Soldier_F";
	scope = 2;
	displayName = "Soldier_01";
	nakedUniform = "U_BasicBody";
	uniformClass = "yourTag_Uniform_03";
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pboName\data\uniform_texture_03_co.paa"};
	linkedItems[] = {"yourTag_Vest_03", "yourTag_Helmet_03", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
	respawnLinkedItems[] = {"yourTag_Vest_03", "yourTag_Helmet_03", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};
};

class cfgWeapons
{
class Uniform_Base;
class UniformItem;

class yourTag_Uniform_01 : Uniform_Base
{
	scope = 2;
	displayName = "Uniform_01";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
	class ItemInfo : UniformItem 
	{
		uniformModel = "-";
		uniformClass = "yourTag_Soldier_F_01";
		containerClass = "Supply20";
		mass = 80;
	};
};
class yourTag_Uniform_02 : Uniform_Base
{
	scope = 2;
	displayName = "Uniform_01";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
	class ItemInfo : UniformItem 
	{
		uniformModel = "-";
		uniformClass = "yourTag_Soldier_F_02";
		containerClass = "Supply20";
		mass = 80;
	};
};
class yourTag_Uniform_03 : Uniform_Base
{
	scope = 2;
	displayName = "Uniform_01";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
	class ItemInfo : UniformItem 
	{
		uniformModel = "-";
		uniformClass = "yourTag_Soldier_F_03";
		containerClass = "Supply20";
		mass = 80;
	};
};

class ItemCore;
class HeadgearItem;

class yourTag_Helmet_01 : ItemCore
{
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Helmet_01";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\helmet_texture_01_co.paa"};
	class ItemInfo : HeadgearItem
	{
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Helmet_02 : ItemCore
{
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Helmet_02";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\helmet_texture_02_co.paa"};
	class ItemInfo : HeadgearItem
	{
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Helmet_03 : ItemCore
{
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Helmet_03";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\helmet_texture_03_co.paa"};
	class ItemInfo : HeadgearItem
	{
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};

class Vest_Camo_Base;
class VestItem;

class yourTag_Vest_01 : Vest_Camo_Base
{
	scope = 2;
	displayName = "Vest_01";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\vest_texture_01_co.paa"};
	class ItemInfo : VestItem
	{
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Vest_02 : Vest_Camo_Base
{
	scope = 2;
	displayName = "Vest_02";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\vest_texture_02_co.paa"};
	class ItemInfo : VestItem
	{
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Vest_03 : Vest_Camo_Base
{
	scope = 2;
	displayName = "Vest_03";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\vest_texture_03_co.paa"};
	class ItemInfo : VestItem
	{
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
};

Share this post


Link to post
Share on other sites

I apologize if this is an inappropriate thread to pose this question, but it seemed to fit somewhat with the question at hand.

If wanting to make a set of "invisible" trousers, with only a bandage over the right or left thigh, would the Alpha channel layer allow the underwear or model of the character to show through? If that makes sense?

So, say you were playing as a Medic, you went to "Examine" a patient with a leg wound to his upper leg. The medic (in real life) would cut away the soldier's trousers to do a "Blood-sweep." In A3, we'd be totally stripping the soldier down to his skivvy's. To the game engine, it would be the soldier model in his underwear(particular race of soldier would require multiple versions). But, can we trick the engine into thinking the soldier has pants on as stated in the question above?

Let me know if this is in the wrong section, or if I need to explain the concept better

Share this post


Link to post
Share on other sites
I apologize if this is an inappropriate thread to pose this question, but it seemed to fit somewhat with the question at hand.

If wanting to make a set of "invisible" trousers, with only a bandage over the right or left thigh, would the Alpha channel layer allow the underwear or model of the character to show through? If that makes sense?

So, say you were playing as a Medic, you went to "Examine" a patient with a leg wound to his upper leg. The medic (in real life) would cut away the soldier's trousers to do a "Blood-sweep." In A3, we'd be totally stripping the soldier down to his skivvy's. To the game engine, it would be the soldier model in his underwear(particular race of soldier would require multiple versions). But, can we trick the engine into thinking the soldier has pants on as stated in the question above?

Let me know if this is in the wrong section, or if I need to explain the concept better

I don't think so, because the uniform is really just a character model (like in previous titles, where it's the uniform + headgear - head and hands). So making part of the trousers invisible to expose the leg wouldn't work. Now, BIS theoretically could make this work. But for some reason that's not the way they chose to do it. And this is also why having a BLUFOR character steal the uniform of OPFOR made that player friendly to OPFOR and why it was said to be problematic, especially in multiplayer. It is essentially turning the BLUFOR character into OPFOR. So, for now, it's not possible I would think. If someone someone could make it such that the uniform actually sits on top of the underwear model, then it could work.

And you can test this by going into the editor, doing setObjectTexture, and just leaving the texture path blank ("" instead of "mytexture.paa"). You will only see the hands and head.

Share this post


Link to post
Share on other sites
Now, BIS theoretically could make this work. But for some reason that's not the way they chose to do it.

I assume that having the uniform sit on top of the underwear model leads to too many issues with weighting/polycount/section count (or at least, makes the model inefficient).

@Raptor 6 Actual, The closest you could get would be to model a bandage onto the A3 sample model (which AFAIK is the underwear model), not exactly ideal (or even much different from how things are atm)

Share this post


Link to post
Share on other sites
I assume that having the uniform sit on top of the underwear model leads to too many issues with weighting/polycount/section count (or at least, makes the model inefficient).

@Raptor 6 Actual, The closest you could get would be to model a bandage onto the A3 sample model (which AFAIK is the underwear model), not exactly ideal (or even much different from how things are atm)

Well, if both are weighted similarly... Just thinking that they could do it the same way they do the headgear, vests, etc. Because, pretty much all these items are simply duplicates of the A2 character model concept (uniform with headgear and vest) except that for each one you're taking out what you don't want (so for example OA Army model without vest + headgear for uniform, OA model without uniform and headgear for vest, OA model without uniform and vest for headgear). They could have gotten it to work without issue, and if they'd done so we wouldn't have to link the uniform to an actual unit to get it to work ingame.

Share this post


Link to post
Share on other sites
Well, if both are weighted similarly... Just thinking that they could do it the same way they do the headgear, vests, etc. Because, pretty much all these items are simply duplicates of the A2 character model concept (uniform with headgear and vest) except that for each one you're taking out what you don't want (so for example OA Army model without vest + headgear for uniform, OA model without uniform and headgear for vest, OA model without uniform and vest for headgear). They could have gotten it to work without issue, and if they'd done so we wouldn't have to link the uniform to an actual unit to get it to work ingame.

Even if both are weighted exactly the same, there are too many issues to worth it. I wonder where do you got this confidence of what you are saying.

To give you an example, i worked on a vfx project last year where we had a character to animate with full cloths on, and cloth simulation on top. Even if this wasn't for rt rendering engine, and we had no limit regarding polycount, and a lot of artistic and technical freedom, the whole process was a headache due to clipping issues..we solved it by pushing external cloth (we had 3 layers) quite bit, and spent a lot of time to tweak individual anims to fit the rig.

To coclude: it is not as easy as your average antoine might think...

Share this post


Link to post
Share on other sites
Lines look fine, did it work?

Here is an example config, just three of everything but you should get the idea.

enum {
destructengine = 2,
destructdefault = 6,
destructwreck = 7,
destructtree = 3,
destructtent = 4,
stabilizedinaxisx = 1,
stabilizedinaxesxyz = 4,
stabilizedinaxisy = 2,
stabilizedinaxesboth = 3,
destructno = 0,
stabilizedinaxesnone = 0,
destructman = 5,
destructbuilding = 1
};

class CfgPatches
{
class yourTag_config 
{
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F","A3_Characters_F_BLUFOR"};
};
};

class CfgVehicles
{
class B_Soldier_base_F;

class yourTag_Soldier_F_01 : B_Soldier_base_F
{
	_generalMacro = "B_Soldier_F";
	scope = 2;
	displayName = "Soldier_01";
	nakedUniform = "U_BasicBody";
	uniformClass = "yourTag_Uniform_01";
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pboName\data\uniform_texture_01_co.paa"};
	linkedItems[] = {"yourTag_Vest_01", "yourTag_Helmet_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
	respawnLinkedItems[] = {"yourTag_Vest_01", "yourTag_Helmet_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};
class yourTag_Soldier_F_02 : B_Soldier_base_F
{
	_generalMacro = "B_Soldier_F";
	scope = 2;
	displayName = "Soldier_01";
	nakedUniform = "U_BasicBody";
	uniformClass = "yourTag_Uniform_02";
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pboName\data\uniform_texture_02_co.paa"};
	linkedItems[] = {"yourTag_Vest_02", "yourTag_Helmet_02", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
	respawnLinkedItems[] = {"yourTag_Vest_02", "yourTag_Helmet_02", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};
class yourTag_Soldier_F_03 : B_Soldier_base_F
{
	_generalMacro = "B_Soldier_F";
	scope = 2;
	displayName = "Soldier_01";
	nakedUniform = "U_BasicBody";
	uniformClass = "yourTag_Uniform_03";
	hiddenSelections[] = {"Camo"};
	hiddenSelectionsTextures[] = {"pboName\data\uniform_texture_03_co.paa"};
	linkedItems[] = {"yourTag_Vest_03", "yourTag_Helmet_03", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
	respawnLinkedItems[] = {"yourTag_Vest_03", "yourTag_Helmet_03", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};
};
};

class cfgWeapons
{
class Uniform_Base;
class UniformItem;

class yourTag_Uniform_01 : Uniform_Base
{
	scope = 2;
	displayName = "Uniform_01";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
	class ItemInfo : UniformItem 
	{
		uniformModel = "-";
		uniformClass = "yourTag_Soldier_F_01";
		containerClass = "Supply20";
		mass = 80;
	};
};
class yourTag_Uniform_02 : Uniform_Base
{
	scope = 2;
	displayName = "Uniform_01";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
	class ItemInfo : UniformItem 
	{
		uniformModel = "-";
		uniformClass = "yourTag_Soldier_F_02";
		containerClass = "Supply20";
		mass = 80;
	};
};
class yourTag_Uniform_03 : Uniform_Base
{
	scope = 2;
	displayName = "Uniform_01";
	picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa";
	model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
	class ItemInfo : UniformItem 
	{
		uniformModel = "-";
		uniformClass = "yourTag_Soldier_F_03";
		containerClass = "Supply20";
		mass = 80;
	};
};

class ItemCore;
class HeadgearItem;

class yourTag_Helmet_01 : ItemCore
{
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Helmet_01";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\helmet_texture_01_co.paa"};
	class ItemInfo : HeadgearItem
	{
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Helmet_02 : ItemCore
{
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Helmet_02";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\helmet_texture_02_co.paa"};
	class ItemInfo : HeadgearItem
	{
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Helmet_03 : ItemCore
{
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Helmet_03";
	picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa";
	model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\helmet_texture_03_co.paa"};
	class ItemInfo : HeadgearItem
	{
		mass = 100;
		uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
		hiddenSelections[] = {"camo"};
	};
};

class Vest_Camo_Base;
class VestItem;

class yourTag_Vest_01 : Vest_Camo_Base
{
	scope = 2;
	displayName = "Vest_01";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\vest_texture_01_co.paa"};
	class ItemInfo : VestItem
	{
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Vest_02 : Vest_Camo_Base
{
	scope = 2;
	displayName = "Vest_02";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\vest_texture_02_co.paa"};
	class ItemInfo : VestItem
	{
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
class yourTag_Vest_03 : Vest_Camo_Base
{
	scope = 2;
	displayName = "Vest_03";
	picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
	model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"pboName\data\vest_texture_03_co.paa"};
	class ItemInfo : VestItem
	{
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		containerClass = "Supply100";
		mass = 50;
		armor = 5*0.5;
		passThrough = 0.7;
		hiddenSelections[] = {"camo"};
	};
};
};

PERFECT, amazing, my mod its working now, thanks a lot for fast reply!!!!!

Share this post


Link to post
Share on other sites

Have you guys figured out wound textures yet for custom models?

I had no problem with them in A2 but somehow they won't work for A3. I have the selections defined in the model itself as in the model.cfg of the A3 example files (Body_Injury, l_leg_injury, ...) and linked them in the unit's CfgVehicles entry:

	
class ice123_musket_dude1 :  B_Soldier_F 
{
...
class Wounds
	{
		tex[] = {};
		mat[] = {"ice123_musket\rvmat\redcoat.rvmat","ice123_musket\rvmat\redcoat_w1.rvmat","ice123_musket\rvmat\redcoat_w2.rvmat","A3\Characters_F\BLUFOR\Data\clothing1.rvmat","A3\Characters_F\BLUFOR\Data\clothing1_injury.rvmat","A3\Characters_F\BLUFOR\Data\clothing1_injury.rvmat","A3\Characters_F\Common\Data\basicbody.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\Characters_F\Common\Data\basicbody_injury.rvmat","A3\characters_f\common\data\coveralls.rvmat","A3\Characters_F\Common\Data\coveralls_injury.rvmat","A3\Characters_F\Common\Data\coveralls_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_black_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_hairy_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_white_old_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat","A3\Characters_F\Heads\Data\hl_asian_bald_muscular_injury.rvmat"};
	};
   };  
...

However, ingame none of them will show up. Blood will only appear at the skin texture (which uses BIS A3 wound rvmats) :raisebrow:

Share this post


Link to post
Share on other sites

How can l disable headgear on bluefor helmets? l need clear helmet to retexture, without camera and another thing, which block my new texture. Can l use equip1_co.paa, when l retexture on clear helmet ?

Share this post


Link to post
Share on other sites
Have you guys figured out wound textures yet for custom models?

I had no problem with them in A2 but somehow they won't work for A3. I have the selections defined in the model itself as in the model.cfg of the A3 example files (Body_Injury, l_leg_injury, ...) and linked them in the unit's CfgVehicles entry:

However, ingame none of them will show up. Blood will only appear at the skin texture (which uses BIS A3 wound rvmats) :raisebrow:

Sounds like you had the same issue I did, the selections on your model for injuries have changed in ARMA3, it's now:

"injury_body" for you units torso,

"injury_hands" for both arms,

"injury_legs" for both of the legs,

As for stuff like "l_leg_injury" being in the model.cfg, I assume they are either used on models other than the main soldiers or that it's just a legacy thing and they've been left there.

Hope that helps :)

Edited by STALKERGB

Share this post


Link to post
Share on other sites

surpher! it worked for me to! Awsome! :D but i need two things more, Backpack and Beret? can you help?

Share this post


Link to post
Share on other sites
surpher! it worked for me to! Awsome! :D but i need two things more, Backpack and Beret? can you help?

Beret class, goes with the other headgear.

class yourTag_Beret_01: ItemCore
{
scope = 2;
weaponPoolAvailable = 1;
displayName = "Beret_01";
picture = "\A3\characters_f\Data\UI\icon_H_Beret_blk_CA.paa";
model = "\A3\Characters_F\Common\headgear_beret01";
hiddenSelections[] = {"camo"};
hiddenSelectionsTextures[] = {"pboName\data\beret_texture_01_co.paa"};
class ItemInfo: HeadgearItem
{
	mass = 6;
	allowedSlots[] = {801,901,701,605};
	uniformModel = "\A3\Characters_F\Common\headgear_beret01";
	modelSides[] = {6};
	armor = "3*0";
	passThrough = 1;
	hiddenSelections[] = {"camo"};
};
};

Backpack classes go in with the units in the CfgVehicles class, remember to add backpack = "backpack_className"; to your unit.

I left in the original texture paths.

class CfgVehicles
{
class B_AssaultPack_Base;
class B_Kitbag_Base;
class B_FieldPack_Base;
class B_Carryall_Base;

class yourTag_B_AssaultPack_01: B_AssaultPack_Base
{
	scope = 2;
	displayName = "AssaultPack_01";
	hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_compact_khk_co.paa"};
};
class yourTag_B_Kitbag_01: B_Kitbag_Base
{
	scope = 2;
	picture = "\A3\Weapons_F\ammoboxes\bags\data\ui\icon_B_C_Kitbag_mcamo";
	displayName = "Kitbag_01";
	hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_fast_mcamo_co.paa"};
};
class yourTag_B_FieldPack_01: B_FieldPack_Base
{
	scope = 2;
	displayName = "FieldPack_01";
	hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_gorod_blk_co.paa"};
};
class yourTag_B_Carryall_01: B_Carryall_Base
{
	scope = 2;
	displayName = "Carryall_01";
	picture = "\A3\Weapons_F\Ammoboxes\Bags\data\UI\icon_B_C_Tortila_hex.paa";
	hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_tortila_hex_co.paa"};
};
};

Edited by surpher
found error in beret class

Share this post


Link to post
Share on other sites

Wow mate! your helping me mutch! Thx, just one thing the Faction? ill get Errors with 30 line = or something? help can you send Faction? and Mate! you getting in my Credits by Dutch Units :D

Share this post


Link to post
Share on other sites

Faction class place it after the CfgPatches{}; class, and add faction = "yourTag_Faction_01"; to your unit.

class cfgFactionClasses
{
class yourTag_Faction_01
   { 
       displayName = "Faction_01"; 
       priority = 2; // Position in list. 
       side = 1; // Opfor = 0, Blufor = 1, Indep = 2. 
       icon = "\idf1\data\cfgFactionClasses_Irish_BLU_ca.paa"; //Nato icon. 
   }; 
};

Share this post


Link to post
Share on other sites

i dont wanne keep spamming, but ofcource thx! but i think when i added the Beret, it cause a script fault, like i can spawn my 3 units but they dont have a helmet or Beret, or even a Vest? but thx for Faction!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×