Jump to content
Sign in to follow this  
wld427

Arma 2 track and tire dammages

Recommended Posts

does anyone know the particular dammage animations now used in arma2.

for example i am trying to bring over my M113s based on the BIS model form arma1. I copied and pasted the hitpoints form the BIS arma2 configs for the hitpoints ie. motor, pas_l etc.

I am wondering do i need an animation in the model config to make the tracks dammageable like the rest of the vehicles in arma2.

if im going about this all wrong please let me know.

Thanks

Eddie

Project RACS

Share this post


Link to post
Share on other sites

when u say dammageable u mean vehicle behaviour or optical effects? Hitpoints and entry in selections list inside model config work for me regarding vehicle behaviour, to get optical effects i guess a track_damage.rvmat would be needed since the material flags used before are not working anymore. Only animation needed would be the dammagehide to hide the tracks after vehicle destruction, i dont use them at the moment since they messed up quite alot of the other animations (including 90% of the model spinning like a wheel, funny). think i use a destruct model instead.

regards

Share this post


Link to post
Share on other sites
How to create destroyed wheels

Can be applied not just only for wheels ;)

Thanks for this, made things a lot easier. However making deflating tires properly seems still a mystery to me at least. Any idea how that is done?

Share this post


Link to post
Share on other sites

If you implement this method, they will sink into the ground looking like they deflate.

Share this post


Link to post
Share on other sites

I have to say, its a pretty cool system BIS set up .... looks good in action.

Unfortunately I noticed one of the default BIS light Pick-ups has 1 wheel that never deflates! Must have been a small miss by them during model making ;)

Share this post


Link to post
Share on other sites

Hmm, I wonder what I'm doing wrong. My wheels change damage models allright but they will not sink at all. Looking at different models with ExtractModelCfg I was able to find class wheel_2_3_Damage and class wheel_2_3_Damper_Damage_BackAnim for instance. Do I have to implement these somehow too?

Share this post


Link to post
Share on other sites

yes, all classes, _BackAnim is responsible for the sinking afaik, at least it stopped sinking when i removed it.

Share this post


Link to post
Share on other sites

Could you post an example model.cfg with those damage anims too Soul Assasin?

Share this post


Link to post
Share on other sites
Here you go. this is the humvee m2 model.cfg extracted from the p3d using extractModelCFG

Share this post


Link to post
Share on other sites

Thanks but I already checked out ExtractModelCfg results. The big question is axis in wheel_2_3_Damper_Damage_BackAnim and wheel_2_3_Damage. Where should I actually put it to make the tires sink? A simple example model with proper non extracted model.cfg would be awesome.

I have the pieces of this puzzle but I don't know how to put them together.

Share this post


Link to post
Share on other sites


Heres the setup:

damper.jpg

The unhide section (not visible in the above pic) is a proxy to the destroyed wheel model (default bis). Also this is a set up for a driving wheel so for the other ones ommit the _steering part.

Also you need a point in the LandContact LOD under the wheel called "wheel_L1_damper_land"

Bone setup:

                       "wheel_L1_damper_land","",
		"wheel_L1_damper","wheel_L1_damper_land",
		"wheel_L1_steering","wheel_L1_damper",
		"wheel_L1","wheel_L1_steering",
		"wheel_L1_unhide","wheel_L1",
		"wheel_L1_hide","wheel_L1",

Wheel rotation:

        class Wheel_L1
{
	type = "rotationX";
     	        source = "wheel";
 	selection = "Wheel_L1";
	axis = "Wheel_L1";
	sourceAddress = "loop";
	minValue = 0;
        maxValue = 1;
       	angle0 = 0; 
     		angle1 = "rad -360"; 
};

Wheel Steering:

		class wheel_L1_Steering
		{
     				type = "rotationY";
     				source = "drivingWheel";
 			selection = "wheel_L1_steering";
			axis = "axis_wheel_L1";
			sourceAddress = "clamp";
			minValue = -1;
       	      	    	maxValue = 1;
               	    	angle0 = "rad 35"; 
     				angle1 = "rad -35";
   		};

Damper

		class wheel_L1_Damper
		{
			type = "translationY";
			source = "damper";
			selection = "wheel_L1_damper_land";
			SourceAddress = "clamp"; 
			axis="";
			animPeriod=0;
			minValue=-1000;
			maxValue=1000;
  			};

Destruction (hiding)

                       class wheel_L1_destruct
		{
			Type = "hide";
			Source = "HitLFWheel";
			Selection = "wheel_L1_hide";
			MinValue = 0.00;
			MaxValue = 1.00;
			SourceAddress = "clamp";
			hideValue = 0.98;
		};

