====== 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.