Originally posted by ExtraLifeMatt
View Post
Announcement
Collapse
No announcement yet.
Able Ability System Info and Support Thread
Collapse
X
-
Originally posted by Its-Alf View Post
I've tracked my issues with input-based, client-channeled abilities to this. However, I can't find the value "Can Client Cancel". I see there's a function override for it, but toggling the return does nothing to resolve the issue. Oddly enough, testing with a dedicated server causes the abilities to work as intended. When when testing with a listen server, channeled abilities the client activates that use an input condition immediately cancel. The project is primarily co-op and I intend for players to be able to host rather than using dedicated servers; I'm not worried about cheaters. I've tested in a packaged game and the problem persists.
Is there a fix I can do on my end or will I need to wait for an update?not everything is a variable. so you found it right.
The dedicated server works fine as "client cancel" doesn't refer to the server so player cant be the server. for that you have I think a second function "can be cancelled" - and this allows the server to cancel.
Most multiplayer games ends up with dedicated servers anyway
Comment
-
Originally posted by MichaelLiew View Post
You should uncheck PlayAnimation task's "ResetAnimationStateOnEnd" property
It works if I use the montage version, but using the ability animation node the animation gets chopped up. I also made sure this issue is not due to my anim bp.
Comment
-
Originally posted by Herr Edgy View PostI have the same issue on my end though, and that bool is already unchecked.
It works if I use the montage version, but using the ability animation node the animation gets chopped up. I also made sure this issue is not due to my anim bp.Able Ability System - A high performance, robust ability system for UE4. Now Available!
Comment
-
ExtraLifeMatt, a way to lock/freeze a task's position on the timeline didn't sneak into the update for 4.26, did it? I'd have so much <3 for something like that.@thereisnoscotty
Grand Marshal of the Parade of Madfellows
Comment
-
Originally posted by soctty View PostExtraLifeMatt, a way to lock/freeze a task's position on the timeline didn't sneak into the update for 4.26, did it? I'd have so much <3 for something like that.Able Ability System - A high performance, robust ability system for UE4. Now Available!
Comment
-
Originally posted by ExtraLifeMatt View Post
Locking? No, but it shouldn't be hard to add. I'll see what I can do but no promises.
While I'm here.. I'm fiddling with something outside my typical wheelhouse today, and I'm sure I'm overlooking something obvious, but is a "traditional" first-person setup only possible by playing multiple animations on each mesh using a shared skeleton? "Traditional" here meaning "only-owner-see 1P mesh, owner-no-see 3P mesh" a la ShooterGame.
Using different skeletons throws up the expected warnings about skeleton/animation mismatches. Using the shared skeleton seems to be overriding whichever animation plays first with the second, regardless of slot setup or even discrete anim BPs, which is obviously going to cause problems in anything more developed than a very limited test scenario. I've seen mention of folks doing FPS with Able, so I'm fairly sure it's just something I've missed in my experiments.@thereisnoscotty
Grand Marshal of the Parade of Madfellows
Comment
-
ExtraLifeMatt
So I got some problems putting in animations.
I have a combo and the blending doesn't work.
I'm using default blending settings, turned off "reset animation state on end" and my animation bp is using a "Blend by bool" node before the end output, which gets fed a bool using the "has ability animation" function.
Between combo attack 1 and combo attack 2, the idle combat pose is assumed, which then blends into the combo attack 2 animation.
Animation-wise, attack 2 starts with the same pose that attack 1 ends with, so blending should not be a problem at all.
Here is a gif that I recorded using the new animation insights:
https://gyazo.com/ab44d66a8ad104e7c2043700c45c22cc
The data is not on screen, but basically stated that nothing outside of the ability animation node was running. I also double checked to see if that bool was switching to 'false' for a frame between the two, which was not the case, so the animation BP is not the issue here.
Possibly noteworthy information:
I'm not using the ability node inside a normal animation state machine: I have a completely separate state machine called "AbilityStateMachine" with a single state called "Ability" with the ability animation node inside. I then cache that pose result to reuse it right at the end of the graph using the aforementioned method. It should not play a role, but since I don't know specifics I felt like I should mention it.
EDIT:
I now added only the cached pose to the output pose, and also tried out doing it like it is in the tutorial, with the ability state inside the locomotion state machine. Same results.Last edited by Herr Edgy; 11-08-2020, 06:53 PM.
Comment
-
Originally posted by Herr Edgy View PostExtraLifeMatt
So I got some problems putting in animations.
I have a combo and the blending doesn't work.
I'm using default blending settings, turned off "reset animation state on end" and my animation bp is using a "Blend by bool" node before the end output, which gets fed a bool using the "has ability animation" function.
Between combo attack 1 and combo attack 2, the idle combat pose is assumed, which then blends into the combo attack 2 animation.
Animation-wise, attack 2 starts with the same pose that attack 1 ends with, so blending should not be a problem at all.
Here is a gif that I recorded using the new animation insights:
https://gyazo.com/ab44d66a8ad104e7c2043700c45c22cc
The data is not on screen, but basically stated that nothing outside of the ability animation node was running. I also double checked to see if that bool was switching to 'false' for a frame between the two, which was not the case, so the animation BP is not the issue here.
Possibly noteworthy information:
I'm not using the ability node inside a normal animation state machine: I have a completely separate state machine called "AbilityStateMachine" with a single state called "Ability" with the ability animation node inside. I then cache that pose result to reuse it right at the end of the graph using the aforementioned method. It should not play a role, but since I don't know specifics I felt like I should mention it.
EDIT:
I now added only the cached pose to the output pose, and also tried out doing it like it is in the tutorial, with the ability state inside the locomotion state machine. Same results.
Comment
-
Originally posted by soctty View Post
It isn't a pressing issue at all. It'd just be nice to have that extra layer of insulation from errant clicks.
While I'm here.. I'm fiddling with something outside my typical wheelhouse today, and I'm sure I'm overlooking something obvious, but is a "traditional" first-person setup only possible by playing multiple animations on each mesh using a shared skeleton? "Traditional" here meaning "only-owner-see 1P mesh, owner-no-see 3P mesh" a la ShooterGame.
Using different skeletons throws up the expected warnings about skeleton/animation mismatches. Using the shared skeleton seems to be overriding whichever animation plays first with the second, regardless of slot setup or even discrete anim BPs, which is obviously going to cause problems in anything more developed than a very limited test scenario. I've seen mention of folks doing FPS with Able, so I'm fairly sure it's just something I've missed in my experiments.
Originally posted by Herr Edgy View PostExtraLifeMatt
...
Code:void FAbilityAnimEntry::UpdateEntry(float deltaTime) { TimeAccumulator = FMath::Clamp(TimeAccumulator + deltaTime, 0.0f, AnimationSequence->SequenceLength); }
Able Ability System - A high performance, robust ability system for UE4. Now Available!
Comment
-
Originally posted by ExtraLifeMatt View Post
Able doesn't care about Skeletons, but it doesn't know which skeleton to use if you somehow have multiples - so it tries to play it on all on them. So yes, in that case you would need a shared skeleton. I can look at a way to try and allow logic for both but I fear that might be a bit of a rabbit hole and make the task too complicated for people who don't use multiple skeletons.
Last edited by soctty; 11-09-2020, 09:59 PM. Reason: Here I am implying that I'm savvy in one breath, and breaking quote tags in the next. GG, Scotty.@thereisnoscotty
Grand Marshal of the Parade of Madfellows
Comment
-
Originally posted by ExtraLifeMatt View PostThe bug I reference would affect blending too. It's a pretty nasty bug, I was shocked I didn't catch it and it wasn't reported sooner. If you want to apply the fix locally, you can edit AnimNode_AbilityAnimPlayer.cpp and paste the following method over the current one:
Code:void FAbilityAnimEntry::UpdateEntry(float deltaTime) { TimeAccumulator = FMath::Clamp(TimeAccumulator + deltaTime, 0.0f, AnimationSequence->SequenceLength); }
I'm curious how that has gone under the radar for so long? Aren't people using the ability animation node for combos? Or for anything really?
MichaelLiew
Just not using an option is not a good.. option. I'd rather help fixing it.
Comment
-
Originally posted by Herr Edgy View PostI implemented that fix as you suggested, however, that is making my animation play twice as fast. It also didn't fix the blending issue. You probably implemented that missing delta time elsewhere already as it wasn't progressing properly, so now it's added twice. That's my assumption anyways.
I'm curious how that has gone under the radar for so long? Aren't people using the ability animation node for combos? Or for anything really?
MichaelLiew
Just not using an option is not a good.. option. I'd rather help fixing it.
You may want to put your branch just a bit before your Ability actually ends, so you never leave the Ability Anim state in your Animation Blueprint. If you queue up the next animation, your "Has Ability Animation" bool should never return false until the 2nd animation is done.
Able Ability System - A high performance, robust ability system for UE4. Now Available!
Comment
-
Originally posted by ExtraLifeMatt View Post
Yea, looks like 4.25 / 4.26 update that value elsewhere - which is why you see it going twice. Interesting. So the original way was correct, I wonder if the guy that reported that bug is using an earlier engine version. I'll double check with him.
You may want to put your branch just a bit before your Ability actually ends, so you never leave the Ability Anim state in your Animation Blueprint. If you queue up the next animation, your "Has Ability Animation" bool should never return false until the 2nd animation is done.
Even plugging in _only_ the ability anim node into the anim BP results in it, so the idle animation is not even considered. It appears to be the starting frame(s) of the first attack (which starts from the idle).
From my perspective everything is set up correctly, just the blending is simply put..broken.
Comment
-
Hello! I've been loving ABLE so far! I saw a reply earlier stating it was easy for ABLE to hook into existing Stat systems, like AttributeSet from Unreals GAS.
What is the best way to do this? Should I be including "AttributeSet.h" into "ablAbility.h" or "ablAbilityComponent.h" or something entirely different? When I attempted this II ran into issues with the compiler, where it could not find attributeSet classes or "cannot open source file "attributeSet.generated.h". Am I missing a step here?
Example - [ #include "../../../../../Runtime/GameplayAbilities/Source/GameplayAbilities/Public/AttributeSet.h"]
My goal is to utilize curve tables for unique abilities and having that attached to my Able ability blueprints seems like a great method. So far it looks like curve tables are heavily interwoven within the GAS/Attribute system and since I've been running into problems exposing that to the able system I am at a loss for how to progress.
What would be a better method of extracting data from a curve table into the Able system?
Comment
Comment