Page MenuHomeFeedback Tracker

config based AnimationSources using source = 'wheel' do not work for remote vehicles in multiplayer (breaks UVAnimations)
Assigned, HighPublic

Description

See: https://community.bistudio.com/wiki/Arma_3_UVAnimations

When using the 'wheel' source in a config based animationsource, the animation will not work on remote vehicles. Vehicles local to your client will have no such issue but for example other players vehicles, or AI when on a dedicated server, the animations will not work.

While only a small visual glitch for the Karts DLC Karts, it can be a fairly major issue for mod created vehicles such as Half-Tracks that rely on the technology to animate their tracks

Video of the issue: https://youtu.be/MQOWxOuBdco

Details

Severity
Major
Resolution
Open
Reproducibility
Always
Operating System
Windows 7 x64
Category
Multiplayer
Steps To Reproduce

New Reproduction steps:

  1. Download reproduction mission
  2. Launch the mission in a multiplayer session
  3. Connect to the server with a second client
  4. The Client in the pilot seat should start the Jets engine and slowly taxi, while the second client observes with spectator or splendid camera. Note how the planes wheels move fine for the Jet flying client, but for the observer do note move.
  5. Similarly, note how the animationSourcePhase hint is updating fine on the server client, but stays at 0 for the remote client.

Old Steps for archival purposes:

  1. Download reproduction mission
  2. Launch the mission in a multiplayer session
  3. Connect to the server with a second client
  4. The AI local to the server will drive in a loop, watch it on the second client either in spectator thirdperson or the splendid camera, note how the chain doesn't move.
  5. Similarly, note how the animationSourcePhase hint is updating fine on the server client, but stays at 0 for the remote client.
  6. You can have the second player get into the extra kart and drive around and observe from the 1st client and will notice the same issue.

Event Timeline

Here's a video where you can see the issue in a modded vehicle (the vehicle is remote) https://www.youtube.com/watch?v=2gHNuJICGa0

Wulf added a subscriber: Wulf.Jun 8 2020, 3:07 PM

Hello.

What exactly do you mean by this " note how the chain doesn't move." There is no chain in the test mission, If you mean the wheels then they move on both clients.

The chain i'm referring to is the one on the Kart's engine, connected to the back right-hand wheel

How it should be : https://www.youtube.com/watch?v=2rDEmrhbI-U
How it is : https://www.youtube.com/watch?v=2gHNuJICGa0

  • This is using the A3 1.84 UV Animations technology on carX.
  • Why ? Only tankX could have proper animated tracks before this engine feature.
  • Why not use tankX ? TankX doesnt support steering wheels. Game crashes to desktop is you use steering wheels there.
  • Why it's important ? We have 6 half track vehicles, half tracks were extensively used during WW2. We had to limit their expansion in the past because this feature was introduced late.
class UVAnimations // New tracks anims from A3 1.84
		{
			class Track_L
			{
				type = "translation";
				source = "Track_L_source";
				sourceAddress = "loop";
				section = "pasoffsetl";
				minValue = 0;
				maxValue = 1;
				offset0[] = {0,0};
				offset1[] = {0,-2};
			};
			class Track_R: Track_L
			{
				source = "Track_R_source";
				section = "pasoffsetp";
			};
		};
dedmen raised the priority of this task from Normal to High.Jun 9 2020, 2:22 PM
dedmen added a project: Restricted Project.
dedmen added a subscriber: dedmen.

But other sources for UV Animations work right? Or UVAnims generally don't work?

KercKasha added a comment.EditedJun 9 2020, 2:28 PM

Will confirm that for you, but I'm pretty positive the issue lies with config defined animationsources using 'wheel' as the animationSourcePhase wasn't changing on the remote vehicle

KercKasha added a comment.EditedJun 9 2020, 2:41 PM

I just tried it with a user animationSource and the UV animation (and the physical wheels) works fine

dedmen added a comment.Jun 9 2020, 7:28 PM

Can you try a different anim source besides wheel? To know whether its all the engine sources, or something specific to wheel.
So we know user animsources work then? I think thats not surprising if they are set locally.

That's what I did, I used the user animSource instead of 'wheel'.
I tried both setting the user animation from where the vehicle was local and remote and both worked.

Yes. But do other engine/non-user sources work.
Are all engine sources not working, or is it specifically something wrong with "wheel"

let me quote you @KercKasha as I think you made it clear to me in discord

Kerc Yesterday at 3:15 PM
wheel animationSource defined in model.cfg = good works fine
wheel animationSource defined in config.cpp = bad doesnt work over network
user animationsource defined in config.cpp = good works over network
uvanimations needs a config.cpp defined animationSource
if we use 'wheel' it doesnt work in multiplayer
[...]
uvanimations work fine with 'user' source
but wheel animationsource doesnt work, at all

Another reason that, I think, makes it difficult to understand is that on the video showing the bug, the wheels are using a cfgAnimationSource as the tracks, not the model.cfg-side one, so they are not rotating either.

Other engine sources Ive tried is door and Reload, I'm pretty sure it's just wheel that's having the issue but I'm not 100% what sources are supported in the config

dedmen changed the task status from New to Assigned.Oct 29 2020, 9:06 AM
dedmen set Ref Ticket to AIII-53467.
dedmen moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

Any news on this?`We noticed it yesterday again, meaning a good chunk of our vehicles won't have their tracks moving :o

I did some further investigating into this issue and i've confirmed the real issue is the 'wheel' animation source is whats broken and nothing to do with UVAnimations. Similarly I've found a better vanilla vehicle with the issue.

A lot of the Jet DLC jets changed over to using 'wheel' animationsources defined in the config, and any of those that use them (including third party) will have their wheel animations not work for non-local vehicles.

I've made a new reproduction mission that again requires two instances of the game. It will output the animationSourcePhase to a hint but can be observed visually.

Similarly I made a quick and dirty video that shows that the wheel is visibly not moving, and on screen shows the animationSource is working normally for the client the jet is local to, but stays at 0 for the non-local

Video is here:
https://youtu.be/MQOWxOuBdco

Repro mission is here, will update the main ticket too

KercKasha updated the task description. (Show Details)Jan 27 2022, 7:38 AM
KercKasha edited Steps To Reproduce. (Show Details)
dedmen added a comment.Mar 1 2023, 4:24 PM

The jets issue is actually completely separate and has two bugs in it that break it.

But the CarX issue specifically is not that source="wheel" doesn't work, that works just fine. It is when a specific wheel is targeted using source="wheel_2_2_source"
Its hard for me to verify, I can verify this on jets and... somewhat-ish see it on the car chain? The chain is very hard to see...
We'll let it go to perf_prof and you can verify