Jump to content
solzenicyn

Recoil Overhaul Feedback

Recommended Posts

talking of recoil, is lateral recoil now possible? and has the actual way recoil is defined changed at all?

Share this post


Link to post
Share on other sites

I like the recoil, does not to be much different from the old one. I dislike the camera shake though, I'd like it toned down, not removed though.

Share this post


Link to post
Share on other sites

I like how it works as well, much better and to me is what it should be. Granted it disables recoil on modded weapons but overall I like it.

Share this post


Link to post
Share on other sites
I like how it works as well, much better and to me is what it should be. Granted it disables recoil on modded weapons but overall I like it.
Probably due to said modded weapons not being configured for the feature or correctly inheriting yet.

Share this post


Link to post
Share on other sites

No it does not disable recoil on modded weapons. The old recoil is still there. The new recoil parameters just stack upon the old, and modded weapons inherit one of the new recoils.

I already implemented the new recoil system in Swedish Forces Pack. Here's an example of what it looks like:

#define Xcoef (0.001)
#define Ycoef (0.004)
#define LynxXcoef (0.003)
#define LynxYcoef (0.008)

class CfgRecoils 
{
class recoil_sfp_ak5
{
	kickBack[] = {0.02,0.04};
	muzzleInner[] = {0,0,0.0,0.1,0.1};
	muzzleOuter[] = {0.3,0.8,0.4,0.3};
	permanent = 0.1;
	temporary = 0.01;
};
	class recoil_sfp_ak5c
{
	kickBack[] = {0.02,0.04};
	muzzleInner[] = {0,0,0.0,0.1,0.1};
	muzzleOuter[] = {0.3,1,0.4,0.3};
	permanent = 0.1;
	temporary = 0.01;
};
	class recoil_sfp_ak5d
{
	kickBack[] = {0.03,0.06};
	muzzleInner[] = {0,0,0.0,0.1,0.1};
	muzzleOuter[] = {0.3,1.2,0.4,0.3};
	permanent = 0.1;
	temporary = 0.015;
};

recoil_single_sfp_ak5[]=
{
	0,0,0,
	0.03, 36.943*(Xcoef)*(0.3), 3.587*(Ycoef)*(3),
	0.03, 31.817*(Xcoef)*(0.5), 1.251*(Ycoef)*(3.4),
	0.03, 19.755*(Xcoef)*(0.7), 0.764*(Ycoef)*(3.8),
	0.06, 7.388*(Xcoef)*(0.9), 0.285*(Ycoef)*(4.2),
	0.06, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(7),
	0.06, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(5),
	0.06, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(3), 
	0.06, -3.138*(Xcoef)*(0.3), -0.125*(Ycoef)*(1),
	0.06, 0, 0
};
recoil_single_prone_sfp_ak5[]=
{
	0,0,0,
	0.03, 36.943*(Xcoef)*(0.3), 3.587*(Ycoef)*(0.7), 
	0.03, 31.817*(Xcoef)*(0.5), 1.251*(Ycoef)*(1.1),
	0.03, 19.755*(Xcoef)*(0.7), 0.764*(Ycoef)*(1.5),
	0.06, 7.388*(Xcoef)*(0.9), 0.285*(Ycoef)*(1.9),
	0.06, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(2),
	0.06, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(1),
	0.06, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(0.5),
	0.06, -3.138*(Xcoef)*(0.3), -0.125*(Ycoef)*(0.3), 
	0.06, 0, 0
};
recoil_auto_sfp_ak5[]=
{
	0,0,0,
	0.06, 36.943*(Xcoef)*(1.2), 3.587*(Ycoef)*(1.7),
	0.06, 31.817*(Xcoef)*(1.5), 1.251*(Ycoef)*(2.1),
	0.06, 19.755*(Xcoef)*(1.7), 0.764*(Ycoef)*(2.4),
	0.06, 7.388*(Xcoef)*(1.9), 0.285*(Ycoef)*(2.8),
	0.03, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(7),
	0.03, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(5),
	0.03, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(3),
	0.06, 0, 0
};
recoil_auto_prone_sfp_ak5[]=
{
	0,0,0,
	0.06, 36.943*(Xcoef)*(1.2), 3.587*(Ycoef)*(0.3),
	0.06, 31.817*(Xcoef)*(1.5), 1.251*(Ycoef)*(0.7), 
	0.06, 19.755*(Xcoef)*(1.7), 0.764*(Ycoef)*(1.1),
	0.06, 7.388*(Xcoef)*(1.9), 0.285*(Ycoef)*(1.5),
	0.03, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(4),
	0.03, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(2),
	0.03, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(1),
	0.06, 0, 0
};
};

