Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

  • replied
    Originally posted by Kelen View Post
    I think I'm missing something badly but I can't get it to work when I set Targeting > Target Logic to "Blackboard" and set Dynamic Properties > Identifier to the name of the Blackboard key where my target actor is. When I check the Blackboard, that object is set properly, it's just not being forwarded to Able.
    Is there any chance you could post some more demos/videos, they help a lot but most of them are from 2+ years ago. Thanks!

    Happy holidays everyone!

    Edit: doing a custom targeting and fetching blackboard value manually is working perfectly.
    Click image for larger version

Name:	abletarget.png
Views:	106
Size:	123.8 KB
ID:	1702160
    Kelen I think I see what happened.

    The "Dynamic Property Identifer" is specifically for Able usage when you have a dynamic property bound (you'll see '+' signs on certain fields in Able, where you can bind some Blueprint logic to get a value at runtime). The Dynamic Property Identifier is there in case you have multiple Tasks / Targeting / Etc all using the dynamic property values so you can determine in your blueprint function which Task is calling that function.

    For BB Keys, you just want to add the key to the "Blackboard Keys" array under the targeting properties. When I did that, it worked as expected.

    JimPhoenix I've gone ahead and submitted a fix for those crashes (should appear hopefully sometime this week). Again, sorry for the hiccup.

    Able v3.23
    • NATIVIZATION FIX: Changed Force Server Activation field to be a bool, as was always intended.
    • CRASH FIX: Added defensive code when the Editor isn't able to create an Ability Context.

    Leave a comment:


  • replied
    Originally posted by JimPhoenix View Post
    Hey there Matt,

    I really like your work with the Plugin so far, but I ran into a "build failed" problem yesterday; after uninstall and reinstall the ABLE plugin in the Epic Launcher for the 4.22.3, my project unable to build with "Exclusive Nativization" (no ABLE assets in my "List of Blueprint assets to nativize" array, just a Blueprint Function Library, nothing else), because of this:

    HTML Code:
    Building 13 actions with 16 processes...
    UATHelper: Packaging (Windows (64-bit)): [1/13] Default.rc2
    UATHelper: Packaging (Windows (64-bit)): [2/13] SharedPCH.Core.cpp
    UATHelper: Packaging (Windows (64-bit)): [3/13] Project_Alvus.cpp
    UATHelper: Packaging (Windows (64-bit)): [4/13] PCH.NativizedAssets.cpp
    UATHelper: Packaging (Windows (64-bit)): [5/13] Module.NativizedAssets.gen.6_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)): [6/13] Module.NativizedAssets.gen.3_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)): [7/13] Module.NativizedAssets.gen.1_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)): [8/13] Module.NativizedAssets.gen.2_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)): [9/13] Module.NativizedAssets.gen.4_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)): [10/13] Module.NativizedAssets.gen.5_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)): [11/13] Module.NativizedAssets.cpp
    UATHelper: Packaging (Windows (64-bit)): F:\Unreal Engine 4\Engine\UE_4.22\Engine\Source\../Plugins/Marketplace/Able/Source/AbleCore/Classes/ablSettings.h(46): error C4800: Implicit conversion from 'const float' to bool. Possible information loss
    UATHelper: Packaging (Windows (64-bit)): F:\Unreal Engine 4\Engine\UE_4.22\Engine\Source\../Plugins/Marketplace/Able/Source/AbleCore/Classes/ablSettings.h(46): note: consider using explicit cast or comparison to 0 to avoid this warning
    UATHelper: Packaging (Windows (64-bit)): Took 28,5399801s to run UnrealBuildTool.exe, ExitCode=5
    UATHelper: Packaging (Windows (64-bit)): ERROR: UnrealBuildTool failed. See log for more details. (C:\Users\Jim\AppData\Roaming\Unreal Engine\AutomationTool\Logs\F+Unreal+Engine+4+Engine+UE_4.22\UBT-Project_Alvus-Win64-Development.txt)
    UATHelper: Packaging (Windows (64-bit)): (see C:\Users\Jim\AppData\Roaming\Unreal Engine\AutomationTool\Logs\F+Unreal+Engine+4+Engine+UE_4.22\Log.txt for full exception trace)
    UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=5 (5)
    UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
    PackagingResults: Error: Unknown Error
    I don't understand why is this happening right after the plugin reinstall, because before that everything was just fine... : (

    By the way, I reinstalled the Plugin because the ABLE crashes really often in various scenarios, sadly.

    For example; I run into a crash a lot when I'm working with the Plugin assets opened in a window while creating a combo system and recompile an other, completely different type of Blueprint, like an Actor Component and not even an ABLE Graph:

    HTML Code:
    Unhandled exception
    
    UE4Editor_AbleEditor!FAblAbilityEditor::Tick() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ableeditor\private\abilityeditor\ablabilityeditor.cpp:374]
    UE4Editor_UnrealEd!FTickableEditorObject::TickObjects() [d:\build\++ue4\sync\engine\source\editor\unrealed\public\tickableeditorobject.h:47]
    UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1411]
    UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:403]
    UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3967]
    UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
    UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
    UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
    UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    kernel32
    ntdll
    What do you think? Any suggestions?
    Hmmm, the first one looks like a legit type conversion error. That should be a bool, no idea why it's a float (probably dumb copy and paste error on my part). I'll get a fix out for that.

    The 2nd one looks like it's failing to create a context, which a null check would fix. Let me get in a fix for that as well.

    Thanks for the report and sorry for the temporary headache.

    Leave a comment:


  • replied
    Hey there Matt,

    I really like your work with the Plugin so far, but I ran into a "build failed" problem yesterday; after uninstall and reinstall the ABLE plugin in the Epic Launcher for the 4.22.3, my project unable to build with "Exclusive Nativization" (no ABLE assets in my "List of Blueprint assets to nativize" array, just a Blueprint Function Library, nothing else), because of this:

    HTML Code:
    Building 13 actions with 16 processes...
    UATHelper: Packaging (Windows (64-bit)):     [1/13] Default.rc2
    UATHelper: Packaging (Windows (64-bit)):     [2/13] SharedPCH.Core.cpp
    UATHelper: Packaging (Windows (64-bit)):     [3/13] Project_Alvus.cpp
    UATHelper: Packaging (Windows (64-bit)):     [4/13] PCH.NativizedAssets.cpp
    UATHelper: Packaging (Windows (64-bit)):     [5/13] Module.NativizedAssets.gen.6_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)):     [6/13] Module.NativizedAssets.gen.3_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)):     [7/13] Module.NativizedAssets.gen.1_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)):     [8/13] Module.NativizedAssets.gen.2_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)):     [9/13] Module.NativizedAssets.gen.4_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)):     [10/13] Module.NativizedAssets.gen.5_of_6.cpp
    UATHelper: Packaging (Windows (64-bit)):     [11/13] Module.NativizedAssets.cpp
    UATHelper: Packaging (Windows (64-bit)):     F:\Unreal Engine 4\Engine\UE_4.22\Engine\Source\../Plugins/Marketplace/Able/Source/AbleCore/Classes/ablSettings.h(46): error C4800: Implicit conversion from 'const float' to bool. Possible information loss
    UATHelper: Packaging (Windows (64-bit)):     F:\Unreal Engine 4\Engine\UE_4.22\Engine\Source\../Plugins/Marketplace/Able/Source/AbleCore/Classes/ablSettings.h(46): note: consider using explicit cast or comparison to 0 to avoid this warning
    UATHelper: Packaging (Windows (64-bit)): Took 28,5399801s to run UnrealBuildTool.exe, ExitCode=5
    UATHelper: Packaging (Windows (64-bit)): ERROR: UnrealBuildTool failed. See log for more details. (C:\Users\Jim\AppData\Roaming\Unreal Engine\AutomationTool\Logs\F+Unreal+Engine+4+Engine+UE_4.22\UBT-Project_Alvus-Win64-Development.txt)
    UATHelper: Packaging (Windows (64-bit)):        (see C:\Users\Jim\AppData\Roaming\Unreal Engine\AutomationTool\Logs\F+Unreal+Engine+4+Engine+UE_4.22\Log.txt for full exception trace)
    UATHelper: Packaging (Windows (64-bit)): AutomationTool exiting with ExitCode=5 (5)
    UATHelper: Packaging (Windows (64-bit)): BUILD FAILED
    PackagingResults: Error: Unknown Error
    I don't understand why is this happening right after the plugin reinstall, because before that everything was just fine... : (

    By the way, I reinstalled the Plugin because the ABLE crashes really often in various scenarios, sadly.

    For example; I run into a crash a lot when I'm working with the Plugin assets opened in a window while creating a combo system and recompile an other, completely different type of Blueprint, like an Actor Component and not even an ABLE Graph:

    HTML Code:
    Unhandled exception
    
    UE4Editor_AbleEditor!FAblAbilityEditor::Tick() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ableeditor\private\abilityeditor\ablabilityeditor.cpp:374]
    UE4Editor_UnrealEd!FTickableEditorObject::TickObjects() [d:\build\++ue4\sync\engine\source\editor\unrealed\public\tickableeditorobject.h:47]
    UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1411]
    UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:403]
    UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3967]
    UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:168]
    UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
    UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:275]
    UE4Editor!__scrt_common_main_seh() [d:\agent\_work\3\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    kernel32
    ntdll
    What do you think? Any suggestions?

    Leave a comment:


  • replied
    Originally posted by TotallyKuro View Post
    i fixed it for now by changing the preview character to another one which doesnt have the smooth sync component
    Yea, looks like Smooth Sync doesn't like how the Editor is ticking the Viewport. Not shocked, I move the time around as you scrub the timeline which Smooth Sync probably isn't happy with.

    Leave a comment:


  • replied
    i fixed it for now by changing the preview character to another one which doesnt have the smooth sync component

    Leave a comment:


  • replied
    this is the callstack


    Unhandled exception

    UE4Editor_SmoothSyncPlugin!USmoothSync::adjustOwnerTime() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\smoothsyncplugin\source\smoothsyncplugin\private\smoothsync.cpp:2352]
    UE4Editor_SmoothSyncPlugin!USmoothSync::TickComponent() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\smoothsyncplugin\source\smoothsyncplugin\private\smoothsync.cpp:728]
    UE4Editor_Engine
    UE4Editor_Engine
    UE4Editor_Engine
    UE4Editor_Engine
    UE4Editor_Core
    UE4Editor_Core
    UE4Editor_Engine
    UE4Editor_Engine
    UE4Editor_Engine
    UE4Editor_Engine
    UE4Editor_AbleEditor!FAbilityEditorViewportClient::Tick() [d:\build\++portal+dev-marketplace+full\sync\localbuilds\plugintemp\hostproject\plugins\able\source\ableeditor\private\abilityeditor\ablabilityeditorviewportclient.cpp:230]
    UE4Editor_UnrealEd
    UE4Editor_UnrealEd
    UE4Editor
    UE4Editor
    UE4Editor
    UE4Editor
    UE4Editor
    kernel32
    ntdll

    Leave a comment:


  • replied
    Originally posted by TotallyKuro View Post
    For some reason the engine crashes when i try to open a ability if i have this on my character

    https://www.unrealengine.com/marketp...ct/smooth-sync
    Unfortunately, I don't own Smooth-Sync, so I can't tell you why they aren't playing nice together. There's a couple things you can try to narrow it down.

    1.) Disable Async Tasks to prevent any thread safety issues that might occur between the two.
    2.) Try and narrow down which Task doesn't like working with Smooth-Sync.

    If you post the callstack (you'll find it in your logs) of the crash, that may help as well.

    Leave a comment:


  • replied
    For some reason the engine crashes when i try to open a ability if i have this on my character

    https://www.unrealengine.com/marketp...ct/smooth-sync

    Leave a comment:


  • replied
    is your blackboard key public? you sure get self actor returns the character? does the character have access to blackboard or maybe you need to run it from owner (controller) ?

    Leave a comment:


  • replied
    Originally posted by Kelen View Post
    I think I'm missing something badly but I can't get it to work when I set Targeting > Target Logic to "Blackboard" and set Dynamic Properties > Identifier to the name of the Blackboard key where my target actor is. When I check the Blackboard, that object is set properly, it's just not being forwarded to Able.
    Is there any chance you could post some more demos/videos, they help a lot but most of them are from 2+ years ago. Thanks!

    Happy holidays everyone!

    Edit: doing a custom targeting and fetching blackboard value manually is working perfectly.
    Click image for larger version

Name:	abletarget.png
Views:	106
Size:	123.8 KB
ID:	1702160
    I'll dig into that and make a local repro to see what I find. Thanks for the report and glad you found a temporary work around.

    Leave a comment:


  • replied
    I think I'm missing something badly but I can't get it to work when I set Targeting > Target Logic to "Blackboard" and set Dynamic Properties > Identifier to the name of the Blackboard key where my target actor is. When I check the Blackboard, that object is set properly, it's just not being forwarded to Able.
    Is there any chance you could post some more demos/videos, they help a lot but most of them are from 2+ years ago. Thanks!

    Happy holidays everyone!

    Edit: doing a custom targeting and fetching blackboard value manually is working perfectly.
    Click image for larger version

Name:	abletarget.png
Views:	106
Size:	123.8 KB
ID:	1702160
    Last edited by Kelen; 12-27-2019, 02:33 PM.

    Leave a comment:


  • replied
    Originally posted by ninjasdf View Post
    Great. The versatility of this system is downright amazing. I've already pulled the trigger and purchased the ability system. I have one more question, and this one is short and simple to make up for last time lolz.
    • Will animation notifies that are in an anim montage still fire off when the able ability system plays the animation within an ability?

    If that is possible then I've found quite a few ways to recreate my system much more easily than originally anticipated. That combined with all of the great features within the ability system should allow me to not only drastically improve the quality of what I've already done but make it much more manageable as well.
    Yes, any animation notifies will fire like normal.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    --SNIPPED FOR READABILITY--

    Hope that helps. The system you want is very specific, Able is written very generic. You can get it to do what you want, but you'll have to be a bit creative (or just make custom tasks for the very specific behaviors you want).
    Great. The versatility of this system is downright amazing. I've already pulled the trigger and purchased the ability system. I have one more question, and this one is short and simple to make up for last time lolz.
    • Will animation notifies that are in an anim montage still fire off when the able ability system plays the animation within an ability?

    If that is possible then I've found quite a few ways to recreate my system much more easily than originally anticipated. That combined with all of the great features within the ability system should allow me to not only drastically improve the quality of what I've already done but make it much more manageable as well.

    Leave a comment:


  • replied
    Originally posted by ninjasdf View Post
    Stumbled upon this the other day after spending months creating a custom combo system for the project I'm working on and to say the least I am mind blown. The thought that went into this plugin is nothing short of amazing. To give some background on the project I'm working on:

    It's essentially a melee/ranged/magic third person fighting game. Think an action adventure style movement and attacking system that incorporates some fighting game principles such as distance management and efficiently timed button combinations that allow a player to chain attacks together uninterrupted. Now onto my questions:
    1. For melee weapon attacks I'm currently utilizing a system that does line traces from sockets assigned to the melee weapon. If these line traces cross the mesh of another player then a hit is registered. The sockets are placed very precisely in order to have it appear as if the weapon mesh itself is checking the collision, which to the human eye appears very precise. This also makes it so only the bladed/pointy parts of the weapon mesh appear to do damage, as handles do not have these sockets. Is there any way to do something similar with this ability system? I don't want any hits to register unless the weapon itself at least appears to be doing the collision checking against player mesh.
    2. For ranged attacks like bow and arrow, does the system allow for holding a bow in the pulled back position for a minimum or indefinite time? Basically, the flow would go: Grab arrow -> Nock arrow and pull string back -> Can hold this position infinitely -> Fire arrow on input release. The longer you pull the string back, the more damage increases until it hits a max damage cap. Additionally, something like this might be used in my game to have certain spells allow to charge up, increasing their effectiveness the longer the spell is held.
    3. Using the above example, is it possible to use the project itself for hit detection as well as controlling the velocity at which it travels? For instance, holding the bow string back longer would shoot arrow further/faster.
    4. Is it possible to fire off a custom event within the system that includes variables? One of the key features in my current system is variable hitstun. Being able to combo quick dagger swings requires far less hitstun to lock an enemy into the combo than say slow axe swings, which require a longer hitstun to achieve the same effect. If this isn't possible, is there something within the ability system that can mimic the same effect?
    5. Another example related to #4 is a parry system. If a character properly executes a parry at the time of being hit by an attack it would play an effect/sound as well as nullify damage. How would I go about implementing something like this with your ability system? The system I've created has a two-pronged parry system. Parries that are initiated within a very short time window of being hit also interrupt the attackers combo, while more loosely timed parries simply nullify damage. Is this also possible?
    6. Finally, one of the other features I have implemented is allowing the player to rotate their character in the very beginning portions of attacks. Normally players would be locked onto a target and rotate depending on where the target is. However, to allow players to fight multiple opponents it's possible to not lock on and the character can manually rotate in the very beginning (before hit detection becomes active) of animations so they can forexample target a player to their left for the first attack of their combo, then rotate to target a player that was behind them afterwards. Using gamepad as an example, the left stick position would be used for rotating the player. I currently use a component and Anim Notifies to handle this. How would I go about implementing it with this ability system?

    Once again this system is great. I'm hoping it contains some of the features I'm querying about, or at the very least allows to hook in such features. Thank you in advance.
    Oof, this is a lot but I'll try and answer it.

    1.) You can attach a query volume to your weapon socket if you wish. If you want to do traces, you'll need to write your own Task and set that up.
    2.) You could do this through a looping passive, where you query the number of "Stacks" the passive has when the user releases it and use that to determine velocity and such.
    3.) See #2.
    4.) Yes but not in the way you describe. You can fire off custom events but they don't contain parameters. You would have to store those on the Actor somewhere and just "know" that they are there when you get that event.
    5.) You can do interrupts for Abilities.
    6.) Able makes no assumptions about locking movement. There is a Task that does that, but it's entirely optional.

    Hope that helps. The system you want is very specific, Able is written very generic. You can get it to do what you want, but you'll have to be a bit creative (or just make custom tasks for the very specific behaviors you want).

    Leave a comment:


  • replied
    Stumbled upon this the other day after spending months creating a custom combo system for the project I'm working on and to say the least I am mind blown. The thought that went into this plugin is nothing short of amazing. To give some background on the project I'm working on:

    It's essentially a melee/ranged/magic third person fighting game. Think an action adventure style movement and attacking system that incorporates some fighting game principles such as distance management and efficiently timed button combinations that allow a player to chain attacks together uninterrupted. Now onto my questions:
    1. For melee weapon attacks I'm currently utilizing a system that does line traces from sockets assigned to the melee weapon. If these line traces cross the mesh of another player then a hit is registered. The sockets are placed very precisely in order to have it appear as if the weapon mesh itself is checking the collision, which to the human eye appears very precise. This also makes it so only the bladed/pointy parts of the weapon mesh appear to do damage, as handles do not have these sockets. Is there any way to do something similar with this ability system? I don't want any hits to register unless the weapon itself at least appears to be doing the collision checking against player mesh.
    2. For ranged attacks like bow and arrow, does the system allow for holding a bow in the pulled back position for a minimum or indefinite time? Basically, the flow would go: Grab arrow -> Nock arrow and pull string back -> Can hold this position infinitely -> Fire arrow on input release. The longer you pull the string back, the more damage increases until it hits a max damage cap. Additionally, something like this might be used in my game to have certain spells allow to charge up, increasing their effectiveness the longer the spell is held.
    3. Using the above example, is it possible to use the project itself for hit detection as well as controlling the velocity at which it travels? For instance, holding the bow string back longer would shoot arrow further/faster.
    4. Is it possible to fire off a custom event within the system that includes variables? One of the key features in my current system is variable hitstun. Being able to combo quick dagger swings requires far less hitstun to lock an enemy into the combo than say slow axe swings, which require a longer hitstun to achieve the same effect. If this isn't possible, is there something within the ability system that can mimic the same effect?
    5. Another example related to #4 is a parry system. If a character properly executes a parry at the time of being hit by an attack it would play an effect/sound as well as nullify damage. How would I go about implementing something like this with your ability system? The system I've created has a two-pronged parry system. Parries that are initiated within a very short time window of being hit also interrupt the attackers combo, while more loosely timed parries simply nullify damage. Is this also possible?
    6. Finally, one of the other features I have implemented is allowing the player to rotate their character in the very beginning portions of attacks. Normally players would be locked onto a target and rotate depending on where the target is. However, to allow players to fight multiple opponents it's possible to not lock on and the character can manually rotate in the very beginning (before hit detection becomes active) of animations so they can forexample target a player to their left for the first attack of their combo, then rotate to target a player that was behind them afterwards. Using gamepad as an example, the left stick position would be used for rotating the player. I currently use a component and Anim Notifies to handle this. How would I go about implementing it with this ability system?

    Once again this system is great. I'm hoping it contains some of the features I'm querying about, or at the very least allows to hook in such features. Thank you in advance.
    Last edited by ninjasdf; 12-19-2019, 02:13 PM.

    Leave a comment:

Working...
X