Jump to content
Sign in to follow this  
Richards.D

Up Armored HMMWV Modification

Recommended Posts

Alright, another final update here before I do my initial release.

I've spent a fair bit of time today configing the M134 GMV and ran into a slightly odd issue. I cannot get the Gatling Barrels to move when I rotate the turret with the Gun. The body rotates fine, and the gatling barrels do spin properly, they just do not rotate with the gun. I'll keep playing with it to see if I can get it.. in the mean time, does anyone have a suggestion if they have experienced this before? The Gatling barrel name is "gatling", and I've Posted the Model.CFG

MODELCFG

		
	#define BULLET_HIDE(x,from,count) class Bullet##x\
		{\
			type="hide";\
			source="revolving";\
			sourceAddress="mirror";\
			selection=bullet##x;\
			minValue=-1.000000;\
			maxValue= 0.000000;\
			hideValue=((count+x-from-2)/count)+0.00001;\
		};

class Rotation
{
type = "rotation";
memory = 1;
minValue = 0;
maxValue = 1;
angle0 = 0;
angle1 = 1;
};

class CfgSkeletons
{
	class Default
	{
		isDiscrete = 1;
		skeletonInherit = "";
		skeletonBones[] = {};
	};
	class Vehicle : Default {};

	class Car : Vehicle {

		skeletonBones[]=
		{
			"drivewheel","",

			"wheel_1_1_damper_land","",
			"wheel_1_2_damper_land","",
			"wheel_1_3_damper_land","",
			"wheel_1_4_damper_land","",

			"wheel_2_1_damper_land","",
			"wheel_2_2_damper_land","",
			"wheel_2_3_damper_land","", 
			"wheel_2_4_damper_land","",

			"wheel_1_1_damper","wheel_1_1_damper_land",
			"wheel_1_2_damper","wheel_1_2_damper_land",
			"wheel_1_3_damper","wheel_1_3_damper_land",
			"wheel_1_4_damper","wheel_1_4_damper_land",

			"wheel_2_1_damper","wheel_2_1_damper_land",
			"wheel_2_2_damper","wheel_2_2_damper_land",
			"wheel_2_3_damper","wheel_2_3_damper_land",
			"wheel_2_4_damper","wheel_2_4_damper_land",

			"wheel_1_1_steering","wheel_1_1_damper",
			"wheel_1_2_steering","wheel_1_2_damper",
			"wheel_1_3_steering","wheel_1_3_damper",
			"wheel_1_4_steering","wheel_1_4_damper",

			"wheel_2_1_steering","wheel_2_1_damper",
			"wheel_2_2_steering","wheel_2_2_damper",
			"wheel_2_3_steering","wheel_2_3_damper",
			"wheel_2_4_steering","wheel_2_4_damper",

			"wheel_1_1","wheel_1_1_steering",
			"wheel_1_2","wheel_1_2_steering",
			"wheel_1_3","wheel_1_3_steering",
			"wheel_1_4","wheel_1_4_steering",

			"wheel_2_1","wheel_2_1_steering",
			"wheel_2_2","wheel_2_2_steering",
			"wheel_2_3","wheel_2_3_steering",
			"wheel_2_4","wheel_2_4_steering",

			"wheel_1_1_unhide","wheel_1_1",
			"wheel_1_2_unhide","wheel_1_2",
			"wheel_1_3_unhide","wheel_1_3",
			"wheel_1_4_unhide","wheel_1_4",

			"wheel_2_1_unhide","wheel_2_1",
			"wheel_2_2_unhide","wheel_2_2",
			"wheel_2_3_unhide","wheel_2_3",
			"wheel_2_4_unhide","wheel_2_4",

			"wheel_1_1_hide","wheel_1_1",
			"wheel_1_2_hide","wheel_1_2",
			"wheel_1_3_hide","wheel_1_3",
			"wheel_1_4_hide","wheel_1_4",

			"wheel_2_1_hide","wheel_2_1",
			"wheel_2_2_hide","wheel_2_2",
			"wheel_2_3_hide","wheel_2_3",
			"wheel_2_4_hide","wheel_2_4",

			"OtocVez","",
			"OtocHlaven","OtocVez",

			"damageHide","",
			"damageVez","OtocVez",
			"damageHlaven","OtocHlaven",
			"gatling",
			"Light_R",
			"Light_L",

			"ukaz_rychlo","",
			"ukaz_rychlo2","",
			"ukaz_rpm","",
			"mph","",
			"rpm","",
			"fuel","",
			"fuel_1","",
			"fuel_01","",
			"fuel_2","",
			"fuel_3","",
			"prop_01","",
			"prop_02","",
			"prop_2","",
			"prop_1","",
			"glass1","damageHide",
			"glass2","damageHide",
			"glass3","damageHide",
			"glass4","damageHide"
		};
	};

	class DAR_HMMWVSkeleton:Car
	{
		isDiscrete=1;
		skeletonInherit="Car";
		skeletonBones[]=
		{
			"ammo_belt","OtocHlaven"
		};
	};

	class DAR_HMMWV_M2_Skeleton:DAR_HMMWVSkeleton
	{
		isDiscrete=1;
		skeletonInherit="DAR_HMMWVSkeleton";
		skeletonBones[]=
		{
			"ammo_belt","OtocHlaven_Shake",
			"OtocHlaven_Shake","OtocHlaven",
			"bolt","OtocHlaven_Shake",
			"recoil","OtocHlaven_Shake",
			"charging_handle","OtocHlaven_Shake",
			"magazine","OtocHlaven_Shake",
			"feedtray_cover","OtocHlaven_Shake","gatling",
			"bullet001","bullet002",
			"bullet002","bullet003",
			"bullet003","bullet004",
			"bullet004","bullet005",
			"bullet005","bullet006",
			"bullet006","bullet007",
			"bullet007","bullet008",
			"bullet008","bullet009",
			"bullet009","bullet010",
			"bullet010","bullet011",
			"bullet011","bullet012",
			"bullet012","ammo_belt"

		};
	};
};

class CfgModels
{
	class Vehicle
	{
		sections[]={};
		sectionsInherit="";
		skeletonName="";

	};
	class Car: Vehicle
	{
		sectionsInherit="Vehicle";
		sections[]=
		{	
			"ammo",
			"gatling",
			"sklo predni p",
			"sklo predni l",
			"zadni svetlo",
			"brzdove svetlo",
			"spz",
			"karoserie",
			"motor",
			"zbran",
			"vez",
			"zbytek",
			"clan",
			"clan_sign",
			"zasleh",
			"P svetlo",
			"L svetlo",
			"Light_R",
			"Light_L",
			"palivo",
			"glass1",
			"glass2",
			"glass3",
			"glass4"
		};
		skeletonName="Car";

		class Animations
		{

		class damageHide
		{
			type="hide";
			source="damage";
			selection="damageHide";
			hideValue=1.0;
		};

		class damageHideVez:damageHide
		{
			selection="OtocVez";
		};
		class damageHideHlaven:damageHide
		{
			selection="OtocHlaven";
		};

		class wheel_1_1_destruct
		{
			type="hide";
			selection="wheel_1_1_hide";
			source="HitLFWheel";
			minValue = 0; 
			maxValue = 1;
			hidevalue = 0.99;
		};
		class wheel_1_2_destruct:wheel_1_1_destruct {source="HitLBWheel";selection="wheel_1_2_hide";};

		class wheel_2_1_destruct:wheel_1_1_destruct {source="HitRFWheel";selection="wheel_2_1_hide";};
		class wheel_2_2_destruct:wheel_1_1_destruct {source="HitRBWheel";selection="wheel_2_2_hide";};

		class wheel_1_1_destruct_unhide
		{
			type="hide";
			selection="wheel_1_1_unhide";
			source="HitLFWheel";
			minValue = -1;
			maxValue = 0; 
			hidevalue = 0.01;
			sourceAddress="mirror";
		};
		class wheel_1_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLBWheel";selection="wheel_1_2_unhide";};

		class wheel_2_1_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRFWheel";selection="wheel_2_1_unhide";};
		class wheel_2_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRBWheel";selection="wheel_2_2_unhide";};

		#define DamageOffset 0.2

		class wheel_1_1_Damage:wheel_1_1_destruct
			{
			type="translation";
			axis="Basic_Damper_Destruct_Axis";
			memory=1;
			selection="wheel_1_1_damper_land";
			source="HitLFWheel";
			minValue = 0.0;
			maxValue = 1;
			offset0 = 0;
			offset1 = DamageOffset;
			};

			class wheel_1_2_Damage:wheel_1_1_Damage {source="HitLBWheel";selection="wheel_1_2_damper_land";};

			class wheel_2_1_Damage:wheel_1_1_Damage {source="HitRFWheel";selection="wheel_2_1_damper_land";};
			class wheel_2_2_Damage:wheel_1_1_Damage {source="HitRBWheel";selection="wheel_2_2_damper_land";};