class CfgWeapons 
{
class sfp_ak5_base : Rifle_Base_F 
{
recoil = "recoil_sfp_ak5";
};
};

Share this post


Link to post
Share on other sites
No it does not disable recoil on modded weapons. The old recoil is still there. The new recoil parameters just stack upon the old, and modded weapons inherit one of the new recoils.

I already implemented the new recoil system in Swedish Forces Pack. Here's an example of what it looks like:

class recoil_sfp_ak5d

{

kickBack[] = {0.03,0.06};

muzzleInner[] = {0,0,0.0,0.1,0.1};

muzzleOuter[] = {0.3,1.2,0.4,0.3};

permanent = 0.1;

temporary = 0.015;

};

]

that looks very interesting. could you please explain what all those new parameters do?

Share this post


Link to post
Share on other sites

I do have some idea about what they do, but I would rather let the devs explain, because I will likely get it wrong.

They will probably get the information out on the wiki sooner or later.

Share this post


Link to post
Share on other sites
that looks very interesting. could you please explain what all those new parameters do?

Fair question indeed. First main difference you may clearly observe is that the new recoil is defined as class and not as a field of values as it was before. Also, it is now defined in the weapon's class and not in the fire mode, unlike the old recoil.

Basic description:

  • Parameter muzzleOuter defines the possible area where the recoil would like to move the weapon's muzzle randomly at each shot. It is defined as ellipse with variables defining the {horizontal axis position, vertical axis position, horizontal magnitude, vertical magnitude }; or, translated to the weapon's recoil movement behavior {how far to the right, how high up, how much horizontal deviation, how much vertical deviation}.
  • Parameter muzzleInner defines the restricted area inside the outer ellipse where the recoil cannot end. As you could see, it is currently defined outside the outer ellipse in all cases and thus effectively unused. We have some plans for it though.
  • Parameter kickBack defines the minimum and maximum interval for backward force applied over the arms and torso each shot.

Remaining parameters define how much of the random muzzle displacement within defined ellipse space is permanent (causing muzzle rise you should compensate for) and how much is temporary (causing temporal weapon rise up and down, thus causing the weapon to shake in your hands).

Camera shakes are derived from the overall magnitude of each recoil impulse forces.

Basic suggestions:

  • would you like your weapon to kick more to the right ? Increase Horizontal Axis Position value of muzzleOuter.
  • would you like your weapon to kick more upwards ? Increase Vertical Axis Position value of muzzleOuter.
  • would you like your weapon to jump left and right more randomly ? Increase Horizontal Magnitude value of muzzleOuter.
  • would you like your weapon to jump up and down more randomly ? Increase Vertical Magnitude value of muzzleOuter.
  • would you like your weapon to climb up more ? Increase permanent.
  • would you like your weapon to shake more in your hands ? Increase temporary.
  • would you like your weapon to kick back more ? Increase kickBack.
  • and vice versa.

They will probably get the information out on the wiki sooner or later.

Hopefully you will find this explanation useful. I will definitely describe the functionality in greater detail once the development of the feature will be finished.

Edited by RoyaltyinExile

Share this post


Link to post
Share on other sites
Hopefully you will find this explanation useful. I will definitely describe the functionality in greater detail once the development of the feature will be finished.

Hopefully I understood it correctly.

vCyaJzN.png

Share this post


Link to post
Share on other sites

Very useful indeed! Thanks. This post, together with the new sample bundled with the modding tools is enough to get going. I hope other add-on makers also plan to support this from day one when Arma3 1.40 is released.

Share this post


Link to post
Share on other sites
Probably due to said modded weapons not being configured for the feature or correctly inheriting yet.

Yup, that's what i get for coming late into the game.

No it does not disable recoil on modded weapons. The old recoil is still there. The new recoil parameters just stack upon the old, and modded weapons inherit one of the new recoils.

I already implemented the new recoil system in Swedish Forces Pack. Here's an example of what it looks like:

#define Xcoef (0.001)
#define Ycoef (0.004)
#define LynxXcoef (0.003)
#define LynxYcoef (0.008)

