본문으로 건너뛰기

Working With GAS On Joint Actor

Joint Actor has built-in support for Unreal Engine's Gameplay Ability System (GAS) through the UAbilitySystemComponent. This guide will walk you through the steps to set up and use GAS Component on Joint Actor.

Using Ability System Component on Joint Actor

One of the most frequently used features with the ability system component on Joint Actor is to send Gameplay Events to use it as a trigger of many things.

For example, you might want to make your fragment wait until a specific Gameplay Event is received from the Ability System Component. You can achieve this by using the Wait For Gameplay Event fragment in Joint.

Check out the logic of DF_ServerClient_WaitSkip fragment in Joint Native use that event to wait until player 'skips' the dialogue.

img.png

Granting Abilities to Joint Actor

You can also grant abilities to Joint Actor using the Ability System Component. This allows you to define specific abilities that the Joint Actor can use during its lifecycle.

This can be really useful when you're building complex interactions or behaviors that require a solid backbone outside Joint's system, and GAS can be that backbone to support those features. (especially in multiplayer games which you may need the replication and prediction of such actions like granting quests, or triggering special effects.)

정보

This is very advanced use case of GAS on Joint Actor, and Joint doesn't provide built-in support for granting abilities out of the box.

We recommend having a solid understanding of GAS before attempting to implement this feature.

Changing Ability System Component Class on Joint Actor (Advanced)

By default, Joint Actor will create and attach a UAbilitySystemComponent instance without any extra setup.

But sometimes you may want to customize the GAS Component or use your own subclass of UAbilitySystemComponent. You can achieve this by overriding the ImplementAbilitySystemComponent function in your custom Joint Actor subclass.

void AJointActor::ImplementAbilitySystemComponent()
{
AbilitySystemComponent = CreateDefaultSubobject<UAbilitySystemComponent>(TEXT("AbilitySystemComponent"));
AbilitySystemComponent->SetIsReplicated(true);
}
정보

You have to create a new subclass of Joint Actor to override this function - we aren't sure about allowing this customization without subclassing - please let us know if you have any use cases for that!