First of all thanks for the plugin it’s great! I have couple of questions:
What’s the best way to check if another ability is running. For example: primary and secondary weapon: you can’t fire primary weapon until secondary will finish, (I don’t want to construct new ability to check condition - this won’t be optimal)
Why Abilities are checking input? why you haven’t created ability manager or something like that to configure inputs with abilities? (just want to know what’s your thinking)
You can just check if the Actor is currently playing an active ability or just blindly fire it and it’ll fail (since you can only have one active ability playing at a time).
The only Ability portion that checks input is the Input Conditional for channeled Abilities, otherwise it’s entirely up to you how you want to bind input to an Ability - in most my examples I just explicitly bind an input to a specific Ability because it’s easier for people to understand.
The first time you open the Editor it asks you for a Mesh for the Preview Actor which is show in the Editor, you shouldn’t be seeing it set that asset already.
I am not sure whats changed, my end or yours, but i can no longer rotate the actor preview.
Also, i know this was mentioned before, when the initial list for preview assets (player chars) pops up, it takes my PC like 10 min to populate the list.
It doesnt take UE4 that long to find what i need, is it just doing something externally looking for the models?
EDIT:
Actually, would this be because my version was saying 1.7 and i updated to 1.85 in the project? would that have an effect on pre-made ABLE items?
Hmm, I didn’t change anything with regard to the preview actor or such. Check the viewport options in that window and make sure you didn’t accidentally lock viewport rotation or something.
And yea, it’s UE4 loading all the assets for the model previews. Still haven’t found a way to speed that window up yet.
Any chance to add “fire and forget” ability (just one frame ability) while other ability is running? Currently we need to add separate ability component and it isn’t good idea as some functionalities need able component (eg. gameplay tags)
For example check Dead Cells where you can use powerups (spawn granade without animation, speed up powerup etc) while primary and secondary abilities are running.
A ‘Move To’ Task would be fantastic, currently I utilize root motion for some of my animations, but being able to manually set the player’s locations during an ability would also be fantastic. Love the plugin so far though, it works wonders for my project!
If you use root motion, it would cause issues with a move to task as they would both attempt to set the player velocity and one will stomp the other - but yes, I’ve thought about adding a Move To. The request comes up from time to time so I’ll look into it.
@intoxicat3 Do what AngelV is suggesting and just use a passive to spawn it. As long as it’s not playing an Animation, it should be fine.
I have one request for you @ - you should add Visual Logger support into the plugin (running abilities, tasks etc) - it would be much more easier to debug things during production.
Sure, I can look into that. I honestly haven’t used the visual logger yet (totally forgot it exists), so I’ll poke around and see what’s required to support it.
As for passives and running multiple abilities. I have tried to create crouch functionality as passive and there’s a crash when canceling passive abilities that are in loop.
My ability is simple:
When I press CTRL passive ability with loop will start,
When I release CTRL I’m canceling this ability. Crash occurs after running CancelAbility in AbilityComponent.
If you can try just to recreate crouch functionality using passive abilities (with loop!) you should get the same crash.
Sorry for spamming you with questions but I have another one: I would like to show abilities current cooldowns remaining in HUD - what’s the best way to get access to this data? Imagine simple icons with radial progress bar to let player know when he can use specific ability again.
And another one: is there any chance to show in viewport widgets for Vectors and Transforms? ( Meta = (MakeEditWidget = true) ) for variables in tasks?
And last one (hopefully): how I can know if ability was finished so I can stack another one and fire it after finish? I can’t find any delegate OnAbilityFinished or similar.
There is a GetCooldownRatio (which returns a value between 0 and 1) you can use in conjunction with GetCooldown to figure out how much time is left on the cooldown for an Ability.
As for the viewport widget, I’m not sure if that would work given you aren’t moving an actor and are just setting data - but I can investigate.
Can you expose it to BP? I’m using UMG to show delays and debug data.
I can see you have m_ActiveCooldowns - maybe it’s easier way to check cooldowns for passive and active abilities?
In my example I’m interpolating FTransforms (in array) in task and it’s easier to set them using 3d Widget as you can scale, rotate and move.
Another questions and requests which are blocking me for now:
how I can know if ability was finished so I can stack another one and fire it after finish? I can’t find any delegate OnAbilityFinished or similar.
can you please add function in AbilityComponent to check if ability class is running? (check for class not reference) I would like to check if my ability class is running or in cooldown - if yes draw something.
What I’m trying to achieve is diablo like abilities - you can see cooldowns on HUD for each of them. (even Actives - LMB RMB)
Not sure how I don’t have that exposed, but I’ll get that in.
Abilities have an OnAbilityFinished method that is called when they complete, there isn’t a C++ delegate. I could add one, but I think the BP will get you everything you need and can be used to call whatever C++ you need (you’d have to exposed that C++ to BP but the cost should be minimal).
Exactly. So when I run ability from C++ I can’t find a way to find out when this ability will finish. Any chance you can create delegate or point me out?
Basically I have created AbilityController in c++ to run abilities (from code) on given input profile. So I’m not running them over BP. I think you should try to create something similar to Diablo and check out if everything is exposed.
I’d love to make a small ARPG example, but I simply don’t have that much time with my other projects and my day job being a bit busier than normal (we just released DOOM and Rocket League on Switch). It’s been on my list for a while, but yea - just no time.
I’ve been having a few errors whilst playing in Standalone play (in fact it won’t launch) and trying to do ‘Launch Game’ by right-clicking on my .uproject, however, I noticed after trying to load in, I got a lot of errors with the AbleEditor, do you have any possible solutions for this or if it’s on a page that I can be referred to?
[2017.11.15-17.59.31:794][384]LogUObjectGlobals: Warning: Failed to load '/Script/AbleEditor': Can't find file for asset '/Script/AbleEditor' while loading NULL.
[2017.11.15-17.59.31:794][384]LogLinker: Warning: Can't find file '/Script/AbleEditor'
Trying to pinpoint the errors slowly, getting a ton but I just noticed this one from Able, thanks for the fantastic plugin though, it works great in-engine!
I might have a few other things that I need assistance with but this is the most important issue at the moment.
I’ve seen that previously in a super old version of Able but it was solved by loading Able earlier during engine start up - however, stand alone is a special flower from what I’ve discovered so it may not be behaving with that.
What version are you running? Also, that wouldn’t prevent you from launching so likely your issue is elsewhere, but I’d be curious to see if Abilities work once you get it running despite those warnings.