class CfgRecoils 
{
class recoil_sfp_ak5
{
	kickBack[] = {0.02,0.04};
	muzzleInner[] = {0,0,0.0,0.1,0.1};
	muzzleOuter[] = {0.3,0.8,0.4,0.3};
	permanent = 0.1;
	temporary = 0.01;
};
	class recoil_sfp_ak5c
{
	kickBack[] = {0.02,0.04};
	muzzleInner[] = {0,0,0.0,0.1,0.1};
	muzzleOuter[] = {0.3,1,0.4,0.3};
	permanent = 0.1;
	temporary = 0.01;
};
	class recoil_sfp_ak5d
{
	kickBack[] = {0.03,0.06};
	muzzleInner[] = {0,0,0.0,0.1,0.1};
	muzzleOuter[] = {0.3,1.2,0.4,0.3};
	permanent = 0.1;
	temporary = 0.015;
};

recoil_single_sfp_ak5[]=
{
	0,0,0,
	0.03, 36.943*(Xcoef)*(0.3), 3.587*(Ycoef)*(3),
	0.03, 31.817*(Xcoef)*(0.5), 1.251*(Ycoef)*(3.4),
	0.03, 19.755*(Xcoef)*(0.7), 0.764*(Ycoef)*(3.8),
	0.06, 7.388*(Xcoef)*(0.9), 0.285*(Ycoef)*(4.2),
	0.06, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(7),
	0.06, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(5),
	0.06, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(3), 
	0.06, -3.138*(Xcoef)*(0.3), -0.125*(Ycoef)*(1),
	0.06, 0, 0
};
recoil_single_prone_sfp_ak5[]=
{
	0,0,0,
	0.03, 36.943*(Xcoef)*(0.3), 3.587*(Ycoef)*(0.7), 
	0.03, 31.817*(Xcoef)*(0.5), 1.251*(Ycoef)*(1.1),
	0.03, 19.755*(Xcoef)*(0.7), 0.764*(Ycoef)*(1.5),
	0.06, 7.388*(Xcoef)*(0.9), 0.285*(Ycoef)*(1.9),
	0.06, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(2),
	0.06, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(1),
	0.06, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(0.5),
	0.06, -3.138*(Xcoef)*(0.3), -0.125*(Ycoef)*(0.3), 
	0.06, 0, 0
};
recoil_auto_sfp_ak5[]=
{
	0,0,0,
	0.06, 36.943*(Xcoef)*(1.2), 3.587*(Ycoef)*(1.7),
	0.06, 31.817*(Xcoef)*(1.5), 1.251*(Ycoef)*(2.1),
	0.06, 19.755*(Xcoef)*(1.7), 0.764*(Ycoef)*(2.4),
	0.06, 7.388*(Xcoef)*(1.9), 0.285*(Ycoef)*(2.8),
	0.03, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(7),
	0.03, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(5),
	0.03, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(3),
	0.06, 0, 0
};
recoil_auto_prone_sfp_ak5[]=
{
	0,0,0,
	0.06, 36.943*(Xcoef)*(1.2), 3.587*(Ycoef)*(0.3),
	0.06, 31.817*(Xcoef)*(1.5), 1.251*(Ycoef)*(0.7), 
	0.06, 19.755*(Xcoef)*(1.7), 0.764*(Ycoef)*(1.1),
	0.06, 7.388*(Xcoef)*(1.9), 0.285*(Ycoef)*(1.5),
	0.03, -2.402*(Xcoef)*(0.3), -0.096*(Ycoef)*(4),
	0.03, -3.53*(Xcoef)*(0.5), -0.141*(Ycoef)*(2),
	0.03, -3.677*(Xcoef)*(0.5), -0.147*(Ycoef)*(1),
	0.06, 0, 0
};
};

class CfgWeapons 
{
class sfp_ak5_base : Rifle_Base_F 
{
recoil = "recoil_sfp_ak5";
};
};

Yeesh can't keep it simple anymore :D Cool I'll have to mess with it then, much appreciated!

Share this post


Link to post
Share on other sites

Looks like the implementation is separate from a defined fire-mode now too, or am I jumping to conclusions based on Brisse's snippets?

If true this will help with some weapons I am working on which inherit fire-modes and sounds from default weapons so as to retain compatibility with sound mods users have, without necessarily requiring a separate config. At present, recoils etc are defined within the fire modes and I didn't want to go through the hassle of defining the fire-modes within my config. I'd much rather simply inherit them without needing to define everything and break sound-mod compatibility.

Share this post


Link to post
Share on other sites

