Announcement
Collapse
No announcement yet.
Able Ability System Info and Support Thread
Collapse
X
-
ExtraLifeMatt repliedOriginally posted by xermao View Post1.How can i play a Particle Effect in random point beside player character.Then make a Capsule Collision Query at this point.
2.In the CanBranchTo function,the BranchAbility argument,if i call Get Display Name,it always return current ability name not the branch to ability name.Is it a bug?
3.Is it possible to call a Collision Query Task in blueprint and write result to the target?
2. Yup. Good Catch. I'll put in a fix locally for the 3.0 update. If you want to fix it yourself, on Line 46 of ablBranchTask.cpp just make this change:
Code:ScratchPad->BranchAbility =
Context->GetAbility();m_BranchAbility->GetDefaultObject();
Leave a comment:
-
xermao replied1.How can i play a Particle Effect in random point beside player character.Then make a Capsule Collision Query at this point.
2.In the CanBranchTo function,the BranchAbility argument,if i call Get Display Name,it always return current ability name not the branch to ability name.Is it a bug?
3.Is it possible to call a Collision Query Task in blueprint and write result to the target?
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by xermao View PostHow can I stop the Particle Effect when i interrupted the ability?
And there is a bug in possess task,when i checked UnPossess On End,the controller will not possess original character.
Unposses is pretty simple, as it just calls "Unposses" on the character controller. If you're doing multiple possessions, then that isn't currently supported. But a single possession should be fine. You can turn on the "Verbose" option for that possession task and it'll tell you exactly which character it's trying to revert the possession on.
Leave a comment:
-
xermao repliedHow can I stop the Particle Effect when i interrupted the ability?
And there is a bug in possess task,when i checked UnPossess On End,the controller will not possess original character.
Leave a comment:
-
LopikyLabs repliedOriginally posted by ExtraLifeMatt View Post
You could just use the "On Actor Overlap" on the Projectile to apply damage (or even run an ability that plays some effect and applies damage there). Basically just treat it like a normal projectile.
Custom Task is a pure Blueprint driven task that behaves like it's C++ counter parts.
You can override / use various BP methods to build the task:
- OnTaskStart is called when the Task begins. You would want to do any task setup here (You can use GetActorsForTask to get a list of all actors your task should affect according to how the user set it up in the ability editor). If your Task is just a single frame, you'd do the logic here as well.
- OnTaskTick is called when the Task is running.
- OnTaskEnd is called when the Task is completed. You would do any clean up logic here, if needed.
- IsDone is a logic check, that by default, just checks if the task time has been met but you can add special logic.
- IsSingleFrame let's you return true if you want the task to be a single frame (so OnTaskTick won't be called), or if it's a multi-frame long task.
- GetTaskRealm let's you modify what realm you want the task to be (Client, Server, or Both).
- CreateScratchPad let's you return a UAblCustomTaskScratchPad based class that you can use to store any state information (various variables, actors, etc). These scratch pads are allocated per ability execution.
- GetTaskCategory is what category you want the task to appear under in the Ability editor (you can use '|' to do sub category: MainCategory|SubCategory).
- GetTaskName is the name of the Task in the Ability Editor.
- GetDescriptiveTaskName is a more elaborate version of GetTaskName that is built at runtime when the Tasks are placed in the Ability Editor (e.g, "PlayAnimation:<animation name>" is the descriptive name).
- GetTaskDesciption is just a one or two line summary of what the task does. This appears in the Task selection dialog at the bottom of the window.
- GetTaskColor is just the default color you want to assign to this Task.
Able isn't going to do movement / pushing / etc for you. It's more a tool you can use to help tie animations / sounds / particle effects / damage all together into a single discrete asset - which we normally just refer to as "Abilities". While you can certainly do a shooter with Able (I even did a quick tutorial using Shooter Game, you can see the tutorials here ). I will say your goal is rather ambitious, and no one tool is going to help you cobble it together. Instead, you should take things step by step. Follow some YouTube tutorials on building a 3rd party action game, add features (vaulting, climbing, interacting with buttons, etc). Don't try to run before you can walk. Instead, eat the elephant bite by bite.
Leave a comment:
-
jwyuen repliedThanks matt will wait until this is done. A lot of trickery on abilities and stuff. Using datatables to contain info on everything basically. J
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by GamerErrant View PostTelling when a task is running isn't a problem, but without knowing the range of time the task is slotted in the timeline you can't calculate a phase. "Start" and "end" are inaccurate names I guess, what I'm really talking about is the "Timeline Start" and "Timeline End" value of a task (the range of time a user set for a task). Barring something like that, what about a pre-fab 'Phase Driver' task? A task that tracks a simple phase (minValue->maxValue) over the range it's set in the timeline, and spits that value out in some usable manner?
Leave a comment:
-
GamerErrant repliedTelling when a task is running isn't a problem, but without knowing the range of time the task is slotted in the timeline you can't calculate a phase. "Start" and "end" are inaccurate names I guess, what I'm really talking about is the "Timeline Start" and "Timeline End" value of a task (the range of time a user set for a task). Barring something like that, what about a pre-fab 'Phase Driver' task? A task that tracks a simple phase (minValue->maxValue) over the range it's set in the timeline, and spits that value out in some usable manner?
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by GamerErrant View Post
Awesome, thanks for the update!
I have another question: Is there a way to get the current phase of a task? Being able to get the current phase of a task from within the task itself (custom tasks) would be nice, as would as being able to read the current phase/start/end times for each task from the Ability itself. Basically I'm looking to drive other logic using the phase from a tag placed in the ability.
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by jwyuen View Postahh thats okjust that you said new features gonna be added
the move to thing will be good.
Are you gonna have an Input in blueprint or am i gonna still have to call datatable in all the able BPs?
made a D&D style system where it random generates rolls on stats if it suceeds to hit or not.
Might do it all in character BP (NPC and Characters share same parent class) So i might call all abilities in parent class then call able when success and pass damage out in parent class too.
Leave a comment:
-
GamerErrant repliedOriginally posted by ExtraLifeMatt View Post
Yea, I'm looking into fixing that as part of the 3.0 update. UE isn't very good at replacing the old BP class with the new one. I may just have to iterate over all abilities and replace those references manually.
EDIT: Code written, going to start testing it while continuing on 3.0.
I have another question: Is there a way to get the current phase of a task? Being able to get the current phase of a task from within the task itself (custom tasks) would be nice, as would as being able to read the current phase/start/end times for each task from the Ability itself. Basically I'm looking to drive other logic using the phase from a tag placed in the ability.
Leave a comment:
-
jwyuen repliedahh thats okjust that you said new features gonna be added
the move to thing will be good.
Are you gonna have an Input in blueprint or am i gonna still have to call datatable in all the able BPs?
made a D&D style system where it random generates rolls on stats if it suceeds to hit or not.
Might do it all in character BP (NPC and Characters share same parent class) So i might call all abilities in parent class then call able when success and pass damage out in parent class too.
Leave a comment:
-
ExtraLifeMatt repliedOriginally posted by jwyuen View PostAww i wont do too much yet until its done. Dont like restarting stuff.
Leave a comment:
-
jwyuen repliedAww i wont do too much yet until its done. Dont like restarting stuff.
Leave a comment:
Leave a comment: