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 intoxicat3 View Post
    I will try.

    I'm not sure 100% but this node hides World Context Objects (which is usually hidden for latent functions for example) which is normally visible when trying put this node in UObject Blueprint (which doesn't have world context objects - only Actor Blueprint have) but not in your Ability Blueprint. (and yours is UObject as well) Maybe something need to be added to UCLASS or there is some hidden GetWorldContextObject() function for Blueprint class which will work with this node. My future request is to be able to put this node into Ability Blueprint there might be other like this which won't work in Abl Blueprints.
    Ah, I see. I'm not sure the implications from that.

    If you want to try it locally, add this:

    Code:
    UFUNCTION(Blah,  meta=(WorldContext="WorldContextObject", CallableWithoutWorldContext))
    To whatever method you are overriding in the Blueprint. That should expose the WorldContextObject as a parameter, as well as keeping the method callable without specifying the World Context Object,

    Leave a comment:


  • replied
    I will try.

    I'm not sure 100% but this node hides World Context Objects (which is usually hidden for latent functions for example) which is normally visible when trying put this node in UObject Blueprint (which doesn't have world context objects - only Actor Blueprint have) but not in your Ability Blueprint. (and yours is UObject as well) Maybe something need to be added to UCLASS or there is some hidden GetWorldContextObject() function for Blueprint class which will work with this node. My future request is to be able to put this node into Ability Blueprint there might be other like this which won't work in Abl Blueprints.

    Leave a comment:


  • replied
    Originally posted by intoxicat3 View Post
    Thanks - basically having those virtual functions would be great! Start/End/Interrupt. Shouldn't be hard to do. I'm not doing pure C++ - just don't want to have cross references (BP vs C++) so most of my core stuff is in C++, blueprints are for configuration and adding task only. I'm using UE for years and BP can mess a lot.

    btw: feature request: https://i.imgur.com/QGoH9dN.png It would be great to put some custom nodes which require world context objects as I can have one. For now I need to create c++ task to create user widget.
    I don't understand your feature request as that image has nothing to do with Able (from what I can see - beyond that you're passing in an Ability). Can you elaborate?

    Leave a comment:


  • replied
    Thanks - basically having those virtual functions would be great! Start/End/Interrupt. Shouldn't be hard to do. I'm not doing pure C++ - just don't want to have cross references (BP vs C++) so most of my core stuff is in C++, blueprints are for configuration and adding task only. I'm using UE for years and BP can mess a lot.

    btw: feature request: https://i.imgur.com/QGoH9dN.png It would be great to put some custom nodes which require world context objects as I can have one. For now I need to create c++ task to create user widget.

    Leave a comment:


  • replied
    Originally posted by intoxicat3 View Post
    Yes I know but I would like to override it in C++ not Blueprints. The same goes for AbilityStarted/Ended/Interupted etc I have changed it to virtual by my self and it doesn't causing any issues for now but I don't like to make this change with every update.

    Please be aware that some of users are using C++ instead of Blueprints to have necessary references in C++. Basically with UAblAbility there aren't any virtual C++ functions that can be override and you can imagine that OnStart/End are the most important and I needed to create this functionality by my own in AbilityInstance (just call my virtual functions before Blueprint event)
    The systems was designed to be friendly towards BP users, so yea, if you're going pure C++ then I'm not shocked you're hitting some obstacles. But I'm glad you're not seeing any issues making things virtual.

    I'll make a pass to toss virtual on everything that makes sense this weekend for the next update.

    Leave a comment:


  • replied
    Yes I know but I would like to override it in C++ not Blueprints. The same goes for AbilityStarted/Ended/Interupted etc I have changed it to virtual by my self and it doesn't causing any issues for now but I don't like to make this change with every update.

    Please be aware that some of users are using C++ instead of Blueprints to have necessary references in C++. Basically with UAblAbility there aren't any virtual C++ functions that can be override and you can imagine that OnStart/End are the most important and I needed to create this functionality by my own in AbilityInstance (just call my virtual functions before Blueprint event)
    Last edited by intoxicat3; 12-13-2017, 12:30 PM.

    Leave a comment:


  • replied
    Originally posted by intoxicat3 View Post
    Any chance to make EAblAbilityStartResult CanAbilityExecute(UAblAbilityContext& Context) const; virtual?
    I have my custom Ability and would like to override basic functionality.
    Since that method (on the AbilityComponent) is exposed to Blueprints, I'll have to check if virtual causes any issues. However, each Ability has a CustomCanAbillityExecute that can be overridden in Blueprints to add any special logic.

    Leave a comment:


  • replied
    Any chance to make EAblAbilityStartResult CanAbilityExecute(UAblAbilityContext& Context) const; virtual?
    I have my custom Ability and would like to override basic functionality.

    Leave a comment:


  • replied
    Originally posted by George.Xiao View Post
    Thanks for update, I can get v2.1 now, the update is awosome! Here, I report PlayAnimation bug again. Because we are ACT Game, so, I really need montage, but Able's PlayAnimation can't switch smoothly from one montage to another montage (Your <simple combo ability> tutorial also not smoothly). I try to fix it in souce code, but i failed. Now, I use custom event like below picture, it will play smoothly.
    Click image for larger version

