We’re trying to achieve multiplayer gameplay in VR game. The first thing we want to do is to sync the rotation and positional tracking data across all server and clients.
First we use the HMD Orientation and Position to drive the IK on the character head and upper body. It works fine. Then we make the parameters replicated. That’s how we did it:
Every tick, the owning client send HMD location and rotation to the server. Every HMD location and rotation of a certain client will be replicated to all server and clients. This is written in our own character blueprint, not in player controller.
Then the client animation blueprint will use the replicated HMD location and rotation of itself to drive the IK on head and upper body.
Test succeed, both server and clients will see each other’s movement on head and upper body. But on the clients, it sees obvious shaking on the whole body when MOVING. The shaking happens on client’s 1st person model, and on the 3rd person model of server. When not moving, everything is fine, both 1st person model and 3rd person, all synced and smooth.
When disabling the HMD parameter replication, the shaking disappears. Then of course, the movement on head and upper body is not synchronized anymore. This is why I think the way replication handles HMD data caused this issue.
Any comments will be welcome.