Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    I managed to recreate the issues on a new project. All I did was add an input "Ability" mapped to the F key, add the ability state machine and the configuration in the animbp, and create an ability that has a branch at the end. If I press and hold F it will speed up every other iteration. Here's a link to the project:

    https://mega.nz/#!Ckg2HZaK!c4r6oq52_...gwqNcHAiBuZIDQ

    Edit: It has something to do with the interruption of the animation. If I place the branch after the play animation task, the next one will not be sped up. Also, depending on where you put the branch the animation speed is different. I'm guessing it's a blending thing.
    Last edited by fernmerc; 03-08-2018, 02:37 AM.

    Comment


      Originally posted by fernmerc View Post
      I managed to recreate the issues on a new project. All I did was add an input "Ability" mapped to the F key, add the ability state machine and the configuration in the animbp, and create an ability that has a branch at the end. If I press and hold F it will speed up every other iteration. Here's a link to the project:

      https://mega.nz/#!Ckg2HZaK!c4r6oq52_...gwqNcHAiBuZIDQ

      Edit: It has something to do with the interruption of the animation. If I place the branch after the play animation task, the next one will not be sped up. Also, depending on where you put the branch the animation speed is different. I'm guessing it's a blending thing.
      Thanks, I'll poke at it and see what I get.
      Able Ability System - A high performance, robust ability system for UE4. Now Available!

      Comment


        Originally posted by ExtraLifeMatt View Post

        Thanks, I'll poke at it and see what I get.
        Thanks! I also have another issue relating to it when I use looping. I'm trying to implement my bow mechanics using Able, and I have three abilities; one for draw, another one for aim, and another one for fire, in which they branch to each other in succession.

        The first issue I had was that the blending wasn't working correctly, just like with the previous issue. The draw animation ends where the aim animation begins, but instead if I place the branch anywhere other than after the first animation has ended, he will quickly revert to idle and then blend into the aim animation. I ended up placing the branch .2 seconds after the draw animation had finished and even though there's a really tiny hiccup in between the abilities it's good enough for me as a workaround right now. If I put it .1 seconds after the draw animation finishes, there's a chance (~20%) that it'll revert to idle and then blend into the animation, as it shouldn't. For all I know there's still a chance of it happening .2 seconds after and I just haven't experienced it yet, but it's just a temporary workaround.

        The issue I mentioned came after, in the second ability. If I set the aim ability to loop, and I break the channel condition to escape the loop, it restarts the animation from the beginning to the end instead of just breaking off right away. This one is also really weird, because I put a custom event near the beginning that fires in every loop iteration, but if I break the channel condition midway through the loop and it starts it from the beginning, the custom event does not fire. So then I realized it's not the ability starting all over, it's just the animation. I placed an animnotify in the beginning of the animation and it prints a string if I break the channel condition near the end of the ability. I know it's related to the previous issue, because it works fine in single node; the issues only happen with the ability animation node. Unfortunately I can't use single node as aimoffsets don't work and there's no transition. Ability interrupt is also called when it should be, so it's purely an animation issue.

        In case my explanation isn't clear enough, here's the issue laid out plainly:
        • One ability branches to the other (only issue here is the same one as before, weird blending)
        • Second ability loops from start to finish indefinitely; all it contains is a single animation task, using ability node.
        • This ability is channeled, channel condition being mouse press
        • Mouse is pressed and held all the way until the second ability
        • Mouse is released any time during the second ability (can be first loop iteration, tenth loop iteration, it doesn't matter)
        • Animation replays from the beginning (animnotify fires) instead of being broken out of
        • Only occurs using ability animation node, not single node

        Any help is appreciated, it's driving me crazy!
        Last edited by fernmerc; 03-10-2018, 05:03 AM.

        Comment


          I had a question regarding usage/workflow - I'm not really making gameplay but various types of cinematics. Would this increase the speed of my workflow, for example, quickly prototyping abilities (for example, triggering lots of explosions/other emitters at the same time and killing a bunch of AI) and then popping the abilities off in sequencer? Is this a good use case for able?

          Comment


            Originally posted by RodenHirata View Post
            I had a question regarding usage/workflow - I'm not really making gameplay but various types of cinematics. Would this increase the speed of my workflow, for example, quickly prototyping abilities (for example, triggering lots of explosions/other emitters at the same time and killing a bunch of AI) and then popping the abilities off in sequencer? Is this a good use case for able?
            Truthfully I've never seen anyone use it in that aspect. Sequencer is setup to handle a lot of that. You could use Able to help you re-use particle/animation timings and such like that. However, I haven't written any support with Sequencer to call Able Abilities or anything, so there may be some work there. Not sure...
            Able Ability System - A high performance, robust ability system for UE4. Now Available!

            Comment


              Originally posted by ExtraLifeMatt View Post

              Truthfully I've never seen anyone use it in that aspect. Sequencer is setup to handle a lot of that. You could use Able to help you re-use particle/animation timings and such like that. However, I haven't written any support with Sequencer to call Able Abilities or anything, so there may be some work there. Not sure...
              Yeah, my workflow is kind of experimental at this stage. Thanks for the input. Just trying to come up with a toolkit I can take across multiple projects quickly.

              Comment


                So I bought the able ability system this weekend, and it works pretty good, but I found an issue. I can't see to cancel an abilities animation early, I wired up a custom event, cancel the ability (which does appear to cancel the ability itself) but the animation just continues to play no matter what, UNLESS I make it play another animation via a branch instead of a cancel, that will instantly end the first animation. Any hints as to what I need to do to ensure the animations cancel correctly with the ability itself? (I am using Ability Animation Node, have that all setup in the correct fields and I have 'stop on interrupt' turned on which I would have thought would do what I want, but it doesnt). If I try to use 'interrupt' for the result to use in the cancel ability method, it seems to just reset the animation.


                Edit: I did find a way to sort of make it work, I now check if there is a valid active ability and has ability animation, to set the state of if there is an ability animation playing. This doesnt seem like the right way to do it however because it seems like it would kill any blending.
                Last edited by SteamPunkProgrammer; 03-13-2018, 11:19 PM.

                Comment


                  Originally posted by SteamPunkProgrammer View Post
                  So I bought the able ability system this weekend, and it works pretty good, but I found an issue. I can't see to cancel an abilities animation early, I wired up a custom event, cancel the ability (which does appear to cancel the ability itself) but the animation just continues to play no matter what, UNLESS I make it play another animation via a branch instead of a cancel, that will instantly end the first animation. Any hints as to what I need to do to ensure the animations cancel correctly with the ability itself? (I am using Ability Animation Node, have that all setup in the correct fields and I have 'stop on interrupt' turned on which I would have thought would do what I want, but it doesnt). If I try to use 'interrupt' for the result to use in the cancel ability method, it seems to just reset the animation.


                  Edit: I did find a way to sort of make it work, I now check if there is a valid active ability and has ability animation, to set the state of if there is an ability animation playing. This doesnt seem like the right way to do it however because it seems like it would kill any blending.
                  Read my posts above, I think we're encountering the same issue. Can you try using single node just to see if it cancels correctly? If it does then it's the same issue.
                  Last edited by fernmerc; 03-14-2018, 02:59 AM.

                  Comment


                    Hi, when i create a able ability bp, it ask for a actor, and then a asset. when it ask for the asset what should I do since everything is blank. Also when i try to add in animation nothing runs in the able system so i need help.

                    Comment




                      Open up the Animation Blueprint of the entity you wish to set this node up on.

                      Create a variable of type Boolean and name it something descriptive. This will be our flag to the state machine that we have an Ability animation to play. For this example, the variable has been named IsPlayingAbilityAnimation and is highlighted in red.

                      Now that we have our variable, we need to make sure it gets updated each frame. To do this, we simply:
                      1. Get our Pawn Owner.
                      2. Check if our Pawn Owner is valid (safety first).
                      3. Get our Ability Component
                      4. Check if our Ability Component is valid (safety first).
                      5. Call HasAbilityAnimation from the Ability Component and store the result in our variable.

                      Now we can hit the Compile button and everything should be fine. If not, check your blueprint against the one in the screenshot and see if you accidentally forgot a connection.



                      how do i do this with already movement mapped on my bp animation

                      Comment


                        Originally posted by SteamPunkProgrammer View Post
                        So I bought the able ability system this weekend, and it works pretty good, but I found an issue. I can't see to cancel an abilities animation early, I wired up a custom event, cancel the ability (which does appear to cancel the ability itself) but the animation just continues to play no matter what, UNLESS I make it play another animation via a branch instead of a cancel, that will instantly end the first animation. Any hints as to what I need to do to ensure the animations cancel correctly with the ability itself? (I am using Ability Animation Node, have that all setup in the correct fields and I have 'stop on interrupt' turned on which I would have thought would do what I want, but it doesnt). If I try to use 'interrupt' for the result to use in the cancel ability method, it seems to just reset the animation.


                        Edit: I did find a way to sort of make it work, I now check if there is a valid active ability and has ability animation, to set the state of if there is an ability animation playing. This doesnt seem like the right way to do it however because it seems like it would kill any blending.
                        Yea, I'm still digging into this animations not cancelling, I was going over fernmerc 's test project this weekend. Unfortunately my local version of Able is a bit of a mess as I get ready for the next update, so I need to wrap that up so I can do a deeper dive into the issue. I'll definitely get something in for the next update.
                        Originally posted by yanny View Post
                        Hi, when i create a able ability bp, it ask for a actor, and then a asset. when it ask for the asset what should I do since everything is blank. Also when i try to add in animation nothing runs in the able system so i need help.
                        The first prompt is to pick a class, the second is to pick an asset from that class. Previously that window would load everything (which you can still get if you simply hit cancel on the class selection prompt).
                        Originally posted by yanny View Post
                        how do i do this with already movement mapped on my bp animation
                        Just add it before or after your movement animation. Or setup a blend between your movement state machine and the Ability state machine.
                        Able Ability System - A high performance, robust ability system for UE4. Now Available!

                        Comment


                          Originally posted by fernmerc View Post

                          Read my posts above, I think we're encountering the same issue. Can you try using single node just to see if it cancels correctly? If it does then it's the same issue.
                          Single node does cancel right away it seems, little harder to understand exactly whats going on because it obviously doesnt return the actor back into a locomotion state like it does would state machine nodes, but it does clearly end the animation earlier when the conditions are right.

                          Comment


                            Originally posted by ExtraLifeMatt View Post

                            Yea, I'm still digging into this animations not cancelling, I was going over fernmerc 's test project this weekend. Unfortunately my local version of Able is a bit of a mess as I get ready for the next update, so I need to wrap that up so I can do a deeper dive into the issue. I'll definitely get something in for the next update.


                            The first prompt is to pick a class, the second is to pick an asset from that class. Previously that window would load everything (which you can still get if you simply hit cancel on the class selection prompt).


                            Just add it before or after your movement animation. Or setup a blend between your movement state machine and the Ability state machine.
                            Glad to hear you are working on it, but I might beat you to it and fix it myself, currently reading source code :P

                            Edit: I'd also like to suggest an additional task, a cancel task that would work like the branch, but just allow you to end the ability early, its pretty easy to make this as a custom task but it would be even easier if it was just one built in
                            Last edited by SteamPunkProgrammer; 03-14-2018, 12:17 PM.

                            Comment


                              I also found a pretty bad crash, if you select the default 'abl ability' class to branch into it instantly crashes the editor, you dont even have to hit the play button, just the moment you select it. Which can definitely be an issue with miss clicks.

                              Comment


                                Originally posted by SteamPunkProgrammer View Post

                                Glad to hear you are working on it, but I might beat you to it and fix it myself, currently reading source code :P

                                Edit: I'd also like to suggest an additional task, a cancel task that would work like the branch, but just allow you to end the ability early, its pretty easy to make this as a custom task but it would be even easier if it was just one built in
                                Why would you want that? Can't you just decrease the time of the ability? Or do you want to specify conditions to end it in? Also, have you tried using "Cancel Ability" on the ability component? I would just have a custom event that checks for whatever parameters you want and then I'd call cancel ability if they are true. I haven't tried it though.
                                Last edited by jfaz48; 03-14-2018, 03:42 PM.

                                Comment

                                Working...
                                X