====== ArmA 1 BIsoldier In-game ======
[[https://www.pmctactical.org/forum/viewforum.php?f=42|ArmA 1 Forum]], [[:arma|ArmA 1 Home]], [[arma:config|ArmA 1 Config]], [[arma:tools|ArmA 1 Tools]], [[arma:file_formats|ArmA 1 File Formats]], [[arma:missions|ArmA 1 Missions]], [[arma:modeling|ArmA 1 3D Modeling]], [[arma:terrain|ArmA 1 Terrain]], [[arma:texturing|ArmA 1 Texturing]], [[arma:scripting|ArmA 1 Scripting]]
**ArmA 1** aka Armed Assault (ArmA)
There still seems to be some fuss about how to bring the BIsoldier (bis released [[arma:modeling:bismodels|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 [[arma:wound_textures|wound textures]] in more detail.