Jump to content
Sign in to follow this  
killjoe_R3F

Damper's animation locality problem in multiplayer

Recommended Posts

I have a problem with a 4 wheels vehicle we creating.

 

Damper's animation is not the same for 2 differents players on server :

the correct damper's animation for wheels appears for player 1.

if the player 1 gets in the driver of the vehicle, damper's animation issue appear for player 2 with wheel lifted up over the ground.

It seems to be a locality problem for damper's animation only on multiplayer server.

 

is someone have any idea where to search between 3D or config ?

Share this post


Link to post
Share on other sites

It's certainly sounds like a local issue from what you describe. The fact that it occurs when another player becomes the driver and essentially takes ownership of the vehicle speaks towards that possibility. It is usually very noticeable on tracked vehicles such as tanks and apcs as locally to the driver the tracks appear to run over the surface of the map, whereas to another player on the server, the tracks tend to be below the ground and the vehicle is running on its wheels. I don't believe there is anything that can be done to resolve the track issues.

 

In this wheeled instance, I am not sure why they would be moving up. Wheeled vehicles are normally okay. I would be checking things like your bounding memory points, land contact points, sprungmass, springstrength, MaxCompression and MaxDroop (making sure they match the damper min and max values in the model.cfg but without any - sign).

Share this post


Link to post
Share on other sites

Thanks Evrik.

I think also that there it nothing to be done.

After many test I could nearly say that Dampers in ArmA 3 does not really work as they should.

You can make a kind of damper with model.cfg set to :

 

			class wheel_1_1_damper
            {
                type="translation";
                source="damper";
                selection="wheel_1_1_damper_land"; // define in lod LandContact
		axis="posun wheel_1_1";
		animPeriod = 1;
                minValue=0;
                maxValue=1;
                memory=0;
                offset0=0.5;
                offset1=-0.5;
            };

Note that damper should work with "translationY" https://community.bistudio.com/wiki/Model_Config#Animation_sources

but this is what causes the animation's desync in MP.

 

If the animationPhase of the animationSource is tested it is OK but the real graphic aspect is not what it should be.

 

"memory=0;  //memoryOptional (default is true). Axis in memory level or not?" : means 0 (false) is axis present ? : https://community.bistudio.com/wiki/Model_Config#Animation_Properties

 

CUP's team seems to come to the same conclusion : https://dev.cup-arma3.org/T1921#

 

Share this post


Link to post
Share on other sites

Just as a conclusion :

 

my last setting : 

 

class wheel_1_1_damper
{
 type="translation";
 source="damper";
 selection="wheel_1_1_damper_land";
 axis="posun wheel_1_1";
 animPeriod = 0;
 minValue=0;
 maxValue=1;
 memory=true;
 offset0=-0.15;
 offset1=0.15;
};

 

with this setting dampers works and there is a difference between players in MP but of a few cm witch is acceptable....

Share this post


Link to post
Share on other sites

For wheeled vehicles, you can simplify it a little if you want to. You don't need to define individual 'axis' for each wheel unless you wanted the four wheels on a car (for example) to move up and down to different levels or behave differently. You can use a single axis across all wheels (if you are porting arma 2 vehicles, you can use the 'Basic_Damper_Destruct' memory points already in the model). I usually rename this to 'damper_axis' and use it for all four wheels. I keep the offset 0 and 1 the same for all wheels. It means you can set up one wheel and largely inherit from it for the other 3 in the model.cfg. It also ensures that your axis memory points are the same across all four wheels and of the same size / position. It might help cut down on any visual SP / MP issues.  In your example above, this would become:

 

class wheel_1_1_damper {

  type="translation";

  source="damper";

  selection="wheel_1_1_damper_land";

  axis="damper_axis";

  animPeriod = 0;

  minValue=0;

  maxValue=1;

  memory=true;

  offset0=-0.15;

  offset1=0.15;

};

 

and for each additional wheel you can inherit almost all of it, i.e. :

 

class wheel_1_2_damper : wheel_1_1_damper {

  selection="wheel_1_2_damper_land";
};

 

Keeps it simple.

Share this post


Link to post
Share on other sites

Looks like this is what is causing my helo the clipping effect... if the user having the locality send an incorrect height (because a desync in the damper_land animation) to the user getting the locality then it will do a fast repositioning where the helo can't be, sending the helo to the stars 😑 I think the landContact points can't have animations attached.
https://gitlab.com/FFAAMOD-Team/FFAAMOD/-/issues/308

Video here

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  

×