Jump to content
Vespa

Arma3 Characters Modding Tutorial

Recommended Posts

I try to get some qualified help on configing tomorow.

FreakJoe, make sure you have "autocenter = 0" property in Geometry LOD. But if you say you used the original model, then its probably not it.

Just wait guys, I ask pettka.

Share this post


Link to post
Share on other sites

I got to the same error during testing, lets hope we can get some model.cfg help tomorow. There is something we are missing in it.. :)

Share this post


Link to post
Share on other sites
I wasn't expecting to see this so soon

well i would say more like "better late than never. "

finally we get this! i was just about to release my arma skeleton for Maya but having something for 3dsmax is even better! i could now ask why we never got something like this for arma or arma 2 but i'm just too happy that we have it now. i hope there will be something similar for animations in the future.

i will test this right away. all those projects waiting to be realized:)

EDIT: this is a skeleton that can be used to skin/rig characters for arma in Maya. it's the first version. there might still be some problems with the hands since it was kind of hard to interpret the skeleton model in o2 format. i only tested it briefly myself. it definitely works but the hands might need tweaking. you are free to modify this and update it. it might also be useful if someone could upload this on armaholic or something so it doesn't get lost.

to export the weighting into o2 from Maya:

1. go to "Skin -> Edit Smooth Skin -> Export Skin Weight Maps". in my tests i used jpeg.

2. once in o2 import the model (i used obj) then go to "file -> Import -> Maya Weight Script". make sure to move the weight script into the folder where the weight maps are before you import it.

i will update this post and the skeleton file later. it's in early stages since i found out about this method myself very recently (there's one thread somewhere in the forums). since i prefer 3dsmax myself i will most likely not use this myself a lot. so if anything goes wrong or if there are requests for this short guide feel free to PM me.

Maya Skeleton download -> http://www.sendspace.com/file/xdg6rm

EDIT: just saw that there's an FBX included in the pack. so better use that and then follow my steps to export the weights...

Edited by Bad Benson

Share this post


Link to post
Share on other sites
Thanks for your answers guys! I've got it somewhat working!

Although, is it normal that this happens?

So, after some testing with the example vest and talking with RavenDK what i can find is that something goes wrong when binarizing with the arma 2 model.cfg.

if i do not binarize the pbo and just pack it it works, for me. but as soon as i binarize the model it breaks.

Share this post


Link to post
Share on other sites
Can we use an existing Arma2 config and model.cfg to get Characters into game?

Yeah, the CfgSkeleton + CfgModel is slightly different, but not overly different. However, there is a disparity 'tween the .p3d's provided selection names and the example .rtm provided.

As I can't see the 3DSMax stuff I'm not sure if the .rtm was produced from that end or through O2. If it was produced from the 3DSMax end then the Skeleton structure used there is slightly different to the example .p3d's.

If the .rtm was produced from O2 then I suspect the example.p3d's weren't used to produced this particular .rtm cause it has the following joints.

