Able Ability System Info and Support Thread

Version 1.6 is now live. Enjoy!

@

I’m experiencing an issue with the newest version, the animation no longer resets to the beginning after the ability is canceled.

In earlier versions, if something cancels the ability, then the next time the ability plays it will restart the animation from the beginning (expected behavior)
Now it holds onto the last frame and blends into that instead restarting the animation.

My BP and ability set-up hasn’t changed from the screenshots I posted earlier.

Hmmm… I did have a small change in the animation blending code. I’ll look into this and possibly revert that change. Thanks, Aumaan.

@ please don’t remove the new blending feature though, I like that part of it xD

It’s just that the animations once interrupted by a ā€œcancel ability nodeā€, never restart from the beginning as they should.

For reference, that change was meant to make sure the animation completed blending before swapping to the next animation. But yes, cancel/interrupt would want a hard stop. I’ll add some logic for the specific case, probably have it as an option you can enable/disable.

@

Thank you so much! :smiley:
I wish I could leave another 5 star review just on the support alone xD

Seriously though I really feel like I got above and beyond my moneys worth with this one, keep up the good work!

Alright, so if you are using 4.16, there is currently a bug with Default Spawned Event Nodes causing crashes when called from the CDO (which Able relies on to keep memory down).

Here’s the Bug reference.

The work around is to simply turn off Default Spawned Event Nodes (Open up the Blueprint Editor, View -> Editor Preferences, Uncheck Spawn Default Event Nodes). Unfortunately you’ll have to re-create any Abilities that you used before hand until this bug is fixed (which will hopefully be soon).

Ohhh, that’s unfortunate :frowning:

Thanks for the heads up though.

@

Hi! Just downloaded the plugin yesterday and it’s great.

I’m wondering if you could help with a design question. I’m working on a game that’s heavily based on a weapon and combo system that I think this will really help with but I’m not sure of the best way to structure everything. Here’s an example:

One of the weapons fires a projectile. If 2 of these projectiles collide, they combine to make a larger, faster projectile heading in the direction of the projectile that was fired first. My initial design is:

  1. Pawn has Action ability that fires a projectile
  2. Projectile has passive ability that checks for collision with other projectile and branches to 3.
  3. Action ability that spawns new projectile

Does this sound like a good idea? I’m not sure how to destroy the original 2 projectiles, is there a task that would do this? Or should I make a hook in blueprint?

Hey @

I’m trying to create a new task that extends your ability task.
The goal is to create a new ā€œvariable branch taskā€, that has the m_BranchAbility defined at runtime through another function that can be defined in blueprints.

I’ve run into a wall since everything is a const function so I can’t perform any assignments to m_BranchAbility.
Is there perhaps a way I can work-around this?

Hi :slight_smile:

Yea, that sounds fine. To destroy the projectiles you need to find a way to call DestroyActor and it’ll have to be done via blueprints. If you override the OnAbilityEnd method and check the result, it’ll tell you if the ability was ended because it branched to another. If that’s the case, simply call DestroyActor on the projectile (Self Actor).

Branch Ability’s parameter can’t be changed at run-time because, if you watch the Burning Man tutorial I did, all Abilities are pretty much static/stateless once created. However, you can store that data on your character and simply have the Ability poll that. I’ll see if I can’t add a simple method you can override to grab that Branch Ability at runtime (default will just return the parameter). Branch Ability is admittedly a special task and I could see wanting it to be more flexible.

Thanks for the info, I’ll have the ability poll the character to get the data.

Also I’d like to suggest two quality of life features for the task editor:

  • Duplication of tasks, through either context menu or hotkey, (not sure which is easier)
  • Re-ordering of tasks (Makes it easier to keep track of tasks after adding/removing them) (Nevermind I see that re-opening the ability re-orders tasks already)

Able v1.65 has been submitted to Epic, it has a couple fixes/features:

  • Added an option to interrupt Animations that are playing when the Ability is interrupted (Must be using the Ability Animation Node option). You can find this new option in the Play Animation Task.
  • Added ā€œDynamic Branchā€ option to Branch Ability Task. If checked, this option will call ā€œOnGetBranchAbilityā€ on the Ability itself which can query the player or whatever else you need and return the appropriate Ability to use for the Branch.

I believe CTRL+A will auto bring up the Add Task window (I had that in a super early build… may have gotten nuked though). I can check later tonight. Duping Tasks isn’t too terrible, but there are a few things to be careful about - I"ll look into it.

With regard to Task order, that’s a bigger issue. Tasks are always sorted by time on save (which optimizes things during runtime) - so I’d be extremely hesitant to add manual sorting. If re-opening the editor fixed the issue you were seeing, then that works as well. :slight_smile:

Thanks for the excellent support! :slight_smile:

NP. The holidays put a damper on my normal testing though, so please report any issues you run into with the new features. I gave them a quick once over, but you never know.

@

Hello, thanks for the new options in the update :smiley:

Just a few things:
The Cancel Ability node doesn’t seem to be functioning correctly, it always seems to assume ā€œinterruptedā€ as the ā€œResult to Useā€ no matter what I set it to. (I’m assuming such as now the animations are interrupted during cool down now when I haven’t changed any of that BP logic before this update or the previous one)

The new interrupt bool doesn’t seem to affect this issue at all.

Also this minor bug still persists.

Hmm, I’ll dig into that [MENTION=33476]Aumaan Anubis[/MENTION]. Looking at the code real quick, we do pass the result - but the new code should only happen if we are passed an interrupt so if you’re seeing that then its getting told its an interrupt somewhere…

Unfortunately I checked the text that enum and its just a bug in UE itself (the tooltip shows for the currently selected value, not the one you are hovering over). I have no control over that unfortunately.

That’s not what it’s doing.
It actually does show the value of the one you hover over, it’s just the tool tips are all offset by 1.

Like this

Result to Use: > (on hover, tool tip reads: ā€œselect enum values from the listā€) <<< That’s fine.

  • Successful > (on hover, tool tip reads: ā€œ____ā€)
  • Branched > (on hover, tool tip reads: ā€œTask Finished Normally (e.g. reach end of its time)ā€)
  • interrupted > (on hover, tool tip reads: ā€œAbility is being branched to another abilityā€)

It’s the only abl node I’ve used that behaves that way.

On designing this system how did you envision stamina/mana use?

I’ve run into a slight snag on branching abilities using up energy/stamina/mana and I’m not sure which is the right approach. I’ve started caching the character BP with On Ability Start and firing the character’s UseStamina/Energy function from there but was getting inconsistent results so I decided to try from a Custom Event with Realm set to Server. The troubles range from sometimes it fires multiple times to not at all with tracking the UseStamina call for GetWorld->GetNetMode() sometimes having a server and sometimes not. I feel like I’m going about this in the wrong fashion but blind from staring at this too long =)

Thanks!