728x90
반응형
서론
언리얼 엔진의 Gameplay Ability System
에서 능력 시스템 구성요소(Ability System Component, ASC
)의 소유자(Owner)와 아바타(즉, 게임 내에서의 대리자 또는 표현)를 설정하는 과정을 설명해드리겠습니다.
이 과정은 네트워크 멀티플레이어 게임에서 중요하며, 능력 시스템 구성요소가 올바르게 복제되고 초기화되어 각 플레이어의 캐릭터에 대한 능력이 적절히 작동하도록 합니다.
능력 시스템 구성요소의 초기화 과정은 소유자 액터와 아바타 액터에 대한 정보를 설정하는 것을 포함합니다. 이 설정은 서버에서 수행되며, 클라이언트는 서버에서 설정된 값을 복제받아 사용합니다.
UAbilitySystemComponent::InitAbilityActorInfo 함수
UAbilitySystemComponent::InitAbilityActorInfo
함수는 Gameplay Ability System의 핵심 요소 중 하나입니다. 이 함수는 능력 시스템 구성 요소가 정확하게 누구에 의해 소유되고 있으며, 어떤 액터에 대한 능력이 발동되는지를 설정합니다.
/**
* Initialized the Abilities' ActorInfo - the structure that holds information about who we are acting on and who controls us.
* OwnerActor is the actor that logically owns this component.
* AvatarActor is what physical actor in the world we are acting on. Usually a Pawn but it could be a Tower, Building, Turret, etc, may be the same as Owner
*/
virtual void InitAbilityActorInfo(AActor* InOwnerActor, AActor* InAvatarActor);
기능 설명
InitAbilityActorInfo
함수는 두 개의 주요 매개변수를 받습니다:
- InOwnerActor : 이는 능력 시스템 구성 요소의 소유자를 나타냅니다. 일반적으로 이것은
PlayerState
또는AIController
의 인스턴스입니다. - InAvatarActor: 능력이 발동되는 액터로, 대부분의 경우
Pawn
또는 캐릭터의 인스턴스입니다.
초기화 시점
- 플레이어가 제어하는 캐릭터:
PossessedBy
: 컨트롤러가 폰을 소유한 후 초기화를 수행합니다.OnRep_PlayerState
: 플레이어 상태가 클라이언트에 복제된 후 초기화를 수행합니다.
- AI가 제어하는 캐릭터:
BeginPlay
: 게임 시작 시 초기화를 수행합니다.
함수 사용
능력 시스템 구성 요소가 소유자(Owner
)와 아바타(Avatar
)를 알아야 하는 이유는 다음과 같습니다:
- 소유자: 능력의 쿨다운, 비용, 지속 시간 등이 관리됩니다. 또한 네트워크 복제에 필요한 권한을 갖습니다.
- 아바타: 능력이 실제로 발동되는 게임 내 캐릭터로, 능력의 효과가 적용되는 대상입니다.
// UAbilitySystemComponent 인스턴스를 가져옵니다.
UAbilitySystemComponent* ASC = ...; // 적절한 방식으로 인스턴스를 얻습니다.
// 소유자와 아바타를 설정합니다.
AActor* OwnerActor = ...; // 능력 시스템 구성 요소의 소유자
AActor* AvatarActor = ...; // 능력이 발동될 대상
// InitAbilityActorInfo 함수를 호출하여 초기화합니다.
ASC->InitAbilityActorInfo(OwnerActor, AvatarActor);
728x90
반응형
'언리얼 엔진' 카테고리의 다른 글
[언리얼엔진/UE] 플러그인 빌더 (0) | 2024.03.06 |
---|---|
[언리얼엔진] MVC(Model-View-Controller) 사용하기 (0) | 2024.02.10 |
[언리얼엔진] Gameplay Ability System - EGameplayEffectReplicationMode (0) | 2024.02.07 |
[언리얼엔진] Gameplay Ability System (0) | 2024.02.05 |
[언리얼엔진] Tick vs PlayerTick (0) | 2024.02.05 |