Well so far using his snippets it doesn't seem to affect sound as I fired a few rounds no problem with my own weapons pack. That cam'shake is a bit much though. I can see it as "jerking" the eye but overall if you keep your nose on the charging handle (as in the M4) you just get your nose pushed a bit.

---------- Post added at 23:56 ---------- Previous post was at 22:36 ----------

Also why is there camera shake when you're not shouldering the weapon? i.e. firing from the "hip" so to speak? There should be weapon movement yes, camera shake, no.

Share this post


Link to post
Share on other sites
Also why is there camera shake when you're not shouldering the weapon? i.e. firing from the "hip" so to speak? There should be weapon movement yes, camera shake, no.

You're not firing from the hip, weapon is shouldered, just not sighted (pretty evident from the 3rd person view).

Share this post


Link to post
Share on other sites

Yeah that's why I said "hip".

Anyway, still shouldn't be happening. Weapon travel yes, camshake no.

Share this post


Link to post
Share on other sites

Edit 2015-May-4th: muzzleInner removed (not needed.

Edited by Kolji
Update

Share this post


Link to post
Share on other sites

Do the existing recoilCoef and recoilProneCoef parameters under class MuzzleCoef (for muzzle attachments such as suppressors) still have any bearing on weapon recoil under the new class CfgRecoils scheme, or are they now a deprecated part of the legacy recoil system?

Or now that there's a new system in place, is there scope to allow muzzle attachments to alter specific recoil characteristics future? e.g specifically reducing kickBack when fitting muzzle brakes, or reducing muzzle climb with muzzle attachments that have a ported top section (I guess modifying the permanent value or vertical axis parameters of muzzleOuter).

Share this post


Link to post
Share on other sites
+1

:torture:

O.o

I'll just yeah...

Share this post


Link to post
Share on other sites

exploring the new recoil is very important. its proably a big chance to feedback on what's needed to make it feel as close to believable as possible. A chance that doesn't come around that often at all so it's worth discussing...

would it be worth being able to change the speed at which the rifle recoils versus the speed it settles? In other words I'd like the kick to feel a little faster/harder and the settle at a different pace.

More importantly, I'd really like to see secondary motion at the top of the recoil and then when the rifle comes down to rest. There's a lot more motion in shooting than we have here right now. On the range it all happens pretty fast so it's hard to analyze, but its definitely there. taking a look at a few POV videos I can clearly see the secondary motions which which a big part of shoiting for the shooter. Its the quick horizontal or diagonal fast secondary motion at the top of the recoil and then a slightly bigger secondary motion, again horizontal or diagona,l but not perfectly so, at the bottom. Again, it's hard to describe but easy to experience and also visible in POV rifle shooting videos.

the camera shake is really good for feeling the shots a bit better.

Edited by twisted

Share this post


Link to post
Share on other sites
would it be worth being able to change the speed at which the rifle recoils versus the speed it settles? In other words I'd like the kick to feel a little faster/harder and the settle at a different pace.

IMO this is the most important part of an authentic recoil, strong kick from the discharge and not so instant settling of the gun, obviously muscle memory can't be as strong as the recoil

Share this post


Link to post
Share on other sites

On my opinion there are still too much up-recoil and not enough back-recoil. Anyway, overall the feedback of the weapons has become truly better, continue along this road guys! :)

Share this post


Link to post
Share on other sites

Would it be hard to add proper recoil, devs should go out and shoot actual weapons and translate the feeling in game with proper animations and randomness effects, best recoil effect, how luiqid and natural it feels would be best seen in Insurgency and Red Orchestra 2 IMO. The recoil going back should happen as well. It should also be sharp and have enough force depending on caliber, considering this is a military simulation, these things should have been done from the start, as its absolutely paramount to have RL shooting mechanics in a game like this. Feels like a robot is shooting the weapon and not a human. It's better than it was at least.

Share this post


Link to post
Share on other sites
Would it be hard to add proper recoil, devs should go out and shoot actual weapons and translate the feeling in game with proper animations and randomness effects, best recoil effect, how luiqid and natural it feels would be best seen in Insurgency and Red Orchestra 2 IMO. The recoil going back should happen as well. It should also be sharp and have enough force depending on caliber, considering this is a military simulation, these things should have been done from the start, as its absolutely paramount to have RL shooting mechanics in a game like this. Feels like a robot is shooting the weapon and not a human. It's better than it was at least.

B0lCc9QIAAAFQcu.jpg

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

×