BOLT VR Hand Animations

Options
Hi, In our company we dedided to use Bolt to create our multiplayer VR Application, in the beggining all the basic replication of the state over the network (player, head and hands transforms) was really easy to perform. Following many examples, including the VR demo project, we enable or disable the xr rig depending of the ownership of the player entity and if it´s a client or the server. We had no problems with the setTransform workflow but we find a problem when we try to replicate the hands animations.
In all the common VR setups the hands of the player are child of the root xr Rig and have its own Animator, so there are two animators children of the player, the Bolt Entity in this case who has the VRPlayer state where we populate and assign the proper transforms once is attached. In all the examples of bolt in the official pipeline there is only one animator that is on the root asset, at the same level of the bolt entity and all the setup that you have to make in the editor window of the player state is basically expose the animator parameters and Bolt do the hard work underneath.
But what happen when you have more than just one animator and it´s on the children of the root entity. We cant make the hands entities because they are childs of the player entity and that´s not possible (at least as i could read on the forum). We cant replicate the animator either because in the state you can only set one animator per entity and its params had to be at the same level as the entity itself.
What is the better approach to perform this functionality with Bolt? How can we synchronize multiple animators in a state? and if its impossible to make it by default, whats the code to do it beyond the SetAnimator of the state?

Many thanks in advance

Comments

  • ramonmelo
    Options
    Hello @jig ,
    What is the better approach to perform this functionality with Bolt? How can we synchronize multiple animators in a state? and if its impossible to make it by default, whats the code to do it beyond the SetAnimator of the state?

    In this case, you could create entities for each hand and sync them independently from the root Entity, each one would have its own Animator. Also, after instantiation, you can parent the hands' entity to the root entity, and let Bolt sync the Local position of the transform for you - this should work fine.

    --
    Ramon Melo
    Photon Bolt Team