BeagleWeagle 0 Posted July 22 I am having trouble getting a pistol i'm trying to implement to animate. I'm not quite sure what i'm missing regarding my model.cfg. the weapon recoils and rotates during reload animation, but the slide does not move, nor does the trigger and magazine when their respective animations should be played. could use some help. model.cfg: class CfgSkeletons { class Skeleton { isDiscrete=0; skeletonInherit=""; skeletonBones[]={"recoil", "", "bolt", "recoil", "magazine", "recoil", "trigger", "recoil", "bolt_axis", "recoil", "magazine_axis", "recoil", "trigger_axis", "recoil", ""}; }; }; class CfgModels { class czp10c { htMin=0; htMax=0; afMax=0; mfMax=0; mFact=0; tBody=0; skeletonName="Skeleton"; sectionsInherit=""; sections[]={"bolt", "recoil", "magazine", "trigger"}; class Animations { class magazine_reloadmag_hide { type="hide"; source="reloadmagazine"; selection="magazine"; sourceAddress="clamp"; minPhase=0; maxPhase=1; minValue=0; maxValue=1; memory=0; hideValue=0.248; unHideValue=0.64; }; class magazine_reloadmag_move_1 { type="translation"; source="reloadmagazine"; selection="magazine"; axis="magazine_axis"; sourceAddress="clamp"; minPhase=0.2; maxPhase=0.248; minValue=0.2; maxValue=0.248; memory=0; offset0=0; offset1=1.5; }; class magazine_reloadmag_move_2 { type="translation"; source="reloadmagazine"; selection="magazine"; axis="magazine_axis"; sourceAddress="clamp"; minPhase=0.62; maxPhase=0.68; minValue=0.62; maxValue=0.68; memory=0; offset0=0; offset1=-1.5; }; class trigger_reload_rot { type="rotation"; source="reload"; selection="trigger"; axis="trigger_axis"; sourceAddress="clamp"; minPhase=0.5; maxPhase=1; minValue=0.5; maxValue=1; memory=0; angle0=0; angle1=0.6981317; }; class bolt_reload_move { type="translation"; source="reload"; selection="bolt"; axis="bolt_axis"; sourceAddress="clamp"; minPhase=0; maxPhase=1; minValue=0; maxValue=1; memory=0; offset0=0; offset1=-0.2; }; class bolt_empty_move { type="translation"; source="isempty"; selection="bolt"; axis="bolt_axis"; sourceAddress="clamp"; minPhase=0; maxPhase=1; minValue=0; maxValue=1; memory=0; offset0=0; offset1=-0.2; }; class recoil_reload_rot_1 { type="rotation"; source="reload"; selection="recoil"; axis="recoil_axis"; sourceAddress="clamp"; minPhase=0.97; maxPhase=1; minValue=0.97; maxValue=1; memory=0; angle0=0; angle1=-0.08726647; }; class recoil_reload_rot_2 { type="rotation"; source="reload"; selection="recoil"; axis="recoil_axis"; sourceAddress="clamp"; minPhase=0.82; maxPhase=0.97; minValue=0.82; maxValue=0.97; memory=0; angle0=0; angle1=-0.04363323; }; class recoil_reload_rot_3 { type="rotation"; source="reload"; selection="recoil"; axis="recoil_axis"; sourceAddress="clamp"; minPhase=0.5; maxPhase=0.82; minValue=0.5; maxValue=0.82; memory=0; angle0=0; angle1=0.08726647; }; class recoil_reload_rot_4 { type="rotation"; source="reload"; selection="recoil"; axis="recoil_axis"; sourceAddress="clamp"; minPhase=0.25; maxPhase=0.5; minValue=0.25; maxValue=0.5; memory=0; angle0=0; angle1=0.02617994; }; class recoil_reload_rot_5 { type="rotation"; source="reload"; selection="recoil"; axis="recoil_axis"; sourceAddress="clamp"; minPhase=0; maxPhase=0.25; minValue=0; maxValue=0.25; memory=0; angle0=0; angle1=0.01745329; }; }; }; }; Share this post Link to post Share on other sites
Jackal326 1181 Posted July 22 I can only assume that the axis are correctly named in the memory LOD? I've always defined my handgun slide recoil differently: class slide { type="translation"; // The type of animation. source="reload"; // The controller that provides input. selection="slide"; // The name of the skeleton bone used. begin="slide_axis_begin"; // A memory point indicating the "start" of the movement end="slide_axis_end"; // A memory point that is where the "start" point moves too minValue=0; // The minimum value of the motion range. i.e. The controller input when animation phase is 0. maxValue="1"; // The maximum value of the motion range. i.e. The controller input when animation phase is 1. offset0="0"; offset1="1"; }; Share this post Link to post Share on other sites
BeagleWeagle 0 Posted July 22 That seems to have nailed it. now i've got to figure out why my "side" proxy isn't showing my attachment lol. Thanks! Share this post Link to post Share on other sites
Jackal326 1181 Posted July 22 5 hours ago, BeagleWeagle said: That seems to have nailed it. now i've got to figure out why my "side" proxy isn't showing my attachment lol. Thanks! Could be at least two reasons: i) The proxy isn't correctly defined in the weapon's config: class WeaponSlotsInfo: WeaponSlotsInfo { class MuzzleSlot: SlotInfo { linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; compatibleItems[] = {}; }; class CowsSlot: SlotInfo { linkProxy = "\A3\data_f\proxies\weapon_slots\TOP"; compatibleItems[] = {}; }; class PointerSlot: SlotInfo { linkProxy = "\A3\data_f\proxies\weapon_slots\SIDE"; // this part compatibleItems[] = {}; }; }; ii) If its a new custom-made attachment it could be that it *IS* showing, but the model's placement is drastically off so its floating around somewhere. If its a default attachment that isn't showing it might be that the proxy's position is misaligned. You can check this by re-pathing the 'SIDE' proxy in Object Builder to your custom attachment and then previewing in Bulldozer. Then repeat the process for the default attachment - If everything is aligned correctly (for BOTH) then its probably the first point that is the cause. If both attachments are misaligned then your proxy is in the wrong place and will need adjusting accordingly. If only the default attachment is misaligned then your proxy is in the wrong place AND your attachment's relative X,Y,Z positioning will need altering accordingly to re-align with the repositioned proxy. If only your custom attachment doesn't line up you'll just need to adjust its position accordingly (in its own model, don't just move the proxy else you'll break other attachment's positioning). Share this post Link to post Share on other sites