Jump to content
ministuff

Adjusting AI point of aim in tank gunnery

Recommended Posts

Hello there, I've been making some player+AI vs AI tank-on-tank scenarios for quite some time and lately I'm getting somewhat tilted by the fact that in a head-on engagement NATO vs CSAT tank-on-tank scenarios, the results are often heavily skewed in favour of the CSAT t-100.

 

I was sure the problem wasn't due to the tank per se. I've seen some partial unbinarized MLOG p3d of both the Slammer and t-100 and found that the slammer does have overall more armor thickness in the fire geometry. So I did some testing and I found out that when going up against the Slammer, an AI, especially a 100% skill one will converge its aim around the turret ring of the slammer, which is its weakest spot from the front, while when an AI goes up against the T-100, its aim converges around the upper plate, the strongest part of its frontal armor.

 

My question is, how does the AI determine the point of aim against tank targets? Is this set in a cfg file somewhere? Is there any way to tweak AI's point of aim at all?

 

Cheers.

Share this post


Link to post
Share on other sites

It's hardcoded to use "zamerny" mém point. If it's not present then center of geometry is used

  • Thanks 2

Share this post


Link to post
Share on other sites

It would be nice if ArmA at some point featured multiple zamerny points arranged by prioritization high to low.

 

Your high priority would typically be center, then lower would be evenly divided around the target, so that if the high priority point is blocked from LOS, the AI fires at whatever point is next in priority if it has LOS to it.

 

I guess in 2018 there may be other, more efficient ways to hardcode the way AI aims, but ArmA could definitely benefit from this. Technically speaking: if a tree trunk was obstructing  LOS to both zamerny and center of mass at once, the AI can't fire, even if 90% of the target is visible?

 

 

  • Like 2

Share this post


Link to post
Share on other sites
35 minutes ago, Strike_NOR said:

It would be nice if ArmA at some point featured multiple zamerny points arranged by prioritization high to low.

 

Your high priority would typically be center, then lower would be evenly divided around the target, so that if the high priority point is blocked from LOS, the AI fires at whatever point is next in priority if it has LOS to it.

 

I guess in 2018 there may be other, more efficient ways to hardcode the way AI aims, but ArmA could definitely benefit from this. Technically speaking: if a tree trunk was obstructing  LOS to both zamerny and center of mass at once, the AI can't fire, even if 90% of the target is visible?

 

 

 

This sounds like a really simple, yet useful (and even realistic) idea. As a player, if I can't hit a tank's weak point due to terrain/object obstruction, I'll pick another spot to fire at, like the tracks. If there are no good alternatives left, I'll just shoot at whatever part of the tank I can hit.

 

I could see this being defined as an array of memory points with weights, determining the priority (and thus the order) that the AI will try to attack each point in. To test if a memory point can be hit, it could do a raytrace to detect obstructions. I'm thinking of something like...

aiTargetingMemPoints[] = {"turretBase", 1, "rear", 0.8, "turretCenter", 0.5, "trackL", 0.3, "trackR", 0.3, "massCentre", 0.2, "front", 0.1};

 

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, reyhard said:

It's hardcoded to use "zamerny" mém point. If it's not present then center of geometry is used

Thanks for the answer. Unfortunately, I don't have access to the MLODs of the tanks obviously and I won't be able to tweak the zamerny point used on these tanks. Is there any work around to this that can be done in a cfg file?

 

e.g. is it possible to reposition all the crews to  the driver position (which is stupid ofc but it's the only way to prevent them from getting killed every single time a shot lands on the turret ring). 

Share this post


Link to post
Share on other sites
13 minutes ago, ministuff said:

Thanks for the answer. Unfortunately, I don't have access to the MLODs of the tanks obviously and I won't be able to tweak the zamerny point used on these tanks. Is there any work around to this that can be done in a cfg file?

 

e.g. is it possible to reposition all the crews to  the driver position (which is stupid ofc but it's the only way to prevent them from getting killed every single time a shot lands on the turret ring). 

I don't think there is any way to modify that. If I recall correctly aimPos is used only for characters & not for vehicles but you can try it anyway

Share this post


Link to post
Share on other sites

A slight necro/update:

So I had a different idea, what I did instead was to attach a tough solid object to the gun breech(which is close to the frontal arc of the turret ring). Basically I'm using the attachTo command to append a rock to the "konec hlavne"(which is approximately the gun breech/mantlet position) mempoint(I'm using just a rock right now as a placeholder, which I was planning to replace with a custom .p3d shape using the createSimpleObject command). 

 

Unfortunately what I didn't realize was that the object would obscure the "zamerny" mempoint and the enemy would never even shoot the tank even from the sides because the zamerny point is encapsulated within the object. Is there any way around this probably? i.e. If I'm using props like a rock, is there any token that basically make it transparent to AI? Such that the AI will try to shoot the zamerny points.

 

edit:

as a workaround now, what I do is basically, using a while loop passed to execvm using bis_fnc_mp, scan the area using NearObjects for any ShellBase projectile, and only make the object visible (hideObject false) when there is more than 0 Shellbase within the vicinity of the vehicle, but this is rather resource intensive, and better solution is very welcome

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

×