Miroslaw Kowalski 54 Posted December 13, 2015 Hey guys, I made a revolver for ArmA III and it's almost done. The only thing I'm missing is the part of the animation where the bullets fall out of the drum and then get put into the drum again. Like in the Vanilla revolver but unfortunately I can't find the model.cfg for it. Does anybody have an idea or maybe a working model.cfg? Thanks Buster Share this post Link to post Share on other sites
da12thMonkey 1943 Posted December 13, 2015 You'd need to add an extra selection for the shell casings and have them linked to the cylinder via cfg Skeletons, and an axis for them to move along. Something like this: class CfgSkeletons { class MY_Revolver { pivotsModel=""; isDiscrete = 0; skeletonInherit = ""; skeletonBones[] = { "cylinder","", "bullets_axis","cylinder", "bullets","cylinder" }; }; }; You probably don't need to add the bullets_axis to the skeleton since I think in your case you'd always want it along the Z-axis of the weapon anyway - i.e the axis doesn't really need to move with the cylinder since its direction is always the same whether the cylinder is in the open or closed state. But It's something I do out of habit. Anyway, one would then add a couple of extra animation stages to the reloadMagazine sourced animation so that you have the cylinder open, casings fall out and hide, casings reappear and move back inside the cylinder, then close the cylinder. class CfgModels { class Default { sectionsInherit=""; sections[]={}; skeletonName=""; }; class Revolver: Default //classname must match .p3d name { skeletonName = "MY_Revolver"; sectionsInherit = ""; sections[] = {"muzzleFlash","Camo"}; class Animations { class cylinder_reload_open { type = "rotation"; source = "reloadMagazine"; selection = "cylinder"; axis = "cylinder_axis"; minValue = 0.135; maxValue = 0.170; angle0=0; angle1="rad 90"; }; class bullets_reload_move_1 { type = "translation"; source = "reloadMagazine"; selection = "bullets"; axis = "bullets_axis"; minValue = 0.175; maxValue = 0.190; offset0 = 0.0; offset1 = 0.5; }; class bullets_reload_hide { type="hide"; source="reloadMagazine"; selection="bullets"; minValue=0.000000; maxValue=1.00000; hideValue=0.190; unhideValue = 0.550; }; class bullets_reload_move_2: magazine_reload_move_1 { minValue = 0.573; maxValue = 0.602; offset0 = 0.0; offset1 = -0.5; }; class cylinder_reload_close: cylinder_reload_open { minValue = 0.700; maxValue = 0.900; angle0=0; angle1="rad -90"; }; }; }; }; The minvalue/maxValue, hide/unhide settings need tweaking to alter the timings and match the hand animation but you can see they are sequential. The offset values in the bullets_reload_move are related to the distance between your two bullets_axis memory points - if offset1 = 1; the bullets will translate the whole length of the axis, if offset1 = 0.5; they will move half the length of the axis. Using -ve values will move them in the opposite direction Share this post Link to post Share on other sites