			class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damage {selection="wheel_1_1_damper";offset1 = -1*DamageOffset;};
			class wheel_1_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLBWheel";selection="wheel_1_2_damper";};

			class wheel_2_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRFWheel";selection="wheel_2_1_damper";};
			class wheel_2_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRBWheel";selection="wheel_2_2_damper";};

			class Glass1_destruct
			{
			type="hide";
			selection="glass1";
			source="HitGlass1";
			minValue = 0; 
			maxValue = 1; 
			hidevalue = 0.99;
			};
			class Glass2_destruct:Glass1_destruct{selection="glass2";source="HitGlass2";};
			class Glass3_destruct:Glass1_destruct{selection="glass3";source="HitGlass3";};
			class Glass4_destruct:Glass1_destruct{selection="glass4";source="HitGlass4";};


		class Fuel: Rotation
		{
			source="fuel";
			selection="fuel";
			axis="fuel_axis";
			maxValue=1;
			memory=1;
			angle0="rad -110";
			angle1=0;
		};
		class IndicatorSpeed: Rotation
		{
			source="speed";
			selection="mph";
			axis="mph_axis";
			memory=1;
			maxValue=38.900002;
			angle1="rad -265";
		};
		class IndicatorFuel: Rotation
		{
			type="rotation";
			source="fuel";
			selection="fuel_1";
			axis="fuel_1_axis";
			memory=1;
			minValue=0.000000;
			maxValue=1.000000;
			angle0=-0.087266;
			angle1=-1.658063;
		};
		class IndicatorRPM: Rotation
		{
			source="rpm";
			selection="rpm";
			axis="rpm_axis";
			memory=1;
			angle1="rad 80";
		};

