Howdy,
I’ve been utilizing IKControls in my experience for upper body movement. When using IK, I have discovered that on the client, the solved position and orientation can vary wildly from that of the server’s, and is very much dependent on FPS (frames per second.) I have tried many different IK configurations, but there doesn’t seem to be a way to quell the jittering and it can be quite invasive during gameplay.
I’ve done multiple tests with IKControls, and I’ve found that on the client at 60FPS rendering cap, when looking up and down, hands, arms and shoulders do not follow the path of the weapon, using UserInputService for camera movement which is then converted to IK position and orientation. (see video 1) (Left is Server POV, Right is Client POV)
I’ve also gone ahead and tested completely scripted movement, simulating a player moving their cursor using math.sin() and math.cos() and I was able to replicate similar behavior above. As well, when tabbing out of the game, Inverse Kinematics follows the weapon path perfectly, but when tabbed back in (higher FPS cap) Inverse Kinematics stops tracking well and continues to jitter like the behavior I showed above. As well, IK behavior when running keyframed animations can vary wildly.
(Video 2: Tabbing out of the game causes IK Controls to solve correctly, also caps framerate lower)
The setup I have been testing with has IK Controls controlling left/right arm movement as well as UpperTorso & Head movement. I’ve included a Roblox place file with my current avatar setup and script to simulate player camera input!
IKControls are an extremely promising feature, but with the current state of IKControls I don’t think I will be able to utilize it for production work until these issues have been rectified.
System Specs: AMD Ryzen 7 9700X, 32gb, NVIDIA GeForce RTX 4060 Ti
Expected behavior
Ideally, IKControls should solve similarly on both the client and the server, and shouldn’t jitter as heavily.
A private message is associated with this bug report