Able Ability System Info and Support Thread

That so much looks like your animation blueprint isn’t properly feeding in the data. How are you populating the “Is Ability Animation?” field?

I understand. Here it is.

Yea, so it is getting stuck in the Ability Node State Machine.

Try adding an extra check to your Animation Blueprint to check for “Is Playing Ability” before you set that boolean. So the logic would read like “If (HasAbilityAnimation AND IsPlayingAbility) HasAbilityAnimation? = true, else false”

That addresses the stuck pose which I appreciate but is not the main goal I had. The problem I am trying to solve is playing the animation specified. The TPose is still being shown.

Ok…so I decided to try the third person run animation. It works. I had glitches until I hit “Reset Preview Asset”.

So it must be something with the animation from SnS that it is not liking…

Ah, sorry. I assume it works with Single Node, right? That generally means one of your State Machine Parameters isn’t correct - but things look okay in the video. Did you ever get the Dedicated Server example to compile for you? I believe I use an animation in that one and it’s setup properly.

Sigh. Sorry to have wasted your time. I did not retarget the animation.

Regarding the Dedicated Server example, I have not gone back to that as of yet.

No worries. Glad you got it figured out!

After working for 5-10 minutes preview stage gets also populated with broken preview assets

Also - is there a way to control an ability Play rate via custom curve, much like the “Montage Set Play Rate” node where you can feed the curve into New Play Rate connection?

Never seen that one. Do you have GC turned up to some crazy high value? Those actors should be cleaned up.

Not currently. It’s not crazy to add. Just change the play rate from a float to FSplineCurve and update things as needed. I’m slightly hesitant to add that in by default simply because it seems like a fairly specific requirement. Seems like most people keep it at one value rather than use a curve (and the cost that goes with it).

Happens constantly and I have to reload the editor to get rid of it. As for GC - sure, I can check it. One question - what’s a GC? Since I’m using a minty mint 4.19 with a couple of free plugins I doubt that I’ve changed it from default value, whatever it could be.

I need it mostly to drive the melee 1-2-3 chain animation and create “windows” for combo branching. When I try controlling the montage directly via animBP I end up with a crappy behavior because Able is not aware of length change. So far I can’t change the variable from float to curve because that involves doing some codeworks, which I currently pretty much suck in. And it will surely turn into a mess when I’ll try to modify someone else’s code.
I have no idea what is the difference in costs between them, I’l have to dig on this later. So far I’m focused on getting things to work at all and they kinda don’t.

Also one more thing - can I get a custom event from the time line to fire a custom event from the ability’s BP Graph? Naming them the same would me my first guess, but that didn’t work. All I found was a “function override way” from your lightning tutorial, but that is something I can’t get to work either. All I need is to fire a custom event in graph once a custom event in the Timeline is fired.

In the ablDamageEventTask.cpp you pass an empty FDamageEvent to the actor’s TakeDamage. It would be nice to have a way to set an FDamageEvent to be passed.

I rather have the TakeDamage method determine the amount of damage that finally gets applied. That way the logic is in a central place to account for damage coming from some other technique.

Using a blueprint based on ACharacter for the preview asset. If I have the Able editor window open and I make a change to the character blueprint and compile it, when I come back to the Able editor, the Play button does not play the ability. I hit the reset preview asset and I get another asset spawned on the old one and then all works ok. If I close and open the window it clears off.

You can have CalculateDamageForActor call a Blueprint Library Function or some damage calculation you create and pass all the info to and then simply return a value - that would allow you to keep all your damage calculations in one place. I avoid using the FDamageEvent scheme because it feels fairly limited (radial vs point) and I only piggy back off it since so many people use the TakeDamage callback.

The actors not cleaning up may be due to the blueprint compile needing it to clear our the actor and recreate it. Closing the editor does just that. I’ll look into that.

Aiming for the next update for Able to hit around the 13th. I had LASIK done on Friday so I’m avoiding the computer (beyond this quick post) and then I’ll be out at Playstation DevCon all week, so the earliest I can get some work done is likely Friday night.

Cheers!

Good point on the library function. Congrats on the LASIK and have fun at the Con!

Any chance of blending issues and broken preview fix will make it to nearest update?

And maybe some info on this one?

I guess it’s my sacred duty to welcome you in a FullHD world (as the one that had this procedure ~5 years ago). I can imagine what a tough decision that was, so congrats on doing that.

That’s the plan. It’s on my list.

Custom Event Task takes in a name parameter, you can use that to identify what event is firing - rather than using two different events. Or am I misunderstanding your question?

Yea, it’s never a “fun” thing to mess with your eye sight (particularly when I was doing fine with contacts for 20+ years), but I’m glad I did it and the recovery is going smoothly.

Also, if anyone here is going to be at DevCon, I’ll be wandering around in a PanicButton (rep’ing my day job) T-shirt - feel free to say hi. I love meeting people.

Cool, thanks. The blending thing so far is the biggest issue since it ruins the setup for me completely.

I’m trying to make a custom event fire an event from graph. I feel that I’m missing something - does a custom event named Test1 suppose to fire when a custom event with a name Test1 is triggered on timeline?