Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    Originally posted by acxsasx View Post
    Regarding your burning man example, the BurnPassive ability sets gameplay tag "Status.Burning" which is done to the gameplaytag container on the ability component(?).

    On the targetmannequiun, off the "Event AnyDamage" event, in the Check Burning method, the CharacterTags variable is checked for the above gameplay tag.

    I don't see where CharacterTags gets the "Status.Burning" tag.

    I am assuming the abilitycomponent's gameplay tag variable should be used to look for the Status.Burning? (GetGameplayTagContainer)
    Correct, you want to keep all your tags in one place - so Ability Component makes sense since it already has support for them. The CharacterTags variable is just a temporary to copy the incoming damage's tags to before evaluating damage. It's then checked against the Character's tags (e.g. the Ability Component) and if anything special needs to happen - it does it there.

    You can also download the example and see how things work in more details.
    Able Ability System - A high performance, robust ability system for UE4. Now Available!

    Comment


      You can also download the example and see how things work in more details.
      Yep, did that. When I look for all the references for the CharacterTag variable, it only shows Gets and no sets in the blueprint. Only reason I am bringing it up is to see where I am missing something where it gets set. I see the IncommingTag off the DamageByAbility class variable and I see where the comparison is done in the CheckBurning method.

      One thing to note is I opened up the example in 4.19.2 and I am seeing some weirdness in BurnPassive where all the custom events end in "_1". So maybe something is getting lost in the conversion.

      Comment


        Originally posted by acxsasx View Post

        Yep, did that. When I look for all the references for the CharacterTag variable, it only shows Gets and no sets in the blueprint. Only reason I am bringing it up is to see where I am missing something where it gets set. I see the IncommingTag off the DamageByAbility class variable and I see where the comparison is done in the CheckBurning method.

        One thing to note is I opened up the example in 4.19.2 and I am seeing some weirdness in BurnPassive where all the custom events end in "_1". So maybe something is getting lost in the conversion.
        Ahh, right. The underlying methods changed names in 2.20 so that's why you see the _1. Yea, I'll need to remake those to get rid of that (Fun....). The get is either in the Ability Blueprint or the Character blueprint. Has to be set somewhere.

        The principle flow is still the same: When Damage is about to occur, pass in the tags for the incoming Ability. When damage does occur, check the Ability tags against the player tags, and do whatever combinations you want.
        Able Ability System - A high performance, robust ability system for UE4. Now Available!

        Comment


          Is there a way I can send a reference to character class in Ability Context to minimize casting?

          Comment


            Originally posted by Tetsumori View Post
            Is there a way I can send a reference to character class in Ability Context to minimize casting?
            Not currently. To allow Able to be as flexible as possible, it only stores Actors. On the bright side, UE4's casting system isn't the normal C++ RTTI so the casts are very quick.
            Able Ability System - A high performance, robust ability system for UE4. Now Available!

            Comment


              I'm having trouble with my Collision query staying on my character while in game. The collision stays in the exact same spot no matter where my character moves. Any ideas?
              Click image for larger version

Name:	ablecollisionquery.JPG
Views:	75
Size:	77.6 KB
ID:	1493205Click image for larger version

