public struct NetworkBonesA pose on the wire, for the poses that cannot be derived.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The fallback, and it is meant to look expensive. NetworkAnimator sends a dozen values and lets the receiver produce the pose, which works because an ordinary state machine reaches the same state from the same parameters. This sends the pose, for the cases where that is false: a ragdoll driven by the local solver, IK against local geometry, procedural motion with a random number generator in it. Every one of those produces a different pose on every machine from identical inputs, and no amount of care with parameters fixes it.
Rotations only, because a skeleton is rigid. Bone lengths do not change, so a joint's translation is its bind pose and sending it would be sending a constant sixty times a second. The exceptions — stretchy cartoon limbs, a squash-and-stretch rig — are rare enough to be worth costing nothing here and being handled by the game that has one. Where the character is remains NetworkTransform's answer, as it is for everything else.
A selected subset, not the skeleton. A humanoid rig is sixty joints and a ragdoll is driven by about sixteen; the fingers follow whatever the hand does and nobody watching a corpse fall can tell. NetworkBoneSelection says which joints these are, and it is not replicated because it comes from the same content on both peers — the same argument the prefab id makes.
What it costs, stated rather than discovered. Twenty-four bones at 32 bits is 776 bits whole, or about 15 kbit/s per character at twenty updates a second. The delta codec takes most of that back for a pose that is partly still — a bone whose packed rotation is unchanged costs one bit — but a ragdoll in free fall is every bone moving and pays close to the full price. That is the trade, and it is the reason the animator replicates its inputs.
Fields and properties (2)
public byte CountHow many of the block the sender meant, which is its selection's length.
public NetworkBones.RotationBlock RotationsThe rotations, packed as the wire packs them.
Used by (5)
- NetworkBonesApplySystemVixen.Net.Animation
- NetworkBonesCaptureSystemVixen.Net.Animation
- NetworkBonesReplicatorVixen.Net.Animation
- NetworkBonesTestsVixen.Net.Animation.Tests
- Vixen_Net_Animation_NetworkBonesSerializerVixen.Net.Animation