			class DrivingWheel: Rotation
			{
				source="drivingWheel";
				selection="drivewheel";
				axis="drivewheel_axis";
				minValue=-1;
				maxValue=1;
				angle0=(rad 80);
				angle1=(rad -80);
			};
			class wheel_1_1_pad
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_1_1_pad";
				axis="wheel_1_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class wheel_2_1_pad
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_2_1_pad";
				axis="wheel_2_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class TurnFrontWheelR
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_2_1_steering";
				axis="wheel_2_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class TurnFrontWheelL: TurnFrontWheelR
			{
				selection="wheel_1_1_steering";
				axis="wheel_1_1_steering_axis";
			};
			class TurnFrontWheelR2: TurnFrontWheelL
			{
				selection="posun wheel_1_1";
			};
			class TurnFrontWheelL2: TurnFrontWheelR
			{
				selection="posun wheel_2_1";
			};
			class wheel_1_1
			{
				type="rotationX";
				source="wheel";
				memory = 1;//by default
				animPeriod = 0;//Unknown
				selection="wheel_1_1";
				axis="wheel_1_1_axis";
				minValue = 0.0;
				maxValue = 1.0;
				minPhase = 0.0;
				maxPhase = 1.0;
				angle0 = 0;
				angle1 = "rad -360";
			};
			class wheel_1_2: wheel_1_1
			{
				selection="wheel_1_2";
				axis="wheel_1_2_axis";
			};
			class wheel_2_1: wheel_1_1
			{
				selection="wheel_2_1";
				axis="wheel_2_1_axis";
			};
			class wheel_2_2: wheel_1_1
			{
				selection="wheel_2_2";
				axis="wheel_2_2_axis";
			};
			class Wheel_1_1_Damper
			{
				type="translation";
				source="damper";
				selection="wheel_1_1_damper_land";
				axis="posun wheel_1_1";
				animPeriod = 1;
				minValue="0";
				maxValue="1";
				offset0= "0.5";
				offset1= "-0.25";
				memory=1;
			};
			class wheel_2_1_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_1_damper_land";
				axis="posun wheel_2_1";
			};
			class wheel_1_2_Damper: wheel_1_1_Damper
			{
				selection="wheel_1_2_damper_land";
				axis="posun wheel_1_2";
			};
			class wheel_2_2_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_2_damper_land";
				axis="posun wheel_2_2";
			};
			class damageVez: damageHide
			{
				selection="damageVez";
			};
			class damageHlaven: damageHide
			{
				selection="damageHlaven";
			};
		};
	};

	class DAR_HMMWV: Car
	{
		sectionsInherit="Car";
		sections[]=
		{
			"Camo1",
		};

		skeletonName="DAR_HMMWVSkeleton";

		class Animations: Animations
		{

			class wheel_1_1_Damage:wheel_1_1_Damage {offset1 = 0.20;};
			class wheel_1_2_Damage:wheel_1_2_Damage {offset1 = 0.20;};
			class wheel_2_1_Damage:wheel_2_1_Damage {offset1 = 0.20;};
			class wheel_2_2_Damage:wheel_2_2_Damage {offset1 = 0.20;};
			class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_1_2_Damper_Damage_BackAnim:wheel_1_2_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_1_Damper_Damage_BackAnim:wheel_2_1_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_2_Damper_Damage_BackAnim:wheel_2_2_Damper_Damage_BackAnim {offset1 = -0.20;};

			class IndicatorSpeed: IndicatorSpeed
			{
				maxValue=16.670000;
				angle0=-0.174533;
				angle1=3.141593;
			};
			class IndicatorRPM: IndicatorRPM
			{
				angle0=0.000000;
				angle1=1.483530;
			};
			class fuel
			{
				type="rotation";
				source="fuel";
				selection="fuel_1";
				axis="fuel_1_axis";
				memory=0;
				minValue=0.000000;
				maxValue=1.000000;
				angle0=-0.087266;
				angle1=-1.658063;
			};
			class prop_01
			{
				type="rotation";
				source="rpm";
				selection="prop_01";
				axis="prop_01_axis";
				memory=0;
				minValue=0.000000;
				maxValue=0.360000;
				angle0=1.396263;
				angle1=0.000000;
			};
			class prop_02
			{
				type="rotation";
				source="rpm";
				selection="prop_02";
				axis="prop_02_axis";
				memory=0;
				minValue=0.000000;
				maxValue=0.640000;
				angle0=0.349066;
				angle1=-0.349066;
			};
		};
	};

	class DAR_M1151Turret: DAR_HMMWV
	{
		class Animations: Animations
		{
			class MainTurret
			{
				type="rotationY";
				source="mainTurret";
				selection="OtocVez";
				axis="OsaVeze";
				animPeriod=0;
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class MainGun: MainTurret
			{
				type="rotationX";
				source="mainGun";
				selection="OtocHlaven";
				axis="OsaHlavne";
			};
			class damageHlaven: damageHide
			{
				selection="damageHlaven";
			};
		};
	};

	class DAR_M1151: DAR_M1151Turret
	{
		skeletonName="DAR_HMMWV_M2_Skeleton";
		class Animations: Animations
		{
			class ammo_belt_rotation
			{
				type="rotationZ";
				source="ReloadAnim";
				selection="ammo_belt";
				axis="ammo_belt_axis";
				memory=1;
				sourceAddress="loop";
				minValue=0.000000;
				maxValue=1.0000;
				angle0=0.000000;
				angle1=-0.209440;
			};
			class Barrel_recoil:ammo_belt_rotation
			{
				type="translation";
				selection="recoil";
				axis="recoil_axis";
				sourceAddress="mirror";
				minValue=0.0;
				maxValue=0.5;
				offset0=0;
				offset1=-0.05;
			};
			class Bolt_recoil:Barrel_recoil
			{
				selection="bolt";
				offset0=0;
				maxValue=0.5;
				offset1=-0.25;
			};
			class Turret_shake:Barrel_recoil
			{
				selection="OtocHlaven_Shake";
				axis="osaveze";
				offset0=0;
				offset1=-0.002;
				maxValue=0.05;
			};
			class Turret_shake_aside:Turret_shake
			{
				axis="osahlavne";
				maxValue=0.05*1.3;
			};
			class Charging_handle_shake:Barrel_recoil
			{
				type="rotation";
				selection="Charging_handle";
				axis="Charging_handle_axis";
				sourceAddress="mirror";
				maxValue=0.005;
				angle0=0.000000;
				angle1=-0.1;
			};
			class Feedtray_cover_up
			{
				type="rotation";
				source="reloadMagazine";
				selection="feedtray_cover";
				axis="feedtray_cover_axis";
				memory=1;
				minValue=0.1000000;
				maxValue=0.130000;
				angle0=0.000000;
				angle1=-1.570796;
			};
			class Feedtray_cover_down:feedtray_cover_up
			{
				minValue=0.860000;
				maxValue=0.900000;
				angle0=0.000000;
				angle1=1.570796;
			};
			class Bolt_reload_begin:Bolt_recoil
			{
				type="translation";
				sourceAddress="clamp";
				source="reloadMagazine";
				minValue=0.00000;
				maxValue=0.0200000;
			};
			class Bolt_reload_end:bolt_reload_begin
			{
				minValue=0.050000;
				maxValue=0.070000;
				offset0=0;
				offset1=+0.25;
			};
			class Charging_handle_reload_begin:Bolt_reload_begin{selection="Charging_handle";};
			class Charging_handle_reload_end:Bolt_reload_end{selection="Charging_handle";};

			class Magazine_hide
			{
				type="hide";
				source="reloadMagazine";
				sourceAddress="mirror";
				selection="magazine";
				minValue=0.0;
				maxValue=0.5;
				hideValue=0.56;
			};

			/*BULLET_HIDE(001,12,100)
			BULLET_HIDE(002,12,100)
			BULLET_HIDE(003,12,100)
			BULLET_HIDE(004,12,100)
			BULLET_HIDE(005,12,100)
			BULLET_HIDE(006,12,100)
			BULLET_HIDE(007,12,100)
			BULLET_HIDE(008,12,100)
			BULLET_HIDE(009,12,100)
			BULLET_HIDE(010,12,100)
			BULLET_HIDE(011,12,100)
			BULLET_HIDE(012,12,100)*/
		};
	};

	class DAR_GMV: DAR_M1151Turret
	{
			skeletonName="DAR_HMMWV_M2_Skeleton";
			class Animations: Animations
			{

			class MachineGun: Rotation
			{
				selection = "gatling";
				source = "revolving";
				axis = "gatling_axis";
				memory = 1;
				minValue = 0;
				maxValue = 1;
				angle1 = -3 * 666.666666 * 3.141592654;
			};			
		};
	};

class DAR_M1152: DAR_M1151 {};

class DAR_M1151_MK19: DAR_M1151 {};

class DAR_M1167: DAR_M1151 {};

class DAR_M1151_Deploy: DAR_M1151 {};

};