Destruction (unhiding)

		class wheel_L1_unhide
		{
			Type = "hide";
			Source = "HitLFWheel";
			Selection = "wheel_L1_unhide";
			MinValue = -1.00;
			MaxValue = 0.00;
			SourceAddress = "mirror";
			hideValue = 0.02;
		};

Both of these are linked to the animation source in the cpp:

                       class HitLFWheel
		{
			source = "Hit";
			hitpoint = "HitLFWheel";
			raw = 1;
		};

Which is linked to a bunch of hitpoints in the HitPoints LOD (named selection: "wheel_1_1_steering") around the wheel and a hitpoints class in the cpp (note the inheritance, comes from Car class):

                  class HitLFWheel: HitLFWheel
	   {
			armor = 0.15;
			name = "wheel_1_1_steering";
			passThrough = 0.3;
	   };

Carrying on in model.cfg:

		class wheel_L1_Damage
		{
			Type = "translation";
			Source = "HitLFWheel";
			Selection = "wheel_L1_damper_land";
			MinValue = 0;
			MaxValue = 1;
			minPhase = 0;//rad 0
			maxPhase = 1;//rad 57.2958
			SourceAddress = "clamp";
			Begin = "damper_begin";
			End = "damper_end";
			Offset0 = 0.000000;
			Offset1 = 0.6500000;
		};

Note memory points:

memoryj.jpg

And finally:

		class wheel_L1_Damper_Damage_BackAnim
		{
			Type = "translation";
			Source = "HitLFWheel";
			Selection = "wheel_L1_damper";
			MinValue = 0.00;
			MaxValue = 1.00;
			SourceAddress = "clamp";
			Begin = "damper_begin";
			End = "damper_end";
			Offset0 = 0.000000;
			Offset1 = -0.760000;
		};

heh all that for one wheel :) the rest is just inherited

Share this post


Link to post
Share on other sites

Magnificent :D! I'll give this a shot right away.

Share this post


Link to post
Share on other sites

Yes it did :). However I'm a bit puzzled where the simple Wheel_L1 is in the model, it isn't visible in your screens either. I ended up using a single vertex as Wheel_L1 and it worked that way.

Share this post


Link to post
Share on other sites

ahh sorry of course wheel_L1 is the wheel (same as the wheel_L1_hide in the first picture)

---------- Post added at 10:04 PM ---------- Previous post was at 10:03 PM ----------

I ended up using a single vertex as Wheel_L1 and it worked that way

:confused:

Share this post


Link to post
Share on other sites

The vertex was just a simple way to replace the missing Wheel_L1 selection.

ahh sorry of course wheel_L1 is the wheel (same as the wheel_L1_hide in the first picture)

Hmm, shouldn't all selections that have different animations be in their own selections so that they don't overlap each other? This why we need for example two damageHide selections, one for hull and one for turret (damageHide and damageVez.) But if it works that way too then I'm not complaining :cool:.

Share this post


Link to post
Share on other sites

I think the damageHull/Vez thing was just done to conform. It works fine if you have them as one selection too. Could also be because "hide" animation source is basically a scale animation that takes the center of the selection to scale things to a tiny level. Having Hull and Vez seperately insures that those parts scale into predictable centers and you dont have tiny dots floating around unpredictably.

---------- Post added at 11:09 PM ---------- Previous post was at 11:07 PM ----------

In anycase you can assign a "wheel" source and a "hide" source to the _hide selection i dont think it will make a difference

Share this post


Link to post
Share on other sites

T_D, Soul_Assassin, thanks for the guide.

I'd tried doing this a few months ago working from an extracted HMMWV's model.cfg, but without success. You two made it much clearer, and I've got it sorted now: :)

jackalwhls.th.jpg

Share this post


Link to post
Share on other sites

wow soul, best post ever :)

However one thing that still a question mark..

why both

"wheel_L1_damper"

"wheel_L1_damper_land"

is the land only used in the land contact lod?

oh and one more:

SourceAddress = "mirror"; ??

Edited by granQ

Share this post


Link to post
Share on other sites

The _land is only used in the land contact lod, thus the name, while just damper is part of the model.

The "mirror" sourceAdress is due to the weird nature of unhiding things in ArmA2. Btw sourceAdress is NOT the same as animationSource :p

Share this post


Link to post
Share on other sites

oh thanks for the head up.. maybe should have tried that before (ended up doing manual hiding with script and settexture.)

Anyway, thanks again for great pics and guide :)

Share this post


Link to post
Share on other sites

never mind, sorted it out , i had "zbytek" on wheels and that's why it was not working :) sory

Edited by vilas

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  

×