Download

Client / Host problem where bone rotation out of host's view doesn't update. (Optimization issue)

Does anyone know what may be causing this?:

https://youtu.be/Cgmn7ecgUjo

I have never heard of this weird problem. I read the relevancy stuff but I don’t see how this works yet or if it even related to relevancy.

I try to think where the problem could be occurring by looking at the symptoms:

From the looks of it the spear throwing works fine but it isn’t fired from the socket in the hand that is held up, so maybe the animation / bone-spine rotation isn’t happening when out of host’s view.

So, I noticed it didn’t matter which way I rotate the characters it will keep firing the spear in the same direction and it looks like it is coming from what could be the idle animation pose. So I am uploading some pictures of the animation process.

They will always fire from the last pose the host saw them in.

Hi, when you select the skeletal mesh in your character blueprint -> optimization -> visibility based anim tick options, then try the two upper settings

Thank you very much, that fixed it right up!

But since it was not working for the sake of optimization, I wonder if you know if there is a better way to do it? Should I stop using bone rotation and only use animation instead? Not sure if that would work but I will try it unless you answer with a no before I try :smiley:

I remember I opted to use bone rotation because I found it difficult to blend two animations both controlling upper body. I guess I’ll just have learn more advanced methods.

I am worried about optimization because my current plan is to let players have large amount of ai soldiers.

Unfortunately my skills in this area are limited. As last resort you could always make them always update on the server, but not on the clients.

Also you could use the “WasRecentlyRendered” node on each client to manually check, whether or not a character is currently visible on this client. If this changes, then you could send an RPC to the server and then if one client can currently see the mesh, then set the mesh to always tick the pose. Then if no client can see it, you set it again to only tick pose when rendered. But I don’t know what the network overhead vs CPU performance gain on the server will be.