Доброе время суток. 
Сделал синхронизацию анимации между игроками, но образовалось большое но - анимации всех других игроков, кроме подконтрольного, дергаются, будто пропускают кадры. Сразу подумалось что тут должно быть что-то вроде интерполяции, но гугл молчит - интерполяции анимации не находит  Может быть это как-то по-другому называется?
 Может быть это как-то по-другому называется? 
Собственно сам код синхронизации:
Код
using UnityEngine; 
using System.Collections; 
public class AnimatePlayer : MonoBehaviour { 
    public Animation anim;
    //=====
    public AnimationClip walk;
    public AnimationClip stay1;
    public AnimationClip walkL;
    public AnimationClip walkR;
    public AnimationClip walkB;
    public AnimationClip Shoot;
    //====
    public void Start () 
    { 
  anim.Stop(); 
    } 
    void StayAnimation() {      
  GetComponent<NetworkView> ().RPC("SyncAnimation", RPCMode.All, 0);
    }
    
    void RunAnimation() {    
  GetComponent<NetworkView> ().RPC("SyncAnimation", RPCMode.All, 1);
    }
    void RunLAnimation() {    
  GetComponent<NetworkView> ().RPC("SyncAnimation", RPCMode.All, 2);
    }
    void RunRAnimation() {    
  GetComponent<NetworkView> ().RPC("SyncAnimation", RPCMode.All, 3);
    }
    void RunBAnimation() {    
  GetComponent<NetworkView> ().RPC("SyncAnimation", RPCMode.All, 4);
    }
    void ShootAnimation() {    
  GetComponent<NetworkView> ().RPC("SyncAnimation", RPCMode.All, 5);
    }
    [RPC]
    void SyncAnimation(int index) {
  if(index == 0) {
   anim.Play(stay1.name);
  } else if
  (index == 1) {
   anim.Play(walk.name);    
  }
  else if (index == 2)
  {
   anim.Play(walkL.name);
  }
  else if (index == 3)
  {
   anim.Play(walkR.name);
  }
  else if (index == 4)
  {
   anim.Play(walkB.name);
  }
  else if (index == 5)
  {
   anim.Play(Shoot.name);
  }
    }
    
    public void Update () { 
  if (GetComponent<NetworkView> ().isMine) {
   { 
    if (Input.GetKey (KeyCode.W)) {
     RunAnimation();
     anim ["Run"].speed = 1f;
     //anim.Play ("Run");  
    } else if (Input.GetKey (KeyCode.S)) { 
     RunBAnimation();
     anim ["RunBack"].speed = 0.3f;
     //anim.Play ("RunBack");   
    } else if (Input.GetKey (KeyCode.D)) { 
     RunRAnimation();
     anim ["RunRight"].speed = 0.4f;
     //anim.Play ("RunRight"); 
    } else if (Input.GetKey (KeyCode.A)) {
     RunLAnimation();
     anim ["RunLeft"].speed = 0.4f;
     //anim.Play ("RunLeft");  
    } else { 
     StayAnimation();
     anim ["Breath"].speed = 0.5f;
     //anim.Play ("Breath"); 
    }
   } 
  }
    }   
}
 
Делал по нарытому в интернетах и понятому из разных исходников.
Почему-то кажется что все должно быть просто, вроде интерполяции для перемещения объектов, но вот найти ничего не могу. Если по синхронизации анимаций гугл еще что-то находил, то по интерполяции оных - нуль.
Спасибо.