Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

    Thanks, I appreciate it

    Comment


      Whoops, I broke something :

      This is what it said in the crash:
      UE4Editor_AbleCore!UClass::GetDefaultObject<UAblAbility>() [d:\build\++portal+main+full\sync\rocketsync\engine\source\runtime\coreuobject\public\uobject\class.h:2333]
      UE4Editor_AbleCore!UAblAbilityBlueprintLibrary::GetAbilityObjectFromClass() [d:\build\++portal+main+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\private\ablabilityblueprintlibrary.cpp:17]
      UE4Editor_AbleCore!UAblAbilityBlueprintLibrary::execGetAbilityObjectFromClass() [d:\build\++portal+main+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ablecore\classes\ablabilityblueprintlibrary.h:21]
      UE4Editor_CoreUObject
      I know what NOT to do though, this is what caused it:
      Click image for larger version

Name:	AbleJumpBP_04.jpg
Views:	1
Size:	108.2 KB
ID:	1128963

      I kind of figured that I wasn't supposed to be able to select "Abl Ability Blueprint" in that field, but I wanted to see what would happen.....which was crash to desktop xD.
      Hopefully I'm not a pest, I seem to be that guy whose accidental finger-slips always manage to find the death button somehow :/

      Comment


        Originally posted by Aumaan Anubis View Post
        Whoops, I broke something :

        This is what it said in the crash:

        I know what NOT to do though, this is what caused it:
        [ATTACH=CONFIG]143491[/ATTACH]

        I kind of figured that I wasn't supposed to be able to select "Abl Ability Blueprint" in that field, but I wanted to see what would happen.....which was crash to desktop xD.
        Hopefully I'm not a pest, I seem to be that guy whose accidental finger-slips always manage to find the death button somehow :/
        I don't even know how you did that, but I'll add a check to make sure that's handled properly.
        Able Ability System - A high performance, robust ability system for UE4. Now Available!

        Comment


          Originally posted by ExtraLifeMatt View Post
          So the Abilities are playing but not the animations within the Abilities? What is the Realm set to on the Play Animation Task? Is it marked as Play on Server or just as Client?
          The realm is set to Server on all Play Animation tasks.

          Comment


            Originally posted by Hitsugen View Post
            The realm is set to Server on all Play Animation tasks.
            Ah, that makes sense. You should only set an animation to be played on Server if you need animation related data on the server (i.e. you have collision that follows an animation or some such). 99.9% of the time, you'll want your animations as client only (or Client/Server). There really shouldn't be any case where you have Server only animation tasks. I'd swap to Client or Client/Server depending on the logic you are doing and see what that gets you.

            I've been working on v1.6 which has a few bug fixes and I'm trying to support Blend In on external animations (and not just the ones passed into the node) in the Play Ability Animation Node (you'll have to pass in a pose for it to work), I'm still testing things but so far so good.
            Able Ability System - A high performance, robust ability system for UE4. Now Available!

            Comment


              Originally posted by ExtraLifeMatt View Post
              Ah, that makes sense. You should only set an animation to be played on Server if you need animation related data on the server (i.e. you have collision that follows an animation or some such). 99.9% of the time, you'll want your animations as client only (or Client/Server). There really shouldn't be any case where you have Server only animation tasks. I'd swap to Client or Client/Server depending on the logic you are doing and see what that gets you.

              I've been working on v1.6 which has a few bug fixes and I'm trying to support Blend In on external animations (and not just the ones passed into the node) in the Play Ability Animation Node (you'll have to pass in a pose for it to work), I'm still testing things but so far so good.
              That didnt seem to work
              I went ahead and unchecked the Play on Server option for the Play Animation Tasks.
              On a cooked build I hosted a listen server and had the following results:
              Server:
              • [*=1]Plays own animations correctly, Can see all connected client's animations play correctly, and branched ability animations play correctly
              Client 1 & Client 2:
              • [*=1]Plays own animations correctly, Can see all connected client's animations play correctly, does not see any branched ability animations play.


              Let me know if you need any additional info, or a link to the latest build.

              Edit: The Realm on the Play Animation Task by default is Client, and if I tick on 'Play on Server', the realm changes to Client and Server, however both options result in the other connected client not seeing branched ability Play Animation Tasks play.
              Last edited by Hitsugen; 06-06-2017, 11:16 PM. Reason: Additional Info

              Comment


                Originally posted by Hitsugen View Post
                That didnt seem to work
                I went ahead and unchecked the Play on Server option for the Play Animation Tasks.
                On a cooked build I hosted a listen server and had the following results:
                Server:
                • [*=1]Plays own animations correctly, Can see all connected client's animations play correctly, and branched ability animations play correctly
                Client 1 & Client 2:
                • [*=1]Plays own animations correctly, Can see all connected client's animations play correctly, does not see any branched ability animations play.


                Let me know if you need any additional info, or a link to the latest build.

                Edit: The Realm on the Play Animation Task by default is Client, and if I tick on 'Play on Server', the realm changes to Client and Server, however both options result in the other connected client not seeing branched ability Play Animation Tasks play.
                And to verify, it's simply the animation not playing? Are other tasks in the Branched Ability executing properly? What are you using as the branch conditional (I assume just an input check)? Are you seeing any output in the Able log on the server? Does this happen in an uncooked build as well?
                Able Ability System - A high performance, robust ability system for UE4. Now Available!

                Comment


                  Originally posted by ExtraLifeMatt View Post
                  And to verify, it's simply the animation not playing? Are other tasks in the Branched Ability executing properly? What are you using as the branch conditional (I assume just an input check)? Are you seeing any output in the Able log on the server? Does this happen in an uncooked build as well?
                  • it's simply the animation not playing? / Are other tasks in the Branched Ability executing properly?
                    • Correct, I have other tasks that are custom events that are executing correctly on the sever and all connected clients (Those tasks have the Client & Server Realm

                  • What are you using as the branch conditional (I assume just an input check)?
                    • Correct, Its just an input check

                  • Are you seeing any output in the Able log on the server?
                    • The only thing I see in the output log is pasted below, however its only logged after the ability completed. I would expect to see something else when the animation failed to play.
                  Code:
                  LogNet:Warning: UIpNetDriver::ProcesRemoteFunction: No owning connection for actor CombatCharacter_C_2. Function ServerCancelAbility will not be processed.
                  • Does this happen in an uncooked build as well?
                    • I just tested this, and yes, it can be replicated with a Play in Editor session. The problem can be seen on the connected clients only. The listen server will always see all animations play from all clients.

                  Comment


                    Thanks [MENTION=29343]Hitsugen[/MENTION], I'll dig into this and let you know what I find.
                    Able Ability System - A high performance, robust ability system for UE4. Now Available!

                    Comment


                      [MENTION=29343]Hitsugen[/MENTION],

                      So I've tried to repro this locally and everything is working properly for me.

                      Here's my setup:
                      - Play Animation Tasks are set to Client Only and are using the Ability Animation Node.
                      - Branch is set to Input Condition (I have mine bound to LMB).
                      - My Character's Skeletal Mesh component is NOT set to replicate, merely the main actor and the Ability component are set to replicate (this could cause the issue you're seeing if the server was somehow stomping your client value).
                      Able Ability System - A high performance, robust ability system for UE4. Now Available!

                      Comment


                        Originally posted by ExtraLifeMatt View Post
                        @Hitsugen,

                        So I've tried to repro this locally and everything is working properly for me.

                        Here's my setup:
                        - Play Animation Tasks are set to Client Only and are using the Ability Animation Node.
                        - Branch is set to Input Condition (I have mine bound to LMB).
                        - My Character's Skeletal Mesh component is NOT set to replicate, merely the main actor and the Ability component are set to replicate (this could cause the issue you're seeing if the server was somehow stomping your client value).
                        I tried it on a fresh project with the setup as you described, and I'm still having the same issue.
                        Only thing that might differ from yours (That I know of)

                        • Project is a c++ project using the ThirdPersonTemplate.


                        If it helps here's a link to the fresh zipped up test project.
                        https://www.dropbox.com/s/mup6c2si1u...eTest.zip?dl=0

                        Are you testing with the Number of Players set to at least 3?

                        Comment


                          Originally posted by Hitsugen View Post
                          I tried it on a fresh project with the setup as you described, and I'm still having the same issue.
                          Only thing that might differ from yours (That I know of)

                          • Project is a c++ project using the ThirdPersonTemplate.


                          If it helps here's a link to the fresh zipped up test project.
                          https://www.dropbox.com/s/mup6c2si1u...eTest.zip?dl=0

                          Are you testing with the Number of Players set to at least 3?
                          I've been using 2. Not sure why that would make a difference. I'll check out your test project and let you know (been slammed at work so I didn't get to mess with it tonight).

                          EDIT: Was able to repro things using your test project. I believe I see the problem and why I didn't see it locally (it appears to be related to the name of your Abilities generating the same CRC internally). I'm going to dig into that and see A.) why that is occurring and B.) is there a better identifier to use internally.
                          Last edited by ExtraLifeMatt; 06-09-2017, 10:11 AM.
                          Able Ability System - A high performance, robust ability system for UE4. Now Available!

                          Comment


                            Originally posted by ExtraLifeMatt View Post
                            I've been using 2. Not sure why that would make a difference. I'll check out your test project and let you know (been slammed at work so I didn't get to mess with it tonight).

                            EDIT: Was able to repro things using your test project. I believe I see the problem and why I didn't see it locally (it appears to be related to the name of your Abilities generating the same CRC internally). I'm going to dig into that and see A.) why that is occurring and B.) is there a better identifier to use internally.
                            Thanks for checking it out
                            Also, I havent heard that term before, whats a CRC?

                            Comment


                              Originally posted by Hitsugen View Post
                              Thanks for checking it out
                              Also, I havent heard that term before, whats a CRC?
                              A CRC is just a nice way to take any form of data (the name of an Ability for example), and turn it into a unique integer which makes comparisons and such incredibly fast.

                              I fixed the issue, I'm not sure why your Abilities caused this issue (it appears to be a race condition of some sort), but it's fixed and will be in the 1.6 update (which I'll submit to Epic tonight/tomorrow and should be released sometime in the week).
                              Able Ability System - A high performance, robust ability system for UE4. Now Available!

                              Comment


                                Originally posted by ExtraLifeMatt View Post
                                A CRC is just a nice way to take any form of data (the name of an Ability for example), and turn it into a unique integer which makes comparisons and such incredibly fast.

                                I fixed the issue, I'm not sure why your Abilities caused this issue (it appears to be a race condition of some sort), but it's fixed and will be in the 1.6 update (which I'll submit to Epic tonight/tomorrow and should be released sometime in the week).
                                Awesome, thanks Matt!

                                Comment

                                Working...
                                X