Name:	0000.png
Views:	25
Size:	112.3 KB
ID:	1398716
    Hmmm... I don't see you specifying a blend time in there, I assume Play Montage is just defaulting to some blend. I'll investigate.

    Leave a comment:


  • replied
    Thanks for update, I can get v2.1 now, the update is awosome! Here, I report PlayAnimation bug again. Because we are ACT Game, so, I really need montage, but Able's PlayAnimation can't switch smoothly from one montage to another montage (Your <simple combo ability> tutorial also not smoothly). I try to fix it in souce code, but i failed. Now, I use custom event like below picture, it will play smoothly.
    Click image for larger version

Name:	0000.png
Views:	25
Size:	112.3 KB
ID:	1398716

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post
    Able v2.1 Submitted.

    - Added "Play Rate" to Abilities. This is a modifier applied to time passed to the Ability during it's update so a value of 0.5 plays the Ability at half speed, 2.0 is double, and 1.2 is 20% faster. You can set it directly, or override the "GetPlayRate" method to dynamically change the play rate based on whatever gameplay mechanics you have (you can use GetBasePlayRate to get the value you've defined on the Ability). This value isn't cached so if you modify it during an Ability's execution - it will immediately take effect.
    - Fixed an issue with Socket Rotation being incorrect (let me know if you run into any issues).
    - Fixed an issue where Cooldowns weren't being properly applied on Abilities you had created during an Editor session. If you still see this behavior, simply modify any field on the Ability and the system will fix itself.

    A note about Play Rate. I plan to update PlayAnimation Task to automatically scale itself along with the Ability Play Rate (so Animation Play Rate * Ability Play Rate ) but that will have to go in the 2.11 update as I completely forgot about it till just now and cancelling product updates is nasty business. I'll likely make it an option so if you want your animation to play at normal rate no matter what the Ability rate is - you can keep that behavior.
    Fantastic update, thanks for keeping the plugin going in terms of constant updates.

    Leave a comment:


  • replied
    Originally posted by shadowkami View Post

    If I do a attack like Castlevania,a hit from back to front,did i add many query in a able?
    What attack from Castlevania? The whip attack? I bet that's just a simple AABB query, so you could set up a simple box query (not sweep) that just goes the length of the whip. Or you could setup your whip with a sphere component at the end and just use Able to turn on/off that component.

    There's a number of ways you could go about this. Hard to know what to suggest without knowing more about the gameplay you're going for.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    Sweep requires the actor to be at the end spot. It's meant for melee strikes and things like that. If you're using a dash, you could just use a query rather than a sweep that is the size of where you'll be moving. Or just assign a tag to the player for the duration of the dash that enemies check for and apply collision damage when the player overlaps them.
    If I do a attack like Castlevania,a hit from back to front,did i add many query in a able?

    Leave a comment:


  • replied
    Able v2.1 Submitted.

    - Added "Play Rate" to Abilities. This is a modifier applied to time passed to the Ability during it's update so a value of 0.5 plays the Ability at half speed, 2.0 is double, and 1.2 is 20% faster. You can set it directly, or override the "GetPlayRate" method to dynamically change the play rate based on whatever gameplay mechanics you have (you can use GetBasePlayRate to get the value you've defined on the Ability). This value isn't cached so if you modify it during an Ability's execution - it will immediately take effect.
    - Fixed an issue with Socket Rotation being incorrect (let me know if you run into any issues).
    - Fixed an issue where Cooldowns weren't being properly applied on Abilities you had created during an Editor session. If you still see this behavior, simply modify any field on the Ability and the system will fix itself.

    A note about Play Rate. I plan to update PlayAnimation Task to automatically scale itself along with the Ability Play Rate (so Animation Play Rate * Ability Play Rate ) but that will have to go in the 2.11 update as I completely forgot about it till just now and cancelling product updates is nasty business. I'll likely make it an option so if you want your animation to play at normal rate no matter what the Ability rate is - you can keep that behavior.

    Leave a comment:


  • replied
    Originally posted by ExtraLifeMatt View Post

    Were these Abilities you had just created? I was able to reproduce this with brand new Abilities I had created (basically the hash code never got called so they all had the same hash), but upon restarting the editor - everything worked as expected.

    I've added some code to aggressively make sure the hash is generated while you are in the editor since PostLoad may not have been called due to the object being new.
    I created these a few days ago, and I did try to restart the editor a few times. I'll attempt to get it going again tonight and post an update here.

    EDIT: Seems to work now! That's really weird, I'll start restarting the editor every few abilities that are added now, I experienced the issue after restarting after adding them. But now they seem to work, pretty odd.
    Last edited by FirstCrimson; 12-10-2017, 03:38 PM.

    Leave a comment:

Working...
X