Joints[166] = {
	0 = "weapon";
	1 = "launcher";
	2 = "RightArm";
	3 = "RightHand";
	4 = "LeftHand";
	5 = "Head";
	6 = "RightLeg";
	7 = "RightLegRoll";
	8 = "RightFoot";
	9 = "RightToeBase";
	10 = "LeftForeArmRoll";
	11 = "RightForeArmRoll";
	12 = "LeftLeg";
	13 = "LeftLegRoll";
	14 = "LeftFoot";
	15 = "LeftToeBase";
	16 = "RightHandIndex1";
	17 = "RightHandIndex2";
	18 = "RightHandIndex3";
	19 = "RightHandMiddle1";
	20 = "RightHandMiddle2";
	21 = "RightHandMiddle3";
	22 = "RightHandPinky1";
	23 = "RightHandPinky2";
	24 = "RightHandPinky3";
	25 = "RightHandRing1";
	26 = "RightHandRing2";
	27 = "RightHandRing3";
	28 = "RightHandThumb1";
	29 = "RightHandThumb2";
	30 = "RightHandThumb3";
	31 = "RightHandRing";
	32 = "LeftHandIndex1";
	33 = "LeftHandIndex2";
	34 = "LeftHandIndex3";
	35 = "LeftHandMiddle1";
	36 = "LeftHandMiddle2";
	37 = "LeftHandMiddle3";
	38 = "LeftHandPinky1";
	39 = "LeftHandPinky2";
	40 = "LeftHandPinky3";
	41 = "LeftHandRing1";
	42 = "LeftHandRing2";
	43 = "LeftHandRing3";
	44 = "LeftHandThumb1";
	45 = "LeftHandThumb2";
	46 = "LeftHandThumb3";
	47 = "LeftHandRing";
	48 = "LeftUpLeg";
	49 = "LeftUpLegRoll";
	50 = "Neck";
	51 = "Neck1";
	52 = "Pelvis";
	53 = "Spine";
	54 = "Spine1";
	55 = "Spine2";
	56 = "Spine3";
	57 = "LeftShoulder";
	58 = "LeftArm";
	59 = "LeftArmRoll";
	60 = "LeftForeArm";
	61 = "RightShoulder";
	62 = "RightUpLeg";
	63 = "RightArmRoll";
	64 = "RightForeArm";
	65 = "RightUpLegRoll";
	66 = "camera";
	67 = "Cheek_LF";
	68 = "Nose_Tip";
	69 = "Lip_UpLB";
	70 = "Jaw_LS";
	71 = "Lip_UpLF";
	72 = "Lip_LC";
	73 = "Lip_LwLB";
	74 = "Lip_LwLF";
	75 = "Jaw_LM";
	76 = "Zig_LB";
	77 = "Lip_LwM";
	78 = "Lip_UpM";
	79 = "Ear_L";
	80 = "Corr";
	81 = "Tongue_M";
	82 = "Tongue_F";
	83 = "Eyebrow_LB";
	84 = "Eyebrow_LF";
	85 = "Eyebrow_LM";
	86 = "Zig_LM";
	87 = "Eye_UpL";
	88 = "Eye_LwL";
	89 = "Cheek_L";
	90 = "Cheek_LB";
	91 = "Zig_LT";
	92 = "Nose_L";
	93 = "Cheek_LM";
	94 = "Nose_R";
	95 = "Forehead_R";
	96 = "Forehead_M";
	97 = "Forehead_L";
	98 = "Cheek_RB";
	99 = "Eye_LwR";
	100 = "Cheek_R";
	101 = "Zig_RT";
	102 = "Zig_RM";
	103 = "Cheek_RF";
	104 = "Cheek_RM";
	105 = "Eyebrow_RM";
	106 = "Eyebrow_RF";
	107 = "Eye_UpR";
	108 = "Eyebrow_RB";
	109 = "Tongue_B";
	110 = "Ear_R";
	111 = "Neck_L";
	112 = "Lip_UpRF";
	113 = "Neck_R";
	114 = "Lip_UpRB";
	115 = "Lip_RC";
	116 = "Lip_LwRB";
	117 = "Lip_LwRF";
	118 = "Neck_B";
	119 = "Zig_RB";
	120 = "Neck_T";
	121 = "Jaw_RF";
	122 = "Jaw_LF";
	123 = "Chin";
	124 = "Jaw_RM";
	125 = "Jaw_RS";
	126 = "Jaw";
	127 = "RightInHandRing";
	128 = "LeftInHandRing";
	129 = "HeadCutScene";
	130 = "Face_BrowFrontRight";
	131 = "Face_CheekUpperRight";
	132 = "Face_CheekUpperLeft";
	133 = "Face_NostrilRight";
	134 = "Face_NostrilLeft";
	135 = "Face_Forehead";
	136 = "Face_EyelidLowerLeft";
	137 = "Face_BrowFrontLeft";
	138 = "Face_BrowSideRight";
	139 = "Face_BrowSideLeft";
	140 = "Face_EyelidLowerRight";
	141 = "Face_Hub";
	142 = "Face_Eyelids";
	143 = "Face_CheekSideRight";
	144 = "Face_CornerLeft";
	145 = "Face_CheekSideLeft";
	146 = "Face_EyelidUpperRight";
	147 = "Face_EyelidUpperLeft";
	148 = "Face_CornerRight";
	149 = "Face_Jawbone";
	150 = "Face_Chin";
	151 = "Face_ChopRight";
	152 = "Face_ChopLeft";
	153 = "Face_LipLowerMiddle";
	154 = "Face_LipLowerRight";
	155 = "Face_LipLowerLeft";
	156 = "Face_Tongue";
	157 = "Face_CheekFrontRight";
	158 = "Face_CheekFrontLeft";
	159 = "Face_LipUpperMiddle";
	160 = "Face_LipUpperRight";
	161 = "Face_LipUpperLeft";
	162 = "Face_BrowMiddle";
	163 = "Face_Jowl";
	164 = "EyeLeft";
	165 = "EyeRight";
};

