Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

  • replied
    i just checked. they dont use any collisions >.< i backed the project on my backup computer, when i open the project there the first time i use the skill it works fine....the second and from there on after it never does....weird.
    could it be that something is saved somewhere and it wont work because of that?

    Leave a comment:


  • replied
    bossexe are those particles use collision component and can collide with stuff? If so - make sure your mesh and character capsule ignore the collision channel of the particles.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    Not sure why calling the Event on your character wouldn't work. But you should be able to grab your Owner Actor -> Grab your Ability Component -> Activate Ability with the one you want to use.
    Maybe its because "client can cancel ability" is false and he cancels previous ability by hand. Also in video I can see you grab "active ability" class AFTER you cancel it - so the active ability is not valid, so get class errors out.
    All this conditioning should be "branch" condition inside the first ability. Can cancel is now build into ability. The way you handle it in the event is not threat-safe.

    Leave a comment:


  • replied
    hey there

    i was wondering if there is something i have to note and check when working with particels in able? because some particelsystems seem to break when i use them in the ability
    -some like in the screenshot seem to break alot and some just have certain effects gone

    any idea what that may be?

    Click image for larger version

Name:	explosion.jpg
Views:	31
Size:	200.2 KB
ID:	1812576

    Leave a comment:


  • replied
    Originally posted by Jose Gabriel View Post





    How would i play the next ability i tried doing it i get the print with the percent so that is working. I tried using my characters play ability custom event and it does not work.

    I wll give a youtube link so you can see what I have.

    https://www.youtube.com/watch?v=8IbXgQA-wzw


    Not sure why calling the Event on your character wouldn't work. But you should be able to grab your Owner Actor -> Grab your Ability Component -> Activate Ability with the one you want to use.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post
    1. Make an Ability, call it something like ChargedShot. Set it to channeling -> Input Channel Condition -> Fire or whatever button you want bound to it. This makes it so you have to hold the button for the Ability to continue playing.
    2. Set the Ability to looping and set the loop window to some small section at the end of the Ability (If you're ability is 3 seconds, set the loop segment from 2.8 - 3.0, or something similar). This makes it so as long as you hold the button, the Ability will loop over and over at the end without exiting.
    3. In the Ability Blueprint, OnAbilityEnd -> Call the GetAbilityCurrentTimeRatio -> If the ratio is less than 0.33, activate the small blast, if it's less than 0.66 activate the medium blast, otherwise activate the large blast.
    So, the general flow is you have 1 Ability that will activate 1 of 3 different Abilitys depending on when it ends.




    How would i play the next ability i tried doing it i get the print with the percent so that is working. I tried using my characters play ability custom event and it does not work.

    I wll give a youtube link so you can see what I have.

    https://www.youtube.com/watch?v=8IbXgQA-wzw



    Leave a comment:


  • replied
    yeah... making it default true is fine... As long as you can change some abilities to false. actually in many games buffs and positive effects are cancelable... so why not. and any responsible game dev won't leave stuff on default but pay attention to values like this By the way, thanks for the updates! I appreciate all the hard work you're putting into this system! I encourage anyone I know that is REALLY working on a game to use this system instead of GAS.

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post
    ExtraLifeMatt The "can client cancel" default value "false" makes "on input" channel to stop working, as breaking the input condition is doing on client-side cancel. IT probably need some extra condition, as debuffs are usually not channelled. Or it should change the default value to true if the ability uses input channel condition.
    Yea, that's expected currently. I can change the default value to True globally (I don't like making it based on some logic the user isn't aware of), but then you open it up to being "unsafe" (hacking-wise) by default. I err'd on the side of security but it does make it seem like a bug to new users - so I may swap it back.

    Leave a comment:


  • replied
    ExtraLifeMatt The "can client cancel" default value "false" makes "on input" channel to stop working, as breaking the input condition is doing on client-side cancel. IT probably need some extra condition, as debuffs are usually not channelled. Or it should change the default value to true if the ability uses input channel condition.

    Leave a comment:


  • replied
    Originally posted by Jose Gabriel View Post
    Hello, can someone please post a tutorial even on text, pictures or video how to do a charge shot like megaman that you can continue holding.

    I have search this post but the explanations are over the surface and not good enough for my knowledge I'm sorry
    1. Make an Ability, call it something like ChargedShot. Set it to channeling -> Input Channel Condition -> Fire or whatever button you want bound to it. This makes it so you have to hold the button for the Ability to continue playing.
    2. Set the Ability to looping and set the loop window to some small section at the end of the Ability (If you're ability is 3 seconds, set the loop segment from 2.8 - 3.0, or something similar). This makes it so as long as you hold the button, the Ability will loop over and over at the end without exiting.
    3. In the Ability Blueprint, OnAbilityEnd -> Call the GetAbilityCurrentTimeRatio -> If the ratio is less than 0.33, activate the small blast, if it's less than 0.66 activate the medium blast, otherwise activate the large blast.
    So, the general flow is you have 1 Ability that will activate 1 of 3 different Abilitys depending on when it ends.

    Leave a comment:


  • replied
    Originally posted by Badb3nd3r View Post
    Hi, Unreal editor is going to crash very often when i switch from Character BP to Able Components. It freezes and then crashes. I using ALS for Character BP, some mentioned bugs with ALS here also, but i dont know whats causing some editor bugs with ALS. I would not mentioned if it isnt very annoying crashing every 2 or 5 minute. Maybe there is some ASync Problem. Here is a Crash Report i recently got, maybe there is some way to getting the system more robust.

    Code:
    Unhandled Exception: EXCEPTION_ACCESS_VIOLATION writing address 0x000002e0
    
    UE4Editor_ALSV4_CPP_0006!AALSBaseCharacter::SetAcceleration() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSBaseCharacter.cpp:697]
    UE4Editor_ALSV4_CPP_0006!AALSBaseCharacter::SetEssentialValues() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSBaseCharacter.cpp:956]
    UE4Editor_ALSV4_CPP_0006!AALSBaseCharacter::Tick() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSBaseCharacter.cpp:188]
    UE4Editor_ALSV4_CPP_0006!AALSCharacter::Tick() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSCharacter.cpp:117]
    UE4Editor_Engine!AActor::TickActor() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:1009]
    UE4Editor_Engine!FActorTickFunction::ExecuteTick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:171]
    UE4Editor_Engine!FTickFunctionTask: :DoTask() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:283]
    UE4Editor_Engine!TGraphTask<FTickFunctionTask>::ExecuteTask() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:849]
    UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:692]
    UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:587]
    UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:1478]
    UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:558]
    UE4Editor_Engine!FTickTaskManager::RunTickGroup() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:1523]
    UE4Editor_Engine!UWorld::RunTickGroup() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:783]
    UE4Editor_Engine!UWorld::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1558]
    UE4Editor_AbleEditor!FAbilityEditorViewportClient::Tick() [D:\Build\++Portal+Promotion\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\Able\Source\AbleEditor\Private\AbilityEditor\ablAbilityEditorViewportClient.cpp:229]
    UE4Editor_UnrealEd!UEditorEngine::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1770]
    UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:414]
    UE4Editor!FEngineLoop::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4850]
    UE4Editor!GuardedMain() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
    UE4Editor!GuardedMainWrapper() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
    UE4Editor!WinMain() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
    UE4Editor!__scrt_common_main_seh() [d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    kernel32
    ntdll
    Yea, ALS is crashing inside itself. It doesn't like the Ability Editor. You'll need to set your preview actor to something that doesn't use the ALSCharacter as the base.

    Leave a comment:


  • replied
    Hello, can someone please post a tutorial even on text, pictures or video how to do a charge shot like megaman that you can continue holding.

    I have search this post but the explanations are over the surface and not good enough for my knowledge I'm sorry

    Leave a comment:


  • replied
    Hi, Unreal editor is going to crash very often when i switch from Character BP to Able Components. It freezes and then crashes. I using ALS for Character BP, some mentioned bugs with ALS here also, but i dont know whats causing some editor bugs with ALS. I would not mentioned if it isnt very annoying crashing every 2 or 5 minute. Maybe there is some ASync Problem. Here is a Crash Report i recently got, maybe there is some way to getting the system more robust.

    Code:
    Unhandled Exception: EXCEPTION_ACCESS_VIOLATION writing address 0x000002e0
    
    UE4Editor_ALSV4_CPP_0006!AALSBaseCharacter::SetAcceleration() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSBaseCharacter.cpp:697]
    UE4Editor_ALSV4_CPP_0006!AALSBaseCharacter::SetEssentialValues() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSBaseCharacter.cpp:956]
    UE4Editor_ALSV4_CPP_0006!AALSBaseCharacter::Tick() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSBaseCharacter.cpp:188]
    UE4Editor_ALSV4_CPP_0006!AALSCharacter::Tick() [G:\UnrealEngine\Projekte\_Prototype01\Prototype_01\Plugins\ALSV4_CPP-main\Source\ALSV4_CPP\Private\Character\ALSCharacter.cpp:117]
    UE4Editor_Engine!AActor::TickActor() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:1009]
    UE4Editor_Engine!FActorTickFunction::ExecuteTick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\Actor.cpp:171]
    UE4Editor_Engine!FTickFunctionTask: :DoTask() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:283]
    UE4Editor_Engine!TGraphTask<FTickFunctionTask>::ExecuteTask() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:849]
    UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:692]
    UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:587]
    UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:1478]
    UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:558]
    UE4Editor_Engine!FTickTaskManager::RunTickGroup() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:1523]
    UE4Editor_Engine!UWorld::RunTickGroup() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:783]
    UE4Editor_Engine!UWorld::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1558]
    UE4Editor_AbleEditor!FAbilityEditorViewportClient::Tick() [D:\Build\++Portal+Promotion\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\Able\Source\AbleEditor\Private\AbilityEditor\ablAbilityEditorViewportClient.cpp:229]
    UE4Editor_UnrealEd!UEditorEngine::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1770]
    UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:414]
    UE4Editor!FEngineLoop::Tick() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4850]
    UE4Editor!GuardedMain() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
    UE4Editor!GuardedMainWrapper() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
    UE4Editor!WinMain() [D:\Build\++UE4+Licensee\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
    UE4Editor!__scrt_common_main_seh() [d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
    kernel32
    ntdll

    Leave a comment:


  • replied
    Ok I will do hack for now and do another one once its updated
    By the way I also had terrible problems using "Target" or "location" as spawn point. as target is an actor I guess? so good for "hack" way to go around precise spawn point and orientation, but the location - whatever I push into it it just spawned at 0,0,0.

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post

    I cant set rotation of the actor.. but it might be to the nature of projectile movement and how it's rotating the projectile toward the velocity. after spawned it is just impossible to rotate. The camera as a spawn point is pointless in top-down view, where the rotation of the camera is not even aligned with the rotation of both the actor nor its controller. What I would wish to be able to pick separately spawn location origin, and rotation origin.
    The character could have multiple cameras! And one for aiming could not be the one that is active at the moment. nor first inside the actor components list.
    Right now I made a hack. There is a virtual bone that is being set as the proper view to spawn.. and virtual bones can be read like "socket" but adding special points for every weapon type would be annoying. I could as well do an invisible WEAPON actor that has ability component, it could be the "target" and players active ability plays animation etc, and a passive spawn projectile ability on the "target" that is the weapon.
    There are multiple workarounds for that... But best would be a possibility to do a BINDING for the spawn transform altogether (so location rotation and scale) like you can bind multiple other values in tasks. And do a custom spawn point inside the ability itself so it's safe to use. Also, I see you allow to spawn actor only on the server. Many games have this approach of non-replicated projectiles with replicated just the spawn event in exact same location and time, but I think "only server" is for the best forcing any spawns to be replicated actor.
    Bindable Spawn Locations is on my TODO list. It just requires a bit of tricky-ness because the underlying object is a simple struct and not a UObject like most the other things that are bindable. But, feedback noted and I'll try and bump it up the priority list.

    Leave a comment:

Working...
X