This week was all about adding in Dawksin’s Hunters Charge ability.
While relatively straight-forward there were a few hiccups that were a tad unexpected. The idea of the ability is the tap version lets you blink towards an enemy and strike, applying some stacks. The hold version lets Dawksin pass through enemies dealing damage to anyone in the path.
This’ll be no problem, I can have it done today.Me
But he did not have it done today
Step 1 was getting the animation back in there, but from the retargeting fiasco, Dawksin’s legs were punching through the floor. On top of that, looking at the animation with fresh eyes, it didn’t have the strength to show he was hitting hard. So I reworked it a little, and had Anthony polish it up.
So cool, with that we can dump it in the engine, and wire it up to play!
Which technically works, but we’re missing the bits that tell him to move forward and restrict input during the move.
So here’s were we get to add our anim notifies that tell him how to move.
What’s an anim notify?a curious reader
Look at you, asking all the right questions.
These are little tags with data we can throw onto an animation, that say “Hey do something at this point in the animation!”
So for example:
So how do we break this down?
Ignore the long green bar, thats just the animation itself.
- Light Green: Prevent additional abilities from activating
- Gray: Add some flags on Dawksin.
- Ex: 1st one speeds up his rotation in case you want to change your aim
- Ex: 2nd one locks your rotation so you can’t make Dawksin spin in place while moving.
- Darker Green? (I made too many things green) : Tells Dawksin to move
- Red: Damage windows. One for each blade.
- Blue (Beginning): Lets you change your rotation even if you’re locked onto a target
- Blue (End): Ends the animation early if you’re trying to move.
We do put a lot of thought into how each ability feels, so all these notifies are there to make sure it feels good to use. This is also how melee attacks are built.
So if we dig into the movement notify, we can see a ton of options for how to make Dawksin move. In this case, we’re making him move 1000 units forward over the length of the notify which is like 0.13 seconds.
So now our move ends up looking like this:
But that’s not quite a blink is-
ADDING IN THE BLINK
The blink needs Dawksin to disappear, which is no problem, we can make him do that.
Lets add his weapons to the mix, and make him re-appear. I think that’d be for the best.
And with that, we have the basis for the tap portion complete.
That doesn’t look very good.The visual effects connoisseur
Here we can add some flair to communicate when Dawksin should be doing damage. In the anim notify windows above, we defined when Dawksin was doing damage with each blade.
That’s fine and all, but we need to –SEE- when he’s doing damage.
So here we can add weapon tracers, courtesy of Rod.
Um… while that looks kinda cool, the tracers are not really showing the path of his weapons. Lets look into that.
So it turns out there’s a bug in the stock effect attachment code from the engine.
Here the tracers are being attached to each weapon bone, which is great, however, the code looks at that and says “ah yes, lets attach it, AND lets take the location of the bone, and offset it permanently”
I can’t override the behavior since we’re using a binary install of the engine. So you know what that means.
Not my favorite thing to do. I typically avoid this as much as I can, but in this case, we attach a lot of effects, so this would affect a ton of particle systems.
A few hours later we now have our own attachment code with all the same bells and whistles. In addition, we can now specify our own custom offsets in case things don’t line up perfectly.
We’ll tie it all up with the vfx of his cape showing when the blink starts and ends, and some tracers to show the path he traveled.
So that’s most of the ability complete.
From here we start taking care of the edge cases. Anthony showed last week how we could have attacks that take into account when Dawksin stows his weapons, so I added a new variation for when his weapon is stowed.
And to speed things along, I took the same principles from here and made the Hold version.
The main difference was his blades don’t really do anything here, its the path he travels along. I take a snapshot of where his location is, and when his movement is finished, we trace a big ol box to determine who was damaged.
And that’s all I had time for, see ya’ll next week.