Able Ability System Info and Support Thread

How can i play a TrailData particle?

I play a particle in able class,and I set Ability Properties ā€œLoopā€ is true,when I cancel this ability node,the Client’s particle destroy,but the server is not.
I deselect the ā€œloopā€,there are destroy true.

Hey so I’m trying to create a parry system for some of the abilities. The idea is that, if an enemy is attacking, if my parry bool is set to true, then the collision query from their attack should branch into a stagger ability, instead of go all the way through.
I can’t seem to understand how custom branch conditions are used at all. Any help would be greatly appreciated.
Also, maybe using branching isn’t the right method? Maybe I should cancel the ability and run some check in the NPC logic?

I’m not sure what a TrailData particle is? That may be specifically for the Weapon Trails system that uses Anim Notifies - which you would put in your Animation itself, not within Able.

Particles should never play on the server, or are you talking about a Listen server? I’m not sure why looping would change anything, Able simply passes all that info to the Particle system. You may want to check and make sure your Particle is setup properly.

You could use a Branch for that (Add a Custom Branch condition that just checks for the parry bool and set your parry Ability as the Branch Ability). Or try your second approach where on your Player, when damage is dealt, if you are parrying - don’t apply the damage, but instead call some ā€œOnParriedā€ Ability on your NPC that just cancels the current Ability and instead plays the staggered Ability.

Personally I think the 2nd approach is a bit more flexible and what I would likely go with.

I would love this actually! O_O

Me too! :slight_smile:

,

I have the same error as these guys trying to test multiplayer code. Can you post the fix here so I (and future readers) can apply it to the engine? Thanks!

[2018.01.09-15.21.46:013] 3]LogLinker: Warning: Can’t find file for asset ā€˜/Script/AbleEditor’ while loading NULL.
[2018.01.09-15.21.46:013] 3]LoadErrors: Failed to load /Script/AbleEditor.AblAbilityGraph Referenced by PackageMetaData
[2018.01.09-15.21.46:013] 3]LogUObjectGlobals: Warning: Failed to load ā€˜/Script/AbleEditor’: Can’t find file for asset ā€˜/Script/AbleEditor’ while loading NULL.
[2018.01.09-15.21.46:724] 3]LogWindows: Error: === Critical error: ===
[2018.01.09-15.21.46:724] 3]LogWindows: Error:
[2018.01.09-15.21.46:724] 3]LogWindows: Error: Fatal error!
[2018.01.09-15.21.46:724] 3]LogWindows: Error:
[2018.01.09-15.21.46:724] 3]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000060

Hi,
I think you should debug all your OffsetLocation and OffsetRotation, this two should always be local space, but your code is world space at here and local space at there. And! your local space convert is wrong, your code is OutTransform *= FTransform(m_Rotation) then OutTransform.AddToTranslation(LocalSpaceOffset), in fact, your can just code like OutTransform = FTransform(m_Offset) * (FTransform(m_Rotation) * OutTransform) by simple.
Your plugin is awesome, but many bug, i think you should debug overall, at least do some unit test. Thanks!

Of course.

In BlueprintEditorUtils.cpp, add the following line at the top of FBlueprintEditorUtils::RegenerateBlueprintClass(…)



        // Purge any NULL graphs
        FBlueprintEditorUtils::PurgeNullGraphs(Blueprint);


There’s an existing call to that method that exists further down, but it’s possibly to access NULL graphs earlier in that method (which is what is happening).

Can you give an example of where the OffsetLocation / OffsetRotation are mismatched? I’ve had people request for World Space rotation / locations, so that’s why there is an option for both - but it should be clearly defined.

Also there should be no difference between using the FTransform(m_Offset) and simply calling OutTransform.AddToTranslation(m_Offset). One is allocating an entire FTransform to provide a simple vector addition (which happens during the Transform multiplication), the other just skips that temporary allocation. Were you seeing this fix things for you?

And yes, bugs are a constant struggle. I’ve been trying to move towards more bug fixing rather than new features (beyond some editor improvements like Timeline scrubbing and stepping backwards that I’m working on now). Definitely report any bugs you see and I’ll happily fix them. I use Able in my own game projects and I definitely fix any bugs I find myself and then broadcast those out.

^ This is one of the reasons I like this product so much, your dedication to improving its quality, adding fixes to any bugs you find and ones that users report. I don’t think I’ve ever had something that got bug fixes this fast after reported.

