RigBuilder sync problem

Hello there,

I’ve a little problem. I’ve a “player prefab” with “NetworkObject”, “Client Network Transform” for sync position and rotation. This player prefab have a script for mouvements based on “Character Controller”, with new Input System. In all that, work fine like a charm. I’ve created a RigBuilder for good and more naturaly aiming (with raycast system). In multiplayer, all player in scene “online” work fine.

My problem : I’ve an animation for “reloading” weapon, but this animation doesn’t work with RigBuilder (it’s logic with rig configuration constraint for all bones in animation), my solution => desactivate RigBuilder component, or layer, or weight of Rig object when animation’s call. It’s work in Local player view, but not at all in other player view. In other player view character don’t really move, he has a suttering’s like, weird movement in animation time. The RigBuilder or “rig weight” or layer has no reaction in other player screen, it’s more visible in Editor when other player connected with Build or other editor session. Other player’s component no react if it’s not a “localPlayer”

I’ve tested everything : classical scripting in Update function (don’t work), ServerRpc and ClientRpc for sync (don’t work all player have animation in one player session view not others), and with condition “IsLocalPlayer” in ClientRpc, don’t work too, it’s same thing “classic Update” function. I’m lost :confused:

PS : after call many times “reload” and rigbuilder enable/disable, the “aiming time” in “constraint aim” is divided by 2, you’re in slowmotion rotation.

I’ve resolve my problem : with a second script in “Rig Object”, this script control weight in update function, and my player script control the weight with the reload bool.

exemple in player script :

[SerializeField] private RigController rigObject;
[SerializeField] private float newValue;

private void Update()
{
       if(reload)
       {
            rigObject.newValue = 0f;
           //Animation bool true
       }     
       else if(!reload)
       {
            rigObject.newValue = 1f;
            //Animation bool false
       }
}

the RigControllerScript :

public class RigController : MonoBehaviour
{
    [SerializeField] public float newValue;

    private void Update()
    {
        this.GetComponent<Rig>().weight = newValue;
    }
}

Work fine, after link this “RigController” script in player script. Note : The Rig Object, with this simple script, is a child of “Root” object in player character. =D