Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    Originally posted by Decriment View Post

    Thanks for the elaboration ExtraLifeMatt. I'm taking my time figuring out how I want to use this plugin, but the end goal is to use C++ and be able to create abilities at runtime. I'm hoping to use Able as an interpreter for a domain specific language. Abilities will be able to be created with that language and then executed using Able (all without recompiling).

    I'm still inspecting the Able codebase and trying to figure out how I should go about constructing the DSL still. It looks like I should create some generic UAblAbility classes and then programmatically add tasks to the m_Tasks property based on what is written with the DSL. After creating the ability, it also looks like there is a validator that can be used to check for things like circular dependencies. That doesn't seem too complicated, but as the author of the plugin do you have any tips/suggestions for my use case?

    I'm probably not going to make the DSL too open ended. A single component of an ability may be a group of components that all do something. There may also be a chain of Able abilities that make up the ability that will be expressed with the DSL as well. I'd like to support things similar to the chain lightning tutorial, except the ability will be created at runtime. That'll take a bit of thought to get figured out, but it's probably possible.
    Nope. You pretty much have it figured out. Just make sure the Hash for the ability name is being calculated properly as that is used as an identifier everywhere. If you are creating a new object and then setting the name, you'll need to add a method or something to recalculate that hash. That's the only "gotcha" I can think of off the top of my head.
    Able Ability System - A high performance, robust ability system for UE4. Now Available!

    Comment


      Hey
      I am doing something new now.
      I am gonna try and put this into AI Behaviour Toolkit So instead of play animations it will play ability
      What do you think?

      https://www.unrealengine.com/marketp...havior-toolkit

      Jesse

      Comment


        Originally posted by jwyuen View Post
        Hey
        I am doing something new now.
        I am gonna try and put this into AI Behaviour Toolkit So instead of play animations it will play ability
        What do you think?

        https://www.unrealengine.com/marketp...havior-toolkit

        Jesse
        Sounds good. I haven't used that plugin myself, but it should be do-able I would imagine.
        Able Ability System - A high performance, robust ability system for UE4. Now Available!

        Comment


          well it works now Woop
          You should check it out. Awesome and easy to use to make any AI!!!

          Comment


            haha Matt,
            You a Genius, doing a Lot of research and planning. Game is gonna be just all Gameplay Tags and Data tables!
            Since there is so much involved in this game, Like only certain things can kill different things
            Vampires can only be decapitated and Ghosts can be attacked by Iron or salt for example, Using Gameplay Tag containers in the datatables in order to get the info on the enemies
            Gonna make a couple of Actor components and BPI also and base all characters including enemies and players off base character in it

            Cheers matt

            Comment


              Hi Matt,

              Reporting a Bug:
              Made a Base Ability and everytime i make a Child of that Base, It Crashes UE4.
              You know about this?

              LoginId:fccb8f874804dfd45b73dd83fc7fffda
              EpicAccountId:506d6d1a590d441cbefea319a8150060

              You do not have any debugging symbols required to display the callstack for this crash.


              Jesse

              Comment


                Originally posted by jwyuen View Post
                Hi Matt,

                Reporting a Bug:
                Made a Base Ability and everytime i make a Child of that Base, It Crashes UE4.
                You know about this?

                LoginId:fccb8f874804dfd45b73dd83fc7fffda
                EpicAccountId:506d6d1a590d441cbefea319a8150060

                You do not have any debugging symbols required to display the callstack for this crash.


                Jesse
                Does that Ability have a Custom Task? Or is it just a plain Ability and you're inheriting from it?
                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                Comment


                  Its got animation and stuff in no custom task

                  Comment


                    I found that a lot of function is unavailable in AblAbility's blueprint.Is there any way to call get controller,or get all actor of class,BlueprintFunctionLibrary?

                    Comment


                      Originally posted by jwyuen View Post
                      Its got animation and stuff in no custom task
                      I'm looking into this. Trying to repro it locally.
                      Originally posted by xermao View Post
                      I found that a lot of function is unavailable in AblAbility's blueprint.Is there any way to call get controller,or get all actor of class,BlueprintFunctionLibrary?
                      You should be able to get those through the Context.

                      Context->GetSelfActor->GetWorld->GetAllActorsOfClass
                      Able Ability System - A high performance, robust ability system for UE4. Now Available!

                      Comment


                        Originally posted by ExtraLifeMatt View Post

                        I'm looking into this. Trying to repro it locally.


                        You should be able to get those through the Context.

                        Context->GetSelfActor->GetWorld->GetAllActorsOfClass
                        GetWorld is not unavailable in blueprint, and I don't want to use c++

                        Comment


                          Originally posted by xermao View Post

                          GetWorld is not unavailable in blueprint, and I don't want to use c++
                          Bah, I see how they want that setup. I'll pass in the world context object which will expose that.

                          EDIT: What methods are you specifically trying to access the world from?
                          Able Ability System - A high performance, robust ability system for UE4. Now Available!

                          Comment


                            Originally posted by ExtraLifeMatt View Post

                            Bah, I see how they want that setup. I'll pass in the world context object which will expose that.

                            EDIT: What methods are you specifically trying to access the world from?
                            GetGameInstance,GetPlayerController,GetAllActorOfClass,GetAllActorWithTag.

                            1. May be this is a bug?I make a collision task in able,the collison channel set to my custom channle named "enemy",of course I set all enemy to the this channel.
                            then I override On Collsion Event function, when the function called,in Hit Entities,it never get enemy.I set collision task channel back to WorldDynamic,and it works fine.
                            In my enemy blueprint nothing is in WorldDynamic channel,they all in "enemy" channle.

                            2. If I set Query source to Target Actor,when Target Actor is null, it will crash editor in
                            AActor* SourceActor = m_QueryLocation.GetSourceActor(*Context.Get());
                            I know I'm in a wrong way to use query task,but how ever it should not crash,you can give a message to tell user it's wrong.
                            Last edited by xermao; 04-02-2019, 08:32 AM.

                            Comment


                              Originally posted by xermao View Post

                              GetGameInstance,GetPlayerController,GetAllActorOfClass,GetAllActorWithTag.

                              1. May be this is a bug?I make a collision task in able,the collison channel set to my custom channle named "enemy",of course I set all enemy to the this channel.
                              then I override On Collsion Event function, when the function called,in Hit Entities,it never get enemy.I set collision task channel back to WorldDynamic,and it works fine.
                              In my enemy blueprint nothing is in WorldDynamic channel,they all in "enemy" channle.

                              2. If I set Query source to Target Actor,when Target Actor is null, it will crash editor in
                              AActor* SourceActor = m_QueryLocation.GetSourceActor(*Context.Get());
                              I know I'm in a wrong way to use query task,but how ever it should not crash,you can give a message to tell user it's wrong.
                              1. I would double check your collision settings. Sounds like somehow your enemies are getting put on the WorldDynamic layer. Able just passes things along to the underlying collision query call, but I'll double check to make sure.

                              2. So, normally I actually prefer crashing than limping along. The crash is the message, in a way. However, this case may be a bit overzealous. I'll see if I can make it more forgiving.
                              Able Ability System - A high performance, robust ability system for UE4. Now Available!

                              Comment


                                Hi how far are you on the update?

                                Comment

                                Working...
                                X