Seriously, good work :slight_smile:

<3 You’ve been there since the beginning Aumaan, I always welcome your feedback / suggestions.

Alright, putting the final touches on Able v2.15, should be out early next week. This update was meant mainly to give the Ability Editor some love, so here’s what’s new:

Able v2.15

  1. Added Backwards Stepping while the Ability is paused. This takes you back a frame (according to the 30 / 60FPS you have defined in the editor settings).
  2. Abilities will auto-pause if you Step forwards/backwards. No more pausing first.
  3. You can hit Left or Right on your keyboard to Step forwards/backwards.
  4. You can click or drag along the timeline to change your preview time forward/backwards.
  5. You can now Snap Tasks to whatever units you wish along the Timeline. Just enable the ā€œSnap Tasksā€ option in the Editor settings and set the ā€œSnap Unitā€ to whatever value you want to snap to.
  6. Play Animation Task will preview the animation properly while skipping around if you are using the Ability Animation Node Mode.
  7. Bug fix to Play Animation (Thanks to @George.Xiao for that one.)
  8. Bug fix to Play Animation Tasks showing the wrong length in the editor if you modified the Play rate. (Thanks to @shadowkami for reporting that one).

I’d love to get the animation previewing to work with the other modes (Single Instance / Dynamic Montage) but I (currently) see no way to do that. I was hoping to leverage some of Sequencer’s work to help with that, but it looks like Epic is basically forcing in their own Animation Nodes to accomplish that and even then they don’t support Dynamic Montage. So, for now, it’s only available for the Ability Animation Node mode.

Also if you open up your Ability and just immediately jump the time around (which is completely valid) - if you don’t see the animation changing, check your blend times. If you still don’t see a change, try stepping forward then backwards. I’m not unconvinced that it takes a frame or two for an Animation to completely start for the first time.

Please report any bugs.

As always, your feedback is what keeps Able going. Thanks for your continued support!

(Also this new photo system on the forums is terrible. :frowning: )

Yea, an option for WorldSpace/LocalSpace is good idea. I will report all bugs and fix method when i found.
By the way, I think there should be a CustomScript for each Task, because we need many additional stuff beyond your buildin stuff.

Thank you for these, this gives it parity with the Animation editor on a utility level. Awesome!

What bug was that?

I was having issues with the previewing for Ability Animation Node mode, because it’s dependent on the AnimBP variables to let it play in the editor.

This made my preview for some abilities never work, because they’re depending on variables that only become ā€œtrueā€ during something triggering it during the actual gameplay (conditions that can’t be automatically met while not in-game).

Perhaps my workflow is in error, but I couldn’t really find a way around this.

Define ā€œCustomScriptā€. You mean just a generic Blueprint call like CustomEventTask does? My concern there would be it would have to be on the Ability rather than the Task (otherwise you’d have to Blueprint each task which isn’t good for performance), and each Task may have different spots where a custom call makes sense (At the start of OnTaskStart, or at the end, maybe just before a query is done, etc) - so I’m not sure how you would generalize that for all tasks.

The bug was it would blindly set your Animation Mode on the animation instance which caused it to get reset. Now it only sets your Animation Mode if the instance isn’t already in that mode.

With regard to your AnimBP, you could either create a simple AnimBP that only has the Ability Animation Node and then duplicate your actor (name it something like ā€œActorName_Previewā€) and set their AnimBP to the slimmed down version, and use that actor as the Preview Actor in Able. Or rearrange your AnimBP so that it’s atleast able to get to the Ability Animation Node from your Idle without any other crazy variables.

If you want to PM me a screenshot of your AnimBP (mainly actual BP where you are setting variables and then your State Machine flow) - I’ll happily look it over and see if I can’t give you any pointers.

Define ā€œCustomScriptā€. I mean, like CalculateDamage you can change your input not only through Editor’s detail panel but also at runtime, if user not implement it still good for performance. But, it is difficult to let it generalize. Just an idea.

Hiyo, first off, great plugin.

After the update today, I randomly get this exception:


[2018.01.16-15.03.25:420] 63]LogWindows: Error: === Critical error: ===
[2018.01.16-15.03.25:420] 63]LogWindows: Error: 
[2018.01.16-15.03.25:420] 63]LogWindows: Error: Fatal error!
[2018.01.16-15.03.25:420] 63]LogWindows: Error: 
[2018.01.16-15.03.25:420] 63]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0xffffffff
[2018.01.16-15.03.25:420] 63]LogWindows: Error: 
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-CoreUObject.dll!FWeakObjectPtr::operator=() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\coreuobject\private\uobject\weakobjectptr.cpp:29]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-AbleCore.dll!FAblAbilityNetworkContext::FAblAbilityNetworkContext() [e:\program files\epic games\ue_4.17.1_src\engine\plugins\marketplace\able\source\ablecore\private\ablabilitycontext.cpp:179]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-AbleCore.dll!UAblAbilityComponent::ActivateAbility() [e:\program files\epic games\ue_4.17.1_src\engine\plugins\marketplace\able\source\ablecore\private\ablabilitycomponent.cpp:253]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-Engine.dll!FInputActionUnifiedDelegate::Execute() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\classes\components\inputcomponent.h:204]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-Engine.dll!UPlayerInput::ProcessInputStack() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\userinterface\playerinput.cpp:1243]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-Engine.dll!APlayerController::ProcessPlayerInput() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\playercontroller.cpp:2463]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-Engine.dll!APlayerController::TickPlayerInput() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\playercontroller.cpp:4214]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-Engine.dll!APlayerController::PlayerTick() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\playercontroller.cpp:2126]
[2018.01.16-15.03.25:420] 63]LogWindows: Error: UE4Editor-Engine.dll!APlayerController::TickActor() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\playercontroller.cpp:4307]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Engine.dll!FActorTickFunction::ExecuteTick() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\actor.cpp:130]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Engine.dll!FTickFunctionTask::DoTask() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private	icktaskmanager.cpp:269]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Engine.dll!TGraphTask<FTickFunctionTask>::ExecuteTask() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\core\public\async	askgraphinterfaces.h:784]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\core\private\async	askgraph.cpp:650]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\core\private\async	askgraph.cpp:559]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Core.dll!FTaskGraphImplementation::WaitUntilTasksComplete() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\core\private\async	askgraph.cpp:1327]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Engine.dll!FTickTaskSequencer::ReleaseTickGroup() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private	icktaskmanager.cpp:538]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Engine.dll!FTickTaskManager::RunTickGroup() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private	icktaskmanager.cpp:1450]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Engine.dll!UWorld::RunTickGroup() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\leveltick.cpp:758]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-Engine.dll!UWorld::Tick() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\engine\private\leveltick.cpp:1383]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-UnrealEd.dll!UEditorEngine::Tick() [e:\program files\epic games\ue_4.17.1_src\engine\source\editor\unrealed\private\editorengine.cpp:1650]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick() [e:\program files\epic games\ue_4.17.1_src\engine\source\editor\unrealed\private\unrealedengine.cpp:402]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor.exe!FEngineLoop::Tick() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\launch\private\launchengineloop.cpp:3215]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor.exe!GuardedMain() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\launch\private\launch.cpp:166]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor.exe!GuardedMainWrapper() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor.exe!WinMain() [e:\program files\epic games\ue_4.17.1_src\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
[2018.01.16-15.03.25:421] 63]LogWindows: Error: KERNEL32.DLL!0x0000000018241FE4
[2018.01.16-15.03.25:421] 63]LogWindows: Error: ntdll.dll!0x0000000018FCEFB1
[2018.01.16-15.03.25:421] 63]LogWindows: Error: ntdll.dll!0x0000000018FCEFB1
[2018.01.16-15.03.25:421] 63]LogWindows: Error: 
[2018.01.16-15.03.25:440] 63]LogExit: Executing StaticShutdownAfterError
[2018.01.16-15.03.25:466] 63]LogWindows: FPlatformMisc::RequestExit(1)
[2018.01.16-15.03.25:466] 63]Log file closed, 01/16/18 09:03:25


Hi
use to use this,
I Try using again and Select asset is not doing much
Its just a blank box.
Any known bugs with 4.18???

Thanks
Jesse

That looks like you aren’t passing an Ability Component (or possibly an Ability) properly when you call Activate Ability and pass in the Ability Context. I’d check your code there and see if anything is null.

Nope. I use 4.18 personally. Are you talking about the Preview Actor Selection Box? Check and make sure you are picking a class you actually have some assets of (such as Actor), or you can not pick a class and it should load everything.

It randomly happens 1/100 times, I can sit there and spam the skill and 99 times it will work perfectly but one random time it crashes with that exception, I’ll check code but ya.