Nick Crosgrove Profile picture
Jun 17 14 tweets 3 min read Twitter logo Read on Twitter
As Promised, 10 More Tips for using the Gameplay Ability System in #UnrealEngine!

Thanks to all the folks that Followed, but especially who suggested their own tips. The previous thread is linked Below!
1. Fix Sluggish Anims in Montage not GAS

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. Image
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
 

Keep Current with Nick Crosgrove

Nick Crosgrove Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @OccultGameDev

Jun 15
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. Image
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.
Read 25 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(