Announcement

Collapse
No announcement yet.

Smooth Sync: Sync your Transforms Smoothly across the network

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    fuestrine Do you mean that if I add the smooth sync component to my character that I have to do something extra to get the animations from the client character to show up on the server and other clients? Could you clarify? And will smooth sync work on the paragon characters from the marketplace? Thank you.

    Leave a comment:


  • replied
    3Gi
    Yeah, movement will be super smooth in a blank ThirdPerson template listen-server.

    You'll need to sync the animations yourself though because SmoothSync only syncs things that have transforms. So you won't see any arms and legs swinging around, you'll just see the body moving around and jumping up and down. The animations should be easy enough to sync though by either lining it up with the time that gets sent with SmoothSync or you can probably just do walk or run animations based on speed of movement client side.

    Let me know if you need any more information.
    Last edited by fuestrine; 01-11-2019, 01:38 AM.

    Leave a comment:


  • replied
    The issue I am having is in multiplayer listen-server, whether in simulated 2 person, or in an actual online session with 1 other person on an empty level, when we look at each other run, the animation is not smooth, it's like the other character's animation framerates are really slow, but on my own character its smooth as butter and the other player often gets moved by the server, which looks like warping. This is with the 3rd Person Mannequin with default replication settings and I have even tried tweaking the settings on the character and in the movement. I have read elsewhere that UE only has this issue in a listen-server, but not in a dedicated server. So Smooth Sync will smooth and sync player movement in a listen-server?

    Leave a comment:


  • replied
    3Gi
    I'm not really sure. I don't know all of the intricacies of Replicate Movement. If you have specific questions about when it jitters and desyncs for you, I can probably answer better.

    I think Unreal's replicate movement doesn't have a buffer of states though like SmoothSync does. This means that even if you have a network hiccup of .1s, if you set your InterpolationBackTime (a SmoothSync variable) to .1s, you will see zero jitter.
    If you go passed this number that you set, SmoothSync will then extrapolate and attempt to do it as smoothly as possible.

    Let me know if you have any other questions.

    Leave a comment:


  • replied
    This cures the jittering and desyncing issues caused from replicated movement in multiplayer?

    Leave a comment:


  • replied
    Version 1.10 is up on the Marketplace.

    Changes:
    -Added ability to sync components. Use SmoothSync.setSceneComponentToSync() to pass in the component you want to sync the Transform of. Available from blueprints or code.
    -Fixed issue with coming out of rotational rest while not in positional rest, and vice versa.

    Leave a comment:


  • replied
    ATHIEK
    Alright. SmoothSync can now sync the Transforms of any components as well as actors. Thanks for the tip.

    I have PMd you the changes in case you want it immediately before it shows up on the Marketplace.

    Leave a comment:


  • replied
    pDunkl
    Awesome, glad to hear it's working. If you like my product, every 5 star rating helps us get noticed a bit more.

    Feel free to hit me up with any questions, problems, or comments any time. Cheers.

    Leave a comment:


  • replied
    fuestrine

    Okay, I've tried the Rolling example with physics simulated only for local controller and let the replication do the rest -> it works perfect on Android and PC.
    The problem must be in relation with either:
    *Constantly adding force (linetrace for hovering from 4-5 points)
    *Using ChildActor inside the pawn
    * or something with my session handling is just plain wrong

    I'll check and recreate them with alternative methods to see if the problem is caused by these things.
    But anyways, thank you for your time and checking it.
    ____________

    Edit: I've migrated the RollingBall pawn to my project and swapped my pawn with it, the problem appears again, android stops replicating after few seconds.

    ____________

    Edit 2: The problem is solved! Your plugin had absolutely nothing to do with it, it just reacted to something what Unreal itself ignored. In the Gameinstance I had setup if a network error occurs, destroy the session. And for whatever reason there was always one network error if I connected an android device to a existing session or created one with it. By disabling the session destroying everything works fine now. And it's just awsome seeing on the android device how smooth everything now moves/replicates in comparison to the other methos, thanks to your plugin. So happy
    Last edited by pDunkl; 01-04-2019, 04:56 AM. Reason: Solved the problem

    Leave a comment:


  • replied
    pDunkl
    It works for me on android with the Rolling Template which uses AddTorque. Does the Rolling Template correctly describe your situation?

    Otherwise, I think I'm confused as to where it is failing. Can you say the steps again to recreate the issue?

    Leave a comment:


  • replied
    fuestrine
    Ah sorry, "both Unreals Movement Replication and with SmoothSync" belongs after "I tried the normal Pawn Class again", messed up the sentence...

    I filter out if the Pawn is locally controlled, if it is, it ticks and has Physics Simulation on
    If it is not locally controlled, than just do nothing and wait for replication.
    Also only add force if it is locally controlled and completely ignore if it is not.
    As I mentioned, it works completely fine if the Pawn is controlled by a PC.
    I tried also to crack up the send rate, the net frequency and set net dormancy to never. I though maybe Unreal is limiting something on Mobile but nothing has changed.

    What works on PC and Mobile:
    *Unreals build in Movement Replication (but I have to activate Physic Simulation on the not controlled Pawns, what I want to avoid to save perfomance on physics calculations on mobile devices...
    and
    *Get actor location and rotation on tick send it as repNotify (skip Owner), and in the RepFunction set the location/rotation of the corresponding pawn on the other clients with lerping from current position.

    Only works on PC:
    *only simulate if pawn is locally controlled let SmoothSync handle all the movement replication with extrapolation.
    the mobile pawn just stops replication after a few seconds while receiving all the PC clients as usual.
    Last edited by pDunkl; 01-03-2019, 12:36 PM.

    Leave a comment:


  • replied
    Patrick Dunkl
    Are you saying Replicate Movement fails in the same way? If it does, it's probably just some Unreal Engine thing that I can't do much about. The first thing that comes to mind is maybe you are adding force on every computer instead of just the computer that's supposed to be moving the object around.

    Let me know if it's just SmoothSync failing at AddForce and I'll build a mobile version to test it out.

    Leave a comment:


  • replied
    On the ThirdPersonTemplate it works perfectly, maybe because of its Character Class or because it doesn't move via addForce and addTorque.
    I've just tried the normal Pawn Class again and it works as expected as long as I use world offset instead of addForce... both Unreals Movement Replication and with SmoothSync.

    Leave a comment:


  • replied
    Patrick Dunkl
    I combed through the code looking for any possible issues and nothing stood out.

    I then ran it on android and didn't see the issue. I tested using a blank ThirdPersonTemplate.

    Do you get this issue with a blank ThirdPersonTemplate except you use SmoothSync to sync the players instead of ReplicateMovement?
    Last edited by fuestrine; 01-02-2019, 11:40 PM.

    Leave a comment:


  • replied
    ATHIEK
    Just wanted to update you on my progress. It's turning out to be a bit more problematic than I had hoped to be able to hook it up universally to any component. I've got a plan in mind but it's going to require some more time. I'm thinking later this week I'll be done.

    Leave a comment:

Working...
X