Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

  • replied
    Able v2.20 has been submitted. Notes below:

    Able v2.20

    - BUGFIX: Fixed a potential GC crash in Set Shader Parameter Task.

    - BUGFIX: Fixed an issue where Interrupting an Animation wouldn't properly interrupt.

    - BUGFIX: Fixed an issue where some Condition fields weren't edittable.

    - BUGFIX: Fixed an issue where CanLoopExecute wasn't getting called.

    - LEGAL: Fixed copyright info for 2018.

    - FEATURE: Added 4.19 support.

    - FEATURE: Added C++ versions of Blueprint events. These are called by default by Blueprint Events you haven't overloaded, or you can call them explicitly by using a "Add Call to Parent" within your overloaded BP event.

    - FEATURE: Added an option to wait on all Tasks to finished before considering an Ability finished. This is useful for cases where your own tasks may have an undetermined length.

    - FEATURE: Added Ability to non-cache cooldown methods. This allows users to dynamically change their cooldown length and have it respected even when an Ability is already on cooldown.

    - FEATURE: Added "Cancel Ability Task" which will cancel an Ability on the targets based on the user setting a specific Ability, or a Gameplay Tag Query - in which case it'll remove all Abilities that fit that query. You can also have it remove a Passive Stack (with or without refreshing the stack duration), or clear the stack entirely for that passive.

    - FEATURE: Added and exposed SetPassiveStackCount method to Blueprints.

    - FEATURE: Added "Clear Animation Queue On Interrupt" to Play Animation Task, which will clear any queued animations as well as the current playing animation.

    - FEATURE: Added a Blend Out value as well for blending out of animations when the Animation Node has no other animations queued up (otherwise the queued Animation's Blend In takes priority).
    NOTE: 4.19 Users, I had to disable the reflection component for the preview scene in the Ability Editor. The alternative was to have an annoying "You need to re-bake your reflection data" stuck to the top of the screen. You may or may not notice the component being gone (I didn't notice it). I'm going to continue trying to find out how to re-enable it in a way that doesn't spam the user, but for now it's turned off. Just an FYI.

    Leave a comment:


  • replied
    Originally posted by jfaztk View Post
    I have an issue when looping an animation. The more loop iterations occur, the worse my performance gets. If I have an animation looping every .05 seconds, my game gets progressively slower until like 3 seconds later it's running at 10fps. If I have an animation looping every .2 seconds, then it takes about 10 seconds for it to get down to 10fps, and I am assuming it keeps scaling like that the lengthier the loop is. Not sure what could be causing this; animation node and single both suffer from this. It's definitely an ability issue because I can manually loop it just fine without any lag. Thanks for any help.
    Are you sure you aren't just stacking up a ton of passives or some such? There is a small amount of memory that is allocated for each Ability (the scratchpads), but those are super tiny and shouldn't be noticeable unless you are somehow generating 100,000's or some such crazy number in a very short time frame. And even then they should get immediately cleaned up when GC runs. The face that you are getting continual degradation screams that you're likely just applying a ton of Abilities over and over without any finishing. I'd check whatever logic you are doing to fire the Abilities.

    Able 2.20 is almost done (doing the 4.19 build right now), so I'll post notes shortly.

    Leave a comment:


  • replied
    I have an issue when looping an animation. The more loop iterations occur, the worse my performance gets. If I have an animation looping every .05 seconds, my game gets progressively slower until like 3 seconds later it's running at 10fps. If I have an animation looping every .2 seconds, then it takes about 10 seconds for it to get down to 10fps, and I am assuming it keeps scaling like that the lengthier the loop is. Not sure what could be causing this; animation node and single both suffer from this. It's definitely an ability issue because I can manually loop it just fine without any lag. Thanks for any help.

    Leave a comment:


  • replied
    Originally posted by SteamPunkProgrammer View Post
    Just out of curiosity; Is there a projected time on the next release (for 4.19 I assume which released day before yesterday) I just want to gauge if I should use what is there and just update later
    Yea, I just saw the 4.19 release, so I'll try and have the update out this weekend so they can process it and publish the update early next week.

    Leave a comment:


  • replied
    Just out of curiosity; Is there a projected time on the next release (for 4.19 I assume which released day before yesterday) I just want to gauge if I should use what is there and just update later

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post



    That's a trivial add. I can toss that in the next update as well.

    Sweet! Happy to hear it

    Leave a comment:


  • replied
    Originally posted by SteamPunkProgrammer View Post

    The point is for animation canceling within abilities, say you have an attack with a sword that has a nice 'return back to normal position' animation but you dont care about that if the player is moving at the time (ie the animation cancels into the action of moving the moment the animation has completed 'enough') There are lots of usages for things like this to make an ability system feel more smooth.

    Yea, I've canceled the ability manually myself, as I said its easy to make a custom task to handle it, and it works fine, but a real task would make it easier.
    Originally posted by jfaztk View Post

    Ahh I see what you mean, I'm currently doing that as well, I'll add +1 to your suggestion
    That's a trivial add. I can toss that in the next update as well.

    Leave a comment:


  • replied
    Originally posted by SteamPunkProgrammer View Post

    The point is for animation canceling within abilities, say you have an attack with a sword that has a nice 'return back to normal position' animation but you dont care about that if the player is moving at the time (ie the animation cancels into the action of moving the moment the animation has completed 'enough') There are lots of usages for things like this to make an ability system feel more smooth.

    Yea, I've canceled the ability manually myself, as I said its easy to make a custom task to handle it, and it works fine, but a real task would make it easier.
    Ahh I see what you mean, I'm currently doing that as well, I'll add +1 to your suggestion

    Leave a comment:


  • replied
    Originally posted by jfaztk View Post

    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.
    The point is for animation canceling within abilities, say you have an attack with a sword that has a nice 'return back to normal position' animation but you dont care about that if the player is moving at the time (ie the animation cancels into the action of moving the moment the animation has completed 'enough') There are lots of usages for things like this to make an ability system feel more smooth.

    Yea, I've canceled the ability manually myself, as I said its easy to make a custom task to handle it, and it works fine, but a real task would make it easier.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied
    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.

    Leave a comment:


  • replied


    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

    Leave a comment:

Working...
X