It's probably better if you wait a little for Vespa to provide a properly constructed model.cfg that's being used with all A3 bodies rather than faffing around with a cobbled together one.

-Sy

PS: So, just to clarify the above list is not the Skeleton but just a listing of the joints in the example .rtm provided. As you'll note there's a disjoint 'tween the example .p3d's selection names and the contents of the .rtm. That's why I'd suggest waiting for Vespa to clarify.

You could try something like this though... it may work...

class cfgSkeletons
{
class Default
{
	isDiscrete = 1;
	skeletonInherit = "";
	skeletonBones[] = {};
};
class OFP2_ManSkeleton : default
{
	SkeletonBones[]=
	{
		"pelvis",	"",
		"spine",	"pelvis",
		"spine1",	"spine",
		"spine2",	"spine1",
		"spine3",	"spine2",
		"neck",	"spine3",
		"neck1",	"neck",
		"head",	"neck1",
		"face_hub",	"head",
		"face_jawbone",	"face_hub",
		"face_jowl",	"face_jawbone",
		"face_chopright",	"face_jawbone",
		"face_chopleft",	"face_jawbone",
		"face_liplowermiddle",	"face_jawbone",
		"face_liplowerleft",	"face_jawbone",
		"face_liplowerright",	"face_jawbone",
		"face_chin",	"face_jawbone",
		"face_tongue",	"face_jawbone",
		"face_cornerright",	"face_hub",
		"face_cheeksideright",	"face_cornerright",
		"face_cornerleft",	"face_hub",
		"face_cheeksideleft",	"face_cornerleft",
		"face_cheekfrontright",	"face_hub",
		"face_cheekfrontleft",	"face_hub",
		"face_cheekupperright",	"face_hub",
		"face_cheekupperleft",	"face_hub",
		"face_lipuppermiddle",	"face_hub",
		"face_lipupperright",	"face_hub",
		"face_lipupperleft",	"face_hub",
		"face_nostrilright",	"face_hub",
		"face_nostrilleft",	"face_hub",
		"face_forehead",	"face_hub",
		"face_browfrontright",	"face_forehead",
		"face_browfrontleft",	"face_forehead",
		"face_browmiddle",	"face_forehead",
		"face_browsideright",	"face_forehead",
		"face_browsideleft",	"face_forehead",
		"face_eyelids",	"face_hub",
		"face_eyelidupperright",	"face_hub",
		"face_eyelidupperleft",	"face_hub",
		"face_eyelidlowerright",	"face_hub",
		"face_eyelidlowerleft",	"face_hub",
		"eyeleft",	"face_hub",
		"eyeright",	"face_hub",
		"leftshoulder",	"spine3",
		"leftarm",	"leftshoulder",
		"leftarmroll",	"leftarm",
		"leftforearm",	"leftarmroll",
		"leftforearmroll",	"leftforearm",
		"lefthand",	"leftforearmroll",
		"lefthandring",	"lefthand",
		"lefthandring1",	"lefthandring",
		"lefthandring2",	"lefthandring1",
		"lefthandring3",	"lefthandring2",
		"lefthandpinky1",	"lefthandring",
		"lefthandpinky2",	"lefthandpinky1",
		"lefthandpinky3",	"lefthandpinky2",
		"lefthandmiddle1",	"lefthand",
		"lefthandmiddle2",	"lefthandmiddle1",
		"lefthandmiddle3",	"lefthandmiddle2",
		"lefthandindex1",	"lefthand",
		"lefthandindex2",	"lefthandindex1",
		"lefthandindex3",	"lefthandindex2",
		"lefthandthumb1",	"lefthand",
		"lefthandthumb2",	"lefthandthumb1",
		"lefthandthumb3",	"lefthandthumb2",
		"rightshoulder",	"spine3",
		"rightarm",	"rightshoulder",
		"rightarmroll",	"rightarm",
		"rightforearm",	"rightarmroll",
		"rightforearmroll",	"rightforearm",
		"righthand",	"rightforearmroll",
		"righthandring",	"righthand",
		"righthandring1",	"righthandring",
		"righthandring2",	"righthandring1",
		"righthandring3",	"righthandring2",
		"righthandpinky1",	"righthandring",
		"righthandpinky2",	"righthandpinky1",
		"righthandpinky3",	"righthandpinky2",
		"righthandmiddle1",	"righthand",
		"righthandmiddle2",	"righthandmiddle1",
		"righthandmiddle3",	"righthandmiddle2",
		"righthandindex1",	"righthand",
		"righthandindex2",	"righthandindex1",
		"righthandindex3",	"righthandindex2",
		"righthandthumb1",	"righthand",
		"righthandthumb2",	"righthandthumb1",
		"righthandthumb3",	"righthandthumb2",
		"weapon",	"spine1",
		"launcher",	"spine1",
		"camera",	"pelvis",
		"leftupleg",	"pelvis",
		"leftuplegroll",	"leftupleg",
		"leftleg",	"leftuplegroll",
		"leftlegroll",	"leftleg",
		"leftfoot",	"leftlegroll",
		"lefttoebase",	"leftfoot",
		"rightupleg",	"pelvis",
		"rightuplegroll",	"rightupleg",
		"rightleg",	"rightuplegroll",
		"rightlegroll",	"rightleg",
		"rightfoot",	"rightlegroll",
		"righttoebase",	"rightfoot"
	};
};
};

