Documentation / Demo Project (Packaged Build) / WIP Videos / Changelog / Discord Server
Last Update: May 20th 2023 (1.3.4 for 5.2), January 17th, 2023 (1.3.3 for 5.1)
Combo Graph is an Unreal plugin based on GAS (Gameplay Ability System) that lets you focus on Combo / Combat design with a Custom Graph and node-based Editor to deliver a fast, flexible and enjoyable developer experience.
The main idea behind this plugin is to try to cut down iteration times as much as possible when designing and prototyping a new combat system / combos.
Paired with good animation packs, this plugin hopefully has everything a gameplay developer needs to quickly and efficiently build their own melee combat system.
Built with integration in mind
Built from the ground up with integration in mind, you don't need to know GAS to use or integrate Combo Graph. It uses GAS and Enhanced Input at its core to play combo animations and setup input transitions between each nodes, in an accessible and approachable way. A Combo Graph asset can be run from a Gameplay Ability via an Ability Task or elsewhere via a Gameplay Task, like from within a Character Blueprint or Behavior Tree Task.
Multiplayer Support
Building off the foundation of GAS and Enhanced Input, replication and multiplayer support were an integrant part of the plugin design and development process. Combo Graphs running within a Gameplay Ability, and using Ability Tasks to handle animation montage, you get proper local prediction and replication out of the bat.
Just know that while you can use Animation Sequences directly within Combo Graphs (more information below), those are not properly replicated unlike Animation Montages. See the disclaimer section.
Combo Graph Assets
Combo Graph assets can be created in the Content Browser and can be edited inside a special Combo Graph Editor. It is a node-based editor (similar to Behavior Trees) where you can add any number of Combo nodes to produce combo strings, add your desired Input Actions to transition between those nodes, and configure each nodes to optionally apply Gameplay Effects Containers (or Damages for non GAS users) upon receiving successful hits notifications, Gameplay Effect costs, as well as Gameplay Cue Containers (for VFX / SFX to apply on hit impacts).
Combo Graph supplies two types of Combo Node: Montage based and Sequence based, however you can create your own custom Combo Nodes through Blueprint to provide additional logic.
Collision Component
While it is not the core focus of the plugin, Combo Graph does have a built in collision component. But it is not tightly integrated with the combo system. Combo Graph instead relies on gameplay events that your hit collision system sends to the owner of combo abilities when a hit is registered, along with proper payload information such as instigator / targets and hit result with target data.
Doing so, it is fairly straight forward to integrate with third party collision system, or your own mechanism.
ComboGraphCollisionComponent is an Actor Component providing basic collision detection mechanism for registered meshes using traces. It implements simple logic for hit detection not meant to replace more robust solutions such as Combat Components or AGR Pro (Combat Manager in v4), but rather to provide a quick and easy way to handle collision for those not having or not willing to use aforementioned plugins, or not having a game-specific custom collision system already in place.
Documentation also includes integration guides for both Combat Components and AGR Pro.
Auto Setup
Additionally, setting up animations to use in a combo system usually relies on a lot of Animation Notify States (ANS) for each Animation Montage, such as setting up Combo or Collision Windows. This plugin comes with an "Auto Setup" feature which lets you configure a set of Notify States to trigger when montages are playing, without having to edit each and every animation assets. However, you still have the possibility to further tune how those Notify States are used by defining them in animation assets like you would usually do (Auto Setup for a given ANS only takes place if the anim doesn't define it in its timeline).
This is great for prototyping and saves a lot of time.
Behavior Tree and AI Support
Combo Graph comes with a built Behavior Tree Task implemented in c++ to easily run a Combo Graph asset from within Behavior Trees.
Both the demo project and documentation demonstrates how you can easily create your own Behavior Tree Task using the provided gameplay task, which includes all the necessary delegates for you to react to graphs ending their execution, as well as helpers to simulate combo inputs.
Disclaimer
- When using sequence nodes, the montages are dynamically created before going through the play montage task. Dynamic montages from sequences are great for prototyping but currently does not work properly networked. If you're developing with multiplayer in mind, please convert your animation sequences to animation montages when you are done with the prototype phase and blocking out of the combo is finalized.
- No animations are included, this plugin is about providing the underlying gameplay system to use with your existing animations or other animation packs from the marketplace.
- This plugin has been tested exclusively on Windows on 4.26 / 4.27 / 5.0 early access versions of the engine. Mac or Linux platforms are not supported. This doesn't mean the plugin can't run on those platforms, but you may have to resolve compilation errors yourself, if there are any.
Credits
- The icons used to draw Glyphs/Icons for Input Action in Combo Graphs are coming from Xelu's Controllers & Keyboard Prompts. Huge thanks to Nicolae Berbece and "Those Awesome Guys" for releasing this pack in the public domain under Creative Commons 0 (CC0).
- The sword icon used in the plugin thumbnail and asset icons is made by Lorc under CC BY 3.0 (link to original material)
- Started with Generic Graph as a base learning material. Development of the plugin wouldn't have been possible without this fantastic resource.