User Tools

Site Tools


arma:modeling:bisoldieringame

This is an old revision of the document!


BIsoldier Ingame

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

cfgSkeletons

First in cfgskeletons we did 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, thats 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

I have no idea if wound textures work with this setup, I dont have blood enabled in my ArmA :)

Notes

You should not use the Synide's MLOD models anymore, they are outdated and broken models. Just get the officially released MLOD example models from BIS directly.

arma/modeling/bisoldieringame.1209570808.txt.gz · Last modified: 2008-04-30 15:53 by snakeman