Interpolations of NetworkTransforms in Shared Mode Bugged

The interpolation of NetworkTransforms is no longer working as expected on newer Fusion versions (using Shared Mode).

While the GameObject with the NetworkTransform is perfectly synced, its InterpolationTarget lags behind massively. It feels like the InterpolationTarget only moves a certain percentage to where it should be (moving faster when the discrepancy is larger and then slowing down upon catching up). Playing around with the Interpolated Error Correction Settings did not make any difference.

Moreover, when the authority stops moving the NetworkObject, the InterpolationTarget of the other client drifts off infinitely with a constant speed.

Tested with builds 506, 512, and 524. It works fine after reverting to build 444.

Do you have any ideas? Or builds between 444 and 506 to narrow it down?


Also, I'll note that this is a post taken from Discord, but it describes my issue perfectly so I figured I would put it here. Is it possible to fix this issue?

Comments

  • Hi @IndieanaJones,

    Build 503 (Jun 07, 2022) brought an important modification to both the plugin running on the Cloud and client logic in Shared Mode. The internal buffering of states that happened on the plugin was removed, which brings a more responsive state synchronization, with less perceived lag and no spawned objects standing still.

    On the client side, a new interpolation mode was implemented on NetworkTransform and inheritors in order to adapt it to the now intermittent state updates received for the proxy objects. There was one particular issue with Rotation interpolation in this mode, which was fixed on Build 515 (Jun 15, 2022)

    Although it is expected that the view target interpolates a bit behind the latest state, it is certainly not expected that it "lags behind massively" as you reported, under reasonable conditions, and there are currently no known issues being tracked that matches your report, as far as I'm aware. Would you be able to provide more details on how I could reproduce this massive visual lag and in which conditions it occurs? Maybe a simple repro-project that exemplifies the issue happening?

    Moreover, when the authority stops moving the NetworkObject, the InterpolationTarget of the other client drifts off infinitely with a constant speed.

    There is a similar report under investigation (Card No. #540, for reference). I'll reference this post on the card and share updates here as soon as we're able to investigate it further.

  • Here's some example footage of the issue. The character's actual position is what is synced on the main object, and the orb following it is the interpolation target. As you can see, any time the orb gets close to the actual position of the user, it begins slowing down to the point where moving every so often results in periods of time where the character has stopped for several seconds and the interpolation target is still ever so slowly catching up, matching the described behavior above. As far as I can tell, no setting seems to change this behavior and I'd like to think it's not intentional.

  • Sorry to bump, but I would still like an answer on this one.

  • Hi, did this ever get resolved? I experience the same thing.

  • I have this problem also. If interpolation is on it's overtly slow and no amount of changing settings has any effect on interpolation. Not sure if problem is my setup or something with Photon Fusion. Attached project should be able to reproduce the problem. You need to move the networked object from the editor as there's nothing else than connection, dummy rig and authority request scripts and NetworkedTransform.


  • Hi @IndieanaJones, @Daniel6 and @PetriAuvinen!

    Thanks for your detailed reports about the issues regarding NT interpolation of remote objects in Shared Mode. The legacy interpolation algorithm has been replaced by a new one in the latest Fusion version released, v1.1.4.

    The new version addresses known issues, the main ones being:

    • slow interpolation when dragging objects on the Scene view,
    • drifting extrapolation when the client stops receiving updates for that object (e.g., authority disconnected abruptly);
    • interpolated objects coming to a rest in a slightly different position than the authority's object,
    • recurrent extrapolations and the necessary smoothed error corrections resultant from them.

    Please try upgrading to the latest version and seeing how it works to solve the issues you've been observing.

    All NT objects will automatically use the new interpolation algorithm, but you can force the legacy one by toggling a checkbox on the NT behavior if you so wish or want to compare the two.

    Thanks again for the reports and your patience!