Edited by Synide

Share this post


Link to post
Share on other sites

Is anything different about head models in general or can we assume it goes the same as in A2 and we can keep doing what we did before?

Share this post


Link to post
Share on other sites

I recognized the vest Stretching Too. And i think it has Something to do with the binarizing.

The same errors occurred when I tried to bin my handanimations and a fresh install on my laptop of the bitools was the solution, it binarizes the files correct and every stretching was gone, will try that later with my vest too.

Share this post


Link to post
Share on other sites

vest config

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 your stuff {
	units[] = {};
	weapons[] = {};
	requiredVersion = 1.0;	
	requiredAddons[] = {"A3_Characters_F_BLUFOR", "A3_Weapons_F"};
};
};

class cfgWeapons {
class ItemCore;	// External class reference
class InventoryItem_Base_F;	// External class reference
class VestItem;

	class Vest_Base : ItemCore {
	scope = 0;
	weaponPoolAvailable = 1;
	allowedSlots[] = {901};
	picture = "\your stuff\data\ico\your stuffpic_ca.paa";
	model = "\A3\Weapons_F\Ammo\mag_univ.p3d";

	class ItemInfo : VestItem {
		uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest01.p3d";
		containerClass = "Supply0";
		mass = 0;
		armor = 0;
		passThrough = 1;
	};
};

class your stuffpack : Vest_Base {
	scope = 2;
	displayName = "your stuff";
	picture = "\your stuff\data\ico\your stuffpic_ca.paa";
	model = "\your stuff\your stuffpack.p3d";

