Rabid Squirrel 149 Posted October 30, 2016 Hi there, I'm having a little bit of trouble animating my UGL. Here's the Model Config: class magazine_gl_reload_move_1 { type="translation"; source="reloadMagazine2"; selection="gl_reloadmech"; //axis="gl_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.099291;//rad 5.688955 maxValue = 0.141844;//rad 8.127063 begin = "gl_start"; end = "gl_end"; offset0 = 0.0; offset1 = 1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_gl_reload_move_2 { type="translation"; source="reloadMagazine2"; selection="gl_reloadmech"; //axis="gl_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.808511;//rad 46.32427 maxValue = 0.836879;//rad 47.949635 begin = "gl_start"; end = "gl_end"; offset0 = 0.0; offset1 = -1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; As it says in the title, the animation works perfectly in bulldozer, but doesn't seem to activate in-game. Any and all help is appreciated, I've probably made a config error somewhere :mellow: Cheers, Squirrel. Share this post Link to post Share on other sites
reyhard 2082 Posted October 30, 2016 https://community.bistudio.com/wiki/Model_Config Arma 3 Update 1.60 comes with a new way how to handle multiple muzzle animation sources for weapons: revolving, ammo, ammoRandom, reload, trigger, reloadMagazine, hasMagazine, isEmptyNoReload, isEmpty, zeroing, weaponMode may be used with indexes ranging from -1 to (number of muzzles - 1) in format "name.x" (e.g. reload.0) Index -1 means currently selected muzzle, index 0 means first muzzle of given weapon, index 1 second and so on Animation sources without indexes should behave the same way as before source="reloadMagazine.1"; Share this post Link to post Share on other sites
Rabid Squirrel 149 Posted October 30, 2016 https://community.bistudio.com/wiki/Model_Config source="reloadMagazine.1"; No joy, still works fine in Bulldozer, no luck in game though. This keeps refusing to move: Any other ideas? Share this post Link to post Share on other sites
andy1 71 Posted October 30, 2016 Stupid question but you have applied everything to the View-Pilot LOD as well as LOD 1? Sent from my iPhone using Tapatalk Share this post Link to post Share on other sites
Rabid Squirrel 149 Posted October 30, 2016 Stupid question but you have applied everything to the View-Pilot LOD as well as LOD 1? Sent from my iPhone using Tapatalk Yeah View Pilot and LOD 1 are copies of each other on this model. Share this post Link to post Share on other sites
reyhard 2082 Posted October 31, 2016 post whole model.cfg then + maybe some pics of it from oxygen (res lod + memory lod) Share this post Link to post Share on other sites
Rabid Squirrel 149 Posted November 1, 2016 (edited) The Information you asked for: Model.cfg class CfgSkeletons { class Default { isDiscrete=1; skeletonInherit=""; skeletonBones[]={}; }; class arifle_base: Default { skeletonBones[]= { "magazine", "", "zasleh", "", "bolt", "", "trigger", "", "OP", "", "gl_reloadmech", "" }; }; }; class CfgModels { class Default { sectionsInherit=""; sections[]={}; skeletonName=""; }; class arifle_base: Default { skeletonName="arifle_base"; sections[]= { "magazine", "bolt", "zasleh", "trigger", "OP", "gl_reloadmech", "Camo1", "Camo2", "Camo3", "Camo4", "Camo5", "Camo6", "Camo7", "Camo8" }; class Animations { }; }; class rs_arifle_r2016_gl: arifle_base { class Animations { class magazine_reload_hide { type="hide"; source="reloadMagazine"; selection="magazine"; // sourceAddress = clamp;// (default) minValue = 0.0;//rad 0.0 maxValue = 1.0;//rad 57.29578 hideValue = 0.13; // was 0.145455 unHideValue = 0.381818; animPeriod = 0.0; initPhase = 0.0; }; class magazine_reload_move_1 { type="translation"; source="reloadMagazine"; selection="magazine"; axis="magazine_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.109091;//rad 6.250454 maxValue = 0.145455;//rad 8.333958 offset0 = 0.0; offset1 = 2.5; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_reload_move_2 { type="translation"; source="reloadMagazine"; selection="magazine"; axis="magazine_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.354545;//rad 20.313932 maxValue = 0.418182;//rad 23.960062 offset0 = 0.0; offset1 = -2.5; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_reload_rotation_1 { type="rotation"; source="reloadMagazine"; selection="magazine"; axis="magazine_reload_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.1;//rad 8.333958 //was 0.145455 maxValue = 0.381818;//rad 21.87656 angle0 = 0.0;//rad 0.0; //was 0.0 angle1 = -0.2;//rad 30.0; // was 0.5235988 animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_reload_rotation_2 { type="rotation"; source="reloadMagazine"; selection="magazine"; axis="magazine_reload_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.454545;//rad 26.04351 maxValue = 0.481818;//rad 27.606138 angle0 = 0.0;//rad 0.0;//was 0.0 angle1 = 0.2;//rad -30.0; // was -0.5235988 animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class bolt_reload_move_1 { type="translation"; source="reloadMagazine"; selection="bolt"; memory=1; // sourceAddress = clamp;// (default) begin="bolt_start"; end="bolt_end"; minValue = 0.766667;//rad 43.926785 maxValue = 0.8;//rad 45.836624 offset0 = 0.0; offset1 = 1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class bolt_reload_move_2: bolt_reload_move_1 { type="translation"; source="reloadMagazine"; selection="bolt"; begin="bolt_start"; end="bolt_end"; // sourceAddress = clamp;// (default) minValue = 0.833333;//rad 47.746464 maxValue = 0.866667;//rad 49.65636 offset0 = 0.0; offset1 = -1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class no_magazine { type="hide"; source="hasMagazine"; selection="magazine"; minValue=0; maxValue=1; hideValue=0.5; unhideValue = -1.0; }; class bolt_empty { type="translation"; source="isempty"; selection="bolt"; memory=1; sourceAddress="clamp"; minValue=0; maxValue=1; begin="bolt_start"; end="bolt_end"; offset0=0; offset1=1; }; class bolt_empty_1 { type="translation"; source="reload"; selection="bolt"; memory=1; sourceAddress="clamp"; minValue=0; maxValue=1; begin="bolt_start"; end="bolt_end"; offset0=0; offset1=1; }; class trigger { type = "rotation"; source = "reload"; sourceAddress = "clamp"; selection = "trigger"; axis = "trigger_axis"; minValue = 0; maxValue = "1"; angle0 = "0"; angle1 = "rad -30"; }; //class BackSight_optic //{ //type = "rotationY"; //source = "hasOptics"; //selection = "BackSight"; //axis = "BackSight_axis"; //minValue = 0; //maxValue = 1; //angle0 = 0; //angle1 = 0.4; //}; //class ForeSight_optic //{ //type = "rotation"; //source = "hasOptics"; //selection = "ForeSight"; //axis = "ForeSight_axis"; //memory = 1; //minValue = 0.0000000; //maxValue = 1.0000000; //angle0 = 0.000000; //angle1 = 0.000000; //}; class MuzzleFlashROT { type="rotationX"; source="ammoRandom"; sourceAddress="loop"; selection="zasleh"; axis=""; centerFirstVertex=true; minValue=0; maxValue=1; angle0="rad 0"; angle1="rad 360"; }; class OP_ROT { type="rotation"; source="zeroing2"; // use second muzzle zeroing for rotation sourceAddress="loop"; // loop when phase out of bounds selection="OP"; // selection we want to rotate axis="OP_axis"; // has its own axis minValue=0; maxValue=3; angle0="rad 0"; angle1="rad 65"; }; class magazine_gl_reload_move_1 { type="translation"; source="reloadMagazine.1"; selection="gl_reloadmech"; //axis="gl_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.099291;//rad 5.688955 maxValue = 0.141844;//rad 8.127063 begin = "gl_start"; end = "gl_end"; offset0 = 0.0; offset1 = 1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_gl_reload_move_2 { type="translation"; source="reloadMagazine.1"; selection="gl_reloadmech"; //axis="gl_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.808511;//rad 46.32427 maxValue = 0.836879;//rad 47.949635 begin = "gl_start"; end = "gl_end"; offset0 = 0.0; offset1 = -1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; }; }; }; Config.cpp (Specifically the Section on the GL): class GL_RS16_F: UGL_F { displayName="RS-16 GL"; descriptionShort="The RS-16's Grenade Launcher is a Modified version of the M230 GL."; useModelOptics=0; useExternalOptic=0; magazines[]= { "1Rnd_HE_Grenade_shell", "UGL_FlareWhite_F", "UGL_FlareGreen_F", "UGL_FlareRed_F", "UGL_FlareYellow_F", "UGL_FlareCIR_F", "1Rnd_Smoke_Grenade_shell", "1Rnd_SmokeRed_Grenade_shell", "1Rnd_SmokeGreen_Grenade_shell", "1Rnd_SmokeYellow_Grenade_shell", "1Rnd_SmokePurple_Grenade_shell", "1Rnd_SmokeBlue_Grenade_shell", "1Rnd_SmokeOrange_Grenade_shell" }; cameraDir="OP_look"; discreteDistance[]={100, 200, 300, 400}; discreteDistanceCameraPoint[]= { "OP_eye", "OP_eye2", "OP_eye3", "OP_eye4" }; discreteDistanceInitIndex=1; reloadAction="GestureReloadTrgUGL"; reloadMagazineSound[]= { "A3\Sounds_F\arsenal\weapons\Rifles\TRG20\TRG20_UGL_reload", 1, 1, 10 }; }; Pictures from Oxygen: Let me know if there is anything else that will help, very keen to get this problem sorted asap. Cheers, Squirrel. EDIT: Is it possible that I am having trouble with this because the selection is named incorrectly (in terms of the TRG21Ugl Reload Animation). I noticed in the Model.cfg for the TRG-21 UGL that the bit they animate is named differently. I would try this straight away, but I have no way to test as I am at work now. Will check later. Edited November 1, 2016 by Rabid Squirrel Share this post Link to post Share on other sites
reyhard 2082 Posted November 1, 2016 check if gl_reloadmech is not a part of another bone, if it's not, then remove "gl_reloadmech" from sections list 1 Share this post Link to post Share on other sites
Rabid Squirrel 149 Posted November 2, 2016 check if gl_reloadmech is not a part of another bone, if it's not, then remove "gl_reloadmech" from sections list Like this? class CfgSkeletons { class Default { isDiscrete=1; skeletonInherit=""; skeletonBones[]={}; }; class arifle_base: Default { skeletonBones[]= { "magazine", "", "zasleh", "", "bolt", "", "trigger", "", "OP", "", "gl_reloadmech", "" }; }; }; class CfgModels { class Default { sectionsInherit=""; sections[]={}; skeletonName=""; }; class arifle_base: Default { skeletonName="arifle_base"; sections[]= { "magazine", "bolt", "zasleh", "trigger", "OP", "Camo1", "Camo2", "Camo3", "Camo4", "Camo5", "Camo6", "Camo7", "Camo8" }; class Animations { }; }; .......... Share this post Link to post Share on other sites
x3kj 1247 Posted November 7, 2016 does your .rpt file list something about your rifles animations? using custom names for animated parts is not a problem, it just has to match for p3d and model.cfg. Share this post Link to post Share on other sites
Rabid Squirrel 149 Posted November 8, 2016 does your .rpt file list something about your rifles animations? using custom names for animated parts is not a problem, it just has to match for p3d and model.cfg. No .rpt Errors, Everything seems fine. I am getting this in batches though: 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:28:14 Backpack with given name: [] not found 16:28:14 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] 16:29:55 Backpack with given name: [] not found 16:29:55 Trying to add inventory item with empty name to object [VR Entity] Share this post Link to post Share on other sites
Rabid Squirrel 149 Posted November 9, 2016 Solved! I believe that because my Skeleton shared a name with another Skeleton I had for a different weapon model, there was a conflict. Renaming the skeleton from "arifle_base" to "rs16_rifle_gl" seemed to do the trick. Fixed Anim: Full Model.Cfg (In-case anyone else ever has this problem): class CfgSkeletons { class Default { isDiscrete=1; skeletonInherit=""; skeletonBones[]={}; }; class rs16_rifle_gl: Default { skeletonBones[]= { "magazine", "", "zasleh", "", "bolt", "", "trigger", "", "OP", "", "gl", "", "gl_grenade", "" }; }; }; class CfgModels { class Default { sectionsInherit=""; sections[]={}; skeletonName=""; }; class rs_arifle_r2016_gl: Default { skeletonName="rs16_rifle_gl"; sections[]= { "zasleh", "OP", "Camo1", "Camo2", "Camo3", "Camo4", "Camo5", "Camo6", "Camo7", "Camo8" }; class Animations { class magazine_reload_hide { type="hide"; source="reloadMagazine.0"; selection="magazine"; // sourceAddress = clamp;// (default) minValue = 0.0;//rad 0.0 maxValue = 1.0;//rad 57.29578 hideValue = 0.13; // was 0.145455 unHideValue = 0.381818; animPeriod = 0.0; initPhase = 0.0; }; class magazine_reload_move_1 { type="translation"; source="reloadMagazine.0"; selection="magazine"; axis="magazine_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.109091;//rad 6.250454 maxValue = 0.145455;//rad 8.333958 offset0 = 0.0; offset1 = 2.5; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_reload_move_2 { type="translation"; source="reloadMagazine.0"; selection="magazine"; axis="magazine_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.354545;//rad 20.313932 maxValue = 0.418182;//rad 23.960062 offset0 = 0.0; offset1 = -2.5; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_reload_rotation_1 { type="rotation"; source="reloadMagazine.0"; selection="magazine"; axis="magazine_reload_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.1;//rad 8.333958 //was 0.145455 maxValue = 0.381818;//rad 21.87656 angle0 = 0.0;//rad 0.0; //was 0.0 angle1 = -0.2;//rad 30.0; // was 0.5235988 animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class magazine_reload_rotation_2 { type="rotation"; source="reloadMagazine.0"; selection="magazine"; axis="magazine_reload_axis";//*probably* // sourceAddress = clamp;// (default) minValue = 0.454545;//rad 26.04351 maxValue = 0.481818;//rad 27.606138 angle0 = 0.0;//rad 0.0;//was 0.0 angle1 = 0.2;//rad -30.0; // was -0.5235988 animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class bolt_reload_move_1 { type="translation"; source="reloadMagazine.0"; selection="bolt"; memory=1; // sourceAddress = clamp;// (default) begin="bolt_start"; end="bolt_end"; minValue = 0.766667;//rad 43.926785 maxValue = 0.8;//rad 45.836624 offset0 = 0.0; offset1 = 1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class bolt_reload_move_2: bolt_reload_move_1 { type="translation"; source="reloadMagazine.0"; selection="bolt"; begin="bolt_start"; end="bolt_end"; // sourceAddress = clamp;// (default) minValue = 0.833333;//rad 47.746464 maxValue = 0.866667;//rad 49.65636 offset0 = 0.0; offset1 = -1.0; animPeriod = 0.0; initPhase = 0.0; // memory = true;//(default assumed) }; class no_magazine { type="hide"; source="hasMagazine.0"; selection="magazine"; minValue=0; maxValue=1; hideValue=0.5; unhideValue = -1.0; }; class no_grenade { type="hide"; source="hasMagazine.1"; selection="gl_grenade"; minValue=0; maxValue=1; hideValue=0.5; unhideValue = -1.0; }; class bolt_empty { type="translation"; source="isempty.0"; selection="bolt"; memory=1; sourceAddress="clamp"; minValue=0; maxValue=1; begin="bolt_start"; end="bolt_end"; offset0=0; offset1=1; }; class bolt_empty_1 { type="translation"; source="reload.0"; selection="bolt"; memory=1; sourceAddress="clamp"; minValue=0; maxValue=1; begin="bolt_start"; end="bolt_end"; offset0=0; offset1=1; }; class trigger { type = "rotation"; source = "reload.0"; sourceAddress = "clamp"; selection = "trigger"; axis = "trigger_axis"; minValue = 0; maxValue = "1"; angle0 = "0"; angle1 = "rad -30"; }; //class BackSight_optic //{ //type = "rotationY"; //source = "hasOptics"; //selection = "BackSight"; //axis = "BackSight_axis"; //minValue = 0; //maxValue = 1; //angle0 = 0; //angle1 = 0.4; //}; //class ForeSight_optic //{ //type = "rotation"; //source = "hasOptics"; //selection = "ForeSight"; //axis = "ForeSight_axis"; //memory = 1; //minValue = 0.0000000; //maxValue = 1.0000000; //angle0 = 0.000000; //angle1 = 0.000000; //}; class MuzzleFlashROT { type="rotationX"; source="ammoRandom"; sourceAddress="loop"; selection="zasleh"; axis=""; centerFirstVertex=true; minValue=0; maxValue=1; angle0="rad 0"; angle1="rad 360"; }; class OP_ROT { type="rotation"; source="zeroing.1"; // use second muzzle zeroing for rotation sourceAddress="loop"; // loop when phase out of bounds selection="OP"; // selection we want to rotate axis="OP_axis"; // has its own axis minValue=0; maxValue=3; angle0="rad 0"; angle1="rad 65"; }; class magazine_gl_reload_move_1 { type="translation"; source="reloadMagazine.1"; // was reloadMagazine2 selection="gl"; memory=1; // sourceAddress=clamp; // (default) minValue=0.099291; //rad 5.688955 maxValue=0.141844; //rad 8.127063 begin="gl_start"; end="gl_end"; offset0=0.0; offset1=1.0; animPeriod=0.0; initPhase=0.0; }; class magazine_gl_reload_move_2: magazine_gl_reload_move_1 { type="translation"; source="reloadMagazine.1"; // was reloadMagazine2 selection="gl"; // memory=1; // sourceAddress=clamp; // (default) minValue=0.808511; //rad 46.32427 maxValue=0.836879; //rad 47.949635 begin="gl_start"; end="gl_end"; offset0=0.0; offset1=-1.0; animPeriod=0.0; initPhase=0.0; }; }; }; }; Thanks for the Help everyone! Share this post Link to post Share on other sites