Announcement

Collapse
No announcement yet.

Able Ability System Info and Support Thread

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

  • 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:


  • replied
    Originally posted by Pwnographyzqt View Post
    Hey, awesome plugin so far, but I got 2 Questions:

    1. How do I make my own SpawnActor Task? I'm not able to call a simple SpawnActor, neither in Abl_Custom_Task BP or anywhere in Abl_Ability. Only SpawnActor for Gameplay Task is available which restricts to spawning on Server only. My goal is to simply Spawn a Projectile for visuals on owning client to make up for lag (basic clientside prediction).

    2. What would be the intended way of spawning e.g. a Projectile and initializing it with a velocity depending on a client variable?
    1. There is a Spawn Actor Task which calls spawn actor.

    2. There is a callback on the Ability called "OnActorSpawned" I believe, which will pass you the actor after it's been spawned so you can set whatever you want on it.

    Leave a comment:


  • replied
    Hey, awesome plugin so far, but I got 2 Questions:

    1. How do I make my own SpawnActor Task? I'm not able to call a simple SpawnActor, neither in Abl_Custom_Task BP or anywhere in Abl_Ability. Only SpawnActor for Gameplay Task is available which restricts to spawning on Server only. My goal is to simply Spawn a Projectile for visuals on owning client to make up for lag (basic clientside prediction).

    2. What would be the intended way of spawning e.g. a Projectile and initializing it with a velocity depending on a client variable?

    Leave a comment:


  • replied
    Able v3.22 has been submitted. Notes below:

    • Added support for UE 4.24
    • Fixed a crash when using Validate on an empty ability.
    • Able now shows support for all platforms, it technically always had support for all platforms (it contains no platform specific code), but I feel like it's been tested on enough platforms to open that up a bit.

    Leave a comment:


  • replied
    1) you spawn an empty "Target" actor that is replicated at desired location / cursor. then you activate ability from normal character component targeting the "target actor" as context target. than you do a sphere query around the "target actor" from the context as normal.
    2) both are solid designs. depending if you can "Dispel" the ability partially, or entirely only? same goes for stacking and overwriting. as if its 10x10 abilities it can stack up if its 1 ability with 10 ticks, it can "reset" once applied again. though not prolonged. if applied before tick - it would not trigger.

    Leave a comment:


  • replied
    Originally posted by namrog84 View Post
    Hey ExtraLifeMatt, any chance you could do some more tutorials?

    1. Such as an AOE (click to confirm)
    AOE attack (initiate an ability(if have requirements), and have red circle or some indicator on mouse, and then 'click' to confirm ability
    or could be to build a building or spawning a golem somewhere, or whatever. But I am confused on how to handle the indicator on cursor and confirm/commit ability.

    I think what I want here is an ability that just keeps looping (sorta like channeling) that will branch if I commit (left click)(create the actual ability) or (right click?)(cancel ability) or perhaps doing the "finish all tasks" or something. I am not 100% sure what would be the best way to do this.


    2. I am trying to do a passive, but the example project only has 2 examples in it (machine gun and rocket) and your 4-5 youtube videos.
    I am struggling with how I should set up with a healing DoT. or Damage DoT For example, I want to modify a stat once every 10 seconds for 100 seconds.
    Initially I thought I would have it do a 10 second loop. With a custom event at start (modify stat). But then I run into issues about determining a 'time remaining' for UI purposes. I could try and cache AbilityLength*MaxIterations, and figure it out, and if ability is refreshed, just recalculate it? Then I get confused if I consider I want like a 'boost' in that perhaps character is hyped up and I want the loop to be faster (healing once every 5 seconds instead of 10 for the full length). A lot of things have bindings, but plenty of things don't. I am coming from GAS which had a distinct "Duration" but also a "Period" for effects.
    As you can tell, I am just getting confused here.


    edit: I realized the main store page only had link to 1 example, but I can download some more examples from https://extralifestudios.atlassian.n...2419/Tutorials
    Also note a lot of the sample projects contains several hundred mb of unneeded files (textures, hdri) that could make downloading projects much faster/smaller.

    edit:
    Bug report: Is there a way to not make the icons be 2x as big? It is a little weird that it's not consistent with the rest of the UI and same size.
    * https://i.imgur.com/sabm06I.png
    * https://i.imgur.com/uGG2CVy.png
    1. This is actually a difficult thing to do. You would want to ONLY invoke Able once you have the location, so you'd need to handle the indicator or whatever yourself. Basically, wrap your Abilities so when the user tries to execute it it goes, "Is this a ground target Ability? If so, ask the User to pick a location (once the location is picked, pass it to Able), otherwise just call Able."

    2. There's a couple ways to do this. You could either do 10 stacks of the 10 second ability (so time remaining would be Number of Stacks * Ability Length), or you could do a 100 second ability that drops another passive (that does the actual healing,etc) every 10 seconds. That would simplify the UI calculation, but either would work.

    That bug has been around forever, for whatever reason, UE isn't obeying the size I tell it. I'll take a look at it as I do this 4.24 support update.

    Leave a comment:


  • replied
    Hey ExtraLifeMatt, any chance you could do some more tutorials?

    1. Such as an AOE (click to confirm)
    AOE attack (initiate an ability(if have requirements), and have red circle or some indicator on mouse, and then 'click' to confirm ability
    or could be to build a building or spawning a golem somewhere, or whatever. But I am confused on how to handle the indicator on cursor and confirm/commit ability.

    I think what I want here is an ability that just keeps looping (sorta like channeling) that will branch if I commit (left click)(create the actual ability) or (right click?)(cancel ability) or perhaps doing the "finish all tasks" or something. I am not 100% sure what would be the best way to do this.


    2. I am trying to do a passive, but the example project only has 2 examples in it (machine gun and rocket) and your 4-5 youtube videos.
    I am struggling with how I should set up with a healing DoT. or Damage DoT For example, I want to modify a stat once every 10 seconds for 100 seconds.
    Initially I thought I would have it do a 10 second loop. With a custom event at start (modify stat). But then I run into issues about determining a 'time remaining' for UI purposes. I could try and cache AbilityLength*MaxIterations, and figure it out, and if ability is refreshed, just recalculate it? Then I get confused if I consider I want like a 'boost' in that perhaps character is hyped up and I want the loop to be faster (healing once every 5 seconds instead of 10 for the full length). A lot of things have bindings, but plenty of things don't. I am coming from GAS which had a distinct "Duration" but also a "Period" for effects.
    As you can tell, I am just getting confused here.


    edit: I realized the main store page only had link to 1 example, but I can download some more examples from https://extralifestudios.atlassian.n...2419/Tutorials
    Also note a lot of the sample projects contains several hundred mb of unneeded files (textures, hdri) that could make downloading projects much faster/smaller.

    edit:
    Bug report: Is there a way to not make the icons be 2x as big? It is a little weird that it's not consistent with the rest of the UI and same size.
    * https://i.imgur.com/sabm06I.png
    * https://i.imgur.com/uGG2CVy.png
    Last edited by namrog84; 12-09-2019, 10:53 AM.

    Leave a comment:


  • replied
    Originally posted by Demonrras View Post
    Who to check branch status in blueprints?
    I like to cancel ability if don't press the action key...how to do this?
    You can't really check branch status. Simply put the branch of your Ability at the end of your current Ability and let it end naturally if you want it to fail if they don't branch properly. Not quite following you on this one.

    Leave a comment:


  • replied
    Who to check branch status in blueprints?
    I like to cancel ability if don't press the action key...how to do this?
    Last edited by Demonrras; 11-27-2019, 02:03 PM.

    Leave a comment:


  • replied
    Originally posted by Demonrras View Post
    Other Crash report about Able Ability Editor. Just crash while I'm using...
    Thanks, I'll look into this. Looks like you have either a null Ability or Task. Where you using a Custom Task by chance?

    Originally posted by Demonrras View Post
    How I can interrupt or cancel running ability?
    Just call CancelAbility on the Actor's AblAbilityComponent and pass it the Ability you want to cancel (you can mark it as an interrupt, or a normal stop).

    Leave a comment:


  • replied
    How I can interrupt or cancel running ability?
    I wanna to use a single animation with 3 or more attaks...if the player press the action input key on time...keep playing the ability, else interrupt the ability.
    How to do this?
    Last edited by Demonrras; 11-27-2019, 01:05 PM.

    Leave a comment:


  • replied
    Other Crash report about Able Ability Editor. Just crash while I'm using...

    Attached Files

    Leave a comment:


  • replied

    Originally posted by CronofearSW View Post
    Hi, i just bought your plugin and i really like the idea of having a data driven ability system. However i'm not sure how i could use this system to make my game more "moddable". I'm not sure if you can recommend me a workflow for that using your plugin. Like, maybe there's a way to load abilities assets from text files or something like that?

    I've thought about how to do modding with UE4 quite a bit and I don't have a great answer. Looking at other games that do it (ARK, Conan Exiles, etc), it looks like they just ship the entire editor and tools. So, in theory, you could just give your users the Able Editor tool as part of a mod package, but I'm not sure the actual logistics of how to package that and such.

    Leave a comment:


  • replied
    Hi, i just bought your plugin and i really like the idea of having a data driven ability system. However i'm not sure how i could use this system to make my game more "moddable". I'm not sure if you can recommend me a workflow for that using your plugin. Like, maybe there's a way to load abilities assets from text files or something like that?

    Leave a comment:


  • replied
    Originally posted by Demonrras View Post

    The branch are testing the first condition and if TRUE, the result of the next conditions are TRUE too also if I don't press the key condition.
    So you're branching when you don't expect to? I'll check things tonight. There was some recent work in those files so maybe things broke.

    Leave a comment:

Working...
X