	class ItemInfo : VestItem {
		uniformModel = "\your stuff\your stuffpack.p3d";
		containerClass = "Supply10";
		mass = 5;
		armor = 5*0.5;
		passThrough = 0.7;
	};
};

file need

$PBOPREFIX$

p3d

config

data folder + textures

---------- Post added at 09:02 ---------- Previous post was at 08:50 ----------

to get on the man

cfgVehicles

linkedItems[] = {"Helmet01", "yourstuffpack", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};

respawnLinkedItems[] = {"Helmet01", "yourstuffpack", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"};

link to give a hand out to sud and sud_ak107_a3, for his work help very much good job

Edited by Max Power

Share this post


Link to post
Share on other sites

Pettka saves the day yet again, here's character model.cfg:

class CfgSkeletons
{
class Default
{
	isDiscrete = 1;
	skeletonInherit = "";
	skeletonBones[] = {};
};
class OFP2_ManSkeleton
{
	isDiscrete = 0;
	skeletonInherit = "";
	skeletonBones[] =
	{
		"Pelvis","",
		"Spine","Pelvis",
		"Spine1","Spine",
		"Spine2","Spine1",
		"Spine3","Spine2",
		"Camera","Pelvis",
		"weapon","Spine1",
		"launcher","Spine1",
	//Head skeleton in hierarchy
		"neck","Spine3",
		"neck1","neck",
		"head","neck1",
	//New facial features
		"Face_Hub","head",
			"Face_Jawbone","Face_Hub",
				"Face_Jowl","Face_Jawbone",
				"Face_chopRight","Face_Jawbone",
				"Face_chopLeft","Face_Jawbone",
				"Face_LipLowerMiddle","Face_Jawbone",
				"Face_LipLowerLeft","Face_Jawbone",
				"Face_LipLowerRight","Face_Jawbone",
				"Face_Chin","Face_Jawbone",
				"Face_Tongue","Face_Jawbone",
			"Face_CornerRight","Face_Hub",
				"Face_CheekSideRight","Face_CornerRight",
			"Face_CornerLeft","Face_Hub",
				"Face_CheekSideLeft","Face_CornerLeft",
			"Face_CheekFrontRight","Face_Hub",
			"Face_CheekFrontLeft","Face_Hub",
			"Face_CheekUpperRight","Face_Hub",
			"Face_CheekUpperLeft","Face_Hub",
			"Face_LipUpperMiddle","Face_Hub",
			"Face_LipUpperRight","Face_Hub",
			"Face_LipUpperLeft","Face_Hub",
			"Face_NostrilRight","Face_Hub",
			"Face_NostrilLeft","Face_Hub",
			"Face_Forehead","Face_Hub",
				"Face_BrowFrontRight","Face_Forehead",
				"Face_BrowFrontLeft","Face_Forehead",
				"Face_BrowMiddle","Face_Forehead",
				"Face_BrowSideRight","Face_Forehead",
				"Face_BrowSideLeft","Face_Forehead",
			"Face_Eyelids","Face_Hub",
			"Face_EyelidUpperRight","Face_Hub",
			"Face_EyelidUpperLeft","Face_Hub",
			"Face_EyelidLowerRight","Face_Hub",
			"Face_EyelidLowerLeft","Face_Hub",
			"EyeLeft","Face_Hub",
			"EyeRight","Face_Hub",			
	//Left upper side
		"LeftShoulder","Spine3",
		"LeftArm","LeftShoulder",
		"LeftArmRoll","LeftArm",
		"LeftForeArm","LeftArmRoll",
		"LeftForeArmRoll","LeftForeArm",
		"LeftHand","LeftForeArmRoll",
		"LeftHandRing","LeftHand",
		"LeftHandRing1","LeftHandRing",
		"LeftHandRing2","LeftHandRing1",
		"LeftHandRing3","LeftHandRing2",
		"LeftHandPinky1","LeftHandRing",
		"LeftHandPinky2","LeftHandPinky1",
		"LeftHandPinky3","LeftHandPinky2",
		"LeftHandMiddle1","LeftHand",
		"LeftHandMiddle2","LeftHandMiddle1",
		"LeftHandMiddle3","LeftHandMiddle2",
		"LeftHandIndex1","LeftHand",
		"LeftHandIndex2","LeftHandIndex1",
		"LeftHandIndex3","LeftHandIndex2",
		"LeftHandThumb1","LeftHand",
		"LeftHandThumb2","LeftHandThumb1",
		"LeftHandThumb3","LeftHandThumb2",
	//Right upper side
		"RightShoulder","Spine3",
		"RightArm","RightShoulder",
		"RightArmRoll","RightArm",
		"RightForeArm","RightArmRoll",
		"RightForeArmRoll","RightForeArm",
		"RightHand","RightForeArmRoll",
		"RightHandRing","RightHand",
		"RightHandRing1","RightHandRing",
		"RightHandRing2","RightHandRing1",
		"RightHandRing3","RightHandRing2",
		"RightHandPinky1","RightHandRing",
		"RightHandPinky2","RightHandPinky1",
		"RightHandPinky3","RightHandPinky2",
		"RightHandMiddle1","RightHand",
		"RightHandMiddle2","RightHandMiddle1",
		"RightHandMiddle3","RightHandMiddle2",
		"RightHandIndex1","RightHand",
		"RightHandIndex2","RightHandIndex1",
		"RightHandIndex3","RightHandIndex2",
		"RightHandThumb1","RightHand",
		"RightHandThumb2","RightHandThumb1",
		"RightHandThumb3","RightHandThumb2",
	//Left lower side
		"LeftUpLeg","Pelvis",
		"LeftUpLegRoll","LeftUpLeg",
		"LeftLeg","LeftUpLegRoll",
		"LeftLegRoll","LeftLeg",
		"LeftFoot","LeftLegRoll",
		"LeftToeBase","LeftFoot",
	//Right lower side
		"RightUpLeg","Pelvis",
		"RightUpLegRoll","RightUpLeg",
		"RightLeg","RightUpLegRoll",
		"RightLegRoll","RightLeg",
		"RightFoot","RightLegRoll",
		"RightToeBase","RightFoot"
	};
	// location of pivot points (local axes) for hierarchical animation
	pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d";
 	};
};

class CfgModels
{
class Default
{
	sectionsInherit="";
	sections[] = {};
	skeletonName = "";
};
class ArmaMan : Default
{
	htMin = 60;          // Minimum half-cooling time (in seconds)
	htMax = 1800;        // Maximum half-cooling time (in seconds)
	afMax = 30;          // Maximum temperature in case the model is alive (in celsius)
	mfMax = 0;           // Maximum temperature when the model is moving (in celsius)
	mFact = 1;           // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)).
	tBody = 37;  // Metabolism temperature of the model (in celsius)

	sections[] =
	{
		"osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury","injury_body", "injury_legs", "injury_hands",
		"clan","clan_sign","Camo","CamoB","Camo1","Camo2","personality","hl", "injury_head"
	};
	skeletonName = "OFP2_ManSkeleton";
};
};

Hope you guys can make something out of it.

Updated in the tutorial as well.

Edited by Vespa

Share this post


Link to post
Share on other sites

Yeah, thanks a lot Vespa & Pettka!

That solved the problems with binarized models crashing the game for me :)

Cheers,

D.

Share this post


Link to post
Share on other sites

@Dimitri_Harkov

Do you have a working config that your happy to share with the community?

Share this post


Link to post
Share on other sites

simple test config to get a civilian ingame.

#define _ARMA_

//Class BaBe_INF_Sur : config.bin{

class DefaultEventhandlers;

class CfgPatches

{

class BaBe_Units

{

units[] = {"C_man_1","C_man_p_fugitive_F","C_man_p_fugitive_F_afro","C_man_p_fugitive_F_euro","C_man_p_fugitive_F_asia","C_man_p_beggar_F","C_man_p_beggar_F_afro","C_man_p_beggar_F_euro","C_man_p_beggar_F_asia","C_man_p_scavenger_1_F","C_man_p_scavenger_1_F_afro","C_man_p_scavenger_1_F_euro","C_man_p_scavenger_1_F_asia","C_man_p_scavenger_2_F","C_man_p_scavenger_2_F_afro","C_man_p_scavenger_2_F_euro","C_man_p_scavenger_2_F_asia","C_man_w_farmer_1_F","C_man_w_fisherman_1_F","C_man_w_farmer_2_F","C_man_w_fisherman_2_F","C_man_w_worker_F","C_man_hunter_1_F","C_man_hunter_2_F","C_man_1_1_F","C_man_1_1_F_afro","C_man_1_1_F_euro","C_man_1_1_F_asia","C_man_1_2_F","C_man_1_2_F_afro","C_man_1_2_F_euro","C_man_1_2_F_asia","C_man_1_3_F","C_man_1_3_F_afro","C_man_1_3_F_euro","C_man_1_3_F_asia","C_man_2_1_F","C_man_2_1_F_afro","C_man_2_1_F_euro","C_man_2_1_F_asia","C_man_2_2_F","C_man_2_3_F","C_man_2_3_F_afro","C_man_2_3_F_euro","C_man_2_3_F_asia","C_man_3_1_F","C_man_3_1_F_afro","C_man_3_1_F_euro","C_man_3_1_F_asia","C_man_shepherd_F","C_man_p_scavenger_3_F","C_man_p_scavenger_3_F_afro","C_man_p_scavenger_3_F_euro","C_man_p_scavenger_3_F_asia","C_man_4_1_F","C_man_4_1_F_afro","C_man_4_1_F_euro","C_man_4_1_F_asia","C_man_4_2_F","C_man_4_2_F_afro","C_man_4_2_F_euro","C_man_4_2_F_asia","C_man_4_3_F","C_man_4_3_F_afro","C_man_4_3_F_euro","C_man_4_3_F_asia","C_man_priest_F","C_man_p_shorts_1_F","C_man_p_shorts_1_F_afro","C_man_p_shorts_1_F_euro","C_man_p_shorts_1_F_asia","C_man_p_shorts_2_F","C_man_p_shorts_2_F_afro","C_man_p_shorts_2_F_euro","C_man_p_shorts_2_F_asia","C_man_shorts_1_F","C_man_shorts_1_F_afro","C_man_shorts_1_F_euro","C_man_shorts_1_F_asia","C_man_shorts_2_F","C_man_shorts_2_F_afro","C_man_shorts_2_F_euro","C_man_shorts_2_F_asia","C_man_shorts_3_F","C_man_shorts_3_F_afro","C_man_shorts_3_F_euro","C_man_shorts_3_F_asia","C_man_shorts_4_F","C_man_shorts_4_F_afro","C_man_shorts_4_F_euro","C_man_shorts_4_F_asia","C_man_pilot_F","C_man_polo_1_F","C_man_polo_1_F_afro","C_man_polo_1_F_euro","C_man_polo_1_F_asia","C_man_polo_2_F","C_man_polo_2_F_afro","C_man_polo_2_F_euro","C_man_polo_2_F_asia","C_man_polo_3_F","C_man_polo_3_F_afro","C_man_polo_3_F_euro","C_man_polo_3_F_asia","C_man_polo_4_F","C_man_polo_4_F_afro","C_man_polo_4_F_euro","C_man_polo_4_F_asia","C_man_polo_5_F","C_man_polo_5_F_afro","C_man_polo_5_F_euro","C_man_polo_5_F_asia","C_man_polo_6_F","C_man_polo_6_F_afro","C_man_polo_6_F_euro","C_man_polo_6_F_asia","C_Orestes","C_Nikos","I_G_Soldier_TL_F","I_G_Soldier_F","I_G_medic_F","I_G_Soldier_LAT_F","I_G_Soldier_AR_F","I_G_Soldier_M_F","I_G_Soldier_CQ_F","I_G_engineer_F","I_G_Soldier_GL_F","I_G_recon_F","I_G_sniper_F","I_G_Soldier_AAR_F","I_G_support_AMG_F","I_G_support_AMort_F","I_G_support_MG_F","I_G_support_GMG_F","I_G_support_Mort_F"};

weapons[] = {};

requiredVersion = 0.1;

requiredAddons[] = {"A3_Characters_F"};

};

};

class CfgVehicleClasses

{

class BaBe_Units_Class

{

displayName = "Dudes";

};

};

class CfgVehicles

{

class C_man_1;

class BaBe_CIV_1: C_man_1

{

identityTypes[] = {"Head_Greek","G_CIVIL_male"};

faceType = "Man_A3";

faction = "CIV_F";

genericNames = "GreekMen";

vehicleClass="BaBe_Units_Class";

portrait = "\A3\characters_f\data\ui\portrait_comBarHead_civ_man_ca.paa";

moves = "CfgMovesMaleSdr";

nakedUniform = "U_BasicBody";

weapons[] = {"Throw","Put"};

respawnWeapons[] = {"Throw","Put"};

linkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};

respawnLinkedItems[] = {"ItemMap","ItemCompass","ItemWatch"};

_generalMacro = "C_man_1_1_F";

model = "\A3\characters_F\civil\c_citizen1";

modelSides[] = {3};

uniformClass = "U_C_Commoner1_1";

displayName = "Dude 1";

hiddenSelections[] = {"Camo"};

hiddenSelectionsTextures[] = {"\A3\characters_f\civil\data\c_poloshirt_3_co.paa"};

fsmFormation = "A3\characters_f\scripts\formationC.fsm";

fsmDanger = "A3\characters_f\scripts\formationCDanger.fsm";

class Wounds

{

tex[] = {};

mat[] = {"A3\Characters_F\Civil\Data\c_cloth1.rvmat","A3\Characters_F\Civil\Data\c_cloth1_injury.rvmat","A3\Characters_F\Civil\Data\c_cloth1_injury.rvmat","A3\Characters_F\Civil\Data\c_cloth2.rvmat","A3\Characters_F\Civil\Data\c_cloth2_injury.rvmat","A3\Characters_F\Civil\Data\c_cloth2_injury.rvmat","A3\Characters_F\Civil\Data\c_cloth3.rvmat","A3\Characters_F\Civil\Data\c_cloth3_injury.rvmat","A3\Characters_F\Civil\Data\c_cloth3_injury.rvmat","A3\Characters_F\Civil\Data\c_cloth4.rvmat","A3\Characters_F\Civil\Data\c_cloth4_injury.rvmat","A3\Characters_F\Civil\Data\c_cloth4_injury.rvmat","A3\characters_f\civil\data\c_poloshirt.rvmat","A3\Characters_F\Civil\Data\c_poloshirt_injury.rvmat","A3\Characters_F\Civil\Data\c_poloshirt_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"};

};

};

};

not every property in the my man class is needed to get it ingame. i just added as much from the original class as possible to have a starting point to modify stuff like custom AI fsm and animation configs.

Share this post


Link to post
Share on other sites
Sure, but could you be a bit more specific?

Which cfg? model.cfg?

Cheers,

D.

Sorry i meant the config not the model.cfg

Cheers

Share this post


Link to post
Share on other sites

I get error (File tacticalpolice\config.cpp, line 38: /cfgWeapons/Vest_Base.ItemInfo: Undefined base class 'Vest_Base') when i try this:

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 Police_Mod {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {};
};
};

class cfgWeapons {
class VestItem; // External class reference
class Vest_Base; // External class reference

class TPV : Vest_Base {
		scope = 2;
		displayName = "TacticalPolice";
		picture = "\TacticalPolice\Data\UI\tacticalvest_police_co.paa";
		model = "\TacticalPolice\TacticalPoliceVest.p3d";

	class ItemInfo : VestItem {
		uniformModel = "\TacticalPolice\TacticalPoliceVest.p3d";
		containerClass = "Supply90";
		mass = 50;
		hiddenSelections = {"camo"};
		armor = "5*0.5";
		passThrough = 0.700000;
	};
};
};

Fixed

TacticalVest1_zpsa17b33c4.jpgTacticalVest2_zps0221237a.jpg

