0. 개요

게임플레이 어빌리티 블루프린트를 다룬다.

 

 

1. 태그(Tags)

어빌리티를 활성/차단하기 위한 태그를 설정한다.

 

 

2. 인스턴스화 정책(Instancing Policy)

Instanced Per Actor 능력(Ability)에 대해 단일 인스턴스를 생성, 활성화 할 때마다 인스턴스를 재사용 - 변수를 저장할 수 있음
- 변수를 매번 수동으로 초기화해야 함
Instanced Per Execution 능력을 활성화할 때마다 매번 새로운 인스턴스를 생성 - 활성화 중 변수를 저장하지 않음
- Instanced Per Actor보다 성능 낮음
Non-Instanced 클래스 기본 객체(Class Default Object)를 사용, 인스턴스는 생성되지 않음 - 상태를 저장할 수 없음
- Ability Task의 델리게이트를 바인딩할 수 없음
- 가장 높은 성능

 

 

3. 네트워크 실행 정책(Net Execution Policy)

Local Only 로컬 클라이언트에서만 실행. 서버는 이 어빌리티를 실행하지 않음
Local Predicted 로컬 클라이언트에서 먼저 활성화되고, 이후 서버에서 실행
예측(Prediction)을 활용하며, 서버는 잘못된 변경 사항을 롤백할 수 있음
Server Only 서버에서만 실행
Server Initiated 서버에서 먼저 실행된 후, 로컬 클라이언트에서 실행

 

 

4. 사용하지 말아야 하는 설정들

(1) 복제 정책(Replication Policy)

게임플레이 어빌리티는 기본적으로 복제되도록 되어있으므로 설정할 필요가 없다.

 

(2) 서버가 클라이언트의 어빌리티 비활성화를 존중(Server Respects Remote Ability Cancellation)

클라이언트 측에서 어빌리티가 취소되었을 때 서버에서도 어빌리티를 취소한다.

일반적으로, 서버에서 어빌리티를 취소시키고 클라이언트에서 어빌리티가 취소되는 방향을 유지하기 위해 해당 옵션을 끈다(권한은 서버가 가진다).

 

(3) 입력을 직접 복제(Replicate Input Directly)

어빌리티를 발동시키는 입력에 대한 이벤트를 서버로 항상 복제한다.

버튼을 누를 때마다 서버로 패킷을 전송하므로 비효율적이다.