Vixen
02b45cc4
csharp
public sealed class NetworkBonesApplySystem

Puts an arrived pose onto a receiving animator.

No guide page documents this yet — the page shows what the code says about itself.

As a system

Phase
LateUpdate

Remarks

After the animator has run, and overwriting what it produced. That is the whole point: this is used precisely where the receiving animator cannot reproduce the authority's pose, so what it computed locally is not an approximation to be blended with — it is an answer to a different question. A receiver that has nothing else to animate can stop its animator entirely; leaving it running costs an evaluation whose result is discarded, which is wasteful rather than wrong.

No crossfade, unlike the state correction in NetworkAnimatorApplySystem. A state correction is rare and a visible cut is a bug; a pose arrives every tick and blending each one into the last would be a low-pass filter on the animation — a ragdoll that lands softly on every impact. Smoothing a pose is SnapshotBuffer's job, at the layer that already knows about interpolation delay.

Fields and properties (5)

  • public SystemAccess Access

    What this system reads and writes.

  • public NetworkRulesRegistry? Rules

    Who decides what, and who this peer is. Null is server-authoritative.

  • public PlayerId Local

    Which player this peer is, or None for a server.

  • public long AppliedCount

    How many poses have been applied.

  • public long MismatchedCount

    How many arrived saying a different number of bones than this peer selected.

Methods (3)

  • public override JobHandle Update(in SystemContext context, JobHandle dependency)

    Runs the system.

  • public void Apply(World world)

    Poses every replicated character this peer does not decide.

  • public bool IsAuthority(NetworkId id)

    Whether this peer decides how an object is posed.

Used by (1)

  • NetworkBonesTestsVixen.Net.Animation.Tests