Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    Originally posted by jwyuen View Post
    Hi how far are you on the update?
    It's pretty much done. Just need to build against 4.22 and check things as a final test. Hoping to submit things early this weekend.

    I expect bugs with JumpTo/MoveTo but I'm not going to hold up the entire update for those two tasks. I also think those tasks are just going to have to be written per project, there's no great way to generalize them (as I've discovered) but maybe it'll give some people ideas on how to write them for their own stuff.

    The rest of 3.0 is honestly crazy awesome. Super excited to share it (finally).
    Able Ability System - A high performance, robust ability system for UE4. Now Available!

    Comment


      aww thanks That sounds really good. Like rest of it i can figure things out.
      The jump to move to sounds brilliant for my type of game?
      Seen Supernatural TV Series?
      Basing it on that. It would be crazy cool if i can get official thing by company that made TV Show.......
      Look at friday 13th game starting out as summer camp and Makers of movie stepped in and gave funding and actors :O

      If i can get it working, ghost charge through character will be great to do and damage them.
      I am making the whole game based on DT's (Datatables) So to harm spirits, Salt and iron can damage them and make them teleport nearby. Demons in smoke form using particles is also another fun feature and they can fling people through the air and throw them around

      You play as Hunters and can use weapons such as Salt round shotguns and Iron bars


      Will look out for it this weekend. Cheers matt

      Jesse

      Comment


        ExtraLifeMatt Hi there,

        I just bought Able a few days ago and have played around with it quite a bit.
        So far I really like the concept and how everything works together
        BUT (Yep there it is)
        I have a few problems:

        - When making an MG-Ability like in your Shooter-Video the Targets in the Context won´t be "refreshed" on every loop.

        You can even see this problem in your Video when you say: "Don´t know why this guy keeps falling but whatever"
        The problem why he kept falling is that if you hit him once and then shoot somewhere else the damage task will still hit him and he takes damage no matter where you aim.
        I tried to manually clear the Targets on every new Loop but didn´t have any luck :/
        That gives me quite a headache ^^

        - Next "Problem" but more a hint if you didn´t know already: When pressing the Validate button in the Timeline Editor when there is no task the Engine crashes. (Not a big deal because why should I validate if there is nothing to validate^^)

        - Another thing (Don´t know if its just me but I had this in one existing and two fresh projects): When creating a custom task + correctly linked Scratchpad I see the task three times in the Ability-Editor. One with the name i gave the task - One with the Name + "Default" and one with the Name + SKEL + Default and if I click one of them to add it the Editor crashes

        And then questions:
        - Would it be possible to implement Owner-Components as source of a Raycast? Would be very handy for my thinking because i would like to do things like raycast from a socket on my Weapon-Mesh which is automatically switched at the same time the Fire-Ability is changed.

        - Same for Animation-Tasks: Would it be possible to implement a feature to choose a target SK-Mesh to play the Animation on? I.E. for playing Weapon Animations the easy way. (Got around this with custom events and such which is also super handy and useful but I bet you could give us the Candy of doing it even more easy )

        - The last thing I can think of right now is that it would really make me happy if we could play Particle-Tasks directly at the Hit-Location of a Raycast

        And now if any of the above are already answered or I am just thinking the wrong way - please don´t kill me and push me in the right direction

        Last but not least: I love Able and thank you for all your work. I really appreciate it <3

        Comment


          Able 3.0 has been submitted. Notes / Overview below:

          Click image for larger version  Name:	Able3_0.png Views:	1 Size:	469.5 KB ID:	1604886

          Able 3.0 Notes
          • New Dynamic Field Overloading
            • Fields that can be overloaded at runtime now have a "+" icon next to them. Click that button will allow you to add or remove a blueprint method that is called whenever Able asks for that value at runtime. This is far easier/expandable to understand at a glance than the old method of hoping there is a method to overload on the root Ability.
            • Multiple Tasks have had a pass done on them to add new dynamic fields. If you would like to see a specific field exposed, please let me know!
            • The old system of using various method overloads is now deprecated. If Able detects you had old logic setup, it will automatically try and hook up the previous logic to the new system (you still need to go back through and add the initial binding though).
            • All Tasks now have a "Dynamic Binding Identifier" which is used when generating the Blueprint binding name. This allows you to have multiple tasks of the same type use different logic.
          • Rich Text Task Descriptions
            • Tasks now have a Rich Text Description that is populated in the Editor. This description contains a high level, easily readable overview of the task (start/end times, various assets / settings) with click-able links to modify various values that are likely to be highly iterated on. This is a great way to tweak things after you have the initial settings of an Ability locked down (or to open an Ability and quickly understand what it is doing).
          • Preview Target Actors
            • Able now lets you spawn "Target Actors" in your Editor scene. These actors can be used to execute your Ability against and verify it does what you want, without ever leaving the editor. You can spawn as many you wish (for testing AOEs), and can force your Ability to target a specific one (handy to get around normal targeting logic).
          • Transform Widget now supported for Preview Actor/Targets.
            • You can now click on a Preview Actor / Target in the Editor scene and use the normal Transform widget to move / rotate / scale them. Their transform is saved so if you reset them between Ability executions, the reset will restore the transform.
            • Hitting Escape will de-select the actor, and hitting Delete will delete the actor (if it's a Target Actor).
          • Preview / Target Actors Selection is much faster / simpler.
            • Preview / Target Actors now use a Whitelist of classes in the Ability Editor Settings. You can then easily use the asset picker in the tool bar to quickly find actors that fit those classes.
          • Custom Task Colors
            • You can now customize Task colors in the editor. Simply click "Override Task Color" and choose a color from the picker.
          • Re-skinned Editor and Default Task Colors
            • The visuals of the Ability Editor have undergone a huge art pass and default Task colors are no longer a crazy Hodge-podge of colors. The end result should by easier on the eyes.
          • Niagara Support added to Play Particle Effect Task
          • Move To / Jump To Tasks added.
            • These two tasks are highly experimental. Expect bugs. But do try them out and provide feedback if possible (I'm mainly curious if people are mainly using Character Movement Component or just basic Shape Components).
          • Added Blackboard Target Type
            • Allows you to pull a Target from an AI Blackboard using a given BB Key.
          • Lots of bug fixes from user reports.
            • Custom Tasks will now properly update their references (no more null tasks upon compile).
            • Can Branch Ability now passes in the Ability it wants to branch to.
            • Various other fixes.
          Known Issues
          • Play Particle Effect Task has dynamic field markers on both Particle Effect / Niagara Effect asset fields but doesn't appear to show correctly.
          • Nav mesh movement is not currently supported in the Editor.
          3.0 is a monster that touched pretty much every part of Able (and definitely the Editor aspect). Overall I'm happy with how much cleaner things are (both visually and under the hood) and the ability for users to customize Able to their specific needs has never been better. 3.0 started as a 2 week re-skin but became a 3 month beast but hopefully people get lots of use from it.

          That said, I expect bugs. I wanted another week or two of bug fixing but 4.22's released forced things out a bit quicker than I expected. I've tested things as best as I can, but you guys will likely hit issues I just don't have local tests for. Please be patient and let me know as soon as you find something. I'm already working on 3.01 with a few more art tweaks and such, so hopefully now that the meat of 3.0 is out, I can be a bit quicker on updates. I'm also pushing out the marketing refresh (store page and such) I wanted to do until Able 3.0 has a bit of time to cook out in the wild, so bug fixing is my entire priority.

          Thanks for all your support and keep the feedback coming!
          Last edited by ExtraLifeMatt; 04-08-2019, 11:45 AM.
          Able Ability System - A high performance, robust ability system for UE4. Now Available!

          Comment


            Originally posted by Leyawhin View Post
            ExtraLifeMatt Hi there,

            I just bought Able a few days ago and have played around with it quite a bit.
            So far I really like the concept and how everything works together
            BUT (Yep there it is)
            I have a few problems:

            - When making an MG-Ability like in your Shooter-Video the Targets in the Context won´t be "refreshed" on every loop.

            You can even see this problem in your Video when you say: "Don´t know why this guy keeps falling but whatever"
            The problem why he kept falling is that if you hit him once and then shoot somewhere else the damage task will still hit him and he takes damage no matter where you aim.
            I tried to manually clear the Targets on every new Loop but didn´t have any luck :/
            That gives me quite a headache ^^

            - Next "Problem" but more a hint if you didn´t know already: When pressing the Validate button in the Timeline Editor when there is no task the Engine crashes. (Not a big deal because why should I validate if there is nothing to validate^^)

            - Another thing (Don´t know if its just me but I had this in one existing and two fresh projects): When creating a custom task + correctly linked Scratchpad I see the task three times in the Ability-Editor. One with the name i gave the task - One with the Name + "Default" and one with the Name + SKEL + Default and if I click one of them to add it the Editor crashes

            And then questions:
            - Would it be possible to implement Owner-Components as source of a Raycast? Would be very handy for my thinking because i would like to do things like raycast from a socket on my Weapon-Mesh which is automatically switched at the same time the Fire-Ability is changed.

            - Same for Animation-Tasks: Would it be possible to implement a feature to choose a target SK-Mesh to play the Animation on? I.E. for playing Weapon Animations the easy way. (Got around this with custom events and such which is also super handy and useful but I bet you could give us the Candy of doing it even more easy )

            - The last thing I can think of right now is that it would really make me happy if we could play Particle-Tasks directly at the Hit-Location of a Raycast

            And now if any of the above are already answered or I am just thinking the wrong way - please don´t kill me and push me in the right direction

            Last but not least: I love Able and thank you for all your work. I really appreciate it <3
            Hey Leyawhin Thanks for the compliment and for your purchase.

            I'll try and answer all your questions / problems:

            - That makes sense, I can add Cotext Refreshing as an option. Obviously you can save some time by not re-doing all the context logic, but that may not be ideal depending on the Ability.
            - Validate shouldn't crash if there aren't any Tasks (I swear I fixed that recently). I'll check again.
            - The SKEL is the Blueprint Skeleton, it shouldn't be showing up - I'll make sure that filter is still working.
            - This is actually a great case for the new Dynamic Field Overrides. I can add the option for you to overload the Transform field of the Raycast so can simply pull that location via a small blueprint method.
            - Animation does currently require an actor I believe. But I'll look at adding a "Play Sub Mesh Animation" or some such.
            - There is an event that is called that passes the Raycast result (OnRaycastEvent) where you can spawn the Particle Effect. I'm hesitant to just add that in the default logic as it seems very game specific. Linking output from one task to another is an interesting concept. I'll put some thoughts into that and see if there is a clean way to do it.

            Cheers!
            Able Ability System - A high performance, robust ability system for UE4. Now Available!

            Comment


              I'm happy to see the plugin being expanded, but as of now using it for anything other than prototyping is impossible due to countless bugs and most of the stuff introduced in earlier versions simply not working.
              Consider hiring a second programmer to help you work on that end too.

              I just found out the hard way (by debugging the code) that Channeled abilities do not work. They do channel but they can almost never end because if the condition is checked during an update (and it always is since the logic is implemented in AbilityComponent's Tick) it will try to CancelAbility, will defer that action since it's during an update, and will then fail to cancel the ability since right on the next line you are nulling m_ActiveAbilityInstance. So a frame later when Component is trying to cancel the active ability due to channel condition failing, there is nothing to cancel because you nulled it.

              I mean, the overall effect in game does look like it's cancelled, but the ability itself never got any info about this since nobody called "OnAbilityEnd" or "OnAbilityInterrupted" on it :/.

              To reproduce:
              1. Make a channeled ability that for example, sets up a bool to true in OnAbilityStart.
              2. Set the bool back to false in OnAbilityEnd/Interrupt
              3. Add CUSTOM channel condition to the ability, can be anything Im pretty sure.
              4. Play the game and either print out the bool or do something to indicate it's state

              Result: The bool will never get unchecked.
              Expected result: Bool will be back to false once the ability cancels due to failing custom channel condition
              Last edited by Pablo1517; 04-08-2019, 11:56 AM.

              Comment


                Originally posted by Pablo1517 View Post
                I'm happy to see the plugin being expanded, but as of now using it for anything other than prototyping is impossible due to countless bugs and most of the stuff introduced in earlier versions simply not working.
                Consider hiring a second programmer to help you work on that end too.

                I just found out the hard way (by debugging the code) that Channeled abilities do not work. They do channel but they can almost never end because if the condition is checked during an update (and it always is since the logic is implemented in AbilityComponent's Tick) it will try to CancelAbility, will defer that action since it's during an update, and will then fail to cancel the ability since right on the next line you are nulling m_ActiveAbilityInstance. So a frame later when Component is trying to cancel the active ability due to channel condition failing, there is nothing to cancel because you nulled it.

                I mean, the overall effect in game does look like it's cancelled, but the ability itself never got any info about this since nobody called "OnAbilityEnd" or "OnAbilityInterrupted" on it :/.

                To reproduce:
                1. Make a channeled ability that for example, sets up a bool to true in OnAbilityStart.
                2. Set the bool back to false in OnAbilityEnd/Interrupt
                3. Add CUSTOM channel condition to the ability, can be anything Im pretty sure.
                4. Play the game and either print out the bool or do something to indicate it's state

                Result: The bool will never get unchecked.
                Expected result: Bool will be back to false once the ability cancels due to failing custom channel condition
                Thanks for the bug report/repro. I'll look at this. I recall fixing something eerily similar to this recently. And I agree that Able is due for some maintenance/bug fix work. Now that the big "new features" patch is out, it's bug fixes for here on out.
                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                Comment


                  The bool has to be setup on an owning actor. I forgot to mention that. Basically on something outside of the ability. It can be the target of the ability or instigator. Since you can't setup variables at runtime on the abilities itself, as they do not exist in the world as separate instances

                  Comment


                    Originally posted by Pablo1517 View Post
                    The bool has to be setup on an owning actor. I forgot to mention that. Basically on something outside of the ability. It can be the target of the ability or instigator. Since you can't setup variables at runtime on the abilities itself, as they do not exist in the world as separate instances
                    I see what you're saying. Definitely a bug.

                    You can fix it by moving the "m_IsProcessingUpdate = true" line to before the "Update our Active" comment (line 150 in UAblAbilityComponent::TickComponent).

                    Code:
                        m_IsProcessingUpdate = true; // <- Moved from the top of the method to just before our updates.
                    
                        // Update our Active
                        if (m_ActiveAbilityInstance)
                        {
                            // Process update (or launch a task to do it).
                            InternalUpdateAbility(m_ActiveAbilityInstance, DeltaTime * m_ActiveAbilityInstance->GetPlayRate());
                        }
                    Able Ability System - A high performance, robust ability system for UE4. Now Available!

                    Comment


                      Thanks for submit matt.
                      Just discovered i can use bpi with it?
                      Most powerful feature in ue4...
                      Cant wait now to use them

                      Comment


                        I need to re-submit the update tonight due to a packaging error on PS4 (it's just a missing include) so I'm going to sneak in a few fixes for Pablo1517 before I re-submit.
                        Able Ability System - A high performance, robust ability system for UE4. Now Available!

                        Comment


                          Is this what the new update is supposed to look like? Because I can't really see it well. I also cannot pick a new preview asset or target asset because the list is always empty and the search comes out as "no results, check your filter".
                          Attached Files

                          Comment


                            Same as above

                            Comment


                              Not only the problem above,it even can't compile in shipping mode.Fortunately,I have backup the able plugin.The old version is all right.

                              Comment


                                Originally posted by TVwj View Post
                                Is this what the new update is supposed to look like? Because I can't really see it well. I also cannot pick a new preview asset or target asset because the list is always empty and the search comes out as "no results, check your filter".
                                (Tagging jwyuen xermao as well).

                                Hmm, not sure why the background is missing. What engine version are you using?

                                The Preview Actor work flow has changed. You need to add the classes you want to use to your Preview Actor Allowed Classes in your Able Editor Settings. This is to greatly speed up the loading of potential preview actors from the drop down. Have you added those classes?
                                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                                Comment

                                Working...
                                X