Announcement

Collapse
No announcement yet.

AnimNotify framerate dependant? workaround?

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

    AnimNotify framerate dependant? workaround?

    Hello, I've been diggin a loot into this, doing many many tests and reading in Internet, but seems I can't find a solution.

    Looks like after 4.17, AnimNotifies can be missed if you are playing in DEDICATED SERVER mode. Not always, but sometimes.

    I noticed that if I slow down the animation play rate, they always fire, but if I speed up it, sometimes it misses (usually in the server side, clients usually always fire, sill not reliable on clients neither)

    My conclusion is that AnimNotifies are not reliable as they depend on the frame rate. If that's so, how are we supposed to use them in replicated games?


    If someone has any clue on how to address this, please, I need that knowledge.


    Thank you,
    - Nesjett
    [MARKETPLACE] The forest like gameplay system | building/crafting game
    Dark Souls 2 fighting system style
    Drivable Space Ship
    Run Knight Run | 48h game made
    Unreal Travel | 48h game made

    #2
    An anim notify is essentially an event call.
    According to the manuals it will fire anyway at the first avaliable moment.

    Realistically, because it is an event call, you can actually call it manually based on a separate timeline or a delay or whatver you wish.

    Personally, I have not experienced it skipping the event ever, even with animation speed at x3... but that doesn't mean it's not impossible for it to be skipped...

    The best method I can think of is to create an event call to trigger manually depending on what animation is being played and pass on a delay time with another event.
    So you end up.with an event that triggers your other event by reference essentially, based on whatever parameters you pass.

    Comment


      #3
      Previous versions of the engine had clear instructions on how to convert an AnimNotify into a 'Branching Point' so it always works at the instant it is called. Perhaps this process is still valid but the docs are no longer as clear.

      AnimNotifies are mostly used to fire off visual effects, try to find alternate means for anything critical and not use notifies in such cases.
      UE4 Tutorials for 3rd person Blueprint project from scratch: Youtube Channel
      Use Blender 2.8 to make UE4 compatible animations: Blog

      Comment


        #4
        Thank you both for the answer.

        Originally posted by MostHost LA View Post
        An anim notify is essentially an event call.
        According to the manuals it will fire anyway at the first avaliable moment.

        Realistically, because it is an event call, you can actually call it manually based on a separate timeline or a delay or whatver you wish.

        Personally, I have not experienced it skipping the event ever, even with animation speed at x3... but that doesn't mean it's not impossible for it to be skipped...

        The best method I can think of is to create an event call to trigger manually depending on what animation is being played and pass on a delay time with another event.
        So you end up.with an event that triggers your other event by reference essentially, based on whatever parameters you pass.
        About MostHost LA solution, I'm trying to figure out the best way for doing so in my system, but Is definetly not the best approach as It makes you take more effort to configure the times to all the animations. Still is a possible solution and Ill give a try on that direction. Thank you!

        Originally posted by Waves View Post
        Previous versions of the engine had clear instructions on how to convert an AnimNotify into a 'Branching Point' so it always works at the instant it is called. Perhaps this process is still valid but the docs are no longer as clear.

        AnimNotifies are mostly used to fire off visual effects, try to find alternate means for anything critical and not use notifies in such cases.
        Related to Waves answer, "couch knights" Epic's example made use of this notifies for replicated games reliably, atleast until engine version 4.17, to determine if the weapon should be "tracing for enemies" or not. I'm basically doing the same but found this issues I'v ementioned. Epic couch knights example is not even using "branching point" notifies, they use query ones, but I tried both, getting the same results in both cases.



        For some reason, I found people saying they dont have this problem, like MostHost LA so I'm thinking about what is happening there then
        Last edited by Nesjett; 11-09-2019, 11:33 PM.
        [MARKETPLACE] The forest like gameplay system | building/crafting game
        Dark Souls 2 fighting system style
        Drivable Space Ship
        Run Knight Run | 48h game made
        Unreal Travel | 48h game made

        Comment


          #5
          Could depend on a lot of things. But, what I was saying was that to avoid having to time everything you can create a chain of function/event that will check to make sure the correct animation is playing and trigger an event based on a specific time that you feed to the function call.
          Sure, it's not simple, but it would be like creating a fake notify system...

          Comment


            #6
            I'm trying to do it yhe way you propose, but they main problem is that I'm using notifies to visually set when I want the event to fire, in the way you say, unless I'm missing something, Ill have to set somehwere, maybe in a data table, the timings for every animation at which this event should fire. Is not the worst scenario, as I still can use the notify to check the time value and then put it in the table, but is not the way it should work.

            Maybe someone at epic or into engine code can bring some light to this issue.

            Thank you MostHost LA for your ideas!
            [MARKETPLACE] The forest like gameplay system | building/crafting game
            Dark Souls 2 fighting system style
            Drivable Space Ship
            Run Knight Run | 48h game made
            Unreal Travel | 48h game made

            Comment

            Working...
            X