Name:	ableInGamecollisionquery.JPG
Views:	72
Size:	60.4 KB
ID:	1493206

              Attached Files

              Comment


                Hmmmm It could be something with the socket rotation. Try removing that and see what it gets. Otherwise I'll try some things out myself.
                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                Comment


                  Originally posted by ExtraLifeMatt View Post
                  Hmmmm It could be something with the socket rotation. Try removing that and see what it gets. Otherwise I'll try some things out myself.
                  You're right, if I remove the socket rotation it will stay with my character. I need it to stick with my character but also have the collision hit where I'm aiming/looking. If I try to set a manual rotation on the query it goes off my character again. My headSocket has no relative rotation on it. I do have plane constraint axis setting to X for my character. All this shouldn't really affect it but figured the more information the better. Any ideas?

                  Comment


                    Originally posted by KamiSkilletLTD View Post

                    You're right, if I remove the socket rotation it will stay with my character. I need it to stick with my character but also have the collision hit where I'm aiming/looking. If I try to set a manual rotation on the query it goes off my character again. My headSocket has no relative rotation on it. I do have plane constraint axis setting to X for my character. All this shouldn't really affect it but figured the more information the better. Any ideas?
                    So you're seeing it with a manual rotation as well? That sounds like the transform concatenation might be wrong. I'll look at that and report back.
                    Able Ability System - A high performance, robust ability system for UE4. Now Available!

                    Comment


                      Originally posted by ExtraLifeMatt View Post

                      So you're seeing it with a manual rotation as well? That sounds like the transform concatenation might be wrong. I'll look at that and report back.
                      Great, if you need more information let me know. Thanks!

                      Comment


                        Originally posted by KamiSkilletLTD View Post

                        Great, if you need more information let me know. Thanks!
                        EDIT: Nevermind, I found the bug. It works in the preview window, but in the world/level it was using the wrong transform space. I have a fix and it'll go out with the 4.20 support update. Thanks for your patience and for reporting this bug! - Matt

                        Hey Skillet, I got some time to investigate things and it *appears* to be working as I would expect. Here's what I'm seeing.

                        So, here is the orientation of the socket I'm using ("head" in this case). You can see the X axis (red) is going up.



                        Now, when I set my query to use the socket location and make a box 200x100x100, I get a properly aligned box.
                        Click image for larger version  Name:	BoneRotation.jpg Views:	1 Size:	137.3 KB ID:	1502123
                        Are you not seeing this occur?

                        Click image for larger version  Name:	BoneRotatedQuery.png Views:	1 Size:	567.8 KB ID:	1502122
                        Last edited by ExtraLifeMatt; 07-15-2018, 08:32 PM.
                        Able Ability System - A high performance, robust ability system for UE4. Now Available!

                        Comment


                          Hey Matt,

                          I'm having some issues blending with state machines. I have my normal locomotion state which is connected directly to the ability state, with the only conditional being whether an ability is active or not. It works fine aside from the blending; if I turn blending off, or lower the time to a very minimal degree (<0.03) the animation plays fine. But there is no blending. If I enable blending, then when I am idling it actually works fine, but if I use an ability in the middle of running, it'll start at a random spot in the ability animation (probably correlated to the frame of the running animation). This is unusable because it tends to skip a large portion of the animation; I put an AnimNotify in the beginning and it never got fired except when I was idle or when blending was disabled. Any idea what could be causing this?

                          Thanks again!

                          Comment


                            If you use animations that have a blend in and blend out (like montages) if you cancel ability, or branch to a different ability - it will not blend out but terminate the animation immediately in one frame. if the ability is shorter then the anim montage it will as well terminate the montage in 1 frame at the time the ability ends.

                            Comment


                              Originally posted by AngeIV View Post
                              If you use animations that have a blend in and blend out (like montages) if you cancel ability, or branch to a different ability - it will not blend out but terminate the animation immediately in one frame. if the ability is shorter then the anim montage it will as well terminate the montage in 1 frame at the time the ability ends.
                              Thanks for the reply! I'm neither cancelling/branching nor using montages; I have the ability state set up and this occurs simply when using the ability once. Not only that but blending out isn't even the issue right now, it's blending in (I'm assuming) because the animation begins later than it should if I'm moving around and then use it. Early AnimNotifies do not fire with it as well.

                              Comment


                                Originally posted by jfaztk View Post
                                Hey Matt,

                                I'm having some issues blending with state machines. I have my normal locomotion state which is connected directly to the ability state, with the only conditional being whether an ability is active or not. It works fine aside from the blending; if I turn blending off, or lower the time to a very minimal degree (<0.03) the animation plays fine. But there is no blending. If I enable blending, then when I am idling it actually works fine, but if I use an ability in the middle of running, it'll start at a random spot in the ability animation (probably correlated to the frame of the running animation). This is unusable because it tends to skip a large portion of the animation; I put an AnimNotify in the beginning and it never got fired except when I was idle or when blending was disabled. Any idea what could be causing this?

                                Thanks again!
                                Can you post a screenshot of your State Machine setup? Particularly with how your locomotion state is set to blend with the Ability state? If it works while idle, it sounds like there's just something wrong in the locomotion + Ability blending.
                                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                                Comment

                                Working...
                                X