banner



Arma 3 How To Use Bipod

Contents

  • 1 Additional functionality compared to A2/OA
  • 2 Model requirements {p3d}
  • 3 Model config changes {model.cfg}
  • 4 New config parameters {config.cpp}
    • four.ane Slotable weapons
      • 4.1.1 Muzzle accessories
      • 4.one.2 Audio Values
      • 4.1.3 Optics
      • 4.1.4 Side Accessory
    • 4.ii Custom reload animations
    • four.3 Underwater weapons
    • 4.iv Ammo changes on fly and on hit
    • 4.5 Explosion shielding
    • 4.6 Weapon inertia
    • 4.7 Inventory icons overlay method
    • 4.8 Mag compatibility groups
    • four.9 Bipods
    • iv.10 Pistol holsters
    • 4.11 Mag Proxies
    • 4.12 Virtual Arsenal visibility
  • 5 See Also

101 - How to set up a weapon for Arma 3

Please be enlightened of our Arma 3 modding license: http://community.bistudio.com/wiki/Arma_3_Modding_License

Additional functionality compared to A2/OA

  • Slotable weapon accessories
  • Custom reload animations
  • Adjustable sights
  • Underwater weapons
  • Ammo changes on fly and on hit
  • Rotating muzzle-flash
  • Explosion shielding

Model requirements {p3d}

  • proxies for slotable accessories
    • muzzle accessory should exist on proxy \A3\data_f\proxies\weapon_slots\MUZZLE
    • optics should be on proxy \A3\data_f\proxies\weapon_slots\Acme
    • side accompaniment should exist on proxy \A3\data_f\proxies\weapon_slots\SIDE
    • bipod accessory should be on proxy \A3\data_f_mark\proxies\weapon_slots\UNDERBARREL
    • all these proxies could exist redefined in cfgWeapons >> Weapon >> WeaponSlotsInfo >> 30 >> linkProxy parameter where XXX is the slot name
  • selections for folding fe sights
    • You need to create selections and axes for iron sights if Yous want them folded once the eyes is put on the weapon
    • Front part should be named ForeSight with ForeSight_axis in retention lod
    • Rear part should be named BackSight with BackSight_axis in retentivity lod
  • adjustable sights for grenade launchers
    • there needs to be a selection that is going to rotate (in case of collimator sights), default naming is OP
    • this selection needs to have an axis in memory lod, default naming is OP_axis
    • there needs to be a focus betoken, the best place is the crimson dot of collimator, with retentiveness point OP_look by default and several points for center, ordinarily OP_eyeX where Ten is the number of the betoken. Good practice is to identify them in same altitude class focus signal

Model config changes {model.cfg}

  • custom reload animation accept a skillful use of newly added parameter unHideValue for hibernate type of animations - yous are now able to make asymmetrical animations eg. for hiding of mag:

{model.cfg}

                        form            magazine_hide            {            blazon            =            "hibernate"            ;            source            =            "reloadMagazine"            ;            selection            =            "mag"            ;            minValue            =            0.000000            ;            maxValue            =            1.00000            ;            hideValue            =            0.220            ;            unhideValue            =            0.550            ;            };          
  • the animations could wait a bit meliorate past simply adding a translation for the mag and calculation an axis for that in model - magazine should interpret at first, and then disappear, announced and translate dorsum

{model.cfg}

                        class            magazine_reload_move_1            {            type            =            "translation"            ;            source            =            "reloadMagazine"            ;            selection            =            "magazine"            ;            axis            =            "magazine_axis"            ;            minValue            =            0.145            ;            maxValue            =            0.170            ;            offset0            =            0.0            ;            offset1            =            0.v            ;            };          
  • foldable iron sights use hasOptics controller

{model.cfg}

                        class            BackSight_optic            {            type            =            "rotation"            ;            source            =            "hasOptics"            ;            selection            =            "BackSight"            ;            axis            =            "BackSight_axis"            ;            retention            =            1            ;            minValue            =            0.0000000            ;            maxValue            =            1.0000000            ;            angle0            =            0.000000            ;            angle1            =            (            rad            ninety            );            };          
  • new animation controllers zeroing1 and zeroing2 take values from discreteDistance[] of first and second muzzle of the weapon. The value is index number of current zeroing in the array starting with zero (that means the start value is 0, second is 1, the last is number of discrete distances plus 1). It might be used for fe sights of the weapon if desired but improve apply is for UGL collimator sights rotation:

