Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

  • Able Ability System Info and Support Thread

    What is Able?

    Able is a high performance, multi-threaded, data driven Ability system with network support, written from the ground up in C++ for Unreal Engine 4 and is available starting on March 23rd, 2017.


    Technical Details

    • Written entirely in C++.
    • Multicore/Async support for Ability execution, cooldown updates, and various Task specific activities (such as calculating actor specific damage). Async support is automatically disabled on hardware with less than 2 cores.
    • Network supported using a secure client-server model with minimal data sent across the wire.
    • Abilities are purely functional and shared with only small scratchpad structures used for any state specific logic, keeping memory usage lean and efficient.
    • 18 various Tasks to build your Ability with (Play Animation, Play Sound, Collision Query, Spawn Actor, Apply Damage, etc).
    • 16 Events/Methods overrides available to Blueprints to allow further logic customization.
    • Full AI Support (adds new AI Tasks and Decorators).
    • Full Animation State Machine support (adds new Animation State Node).
    • Custom Blueprint Editor - Ability Editor.
    • Ability Validator testing framework.
    • Intended for all Platforms (Tested PC and PS4).
    • Built-in support for the UE4 Profiler.
    • Extendable API for both the core system and editor.
    • Fully documented code, tutorials, and system documentation.
    • Available for UE 4.14 and 4.15

    Video Tutorials

    Further Documentation is available here.

    You can find it on the Marketplace here.

    This thread is primarily for helping users with any questions, concerns, or issues they may come across. All feedback is welcomed.
    Last edited by ExtraLifeMatt; 05-31-2017, 11:00 PM.

  • replied
    Originally posted by MarGon View Post

    I tried it all. Single Notes, Ability Animation Node with the state machine setup, Dynamic Montages. I tried all of this with root motion animations and without root motion. they all worked but there where absolutely no transition when branching. i allways get a frame to frame pop. the blend in and blend out settings in the ability node category of the play animations task properties are not doing anything usefull.

    So i tried making 2 new abilites that just have a tpose and a branch to the next one that had an other static pose with an branch and it actually worked without any problem.
    there where actually no differences to the things i tried. the only thing is i made this one from scratch again. the other one i changed things over time but settings where the same.

    So i thought i try to reproduce this and removed the anim track and added a new one. while doing so i got a crash and since then my project won't open anymore. i now have to delete the ability i was working on in order to get my project starting again. what makes me loose my patience what is a shame because beyond all these problems there might be a really useful plugin.



    well, after all those custom task where gone after restarting i deleted all the empty tracks and added them again. so nothing changed in the custom task blueprint. it was compiled all along. but still, after a restart they where gone again. i wont waste my time doing it again. the feature is only usable one unreal instance. seems like the bug is back.
    If you can provide a sample project repro-ing these bugs, please upload them here:

    https://www.dropbox.com/request/kTG6mcS7QJybVoobgUZh

    I'm working on a patch for later this week so I'll try and squeeze it in if I can repro it and find a fix.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post
    1. There is inherent blending with the Able Ability Animation Node and it definitely works as long as you let the system manage things and are passing in Animation Instances (not montages). Montages have their own complex blending system that you're better off just using Dynamic Montages with.
    I tried it all. Single Notes, Ability Animation Node with the state machine setup, Dynamic Montages. I tried all of this with root motion animations and without root motion. they all worked but there where absolutely no transition when branching. i allways get a frame to frame pop. the blend in and blend out settings in the ability node category of the play animations task properties are not doing anything usefull.

    So i tried making 2 new abilites that just have a tpose and a branch to the next one that had an other static pose with an branch and it actually worked without any problem.
    there where actually no differences to the things i tried. the only thing is i made this one from scratch again. the other one i changed things over time but settings where the same.

    So i thought i try to reproduce this and removed the anim track and added a new one. while doing so i got a crash and since then my project won't open anymore. i now have to delete the ability i was working on in order to get my project starting again. what makes me loose my patience what is a shame because beyond all these problems there might be a really useful plugin.

    Originally posted by ExtraLifeMatt View Post
    That's an old bug that should be fixed. A good way to prevent that in general is to save your custom task, compile it, test it, etc. Then go and add it to your Abilities. Basically measure twice cut once. Granted this isn't possible if you're being highly iterative with Custom Tasks (and I'll run my local custom tasks through and make sure I didn't miss some edge case), but that's been the only fool proof strategy I've found with the rather dynamic nature of Blueprints linking other Blueprints.
    well, after all those custom task where gone after restarting i deleted all the empty tracks and added them again. so nothing changed in the custom task blueprint. it was compiled all along. but still, after a restart they where gone again. i wont waste my time doing it again. the feature is only usable one unreal instance. seems like the bug is back.

    Leave a comment:


  • replied
    Originally posted by MarGon View Post

    I suggest to make the preview component rotation yaw -90 by default. all the assets on the marketplace are setup like this. if you don't do it, its gonna make a terrible first impression after buying the plugin.
    I initially thought of doing that, but then you'd have the opposite problem. Maybe it's the lesser of two evils though.
    Originally posted by MarGon View Post
    The animation arrow button "Use Selected Asset From Content Browser" is not working. drag and drop neither and even selecting it manualy doenst work. (4.23)

    it just works if you select the animation when you create the task. that means you allways have to type in the name manualy or copy it in and then you can not change the animation unless you remove the task and start over again. its driving me crazy. especially if you have tons of animations associated to the skeleton you work with. its a real workflow issue to me.

    Update: It does work with montages.
    I've seen this happen on and off and I'm not sure the cause. There is nothing marking that field as read only. In fact, that field is marked as Edit Anywhere and the Selected Asset from Browser is just standard UE code. I'll keep poking at it.
    Originally posted by MarGon View Post
    here is an other bug:
    when renaming abilities while having some open will cause crashes very fast as soon as you do a few clicks somewhere. its a very reliable crash. can get it crash under 1min but still found no pattern to reproduce it. sidenote: the abilities have branches but they do not reference on of the renamed
    Not terribly shocked by this. You could be renaming a blueprint that is mid compiling in the background, or invalidating some internal pointer in the editor. If you get a solid repro, let me know. In the meantime, I'd simply close the Ability editor when renaming things.
    Originally posted by MarGon View Post
    here are a few questions:

    1. i tried to get a combo working with animations that transition when they branching like in the combo tutorial video. so i setup the state machine like in the tutorial on the documentation page. but even tho he plays the animation in the state machine there is no blending at all. same result as normal animations or montages. i tried to uncheck stop on interrupt because i thought it might just cancel the animation but it didn't do anything for this case. is there any hidden checkbox, or a hidden setup in the anim blueprint that i might have missed or is this be a bug?

    2. is there any way to debug the targeting? i didn't got the turn to task work with the targeting, always resulted in wired rotations. i got it working with a collision query task at the beginning of each ability tho. but still i think with targeting this would require less setup.

    appart from the rough start it looks very promising. creating a custom task was very easy what is important to customize it to your own needs. i really hope its possible to get animation blending for branching to work.
    1. There is inherent blending with the Able Ability Animation Node and it definitely works as long as you let the system manage things and are passing in Animation Instances (not montages). Montages have their own complex blending system that you're better off just using Dynamic Montages with.

    2. Targeting and Collision Query use the same code. If you enable the "Draw Collision Queries" option, you should see the same thing. As for debugging it, just turn on Verbose mode and it should tell you how many targets it found, etc.
    Originally posted by MarGon View Post
    here is an other bug:
    after restarting the engine the custom task i added in the time line in every ability is gone and left is just an empty task.
    yes i saved the abiliy before closing the editor and the task was doing what it was supposed to do in the game but after restart it doenst do it anymore.
    That's an old bug that should be fixed. A good way to prevent that in general is to save your custom task, compile it, test it, etc. Then go and add it to your Abilities. Basically measure twice cut once. Granted this isn't possible if you're being highly iterative with Custom Tasks (and I'll run my local custom tasks through and make sure I didn't miss some edge case), but that's been the only fool proof strategy I've found with the rather dynamic nature of Blueprints linking other Blueprints.

    Leave a comment:


  • replied
    here is an other bug:
    after restarting the engine the custom task i added in the time line in every ability is gone and left is just an empty task.
    yes i saved the abiliy before closing the editor and the task was doing what it was supposed to do in the game but after restart it doenst do it anymore.

    Leave a comment:


  • replied
    here are a few questions:

    1. i tried to get a combo working with animations that transition when they branching like in the combo tutorial video. so i setup the state machine like in the tutorial on the documentation page. but even tho he plays the animation in the state machine there is no blending at all. same result as normal animations or montages. i tried to uncheck stop on interrupt because i thought it might just cancel the animation but it didn't do anything for this case. is there any hidden checkbox, or a hidden setup in the anim blueprint that i might have missed or is this be a bug?

    2. is there any way to debug the targeting? i didn't got the turn to task work with the targeting, always resulted in wired rotations. i got it working with a collision query task at the beginning of each ability tho. but still i think with targeting this would require less setup.

    appart from the rough start it looks very promising. creating a custom task was very easy what is important to customize it to your own needs. i really hope its possible to get animation blending for branching to work.

    Leave a comment:


  • replied
    here is an other bug:
    when renaming abilities while having some open will cause crashes very fast as soon as you do a few clicks somewhere. its a very reliable crash. can get it crash under 1min but still found no pattern to reproduce it. sidenote: the abilities have branches but they do not reference on of the renamed

    Leave a comment:


  • replied
    The animation arrow button "Use Selected Asset From Content Browser" is not working. drag and drop neither and even selecting it manualy doenst work. (4.23)

    it just works if you select the animation when you create the task. that means you allways have to type in the name manualy or copy it in and then you can not change the animation unless you remove the task and start over again. its driving me crazy. especially if you have tons of animations associated to the skeleton you work with. its a real workflow issue to me.

    Update: It does work with montages.
    Attached Files
    Last edited by MarGon; 10-13-2019, 10:18 AM.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    Normally the actor itself is pointing down X (if you add an arrow component, you can see that). However a bunch of the default meshes in UE4 are authored to point down Y and so required a rotation to make it match the direction of the Actor. Again, this is a non-issue if you author your mesh to point down X, or you setup the mesh component in a blueprint actor and Able can just instantiate that rather than trying to cobble together an actor from bits and pieces (e.g. just a static mesh).
    I suggest to make the preview component rotation yaw -90 by default. all the assets on the marketplace are setup like this. if you don't do it, its gonna make a terrible first impression after buying the plugin.

    Leave a comment:


  • replied
    Submitted Able v3.16, notes below:

    • Added an option in Able Settings to force ability activation when coming from the server. This skips the "CanActivateAbility" check entirely. It's enabled by default. (h/t JSwigart )
    • Passive Abilities now support channeling.
    • Fixed a crash with Canceling an Ability (h/t JSwigart )
    • Changed Cancel Ability Task to always call into Blueprints first (so users have the first say to cancel an Ability, followed by Tags, then finally checking the provided Ability on the Task).
    As always; please let me know if you run into any issues.

    Leave a comment:


  • replied
    Originally posted by JSwigart View Post
    What is the purpose of this rotation in the Able editor? Is it just to have it face into the default view of the editor camera? Couldn't you just rotate the actor rather than manipulating the MeshComponent of the actor?
    Normally the actor itself is pointing down X (if you add an arrow component, you can see that). However a bunch of the default meshes in UE4 are authored to point down Y and so required a rotation to make it match the direction of the Actor. Again, this is a non-issue if you author your mesh to point down X, or you setup the mesh component in a blueprint actor and Able can just instantiate that rather than trying to cobble together an actor from bits and pieces (e.g. just a static mesh).

    Leave a comment:


  • replied
    What is the purpose of this rotation in the Able editor? Is it just to have it face into the default view of the editor camera? Couldn't you just rotate the actor rather than manipulating the MeshComponent of the actor?

    Leave a comment:


  • replied
    Originally posted by JSwigart View Post
    Minor bug that leads to a mismatch between stuff like collision offsets and the visual model. In FAblAbilityEditor::Tick, I had to comment out the call to

    Code:
     if (UMeshComponent* MeshComponent = m_PreviewActor->FindComponentByClass<UMeshComponent>())
    {
    MeshComponent->SetRelativeRotation(GetEditorSettings().m_MeshRotation);
    }
    Because it was causing the offsets and such from collision query locations to be wrong if you are using a model that has relative rotation on the mesh component. I was getting inconsistent query results in game due to dialing in the position of queries with the debug rendering enabled being inconsistent with the model orientation at runtime. Comenting out that line got them agreeing again. There may be a better way to orient the model in the able editor.
    Yea, admittedly the mesh rotation is a hack. The better fix is to put any rotation into your blueprint character. I'll see if I can't figure a better solution there though.

    Leave a comment:


  • replied
    Minor bug that leads to a mismatch between stuff like collision offsets and the visual model. In FAblAbilityEditor::Tick, I had to comment out the call to

    Code:
        if (UMeshComponent* MeshComponent = m_PreviewActor->FindComponentByClass<UMeshComponent>())
            {
                MeshComponent->SetRelativeRotation(GetEditorSettings().m_MeshRotation);
            }
    Because it was causing the offsets and such from collision query locations to be wrong if you are using a model that has relative rotation on the mesh component. I was getting inconsistent query results in game due to dialing in the position of queries with the debug rendering enabled being inconsistent with the model orientation at runtime. Comenting out that line got them agreeing again. There may be a better way to orient the model in the able editor.

    Leave a comment:


  • replied
    Originally posted by JSwigart View Post
    Perhaps others aren't using activation gating logic in their abilities CanActivateAbility that rely on checking data outside the ability itself(such as replicated variables on the owning actor). The problem becomes apparent pretty quickly in that sort of case.

    Edit: I am running with the flag I mentioned now and things are working much better now.
    Eh some do, I believe. But yea, it could very well be a bug. I'm just not quite comfortable yet with shipping that out to everyone without a few more tests.

    Leave a comment:

Working...
X