티스토리 뷰
Init Ability Actor Info
현재 구조에서는 GAS의 ASC(AbilitySystemComponet)와 AS(AttributeSet)의 포인터가 AuraCharacterBase에 존재한다.
하지만 실제 초기화는 다음과 같이 되어있다.
플레이어 캐릭터 ASC -> AuraPlayerState
적 캐릭터 ASC -> AuraEnemy
그래서 적 캐릭터의 경우 문제가 없지만, 플레이어 캐릭터의 경우에는 PalyerState에 ASC가 존재하지만 Character에서는 ASC가 존재하지 않는 상태이다.
게임 로직은 대부분 Character 기준으로 Ability를 실행하기에, GAS는 이 캐릭터의 ASC가 무엇인지를 알아야한다.
이를 해결 하기위해 ASC가 누가 소유자인지 알 수 있도록 AbilityActorInfo를 사용하여 설정해줄 것이다.
ASC 내부에는 ASC를 실제로 소유하는 OnwerACtor와 월드에서 보이는 AvatarActor가 존재하며, 해당 값들을 설정해줄 것이다.
먼저 적 캐릭터의 경우 ASC가 Character에 존재한다.
따라서 OwnerActor와 AvatarActor는 모두 AuraEnemy로 동일하다.
초기화는 BeginPlay()에서 이루어지며, OwnerActor와 AvatarActor 모두 자기 자신이므로 this를 전달하여 설정한다.


플레이어 캐릭터의 경우 ASC가 PlayerState에 존재한다.
따라서 OwnerActor는 PlayerState, AvatarActor는 Character로 서로 다른 상태이다.
우리는 멀티플레이 환경을 고려해야 하기 때문에 서버와 클라이언트 모두에서 ASC를 초기화해야 한다.
하지만 서버와 클라이언트에서는 PlayerState가 준비되는 시점이 다르기 때문에 초기화 위치가 다르다.
먼저 서버에서는 PossessedBy() 함수가 호출될 때 Pawn이 Controller에게 소유되었음을 확인할 수 있다.
이 시점에는 PlayerState에 접근할 수 있으므로 서버에서 ASC를 초기화한다.
반면 클라이언트에서는 PlayerState가 Replication을 통해 나중에 전달된다.
따라서 PlayerState가 복제되어 Pawn에 설정될 때 호출되는 OnRep_PlayerState()를 통해 클라이언트에서 ASC를 초기화한다.
우리는 위 2가지 함수를 상속하여 활용할 것이다.
ASC를 초기화하는 방식은 동일하므로, 따로 내부 함수를 작성하여 서버/클라이언트 각각에서 초기화를 설정하였다.
AAuraPlayerState 포인터를 쓰기 위해 "Aura/Player/AuraPlayerState.h"를, GetAbilitySystemComponent() 함수를 쓰기 위해
"AbilitySystemComponent.h"를 include 해주어야 한다.



마지막으로 ReplicationMode가 Mixed일 떄는 OnwerActor의 Owner가 Controller여야 한다는 조건이 있다.
현재 ASC의 OnwerActor = PlayerState이지만, PlayerState의 Owner가 Controller이기에 문제 없다.
PlayerState의 Owner가 Controler인 것은 언리얼의 기본 구조로 자동 설정되는 부분이다.
하지만 OnwerActor가 PlayerState가 아닌데 Mixed인 경우에는 꼭 SetOwenr() 함수를 통해 Owner를 Controller로 설정해줄 필요가 있다는 것을 명심하자.
'Unreal > Udemy 강의' 카테고리의 다른 글
| Gameplay Ability System - Top Down RPG / Section 3-7 (0) | 2026.03.11 |
|---|---|
| Gameplay Ability System - Top Down RPG / Section 3-6 (0) | 2026.03.10 |
| Gameplay Ability System - Top Down RPG / Section 3-5 (0) | 2026.03.09 |
| Gameplay Ability System - Top Down RPG / Section 3-4 (0) | 2026.03.08 |
| Gameplay Ability System - Top Down RPG / Section 3-3 (0) | 2026.03.08 |
