Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    Originally posted by Herr Edgy View Post
    My branch is already set up like that, and it never evaluates to false after the first attack has started.
    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.
    The code looks correct, but I have things in a lot of pieces right now for the upcoming update, so I can't verify things at the moment. I'll schedule some time to look at it this weekend. If you have a demo project or whatever, that shows your setup and the issue, you can submit it here https://www.dropbox.com/request/nD81ewNC7G3p5MNWlMKX and I'll use it to verify things or find what's going wrong.
    Able Ability System - A high performance, robust ability system for UE4. Now Available!

    Comment


      Originally posted by ExtraLifeMatt View Post

      The code looks correct, but I have things in a lot of pieces right now for the upcoming update, so I can't verify things at the moment. I'll schedule some time to look at it this weekend. If you have a demo project or whatever, that shows your setup and the issue, you can submit it here https://www.dropbox.com/request/nD81ewNC7G3p5MNWlMKX and I'll use it to verify things or find what's going wrong.
      Uploaded, it's called "AbleBlendingBug.7z".

      I set it up so you only need to press Play and do one left click, the branch will automatically trigger.
      The AnimBP has only the ability node feeding into the output pose. One bit of info: I'm also extracting root motion from those anim sequences instead of montages only. I don't think it should matter here but I felt I should point it out regardless.

      Also, Ability 3 and 4 were migrated too, but only 1 and 2 are relevant here.
      Last edited by Herr Edgy; 11-10-2020, 09:33 PM.

      Comment


        Originally posted by Herr Edgy View Post
        Uploaded, it's called "AbleBlendingBug.7z".

        I set it up so you only need to press Play and do one left click, the branch will automatically trigger.
        The AnimBP has only the ability node feeding into the output pose. One bit of info: I'm also extracting root motion from those anim sequences instead of montages only. I don't think it should matter here but I felt I should point it out regardless.

        Also, Ability 3 and 4 were migrated too, but only 1 and 2 are relevant here.
        Perfect! I'll let you know what I find.
        Able Ability System - A high performance, robust ability system for UE4. Now Available!

        Comment


          Originally posted by Herdinstinct View Post
          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?
          Sounds like your missing a module reference somewhere. I don't use GAS so I can't help you there, but there should be plenty of posts on how to properly enable GAS on the forums / youtube / google.

          Once you have that, you can just reference those values when you go to calculate cooldown, damage, or whatever in the Ability Blueprints. You don't need to add any includes or modify Able's code in any way. Able will just ask "What should this Cooldown/Damage value be?" and that's where you can do whatever logic and reference GAS if you want.
          Able Ability System - A high performance, robust ability system for UE4. Now Available!

          Comment


            Herdinstinct Try marketplace free "attributes extension". It's good, it's multiplayer. It's easy to work with. it works great with able. doesn't have dependencies.

            Comment


              Originally posted by AngeIV View Post
              Herdinstinct Try marketplace free "attributes extension". It's good, it's multiplayer. It's easy to work with. it works great with able. doesn't have dependencies.

              Thanks! I'll look into that today!


              Originally posted by ExtraLifeMatt View Post

              Sounds like your missing a module reference somewhere. I don't use GAS so I can't help you there, but there should be plenty of posts on how to properly enable GAS on the forums / youtube / google.

              Once you have that, you can just reference those values when you go to calculate cooldown, damage, or whatever in the Ability Blueprints. You don't need to add any includes or modify Able's code in any way. Able will just ask "What should this Cooldown/Damage value be?" and that's where you can do whatever logic and reference GAS if you want.
              Hmm Ok I will also look into this, so I can develop a better understanding of Unreal.

              Maybe I am running into a similar issue when I attempt to inherit UAblAbility with a custom class from my project solution. Click image for larger version  Name:	UE_Help_4.PNG Views:	0 Size:	147.1 KB ID:	1831602




              I saw your reply the other day about including module dependencies in my project .build.cs file -
              Click image for larger version  Name:	UE_Help_5.png Views:	0 Size:	35.5 KB ID:	1831603

              yet in this new c++ class I am getting errors. I've got to be missing something important here but I just can't see it

              Or should I go about this in a different way? Should I not inherit into a wrapper class around anything in able or am I just doing so incorrectly? Should I be trying to use UAblAbility or maybe ablAbilityComponent instead?
              Last edited by Herdinstinct; 11-11-2020, 07:29 PM.

              Comment


                Originally posted by Herdinstinct View Post


                Thanks! I'll look into that today!
                Hmm Ok I will also look into this, so I can develop a better understanding of Unreal.

                Maybe I am running into a similar issue when I attempt to inherit UAblAbility with a custom class from my project solution
                yet in this new c++ class I am getting errors. I've got to be missing something important here but I just can't see it

                Or should I go about this in a different way? Should I not inherit into a wrapper class around anything in able or am I just doing so incorrectly? Should I be trying to use UAblAbility or maybe ablAbilityComponent instead?
                That error is saying there's no default constructor - which is correct, AblAbility does not use the default constructor. You have to use the constructor that passes in the object initializer:

                Code:
                // Header
                URPGAblAbility(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
                
                //Source
                URPGAblAbility(const FObjectInitializer& ObjectInitializer)
                : Super(ObjectInitializer)
                {
                
                }
                BUT you should really only do that if you plan to modify the Ability behavior and the normal hooks don't work for you (or if you have a solid understanding of C++ and want to establish your own basic behaviors in your Abilities).

                I would highly suggest you just use it out of the box with the normal hooks until you learn the C++ side a bit more. It'll probably save you a lot of headache and work just as well.
                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                Comment


                  AngeIV This extension looks great for working within blueprints! Definitely an upgrade compared to the GAS attribute system! I am still unsure on how to go about using a curve table or data tables with this system.

                  My goal is to incorporate a data driven system to work with Able. For example I want to emulate a data system that scales off of levels to use with many different abilities - where I can export this data from a spreadsheet. [level number] + [Key name] = [value] curve tables do exactly this but so far I am finding no way of accessing this data within blueprints and my attempts at re-creating this via C++ have not been successful. But I am still wrapping my head around C++ with unreal and feel like I am inching closer. I guess at this point I need to create my own curve table reader and accompanying blueprint nodes to access. I am probably better off doing this in my project file for now and if it works out then making a plugin of it's own? - Thinking out loud here, sorry. Using Attribute extension might be very helpful for me in getting this set up faster.

                  I think it might be really interesting to have some of these keynames as able gameplay tags, hopefully I can figure out a good way to wrap it together for a modular design experience, where we can add tags in a spreadsheet and have them propagate onto able abilities when imported.

                  Example of a data set I would like to emulate and connect with able

                  Click image for larger version  Name:	UE_Help_3.png Views:	0 Size:	55.1 KB ID:	1832164

                  Comment


                    Originally posted by Its-Alf View Post

                    Awesome! Glad the video helped. Keep me posted!
                    Looked at this today and I can't repro it on my local changes (channeling with an input condition works fine on Server/Client/Listen Server for all observers). I changed quite a bit locally (this update is a big one), so it's possible it got inadvertently fixed - but I'm not sure. If you have a project you can share, I can try it on my local stuff and verify things. Otherwise I'll share my Test project once 4.26 is out and you can compare your setup vs mine.
                    Able Ability System - A high performance, robust ability system for UE4. Now Available!

                    Comment


                      Herdinstinct Just store them in a data-table and save datatable row in character itself. Make interface to read directly from character (you need to store it in character not ability- as you need to SAVE values unless you restart game every time )
                      Then just BIND values in ability to data from this datatable row. EASY.

                      Comment


                        Originally posted by ExtraLifeMatt View Post

                        Looked at this today and I can't repro it on my local changes (channeling with an input condition works fine on Server/Client/Listen Server for all observers). I changed quite a bit locally (this update is a big one), so it's possible it got inadvertently fixed - but I'm not sure. If you have a project you can share, I can try it on my local stuff and verify things. Otherwise I'll share my Test project once 4.26 is out and you can compare your setup vs mine.
                        Reproduction here

                        Sorry for the late reply. Got incredibly waylaid by life stuff.

                        Looking forward to the update. I've reproduced the issue on a clean third-person template. It simply uses a passive, looping, channeled, HideMesh ability that sets the skeletal mesh component to hidden-in-game on start, and un-hidden on end. It also prints a string for good measure. It's simply channeled on a "HideMesh" input, mapped to right mouse button. The behavior is consistent with what I've described and experienced in other projects.

                        It should be noted that I always test with network emulation active. However, the issue is consistent whether I'm using network emulation or not so I suppose it's not too relevant.

                        Comment


                          Originally posted by Its-Alf View Post

                          Reproduction here

                          Sorry for the late reply. Got incredibly waylaid by life stuff.

                          Looking forward to the update. I've reproduced the issue on a clean third-person template. It simply uses a passive, looping, channeled, HideMesh ability that sets the skeletal mesh component to hidden-in-game on start, and un-hidden on end. It also prints a string for good measure. It's simply channeled on a "HideMesh" input, mapped to right mouse button. The behavior is consistent with what I've described and experienced in other projects.

                          It should be noted that I always test with network emulation active. However, the issue is consistent whether I'm using network emulation or not so I suppose it's not too relevant.
                          Got it. I'll verify things on this and let you know.
                          Able Ability System - A high performance, robust ability system for UE4. Now Available!

                          Comment


                            Originally posted by Its-Alf View Post

                            Reproduction here

                            Sorry for the late reply. Got incredibly waylaid by life stuff.

                            Looking forward to the update. I've reproduced the issue on a clean third-person template. It simply uses a passive, looping, channeled, HideMesh ability that sets the skeletal mesh component to hidden-in-game on start, and un-hidden on end. It also prints a string for good measure. It's simply channeled on a "HideMesh" input, mapped to right mouse button. The behavior is consistent with what I've described and experienced in other projects.

                            It should be noted that I always test with network emulation active. However, the issue is consistent whether I'm using network emulation or not so I suppose it's not too relevant.
                            Looked at this a bit last night. Able is actually doing everything correct, it's the Player controller that is coming back and saying the button isn't held down after the first frame (so the client cancels it and then the server cancels it as well). Not sure why this is happening with your sample and not mine, but I'm still investigating.
                            Able Ability System - A high performance, robust ability system for UE4. Now Available!

                            Comment


                              Originally posted by ExtraLifeMatt View Post

                              Looked at this a bit last night. Able is actually doing everything correct, it's the Player controller that is coming back and saying the button isn't held down after the first frame (so the client cancels it and then the server cancels it as well). Not sure why this is happening with your sample and not mine, but I'm still investigating.
                              Hmm. As you know, I didn't touch anything with the player controller. This is beginning to sound like a "random checkbox somewhere in the default Unreal PlayerController needs to be ticked" kind of issue. If so, my apologies. I always do my best to check all documentation and and cover all my bases before I contact a developer about their product.

                              Comment


                                Originally posted by Its-Alf View Post

                                Hmm. As you know, I didn't touch anything with the player controller. This is beginning to sound like a "random checkbox somewhere in the default Unreal PlayerController needs to be ticked" kind of issue. If so, my apologies. I always do my best to check all documentation and and cover all my bases before I contact a developer about their product.
                                Yea, I don't know if this is a 4.23 thing (which is what your project was originally targeting), or what. I'm also not sure why it's just the client when playing locally with a listen server. Like I said, I have a project that uses pretty much a similar setup (it just plays an animation as long as the right mouse button is held) - and that works fine. But, again, still testing stuff. But yea, so far, Able is doing things correctly.
                                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                                Comment

                                Working...
                                X