This is an old revision of the document!
How to port ArmA 2 addons into ArmA 3, hasty guide but more tutorials are planned!
Howto port ArmA 2 character into ArmA 3
Howto port ArmA 2 Terrain WRP into ArmA 3
Howto port ArmA 2 Vehicle into ArmA 3
Animations are necessary to get in/out of the vehicle.
Unpack tracked.pbo from your ArmA 2 and copy the following files from the data\anim\ directory:
KIA_Abrams_Driver.rtm KIA_Abrams_Gunner.rtm KIA_Abrams_Commander.rtm KIA_Abrams_CommanderOut.rtm KIA_Abrams_DriverOut.rtm KIA_Abrams_GunnerOut.rtm Abrams_Commander.rtm Abrams_CommanderOut.rtm Abrams_Gunner.rtm Abrams_GunnerOut.rtm Abrams_DriverOut.rtm Abrams_Driver.rtm
Config.cpp:
class KIA_Abrams_Commander : DefaultDie { actions = "DeadActions"; file = "\ADDON\anims\KIA_Abrams_Commander.rtm"; terminal = 1; soundEnabled = 0; connectTo[] = {"DeadState", 0.1}; speed = 0.5; looped = 0; }; class Abrams_Commander : Crew { file = "\ADDON\anims\Abrams_Commander.rtm"; interpolateTo[] = {"KIA_Abrams_Commander", 1}; }; class Abrams_CommanderOut : Abrams_Commander { file = "\ADDON\anims\Abrams_CommanderOut.rtm"; interpolateTo[] = {"KIA_Abrams_Commander", 1}; }; class KIA_Abrams_Driver : DefaultDie { actions = "DeadActions"; file = "\ADDON\anims\KIA_Abrams_Driver.rtm"; speed = 0.5; looped = 0; terminal = 1; soundEnabled = 0; connectTo[] = {"DeadState", 0.1}; }; class Abrams_Driver : Crew { file = "\ADDON\anims\Abrams_Driver.rtm"; interpolateTo[] = {"KIA_Abrams_Driver", 1}; }; class Abrams_DriverOut : Abrams_Driver { file = "\ADDON\anims\Abrams_DriverOut.rtm"; interpolateTo[] = {"KIA_Abrams_Driver", 1}; }; class KIA_Abrams_Gunner : DefaultDie { actions = "DeadActions"; file = "\ADDON2\anims\KIA_Abrams_Commander.rtm"; speed = 0.5; looped = 0; terminal = 1; soundEnabled = 0; connectTo[] = {"DeadState", 0.1}; }; class Abrams_Gunner : Crew { file = "\ADDON2\anims\Abrams_Commander.rtm"; interpolateTo[] = {"KIA_Abrams_Gunner", 1}; };
Replace each driverOpticsModel = “\ca\Tracked\optika_tank_driver”; with the following: driverOpticsModel = “\a3\armor_f\driverOptics”;
Replace each gunnerOpticsModel = “\ca\Tracked\optika_tank_gunner”; with the following: gunnerOpticsModel = “\a3\armor_f\2D_scope_strider_commander”;
Replace each gunnerOpticsModel = “\ca\Tracked\optika_tank_driver”; with the following: gunnerOpticsModel = “\a3\armor_f\2D_scope_crows”;
Replace each gunnerOutOpticsModel = “\ca\Weapons\optika_empty”; with the following: gunnerOutOpticsModel = “\A3\weapons_f\reticle\optics_empty”;
Replace each cursor = “\ca\Weapons\Data\w_weapon_mg”; with the following: cursor = “mg”;
Replace each cursorAim = “\ca\Weapons\Data\w_weapon_mg”; with the folloowing: cursorAim = “mg”;
Proxies
Load the weapon into Oxygen2 or whatever modelling tool you use. Remove all attachments to the weapon that are either scopes, lasers, flashlights, or silencers. Front grips and grenade launchers are not included in the customization features of Arma 3 and can therefore be kept.
Remove all proxies from the weapon. Then, create a new proxy for
Flip-up iron sights
Add the vertices of the sights parts that should flip up/down to named selections. In my case I used “front sight” and “back sight”. Define rotation axis for them in the memory lod. Although not mandatory, I modelled the sights flat (i.e. flipped down) and rotate them around 270 degrees into an upward position when no optics is mounted. In your model.cfg, define rotation animations for the sights based on the hasOptics source, for example:
class backsight_flip { type = "rotationZ"; source = "hasOptics"; memory = 1; selection = "back sight"; animPeriod = 0; axis = "backsight axis"; minValue = 0; maxValue = 0.3; minPhase = 0; maxPhase = 0.3; angle0 = 4.712389; angle1 = 0; };
Do something similar for the front sight.
Muzzle Flash
In order to hide the muzzle flash when the a suppressor is mounted, define a “hide” animation for the muzzle flash:
class muzzleflash_hide { type = "hide"; source = "hasSuppressor"; selection = "zasleh"; minValue = 0; maxvalue = 0.25; hideValue = 0.01; };
I am not entirely sure this is needed, but I had the proxy triangle show up occasionally if I didn't do this. Inventory Icons
The inventory icon for the weapon is actually eight icons. The following naming scheme is assumed (actually only the last _xx_ca.paa is implied):
Replace <wpnName> with a generic name (example: acr_wdl). The meaning of the names are: x - no attachment m - muzzle (silencer) attachment s - side rail attachment t - top rail attachment.
So, if you attach a silencer and scope to a weapon, the inventory screen will show gear_acr_wdl_mt_ca.paa as the icon. The default weapon icons show a stylized scope, laser or silencer on the weapon. Since in theory any attachment can be mounted, it's a good idea to stay with the scheme.