프로젝트 생성
언리얼 엔진 실행 후 새 프로젝트 생성
- 프로젝트 설정: GAS는 기본적으로 C++ 구현 권장
- 프로젝트명 입력 후 생성
Gameplay Abilities 플러그인 활성화
게임플레이 어빌리티 시스템은 플러그인으로 제공되기 때문에 사용 옵션을 선택해야 합니다.
- 편집(Edit) > 플러그인(Plugins) > Gameplay Abilities 플러그인 활성화
플러그인 모듈 추가
C++로 시작하는 경우, GameplayAbilities를 사용하려면 프로젝트의 Build.cs 파일에 모듈을 명시적으로 추가해야 합니다.
- [YourProjectName]/Source/[YourProjectName].Build.cs 파일 열기
- "GameplayAbilities", "GameplayTags", "GameplayTasks" 모듈 추가
- 에디터를 닫은 상태에서 프로젝트를 다시 빌드하고 엔진을 실행
// Gameplay Ability System에 필요한 모듈을 추가합니다. ("GameplayAbilities", "GameplayTags", "GameplayTasks")
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "GameplayAbilities", "GameplayTags", "GameplayTasks" });추가적으로 이후 개발을 위해 폴더를 만들어서 여러 클래스들을 정리할텐데 미리 헤더의 Include 경로를 추가해주면 편하다.
// 모듈의 기본 경로를 설정합니다. (나중에 C++ 파일들을 폴더에 추가할 때 경로를 자동적으로 인식하도록 합니다.)
PublicIncludePaths.AddRange(new string[] { "YourProjectName" });블루프린트의 경우, Attribute Set을 제외한 나머지 기능들은 모듈 추가 없이 어느정도 사용은 가능하다.
디버그 모드 활성화
GAS 플러그인에서는 디버깅 모드를 통해 액터의 상태나 정보를 알 수 있도록 해주는 커맨드가 존재한다. 이를 위해 2가지의 사전 작업이 필요하다.
- DefaultGame.ini 파일 열기
- bUseDebugTargetFromHud=true 추가
- 에디터를 닫은 상태에서 프로젝트를 다시 빌드하고 엔진을 실행
[/Script/GameplayAbilities.AbilitySystemGlobals]
bUseDebugTargetFromHud=true이후
Console에 Showdebug abilitysystem을 입력하거나 실행할 때 자동으로 커맨드를 실행하도록 한다.
- C++
// YourCharacter.h
virtual void PossessedBy(AController* NewController) override;// YourCharacter.cpp
void AYourCharacter::PossessedBy(AController* NewController)
{
Super::PossessedBy(NewController);
// 디버그용: abilitysystem 디버그창 띄우기
if (APlayerController* PlayerController = Cast<APlayerController>(NewController))
{
PlayerController->ConsoleCommand(TEXT("ShowDebug abilitysystem"));
}
}- 블루프린트
디버그 모드 활성화 결과 확인
해당 사진처럼 디버그모드까지 활성화가 되면 완료된 것이다.
디버그 모드 이용하기
디버깅 모드는
- PageUp 키
- PageDown 키
를 이용하여 Ability System Component(ASC)를 가진 액터들로 이동하며 디버깅할 수 있다.
또 다른 디버그 모드 활성화 방법
게임을 실행한 후 따옴표키(')를 누르면 Gameplay Debugger가 더 쉽게 실행된다.
숫자 3를 누르면 Gameplay Ability System에 대한 디버그 정보도 확인이 가능하다.