Chop up Anims and adjust play rates, start/end times to fix timing. So long as the segments are contiguous, you can adjust their play rates. This looks significantly better than just increasing the Anim Play Rate in PlayMontage.
2. Root Motion Tasks / Functions
Credit to the talented Cedric Neukirchen (@exifrexi).
Expose access inside your abilities (Or Anim Notify States) to allow Root Motion use. You can create Dashes, Jumps, or dynamic moves that would require hours of BP scripting and debugging.
3. Build a Library of Curves
Incorporate Curves into Abilities wherever possible. Working on a Dash? Expose rate of movement as a curve. Same for adjusting IK Aiming Accuracy, or Rotating around to face targets. Exposing these as curves will make it easier to tweak, and reuse
4. Abilities + Sequence Templates
Experiment with Sequence Templates. You can play a Sequence right on a Pawn, controlling Mesh Animations, Camera, or modify materials on that pawn in timeline.
The depth you can achieve from these two probably merits it's own Twitter Thread.
Sequence Templates are extremely under-appreciated, and probably deserve a whole twitter thread on their own!
5. Allow Abilities to Manipulate the Camera
Having abilities able to manipulate the camera smoothly is a must-have. Sometimes all you need is a subtle effect to really sell something, like a small Offset while defending, or zooming the camera out during a big spell-cast.
6. Robustly Cancel/Interrupt Abilities
Abilities (especially instanced) don't always like being cancelled/interrupted, it can leave them in a bad state. Use Events that Tasks like the PlayMontage task give you to help detect when Animations get broken or interrupted.
7. Cooldowns + Global Cooldowns
Setup reasonable cooldowns for Abilities, but also consider building out a Global Cooldown that locks all abilities that respect it. This can quickly fix issues on Enemies where you want a little more control over how often they use their attacks.
8. Abilities and Items
You can make drinking a potion an Ability, but you can also have Items activate Abilities on a target as well, or adjust the Level of an Ability, or adjust Attributes on the player temporarily. Sky is the limit here, don't forget about this synergy.
9. Consider the Humble Ability Queue
The ability to queue up a few abilities to be played one after another on your ASC can be a lifesaver when building Boss Attack Patterns or debugging, if abilities collide in some way, having a Queue system can make it a snap to debug.
10. Prototyping Minigames as Abilities
This is a fun one, you can build out entire minigames as Abilities. This can really push your GAS Knowledge to the edge, incorporating all you learned to build out complex multi-state abilities that can accept and react to player stimulus.
And that's it for now! 34 Tips for GAS! Hope folks find this useful in some way, and I look forward to next year when maybe I can add a few more.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
It's my Birthday, so I'll post a little knowledge sharing with regards to how I've been using the excellent Gameplay Ability System in #UnrealEngine for the past two years.
Here's 24 Tips about using GAS. I tried for 34 (My age), but New Twitter Sucks.
1. Wrap the core classes in a C++ Wrapper inside your own codebase.
Even if they're just stubs, having the base C++ class you use for your blueprints later within your own code will speed up the process significantly and reduce your refactoring burden later.
2. Create a Base Blueprint Archetype for all Abilities.
This is where you'll build the first pass for common logic within your Abilities. At some point, you will need to migrate this to C++, and having it one place will save you a headache later.