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 GeoBoyka View Post
    Got few questions .
    1 . Is there any fix about playing animation on able editor. ? Everytime i have to click stop then click backward then click stop and click play to get it work ?
    2 . Again at the same able editor my collision Query is not looking front of the character . Its always left side of the character .
    how can i fix those issues?
    1. Make sure you have an Able Ability Component on your actor, that's the only reason I can think the animation would play weird. If Able tries to add it at runtime, it doesn't seem to always take (although I put a hopeful fix in for that in the patch that is currently under review).
    2. Your character is actually pointing down the direction of the arrow. It's just the skeletal mesh that is rotated wrong. You can change that rotation in the Able Editor settings to fix things up.

    Leave a comment:


  • replied
    Got few questions .
    1 . Is there any fix about playing animation on able editor. ? Everytime i have to click stop then click backward then click stop and click play to get it work ?
    2 . Again at the same able editor my collision Query is not looking front of the character . Its always left side of the character .
    how can i fix those issues?
    Attached Files

    Leave a comment:


  • replied
    Able v3.28 has been submitted.

    Notes:
    • Added Task check system.
      • OVERVIEW: The past few patches have been aimed at making Custom Tasks references less fragile. UE4 has a hard time replacing Custom Task references in the Abilities (when you recompile the Custom Task in Blueprints, the system needs to fix up all the old class instances to point to the new class instances). There's a couple reasons why I think this is happening, but all of them require engine level changes - so that's out. Instead, Able tries to catch the bad references after the fact and fix things itself. While the current system of hot swapping works for me, other users haven't been as fortunate due to what I think is a timing issue based on peoples CPU / HDD speeds and the async nature of BP compiling. This additional system gives another layer of hopefully catching these bad references and fixing them.
      • HOW IT WORKS: The new system is transparent to the user. Whenever any type of Custom Task is added to an Ability (or already exists on an Ability) - that Ability will store a bit of data about that Task. The Class name, start/end times, etc. Occasionally (every 1s currently, or on Save/Play), the Ability will check for any out of date references - if detected, it'll re-create the Task in place and the user should be none the wiser. This data is only used by the Editor, so it won't bloat your cooked assets. If you open up an Ability with a Custom Task and it gets marked as "dirty" despite you not changing anything - that's because it's trying to cache some of that Task data. Just save it or ignore it (but it'll keep doing it till you save it with the cached data).
    • Added "Clear Context Targets" option to Collision Sweep / Query Tasks, this option will clear out Targets in the context before adding new ones.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    I'm not 100% how I would set that up. The other way is when your Player is damaged, it looks for executing Abilities running a certain tag and removes them that way.
    That would actually work Though It requires to put much effort into an actor component that would keep track of everything and cooperate with ability component, but doesn't require to make dramatic changes into way ABLE works right now.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post
    Able 3.27 submitted.

    Fixes a crash with Custom Tasks that have a dependency. This would crash as soon as the Ability tried to load (during editor start up, etc).

    Big shout out to Roland_Price for his help in putting Custom Tasks through some heavy usage and giving me feedback / bug reports.
    Thanks a lot for a fast investigation and fixing, will try the fix asap

    Leave a comment:


  • replied
    Able 3.27 submitted.

    Fixes a crash with Custom Tasks that have a dependency. This would crash as soon as the Ability tried to load (during editor start up, etc).

    Big shout out to Roland_Price for his help in putting Custom Tasks through some heavy usage and giving me feedback / bug reports.

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post

    And regard my other question - if ability could listen do event dispatcher? So in case my "armor" falls to zero - I end ability and damage reduction ends with it.
    I'm not 100% how I would set that up. The other way is when your Player is damaged, it looks for executing Abilities running a certain tag and removes them that way.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    The way to do stone skin right now is to store it on the player. Make a function on the player called "ApplyStoneSkin" or something which adds Level * 10 "armor" to a variable, then when you go to apply damage, subtract it from your armor first.
    And regard my other question - if ability could listen do event dispatcher? So in case my "armor" falls to zero - I end ability and damage reduction ends with it.

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post

    They don't have to be replicated - they would be used only on authority for any gameplay stuff.. And at UI to display on client. So doesn't have to be 100% accurate. So for the stoneskin example There's no hack way to do it right now, except for tracking the value on owner/target?
    This example problem will be common for 15-20% of all my abilities ever used :/ Even if I make Core ability branch to other smaller effects - they all together still wont be able to track data
    The way to do stone skin right now is to store it on the player. Make a function on the player called "ApplyStoneSkin" or something which adds Level * 10 "armor" to a variable, then when you go to apply damage, subtract it from your armor first.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    The Ability is a class/object. I replicate just the ClassID (so, a simple integer), but the actual object used during executom is the Default Object which isn't writable. If you want to store variables you would have to do that either on the Ability ScratchPad (which requires you inheriting from the task you want to override and create the scratch pad yourself), or on the character as you point out.

    I can make a "Task variable" list on the Ability Component that Tasks can write to/read from that are automatically cleaned up when the Ability ends, etc. Shouldn't be too crazy. Having them replicate may be tricky, just due to timing. But, I'll see what I can do.
    They don't have to be replicated - they would be used only on authority for any gameplay stuff.. And at UI to display on client. So doesn't have to be 100% accurate. So for the stoneskin example There's no hack way to do it right now, except for tracking the value on owner/target?
    This example problem will be common for 15-20% of all my abilities ever used :/ Even if I make Core ability branch to other smaller effects - they all together still wont be able to track data

    Leave a comment:


  • replied
    Originally posted by AngeIV View Post
    ExtraLifeMatt I got a question. Able Ability Blueprint is basically an "object" right? So as it is initiated from class, for being variable free and super fast replicated by just replicating the class - the ability after creation can track variables? What I mean... For example a level 6 cleric Casts "bless" - this spell gives contastant bonus to all targets in specific range for his level * 1 minute. Easy to do - Just add 6 stacks of minute long passive that on end removes one stact. On ability begin add bonus, on ability end remove bonus. Bonuses don't stack. However for example a level 9 wizard casts stoneskin. Stoneskin gives damage reduction 10/+5 - and that is being added to his damage reduction table in the character and removed on ability end. BUT the spell also absorbs level *10 damage - so overall 90 damage.
    My question is:
    1) Can I add a variable / local variable to the ability that is being set on creation and updates. when reach zero it stops the passive ability? If so - can it be "Public"?
    2) Can an ability bind to event dispatcher from example owner/target - so when the owner receives damage it can push the reduction absorbed damage to the ability so ability could track it?
    3) Can ability give access to variables via interface or "get passive abilities" (it gives object list not class list). So I can update the interface properly?
    4) Can variables be replicated, or should I avoid any replication on the abilities as they exist on both player and server without the need of replication for avoiding choking of network? Or maybe abilities are instanced in a way that using variables is not a good idea. Mostly any ability doesn't have to track more than a single value. It doesn't really have to replicated and in sync as it could get updates on client and server at same events and server wont be cheated by client side manipulation of this value.
    Or simply put - How could I manage this stoneskin problem without creating variable on the character itself and changing the value there... I have 900 Abilities to create. Many of those should track something for short time and after finishing never bother with it again.

    Edit: Ragard Variables - can I use dynamically Gameplay Tags ? Except for skills having tags like "spell.component.varbal for example.. Can I add Tag Spell.Power.9 on start of ability?
    The Ability is a class/object. I replicate just the ClassID (so, a simple integer), but the actual object used during executom is the Default Object which isn't writable. If you want to store variables you would have to do that either on the Ability ScratchPad (which requires you inheriting from the task you want to override and create the scratch pad yourself), or on the character as you point out.

    I can make a "Task variable" list on the Ability Component that Tasks can write to/read from that are automatically cleaned up when the Ability ends, etc. Shouldn't be too crazy. Having them replicate may be tricky, just due to timing. But, I'll see what I can do.

    Leave a comment:


  • replied
    ExtraLifeMatt I got a question. Able Ability Blueprint is basically an "object" right? So as it is initiated from class, for being variable free and super fast replicated by just replicating the class - the ability after creation can track variables? What I mean... For example a level 6 cleric Casts "bless" - this spell gives contastant bonus to all targets in specific range for his level * 1 minute. Easy to do - Just add 6 stacks of minute long passive that on end removes one stact. On ability begin add bonus, on ability end remove bonus. Bonuses don't stack. However for example a level 9 wizard casts stoneskin. Stoneskin gives damage reduction 10/+5 - and that is being added to his damage reduction table in the character and removed on ability end. BUT the spell also absorbs level *10 damage - so overall 90 damage.
    My question is:
    1) Can I add a variable / local variable to the ability that is being set on creation and updates. when reach zero it stops the passive ability? If so - can it be "Public"?
    2) Can an ability bind to event dispatcher from example owner/target - so when the owner receives damage it can push the reduction absorbed damage to the ability so ability could track it?
    3) Can ability give access to variables via interface or "get passive abilities" (it gives object list not class list). So I can update the interface properly?
    4) Can variables be replicated, or should I avoid any replication on the abilities as they exist on both player and server without the need of replication for avoiding choking of network? Or maybe abilities are instanced in a way that using variables is not a good idea. Mostly any ability doesn't have to track more than a single value. It doesn't really have to replicated and in sync as it could get updates on client and server at same events and server wont be cheated by client side manipulation of this value.
    Or simply put - How could I manage this stoneskin problem without creating variable on the character itself and changing the value there... I have 900 Abilities to create. Many of those should track something for short time and after finishing never bother with it again.

    Edit: Ragard Variables - can I use dynamically Gameplay Tags ? Except for skills having tags like "spell.component.varbal for example.. Can I add Tag Spell.Power.9 on start of ability?
    Last edited by AngeIV; 04-03-2020, 09:06 AM.

    Leave a comment:


  • replied
    Able 3.26 has been submitted. It has a fix for Custom Tasks getting the "REINST" version of the blueprint when the custom task is recompiled (this also caused that crash on load if you saved out with the REINST).

    Leave a comment:


  • replied
    Originally posted by Mowgl33 View Post
    Hi,

    This looked really great in the videos! But the plugin doesn't seem to work at all in 4.24.3. None of the tasks play. Editor looks completely different from what I've seen. Is this normal? Would appreciate some help getting this to work.
    Add the Able Ability Component to whatever you're using for the Preview Asset. Able tries to add it at runtime, but that doesn't seem to always work. If you don't have that component, it won't run any tasks.

    The Editor was reskinned late last year. I'm going through and (slowly) updating the docs and screenshots, but the new look is expected.

    Leave a comment:


  • replied
    Hi,

    This looked really great in the videos! But the plugin doesn't seem to work at all in 4.24.3. None of the tasks play. Editor looks completely different from what I've seen. Is this normal? Would appreciate some help getting this to work.

    Leave a comment:

Working...
X