Using Commands to make player animations "run" on clients

So my player char has some manually driven old school animations that run from the controllerscript based on velocity… so when I networkified the scene, of course they only run locally on the client. PSUEDOCode is like this:

Update()
if(!isPlayer)
if forward velocity pressed
calculate forward velocity

if(forwardVelocity > 0)
animate[forwardanimation].play()

So after reading the docs, I thought making the animation run for that player on other clients should be as simple as creating a command:
[Command]
CmdAnimateForward
{
animate[forwardanimation].play();
}

Works PERFECTLY when the client is moving and I’m viewing him from the host!!! But when driving the host, the animation command for that guy never seems to reach the client and he just skates around!!! Any ideas on what I’m missing here???

The “Piece” I was missing was having the server propogate those commands to the Clients… I don’t know if this “The right way” but I created a [ClientRpc] call that matched the server command and had the server call that code. Since a player object can’t effect other player objects, the animations run only on the “correct” character/player on the client’s screen!

A faster way than using [ClientRpc] would be to send the animation to the server and call it locally so you aren’t waiting for the server.

Something like

[Command]
CmdSendAnimateForward () {
AnimateForward ();
}

AnimateForward() {
animate[forwardanimation].play();
}

then when you want to animate the forward just use both

CmdSendAnimateForward(); // On server
AnimateForward(); // Locally