{model.cfg}

                        course            OP_ROT            {            blazon            =            "rotation"            ;            source            =            "zeroing2"            ;            // use 2d muzzle zeroing for rotation            sourceAddress            =            "loop"            ;            // loop when stage out of bounds            selection            =            "OP"            ;            // selection we want to rotate            axis            =            "OP_axis"            ;            // has its own axis            minValue            =            0            ;            maxValue            =            3            ;            // this weapon has array with 4 distances            angle0            =            "rad 0"            ;            angle1            =            "rad 65"            ;            };          
  • rotating cage flashes are washed using a new blitheness source ammoRandom which changes it is value every time weapon is fired. Diverse degrees of rotation may exist set up by using correct muzzle flash shape and minValue maxValue combination.

{model.cfg}

                        class            MuzzleFlashROT            {            type            =            "rotationX"            ;            source            =            "ammoRandom"            ;            // utilise ammo count every bit phase for animation            sourceAddress            =            "loop"            ;            // loop when stage out of premises            pick            =            "zasleh"            ;            // option nosotros want to rotate            axis            =            ""            ;            // no own axis - center of rotation is computed from selection            centerFirstVertex            =            true            ;            // use first vertex of selection as eye of rotation            minValue            =            0            ;            maxValue            =            4            ;            // rotation angle will exist 360/4 = 90 degrees            angle0            =            "rad 0"            ;            angle1            =            "rad 360"            ;            };          

New config parameters {config.cpp}

Slotable weapons

  • Bachelor slots are divers in each weapon just are usually inherited from a parent weapon. They are stored as classes in class WeaponSlotsInfo which contains the slots and parameters for inventory
    • Mass is a new unit used to describe weight and volume of an object used. Each container has a set chapters in the same units.
    • allowedSlots[] is an array of slot numbers where you may put the weapon. 701 stands for belong, 801 stands for uniform, 901 stands for backpack
    • each weapon slot is a separate bracket in class WeaponSlotsInfo
      • parameter linkProxy defines a proxy in weapon model for said slot (see standard names on elevation)
      • parameter displayName describes a mouse-over name of slot in Inventory
      • array compatibleItems[] lists possible accompaniment placeable into that slot. Well-nigh weapons are able to have any RIS equipment, but eg. muzzle accessory differs according to caliber.
    • external classes CowsSlot and PointerSlot are used for standard optics and side accessory. That means these classes are outside cfgWeapons and child-bearing for all weapons at once.
                        course            SlotInfo            ;            class            CowsSlot            :            SlotInfo            {            // targetProxy            linkProxy            =            "\A3\data_f\proxies\weapon_slots\Pinnacle"            ;            // display name            displayName            =            $            STR_A3_CowsSlot0            ;            // form names with items supported by weapon                        compatibleItems            []            =            {            "optic_Arco"            ,            "optic_aco"            ,            "optic_ACO_grn"            ,            "optic_hamr"            ,            "optic_Holosight"            };            };            class            PointerSlot            :            SlotInfo            {            // targetProxy            linkProxy            =            "\A3\data_f\proxies\weapon_slots\SIDE"            ;            // display name            displayName            =            $            STR_A3_PointerSlot0            ;            // class names with items supported by weapon                        compatibleItems            []            =            {            "acc_flashlight"            ,            "acc_pointer_IR"            };            };            class            cfgWeapons            {            class            myWeapon            {            course            WeaponSlotsInfo            {            mass            =            4            ;            // default mass of a weapon            class            MuzzleSlot            :            SlotInfo            {            // targetProxy            linkProxy            =            "\A3\data_f\proxies\weapon_slots\Muzzle"            ;            // display proper noun            displayName            =            "Muzzle Slot"            ;            // course names with items supported past weapon            compatibleItems            []            =            {};            // moved to each weapon            };            class            CowsSlot            :            CowsSlot            {};            class            PointerSlot            :            PointerSlot            {};            allowedSlots            []            =            {            901            };            // you lot simply cannot put this into your pants            };            };            };          

Cage accessories

  • suppressors are configured as a weapon inheriting some detail abilities from class ItemCore
  • the course itself consists only from scope, displayName, picture and model, there is a dissever subclass ItemInfo with all the required parameters
    • there is subclass MagazineCoef inside class ItemInfo with parameter initSpeed - this is just a multiplier of initSpeed of weapon's magazine
    • subclass AmmoCoef of form ItemInfo has more parameters for the ammo shoot through the suppressor:
      • hit is the coefficient of hit of original ammo
      • visibleFire, audibleFire, visibleFireTime and audibleFireTime are coefficients for detection upon shooting the weapon
      • college cost coefficient should make AI think more than near shooting the suppressed weapon
      • typicalSpeed and airFriction coefficients alter the ballistic characteristics of the ammo
    • there are alternate muzzleEnd and alternativeFire directly inside class ItemInfo to have different muzzle effects origin and cage flashes
                        class            Mode_SemiAuto            ;            class            cfgWeapons            {            course            ItemCore            ;            class            InventoryMuzzleItem_Base_F            ;            course            myMuzzleAccessory            {            telescopic            =            ii            ;            displayName            =            "My Muzzle Accessory"            ;            movie            =            "\A3\weapons_F\Information\UI\myMuzzleAccessory_CA.paa"            ;            model            =            "\A3\weapons_f            \a            cc\myMuzzleAccessory"            ;            class            ItemInfo            :            InventoryMuzzleItem_Base_F            {            soundTypeIndex            =            ane            ;            // index of sound in sounds[] in weapon modes (inherited 1 from parent course)            class            MagazineCoef            {            initSpeed            =            0.8            ;            };            grade            AmmoCoef            {            hit            =            0.8            ;            visibleFire            =            0.3            ;            audibleFire            =            0.eight            ;            visibleFireTime            =            0.five            ;            audibleFireTime            =            1.0            ;            cost            =            1.0            ;            typicalSpeed            =            0.viii            ;            airFriction            =            1.0            ;            };            muzzleEnd            =            "zaslehPoint"            ;            // memory point in cage supressor'south model            alternativeFire            =            "Zasleh2"            ;            // class in cfgWeapons with model of cage flash                        class            MuzzleCoef            {            dispersionCoef            =            1.0f            ;            artilleryDispersionCoef            =            1.0f            ;            fireLightCoef            =            0.1f            ;            recoilCoef            =            ane.0f            ;            recoilProneCoef            =            1.0f            ;            minRangeCoef            =            1.0f            ;            minRangeProbabCoef            =            one.0f            ;            midRangeCoef            =            1.0f            ;            midRangeProbabCoef            =            1.0f            ;            maxRangeCoef            =            1.0f            ;            maxRangeProbabCoef            =            1.0f            ;            };            };            };            };          

Sound Values

  • Starting from patch one.24 (dev version 1.23 from 23.6. 2014 on), in that location is a alter how sounds are handled because of audio suppressors:
    • Weapon without any muzzle accessory has a soundTypeIndex equal to 0, while it could be whatsoever number (by default 1) according to suppressor type used.
    • array parameter sounds[] of burn down mode is used to chose what sound subclass is going to be used - it is sounds[] = {StandardSound, SilencedSound}; past default
    • classes divers in previous parameter are subclasses of a burn down mode with various sound parameters: weaponSoundEffect, soundBegin[], soundClosure{}
                        form            MyWeapon            :            Rifle_Base_F            {            form            Single            :            Mode_SemiAuto            {            sounds            []            =            {            StandardSound            ,            SilencedSound            };            class            BaseSoundModeType            // this base class has base definitions that both standard and silenced sounds will inherit (sound of closure stays the same no matter what muzzle accompaniment is used)            {            weaponSoundEffect            =            "DefaultRifle"            ;            closure1            []            =            {            "A3\sounds_f\weapons\closure\closure_rifle_2"            ,            db            -            12            ,            1            ,            10            };            closure2            []            =            {            "A3\sounds_f\weapons\closure\closure_rifle_3"            ,            db            -            12            ,            1            ,            10            };            soundClosure            []            =            {            closure1            ,            0.5            ,            closure2            ,            0.5            };            };            class            StandardSound            :            BaseSoundModeType            // Sounds inside this class are used when soundTypeIndex = 0, according to sounds[]            {            begin1            []            =            {            "A3\Sounds_F\weapons\SMG_02\SMG_02_st_1b"            ,            db0            ,            1            ,            500            };            begin2            []            =            {            "A3\Sounds_F\weapons\SMG_02\SMG_02_st_2b"            ,            db0            ,            1            ,            500            };            begin3            []            =            {            "A3\Sounds_F\weapons\SMG_02\SMG_02_st_3b"            ,            db0            ,            1            ,            500            };            soundBegin            []            =            {            begin1            ,            0.33            ,            begin2            ,            0.33            ,            begin3            ,            0.34            };            };            course            SilencedSound            :            BaseSoundModeType            // Sounds within this class are used when soundTypeIndex = 1, according to sounds[]            {            begin1            []            =            {            "A3\sounds_f\weapons\silenced\silent-07"            ,            db            -            ane            ,            1            ,            200            };            begin2            []            =            {            "A3\sounds_f\weapons\silenced\silent-08"            ,            db            -            1            ,            1            ,            200            };            soundBegin            []            =            {            begin1            ,            0.5            ,            begin2            ,            0.v            };            };            // various other burn fashion parameters            };            };          

Optics

  • in addition to default parameters mentioned in muzzle accessories class, at that place is weaponInfoType to choose a correct resource for weapon info directly inside optic course
    • there is the aforementioned ItemInfo bracket but with different parameters
      • don't forget that ItemInfo inherits some parameters from InventoryOpticsItem_Base_F (eg. muzzlePos and muzzleEnd) in case y'all rename the retentiveness points
    • parameter opticType is used for balancing the optics for specific burn modes (should be farther described by balancing coiffure)
    • modelOptics is the 2D model for selected optics
    • bracket OpticsModes works the same way it used to work in A2/OA
                        class            cfgWeapons            {            class            ItemCore            ;            class            InventoryOpticsItem_Base_F            ;            form            myOpticsAccessory            {            scope            =            2            ;            displayName            =            "My Eyes Accessory"            ;            picture show            =            "\A3\weapons_F\Data\UI\myOpticsAccessory_CA.paa"            ;            model            =            "\A3\weapons_f            \a            cc\myOpticsAccessory"            ;            weaponInfoType            =            "RscOptics_myOptics"            ;            class            ItemInfo            :            InventoryOpticsItem_Base_F            {            mass            =            7            ;            modelOptics            =            "\A3\Weapons_f            \a            cc            \r            eticle_MyOptics_F"            ;            class            OpticsModes            {            class            MyOptics            {            opticsID            =            1            ;            useModelOptics            =            true            ;            opticsPPEffects            []            =            {            "OpticsCHAbera1"            ,            "OpticsBlur1"            };            opticsZoomMin            =            0.0555            ;            opticsZoomMax            =            0.1300            ;            opticsZoomInit            =            0.1300            ;            discreteDistance            []            =            {            100            ,            300            ,            400            ,            500            ,            600            ,            700            ,            800            ,            900            ,            1000            };            discreteDistanceInitIndex            =            1            ;            distanceZoomMin            =            100            ;            distanceZoomMax            =            1000            ;            nFovLimit            =            0.07            ;            discreteFov            []            =            {            0.1300            ,            0.0555            };            discreteInitIndex            =            0            ;            modelOptics            []            =            {            "\A3\Weapons_f            \a            cc            \r            eticle_MyOptics_F"            ,            "\A3\Weapons_f            \a            cc            \r            eticle_MyOptics_z_F"            };            memoryPointCamera            =            "opticView"            ;            visionMode            []            =            {            "Normal"            ,            "NVG"            };            opticsFlare            =            true            ;            opticsDisablePeripherialVision            =            true            ;            cameraDir            =            ""            ;            };            class            IronOnTopOfMyOptics            :            MyOptics            {            opticsID            =            2            ;            useModelOptics            =            fake            ;            opticsFlare            =            false            ;            opticsDisablePeripherialVision            =            false            ;            opticsZoomMin            =            0.375            ;            opticsZoomMax            =            ane.1            ;            opticsZoomInit            =            0.75            ;            memoryPointCamera            =            "eye"            ;            visionMode            []            =            {};            discretefov            []            =            {};            };            };            };            };            };          

Side Accompaniment

  • the class of side accessory is made the same way as for cage accessory
    • bracket ItemInfo contains some specific parameters, but they work the same way equally they did in A2/OA
                        class            cfgWeapons            {            course            ItemCore            ;            class            InventoryFlashLightItem_Base_F            ;            class            mySidesAccessory            {            scope            =            2            ;            displayName            =            "My Sides Accessory"            ;            picture            =            "\A3\weapons_F\Data\UI\mySidesAccessory_CA.paa"            ;            model            =            "\A3\weapons_f            \a            cc\mySidesAccessory"            ;            grade            ItemInfo            :            InventoryFlashLightItem_Base_F            {            mass            =            9            ;            class            Pointer            {            irLaserPos            =            "laser pos"            ;            irLaserEnd            =            "laser dir"            ;            };            course            FlashLight            {};            };            };            };          

Custom reload animations

  • parameter reloadAction is now for both a mag and the weapon.
    • if it is not defined for any of them, default reload is played.
    • if the parameter is defined for the weapon but isn't defined for a magazine, reloadAction for weapon is played upon reloading said weapon
    • if the mag has reloadAction divers, the activity selected by this parameter is played every time (not depending on weapon). This ensures different reloads for different magazines of one weapon (eg. UGLs)
  • the activity chosen by reloadAction is played according to config of animations for said soldier (action in CfgMovesMaleSdr leads to a country in CfgGesturesMale for default soldier), unlike target states could be divers for different activeness maps (eg. there could be a unlike reload gesture for crouch and prone with rifle)
                        class            CfgMovesBasic            {            class            DefaultDie            ;            class            ManActions            {            reloadMyWeapon            =            "reloadMyWeapon"            ;            };            };            class            CfgGesturesMale            {            class            Default            ;            class            States            {            class            reloadMyWeapon            :            Default            {            file            =            "\A3            \a            nims_f\Data\Anim\Sdr\wop\erc\stp            \r            ld            \r            fl            \r            eloadMyWeapon.rtm"            ;            looped            =            0            ;            speed            =            0.400000            ;            mask            =            "handsWeapon"            ;            headBobStrength            =            0.200000            ;            headBobMode            =            two            ;            rightHandIKBeg            =            1            ;            rightHandIKEnd            =            ane            ;            leftHandIKCurve            []            =            {            0            ,            1            ,            0.050000            ,            0            ,            0.950000            ,            0            ,            1            ,            1            };            };            };            };            class            cfgWeapons            {            class            myWeapon            {            reloadAction            =            "reloadMyWeapon"            ;            };            };          

Underwater weapons

  • weapons with canShootInWater ready to ane are able to shoot under water
    • parameter soundBeginWater[] has the same use every bit soundBegin[] and defines what sounds and with what probability is going to be played while shooting under the water surface, both of them are defined per fire fashion:
                        class            Mode_SemiAuto            ;            class            cfgWeapons            {            form            myWeapon            {            modes            []            =            {            "Single"            };            // this example weapon has just ane fire mode            canShootInWater            =            one            ;            // allows to shoot nether water            grade            Single            :            Mode_SemiAuto            {            begin1            []            =            {            "A3\sounds_f\weapons\myWeapon\myWeapon_st_1b.wav"            ,            db5            ,            1            ,            900            };            begin2            []            =            {            "A3\sounds_f\weapons\myWeapon\myWeapon_st_2b.wav"            ,            db5            ,            1            ,            900            };            begin3            []            =            {            "A3\sounds_f\weapons\myWeapon\myWeapon_st_3b.wav"            ,            db5            ,            1            ,            900            };            soundBegin            []            =            {            begin1            ,            0.33            ,            begin2            ,            0.33            ,            begin3            ,            0.34            };            // all 3 sounds have roughly the same probablity            beginwater1            []            =            {            "A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_1b.wav"            ,            db0            ,            1            ,            200            };            beginwater2            []            =            {            "A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_2b.wav"            ,            db5            ,            one            ,            200            };            beginwater3            []            =            {            "A3\sounds_f\weapons\myWeapon\underwater_myWeapon_st_3b.wav"            ,            db5            ,            1            ,            200            };            soundBeginWater            []            =            {            beginwater1            ,            0.33            ,            beginwater2            ,            0.33            ,            beginwater3            ,            0.34            };            // all three sounds have roughly the same probablity            };            };            };          
  • underwater ammo has some different characteristics
    • waterFriction is underwater equivalent of airFriction and supercavitating ammunition has this close to zero. Standard ammo doesn't accept this set and that ways it is set to -0.four by default (ie. stops near correct later on inbound h2o)
    • timeToLive for underwater ammo is rather low to permit information technology be harmless afterward some forty meters
    • the fancy bubble effect is done by having effectFly set to AmmoUnderwater, you lot'll try to modify information technology to work even on footing and we all know it
                        grade            cfgAmmo            {            form            BulletBase            ;            class            myAmmo            :            BulletBase            // for myWeapon            {            waterFriction            =            -            0.00096            ;            // nearly direct line underwater            timeToLive            =            0.12            ;            // that's enough for 45 meters underwater            effectFly            =            "AmmoUnderwater"            ;            };            };          

Ammo changes on fly and on hit

  • there are ii new simulations of ammo available mainly for shells and missiles.
  • simulation shotSubmunitions allows to deploy multiple ammo from the parent one upon meeting sure conditions
    • parameter submunitionAmmo defines class of newly created ammo and this could be used multiple times
      • you could set up the inherited ammo and it would spread in cone according to submunitionConeAngle and submunitionConeAngleHorizontal (in degrees)
      • Arma 3 logo black.png 1.68 you can too define multiple sub-munition projectiles and their probability: submunitionAmmo[] = {"MySubammo1",0.eight,"MySubammo2",0.2}; (80% of sub-munition will be MySubammo1 and 20% will be MySubammo2)
    • submunitionConeType[] describes pattern of ammo in detail, first function is a distribution function ("random", "randomcenter", "poissondisc", "poissondisccenter", "custom"), second parameter is number of ammo except of custom one, where information technology is another array of pairs for specific locations
                        submunitionConeType            []            =            {            "random"            ,            10            };            submunitionConeType            []            =            {            "randomcenter"            ,            10            };            submunitionConeType            []            =            {            "randomupcone"            ,            ten            };            submunitionConeType            []            =            {            "poissondisc"            ,            10            };            submunitionConeType            []            =            {            "poissondisccenter"            ,            ten            };            submunitionConeType            []            =            {            "custom"            ,            {{            0            ,            0            },            {            -            1            ,            0            },            {            1            ,            0            },            {            0            ,            -            1            },            {            0            ,            one            }}            };          
    • parameter submunitionAutoleveling affects if cone has the upwards vector in model space (rotated when lying on steep hill) or always upwards in world space coord system (replaced by submunitionDirectionType)
    • parameter submunitionDirectionType defines the direction in which the submunition is generated; "SubmunitionModelDirection" retains the parent munition's vector, "SubmunitionAutoLeveling" levels the submunition out horizontally and "SubmunitionTargetDirection" generates the submunition in the direction of the parent'south locked target (see PCML from ane.81+). If present the param overrides submunitionAutoleveling parameter.
    • parameter triggerDistance is used to deploy ammo in set up 3D distance before expected target
    • parameter triggerTime is used to deploy ammo in ready time after existence fired
    • parameter triggerOnImpact(bool) is used to deploy ammo after bear upon
    • parameter deleteParentWhenTriggered (bool) defines if parent munition should be deleted after releasing sub munition
    • parameter submunitionInitialOffset (array) sets spawning outset of submunition. i.e. {0,0,-0.2}; will spawn projectile 20 cm before touch on position if it is coupled with SubmunitionModelDirection for example.
    • parameter submunitionInitSpeed sets the submunition init speed directly (in thousand/s)
    • parameter triggerSpeedCoef is a coefficient of speed of inherited ammo relative to speed of parent ammo
      • Arma 3 logo black.png i.68 you can also define the speed as range, with the actual coefficient beingness selected randomly from within the range: triggerSpeedCoef[] = {0.5,1.0};
    • parameter submunitionParentSpeedCoef is a coefficient of how much speed of the parent munition is retained in the submunition - i.e. submunitionParentSpeedCoef = 0; will spawn submunition exactly at its own submunitionInitSpeed regardless of how fast was the parent munition flying
    • for Artillery computer use array aimAboveTarget[] and aimAboveDefault as a index of the array to gear up dissimilar heights to alter the ammo to something unlike (eg. flare)
                        class            cfgAmmo            {            course            SubmunitionBase            ;            grade            MyAmmo            :            SubmunitionBase            {            submunitionAmmo            =            "MySubmunitionAmmo"            ;            submunitionConeType            []            =            {            "poissondisc"            ,            ten            };            submunitionConeAngle            =            10            ;            triggerDistance            =            100            ;            };            };          
  • simulation shotDeploy is used to change ammo upon touch (eg. alter to a mine)
    • it uses the same submunitionAmmo parameter as described higher up
                        class            cfgAmmo            {            class            ShotDeployBase            ;            class            Mo_ClassicMineRange            :            ShotDeployBase            {            submunitionAmmo            =            "APERSMine_Range_Ammo"            ;            // some random mine deployable by a mortar            airFriction            =            0            ;            // artillery ammo works ameliorate without friction            EffectFly            =            "ArtilleryTrails"            ;            // some funky upshot of smoke trails and stuff            };            };          

Explosion shielding

  • class hitpoints in configuration of all vehicles (including soldiers) has got a new parameter called explosionShielding
    • this parameter but multiplies inidrectHit taken from explosives (that makes it explosion vulnerability in an constructive fashion) - the higher it is the more damage would selected hitpoint get from the hitting
                        class            cfgVehicles            {            class            myVehicle            {            class            HitPoints            {            class            HitLFWheel            {            armor            =            0.12            ;            explosionShielding            =            0.eight            ;            };            };            };            };          

Weapon inertia

  • inertia coefficient of the weapon is easily set by the inertia parameter, common values are 0.1 for a pistol, 0.5 for a burglarize, 0.7 for machinegun and around ane.0 for a launcher
                        form            cfgWeapons            {            class            myWeapon            {            // inertia coefficient of the weapon            inertia            =            0.5            ;            };            };          

Inventory icons overlay method

  • Update 1.40 adds a new functionality for Inventory icons of weapons - using 1 icon for the weapons and display slot icons as an overlay for that icon.
  • If there is no slot with positive value of iconScale property, the game falls back to old behaviour
  • The icon lower layer of the inventory picture is withal defined in property icon of the weapon itself
                        grade            cfgWeapons            {            class            myWeapon            {            class            WeaponSlotsInfo            :            WeaponSlotsInfo            // default accessories for this slot, iconPicture and iconPinpoint is defined in the base class            {            class            MuzzleSlot            :            MuzzleSlot            {            iconPosition            []            =            {            0.0            ,            0.45            };            // position of the slot icon inside of the weapon icon, relative to pinnacle-left corner in {correct, down} format            iconScale            =            0.2            ;            // scale of icon described in iconPicture            iconPicture            =            "\A3\Weapons_F\Data\UI            \a            ttachment_muzzle.paa"            ;            // icon for selected slot            iconPinpoint            =            "Middle"            ;            // acme, bottom, left, right, center alignment of the icon on snap point            };            form            CowsSlot            :            CowsSlot            // default accessories for this slot, iconPicture and iconPinpoint is defined in the base class            {            iconPosition            []            =            {            0.5            ,            0.35            };            iconScale            =            0.2            ;            };            class            PointerSlot            :            PointerSlot            // default accessories for this slot, iconPicture and iconPinpoint is defined in the base class            {            iconPosition            []            =            {            0.20            ,            0.45            };            iconScale            =            0.25            ;            };            };            icon            =            "\A3\MyAddon\Rifles\MyRifle\Information\MyRifle_X_CA.paa"            // this stays the same every bit before and is used every bit a base layer            };            };          

Magazine compatibility groups

  • Update 1.lxxx added new engineering chosen magazineWells (also known as "magwells") which replaces former, non working magazineGroups. Technology consist from two parts: class CfgMagazineWellsin root config & parameters (array) magazineWell in weapon muzzle. In contrast to old solution, Magazine Wells are using separate course in root config containing all type of magazine wells with list of arrays containing uniform classes. It'southward possible to add new entries by tertiary political party modifications
                        course            cfgWeapons            {            grade            arifle_MX_Base_F            ;            class            rhs_weap_m4_Base            :            arifle_MX_Base_F            {            [...]            // first magazine in array is used every bit a default magazine in Virtual Arsenal            // Eden editor ammo crates widget is as well using that array to create listing of uniform magazine which can be placed in crate            magazines            []            =            {            "rhs_mag_30Rnd_556x45_M855A1_Stanag"            };            // Link to magazine wells            magazineWell            []            =            {            STANAG_556x45            };            };            };            // Located in root config            class            CfgMagazineWells            {            class            STANAG_556x45            {            // Magazines listed by mod            // It is possible to add together new arrays to course but for at present inheritance (i.e. STANAG_556x45_New: STANAG_556x45 {};) is not supported                        RHS_Magazines            []            =            {            "rhs_mag_30Rnd_556x45_M855_Stanag"            ,            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Red"            ,            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Green"            ,            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Yellow"            ,            "rhs_mag_30Rnd_556x45_M855_Stanag_Tracer_Orange"            ,            "rhs_mag_100Rnd_556x45_M855A1_cmag"            ,            "rhs_mag_100Rnd_556x45_M855A1_cmag_mixed"            ,            "rhs_mag_100Rnd_556x45_M855_cmag"            ,            "rhs_mag_100Rnd_556x45_M855_cmag_mixed"            ,            "rhs_mag_100Rnd_556x45_Mk318_cmag"            ,            "rhs_mag_100Rnd_556x45_Mk262_cmag"            };            // Magazines divers                        BI_Magazines            []            =            {            "30Rnd_556x45_Stanag"            ,            "30Rnd_556x45_Stanag_Tracer_Red"            ,            "30Rnd_556x45_Stanag_Tracer_Green"            ,            "30Rnd_556x45_Stanag_Tracer_Yellow"            };            };            };          

Bipods

  • Update 1.42 (Marksmen DLC release) adds a possibility to utilise #bipods by either utilizing another weapon slot - under barrel - or by using a inbuilt one
    • Bipod as an attachment works exactly the same way as for instance cage zipper
    • There are two new properties - deployedPivot describing retentivity bespeak in model around which the weapon pivots while deployed and hasBipod which is self-explanatory
                        form            CfgWeapons            {            class            ItemCore            ;            form            InventoryUnderItem_Base_F            ;            class            test_bipod_01_F            :            ItemCore            {            scope            =            2            ;            // available in Armory            displayName            =            "My Little Bipod"            ;            // name of item in Inventory (and Arsenal)            picture            =            "\A3\Weapons_F_Mark\Data\UI\gear_accu_bipod_01_snd_CA.paa"            ;            // icon in Inventory            model            =            "\Samples_f\Test_weapon_01            \t            est_bipod_01_F.p3d"            ;            // path to model            form            ItemInfo            :            InventoryUnderItem_Base_F            {            deployedPivot            =            "bipod"            ;            // what betoken should be used to be on surface while unfolded            hasBipod            =            true            ;            // bipod plain has a bipod            mass            =            10            ;            // what is the mass of the object            soundBipodDown            []            =            {            "A3\Sounds_F_Mark            \a            rsenal\sfx            \b            ipods\Bipod_AAF_down"            ,            db            -            3            ,            1            ,            xx            };            // sound of unfolding the bipod            soundBipodUp            []            =            {            "A3\Sounds_F_Mark            \a            rsenal\sfx            \b            ipods\Bipod_AAF_up"            ,            db            -            3            ,            ane            ,            twenty            };            // sound of folding the bipod            };            inertia            =            0.two            ;            // how much does the bipod add to inertia of the weapon            };            };          
  • Inbuilt #bipods are much easier, you just need to add deployedPivot and hasBipod properties to the weapon itself
                        class            cfgWeapons            {            class            myWeapon            {            deployedPivot            =            "bipod"            ;            // what point should be used to be on surface while unfolded            hasBipod            =            truthful            ;            // a weapon with bipod plain has a bipod            soundBipodDown            []            =            {            "A3\Sounds_F_Mark            \a            rsenal\sfx            \b            ipods\Bipod_AAF_down"            ,            db            -            3            ,            i            ,            20            };            // sound of unfolding the bipod            soundBipodUp            []            =            {            "A3\Sounds_F_Mark            \a            rsenal\sfx            \b            ipods\Bipod_AAF_up"            ,            db            -            3            ,            i            ,            20            };            // audio of folding the bipod            };            };          
  • The of import office about bipods is that the actual model may be animated despite of it being a proxy on a weapon
    • Animation source bipod_legs is used for that, possible values are 0 for weapon not deployed and 1 for weapon deployed
    • The model obviously needs to take a skeleton to work properly
    • Configuration is the same in case of inbuilt bipods, the but deviation is in animation source - it is bipod

{model.cfg}

                        class            legs            {            type            =            rotation            ;            source            =            bipod_legs            ;            // this ane is for an attachment, weapon itself would have just bipod            sourceAddress            =            clamp            ;            selection            =            "bipod_legs"            ;            axis            =            "bipod_legs_axis"            ;            minValue            =            0            ;            maxValue            =            1            ;            angle0            =            (            rad            0            );            angle1            =            (            rad            ninety            );            };          
  • The bipods may accept even adjustable length of legs according to bodily position
    • Blitheness source bipod_legs_length is used for that equally it returns distance betwixt bipod point and surface in meters (means that 5 centimeters are 0.05 value of the source)
    • Configuration is the same in instance of inbuilt #bipods, the only divergence is in animation source - it is bipod_length

{model.cfg}

                        course            Leg_L_move            // nosotros use dissimilar animation for each leg as they are folded by default and rotate while unfolding, this 1 is for the left ane            {            type            =            translation            ;            source            =            bipod_legs_length            ;            selection            =            "Leg_L"            ;            axis            =            "Leg_L_axis"            ;            // the axis is function of "bipod_legs" choice in model            retention            =            1            ;            minValue            =            0            ;            maxValue            =            0.1            ;            // this #bipod extends up to 10 centimeters for example            offset0            =            0            ;            offset1            =            ane            ;            // we use centrality with length of 10 centimeters, that means translation needs to be multiplied past x            };          

Pistol holsters

  • Update 1.48 adds a possibility to use evidence pistols inside of holsters of vests that have the holster
    • The belong model should incorporate proxy leading to \A3\Characters_F\Proxies\pistol_holstered.p3d, the standard position is in sample of vest inside Characters samples, just feel free to move it according to the model
    • Every bit soon as the vest contains the proxy, weapon is going to be shown in it. At that place are only two properties to adjust the way the weapon shows on the proxy:
      • The standard pistol is P07 which has its center around the trigger. If you lot desire to move the center of your weapon, just create a memory bespeak called holster (according to holsterOffset property in weapon configuration) to serve as new center of the model
      • P07 is fifty-fifty taken equally a standard weapon for holster size, y'all may adapt the scale at which is your gun drawn in the holster with holsterScale property
                        class            Pistol            ;            class            Pistol_Base_F            :            Pistol            {            form            WeaponSlotsInfo            ;            };            class            MyLittlePistol            :            Pistol_Base_F            {            class            WeaponSlotsInfo            :            WeaponSlotsInfo            {            holsterOffset            =            "holster"            ;            // name of a retentiveness point in weapon to serve as zero of the model            holsterScale            =            1            ;            // calibration of gun in holster relative to standard size (0.5 ways the gun is 50 % of original size)            };            };          

Magazine Proxies

  • With update 1.78 it is possible to have dynamic magazines using modelSpecial & modelSpecialIsProxy property.
    • More info can be found on following page: Arma 3: Magazine Proxies

Virtual Armory visibility

  • In social club to reduce clutter in Virtual Arsenal weapon list, parameter "baseWeapon" was introduced, which filters out all subvariants from the VA.
                        class            cfgWeapons            {            class            myWeapon            {            baseWeapon            =            "myWeapon"            ;            };            grade            myWeapon2            :            myWeapon            {            };            form            myWeapon3            :            myWeapon            {            baseWeapon            =            "myWeapon3"            ;            };            };          
  • In above instance "myWeapon" & "myWeapon3" would exist visibile in Virtual Arsenal. Please annotation, that all 3 weapons tin be usually accessed in game and that baseWeapon parameter is merely used in Virtual Arsenal

See As well

  • Arma ii Weapon to Arma iii
  • CfgWeapons Config Reference
  • Page give-and-take on the BI forums

Arma 3 How To Use Bipod,

Source: https://community.bistudio.com/wiki/Arma_3:_Weapon_Config_Guidelines

Posted by: hutchinsonloulty.blogspot.com

0 Response to "Arma 3 How To Use Bipod"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel