Table of Contents

ArmA 1 BIsoldier In-game

ArmA 1 Forum, ArmA 1 Home, ArmA 1 Config, ArmA 1 Tools, ArmA 1 File Formats, ArmA 1 Missions, ArmA 1 3D Modeling, ArmA 1 Terrain, ArmA 1 Texturing, ArmA 1 Scripting

ArmA 1 aka Armed Assault (ArmA)

There still seems to be some fuss about how to bring the BIsoldier (bis released BImodels MLODs of its soldier) model in-game. Here is what PMC did to create working config for them.

CfgSkeletons

First in CfgSkeletons in model.cfg file we did like this:

class CfgSkeletons
	// soldier models
	class Head
	{
		isDiscrete = 0;
		skeletonInherit = "";
		skeletonBones[] =
		{
			"neck","",
			"neck1","neck",
			"head","neck1",
			"lBrow","head",
			"mBrow","head",
			"rBrow","head",
			"lMouth","head",
			"mMouth","head",
			"rMouth","head",
			"eyelids","head",
			"LLip","head"
		};
	};
	class VTE_BISkeleton
	{
		isDiscrete = 0;
		skeletonInherit = "Head";
		skeletonBones[] =
		{
			"weapon","",
			"launcher","",
			"Camera","",
			"Spine","",
			"Spine1","",
			"Spine2","",
			"Spine3","",
			"Pelvis","",
			"LeftShoulder","",
			"LeftArm","",
			"LeftArmRoll","",
			"LeftForeArm","",
			"LeftForeArmRoll","",
			"LeftHand","",
			"LeftHandRing","",
			"LeftHandRing1","",
			"LeftHandRing2","",
			"LeftHandRing3","",
			"LeftHandPinky1","",
			"LeftHandPinky2","",
			"LeftHandPinky3","",
			"LeftHandMiddle1","",
			"LeftHandMiddle2","",
			"LeftHandMiddle3","",
			"LeftHandIndex1","",
			"LeftHandIndex2","",
			"LeftHandIndex3","",
			"LeftHandThumb1","",
			"LeftHandThumb2","",
			"LeftHandThumb3","",
			"RightShoulder","",
			"RightArm","",
			"RightArmRoll","",
			"RightForeArm","",
			"RightForeArmRoll","",
			"RightHand","",
			"RightHandRing","",
			"RightHandRing1","",
			"RightHandRing2","",
			"RightHandRing3","",
			"RightHandPinky1","",
			"RightHandPinky2","",
			"RightHandPinky3","",
			"RightHandMiddle1","",
			"RightHandMiddle2","",
			"RightHandMiddle3","",
			"RightHandIndex1","",
			"RightHandIndex2","",
			"RightHandIndex3","",
			"RightHandThumb1","",
			"RightHandThumb2","",
			"RightHandThumb3","",
			"LeftUpLeg","",
			"LeftUpLegRoll","",
			"LeftLeg","",
			"LeftLegRoll","",
			"LeftFoot","",
			"LeftToeBase","",
			"RightUpLeg","",
			"RightUpLegRoll","",
			"RightLeg","",
			"RightLegRoll","",
			"RightFoot","",
			"RightToeBase",""
		};
	};
	class Flag: Default {};
	class FlagCarrier: Default
	{
		skeletonInherit = "Default";
		skeletonBones[] = {"stozar","","vlajka",""};
	};

Sorry its bit difficult to format those long list of bone names. Then we did this:

class VTE_PeopleMoves : CfgMovesMaleSdr
{
	skeletonName = "VTE_BISkeleton";
	collisionVertexPattern[] =
	{
		"1a",
		"2a",
		"3a",
		"4a",
		"5a",
		"6a",
		"7a",
		"8a",
		"1c",
		"2c",
		"3c",
		"4c",
		"5c",
		"6c",
		"7c",
		"8c",
		"1f",
		"2f",
		"3f",
		"4f",
		"5f",
		"6f",
		"7f",
		"8f"
	};
	collisionGeomCompPattern[] = {1, 3, 6};
};

cfgModels

And then in cfgModels we did this:

class cfgModels
{
	class Default
	{
		sections[] = {""};
		sectionsInherit="";
	};
	class flag_vojak : Default
	{
		sections[] = {"latka"};
	};
	class Head: Default
	{
		skeletonName = "Head";
		sections[] = {"swap_hhl","hide_eyewear"};
		sectionsInherit="";
	};
	class VTE_aircav: Default
	{
		skeletonName = "VTE_BISkeleton";
		sectionsInherit="Head";
		sections[] =
		{
			"weapon","",
			"launcher","",
			"Camera","",
			"Spine","",
			"Spine1","",
			"Spine2","",
			"Spine3","",
			"Pelvis","",
			"LeftShoulder","",
			"LeftArm","",
			"LeftArmRoll","",
			"LeftForeArm","",
			"LeftForeArmRoll","",
			"LeftHand","",
			"LeftHandRing","",
			"LeftHandRing1","",
			"LeftHandRing2","",
			"LeftHandRing3","",
			"LeftHandPinky1","",
			"LeftHandPinky2","",
			"LeftHandPinky3","",
			"LeftHandMiddle1","",
			"LeftHandMiddle2","",
			"LeftHandMiddle3","",
			"LeftHandIndex1","",
			"LeftHandIndex2","",
			"LeftHandIndex3","",
			"LeftHandThumb1","",
			"LeftHandThumb2","",
			"LeftHandThumb3","",
			"RightShoulder","",
			"RightArm","",
			"RightArmRoll","",
			"RightForeArm","",
			"RightForeArmRoll","",
			"RightHand","",
			"RightHandRing","",
			"RightHandRing1","",
			"RightHandRing2","",
			"RightHandRing3","",
			"RightHandPinky1","",
			"RightHandPinky2","",
			"RightHandPinky3","",
			"RightHandMiddle1","",
			"RightHandMiddle2","",
			"RightHandMiddle3","",
			"RightHandIndex1","",
			"RightHandIndex2","",
			"RightHandIndex3","",
			"RightHandThumb1","",
			"RightHandThumb2","",
			"RightHandThumb3","",
			"LeftUpLeg","",
			"LeftUpLegRoll","",
			"LeftLeg","",
			"LeftLegRoll","",
			"LeftFoot","",
			"LeftToeBase","",
			"RightUpLeg","",
			"RightUpLegRoll","",
			"RightLeg","",
			"RightLegRoll","",
			"RightFoot","",
			"RightToeBase",""
		};
	};
	class VTE_usmc: VTE_aircav{};
	class VTE_sf: VTE_aircav{};

As you can see now you must inherit all your soldier P3D model names here ie VTE_usmc.p3d and VTE_sf.p3d normally as any other cfgModels before.

cfgVehicles

Then we move into cfgVehicles and the only different thing you do there is this:

	class VTE_ac: VTE_Army
	{
		scope=private;
		vehicleClass = "VTE_Inf_AirCav";
		displayName="AirCav";
		model="\VTE_chara\VTE_aircav.p3d";
		moves="VTE_PeopleMoves";

The “moves” part, that's the only new thing you need to add in cfgVehicles the unit configuration. Then you can inherit the units by doing class MyNewUnit: VTE_ac{blabla}; as usual.

Wound Textures

Read about wound textures in more detail.