Nevermind, thanks to Stiltman, fixed. Last is to complete damage tex, Woodland, and that is all..

Edited by RichardsD

Share this post


Link to post
Share on other sites

First off, something fundemental to writing model.cfgs that you have wrong, is that in the cfgskeleton definition, the bones have to come in child+parent pairs, even if they don't have a parent bone.

In the class cars one you have a bunch on single ones like this:

               "gatling",
               "Light_R",
               "Light_L",

               "ukaz_rychlo","",
               "ukaz_rychlo2","", 

I think this would make "gatling the child of "Light_R", and "Light_L" the child of "ukaz_rychlo", and all the subsequent bones will be messed up because you missed pairing up "gatling" etc. with an empty parent ("" with nothing written between the quotes). Anyway, it seems dodgy.

That part should read:

               "gatling","",
               "Light_R","",
               "Light_L","",

               "ukaz_rychlo","",
               "ukaz_rychlo2","", 

Applying this concept of child+parent bones to the HMMWV skeleton, your "gatling" needs to be a child of "OtocHlaven_Shake" bone like the other parts of the gun (such as "bolt", "charging_handle", magazine etc.) in order to move along with them in the same way those other parts do.

Right now you have a line with three bones on it:

               "feedtray_cover","OtocHlaven_Shake","gatling", 

Which should be

               "feedtray_cover","OtocHlaven_Shake",
               "gatling", "OtocHlaven_Shake",

ed:- NVM seems you fixed it

Share this post


Link to post
Share on other sites

Richard, would be cool if you could release the HMMWV pack in a single .zip with your other pack, the MTVR. So we mission makers don't have to ask users to download a lot of packs.

Share this post


Link to post
Share on other sites

Would be cool if Richard and Shep_FR team up and integrated the Rhino Anti-IEd with Up armoured HMMWVs ;)

Share this post


Link to post
Share on other sites

Hello:

The addon is finished, so I'll be putting a release thread up in a little bit. It includes Woodland now, which was the final feature I wanted to integrate.

Here are two general screenshots of the variants included:

http://i936.photobucket.com/albums/ad204/sazleq/arma32014-05-2412-00-28-37.png (906 kB)

http://i936.photobucket.com/albums/ad204/sazleq/arma32014-05-2411-59-55-11.png (830 kB)

Release Thread Link:

http://forums.bistudio.com/showthread.php?178191-Up-Armored-HMMWV-Modification-Release&p=2696454#post2696454

Richards

Share this post


Link to post
Share on other sites

Looks really great!!

If you want to make one with a Rhino device PM me.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×