Edited by TxT

Share this post


Link to post
Share on other sites

TxT, Check all your opening/closing brackets ("{", "}"), for example you're closing a section that you never opened near the top, and then later, you don't close CfgWeapons.

Share this post


Link to post
Share on other sites

Yeah i just fix that, this is coming up now and thanks for the help

File tacticalpolice\config.cpp, line 38: /cfgWeapons/Vest_Base.ItemInfo: Undefined base class 'Vest_Base'

Edited by TxT

Share this post


Link to post
Share on other sites

I think you're wanting this for your first line, if you don't already have it:

enum {

EDIT: To your new problem, Vest_Base should be an external class reference, not in your own config.

Also, your picture path has a space in the .paa extension.

Edited by SUPERNERD101

Share this post


Link to post
Share on other sites
Sorry i meant the config not the model.cfg

Cheers

Oh, it was just a very dirty solution to directly replace the model paths in both a soldier entry and the corresponding uniform entry...

Cheers

Share this post


Link to post
Share on other sites

Not sure why there is that space there in website i tryed fixing it it just is there. Where wound you make external class reference?

Share this post


Link to post
Share on other sites

Just rather than defining Vest_Base like you do, make it an external class reference.

class Vest_Base;

Share this post


Link to post
Share on other sites

Ok thanks it works now just got to link anim to the vest

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

×