• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [Unreal Engine] GamePlay Ability System #1 Setup GAS
    2024년 05월 07일
    • 유니얼
    • 작성자
    • 2024.05.07.:15
    728x90

    개요

    Unreal Engine의 Gameplay Ability System은 RPG나 MOBA 같은 게임에서 볼 수 있는 다양한 능력과 속성을 구축하기 위한 유연한 프레임워크입니다. 이 시스템을 사용하여 캐릭터가 사용할 수 있는 다양한 액티브 능력과 패시브 능력, 상태 효과를 구현할 수 있으며, "쿨다운" 타이머나 리소스 비용을 통해 능력의 사용을 조절할 수 있습니다. 또한, 능력의 레벨을 변경하거나 파티클, 사운드 효과 등을 활성화할 수 있습니다. 이 글에서는 Unreal Engine의 Gameplay Ability System을 사용하여 게임 내 능력을 설계하고 구현하는 방법을 소개합니다.

    Unreal Engine 공식 설명문서 링크

    https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/GameplayAbilitySystem/

     

    Gameplay Ability System

    High-level view of the Gameplay Ability System

    docs.unrealengine.com

    https://dev.epicgames.com/documentation/ko-kr/unreal-engine/understanding-the-unreal-engine-gameplay-ability-system?application_version=5.0

     

    언리얼 엔진 게임플레이 어빌리티 시스템을 살펴봅니다. | 언리얼 엔진 5.4 문서 | Epic Developer Commu

    게임플레이 어빌리티 시스템 및 각 컴포넌트 클래스가 어빌리티에 기여하는 방법을 살펴봅니다.

    dev.epicgames.com

    Gameplay Abilities, Tasks, Attributes, and Effects

    Gameplay Ability System의 핵심 구성 요소는 다음과 같습니다:

    Gameplay Abilities

    UGameplayAbility 클래스의 자식으로 구현되며, C++ 코드나 Blueprint 스크립트를 통해 능력이 수행하는 작업을 정의합니다. 이 클래스는 능력의 복제 및 네트워킹 방식을 설정하는 데 사용됩니다.

    Ability Tasks

    능력의 로직 중 비동기적인 작업을 처리하는 UAbilityTask 클래스에서 파생된 작업입니다. 예를 들어, 목표를 요구하는 능력은 목표를 확인하거나 능력을 취소하는 델리게이트를 호출할 수 있습니다.

    Gameplay Attributes

    FGameplayAttribute 구조체에 저장된 부동 소수점 값으로, 캐릭터의 건강, 힘, 점프 높이, 공격 속도 등과 같은 게임 내 속성에 영향을 미칩니다.

    Gameplay Effects

    Gameplay Attributes를 즉시 또는 시간이 지남에 따라 변경하는 방법을 제공합니다. 예를 들어, 주문 시 마나를 소모하거나, "달리기" 능력 활성화 시 이동 속도를 증가시키거나, 치유약의 효과로 점진적으로 건강을 회복시킵니다.

    System Setup

    Gameplay Ability System은 플러그인으로 제공되므로 사용하기 위해서는 활성화가 필요합니다. 설정 방법은 다음과 같습니다:

    1, 플러그인 활성화:

    Edit -> Plugins 창에서 Gameplay Ability System 플러그인을 활성화합니다.

    1, 모듈 추가:

    프로젝트의 "(ProjectName).Build.cs" 파일에 "GameplayAbilities", "GameplayTags", "GameplayTasks"를 PublicDependencyModuleNames에 추가합니다.

    3, 프로젝트 파일 새로 고침/재생성

    4, TargetData 초기화

    언리얼 엔진 4.24와 5.2 사이에서는 UAbilitySystemGlobals::Get().InitGlobalData()를 호출하여 TargetData를 초기화해야 합니다. 그렇지 않으면 관련 오류가 발생하고 클라이언트가 서버와의 연결이 끊길 수 있습니다. 이 함수는 프로젝트에서 한 번만 호출하면 됩니다. 이 블로그 글에서는 UDemoAssetManager::StartInitialLoading()에 추가했습니다. 5.3부터는 이 작업이 자동으로 수행됩니다.

     

    만약 "Hello World" 가 출력이 안되면 Project Settings > Engine - General Settings > Default Classes > Asset Manager Class > DemoAssetManager으로 설정합니다.

    The Ability System Component

    능력 시스템 컴포넌트는 캐릭터가 Gameplay Ability System을 사용하는 주요 인터페이스입니다. 이 컴포넌트는 Gameplay Attributes를 관리하고, Gameplay Events를 실행하며, Gameplay Abilities를 저장하고, 플레이어 입력을 능력 활성화, 확인 및 취소 명령에 바인딩하는 기능을 합니다.

    결론

    Gameplay Ability System은 Unreal Engine을 사용하여 복잡한 능력과 게임 플레이 메커니즘을 구현할 때 강력한 도구를 제공합니다. 이 시스템을 통해 개발자는 게임의 다양한 요소를 효과적으로 네트워킹하고 관리할 수 있으며, 플레이어에게 독창적이고 매력적인 게임 경험을 제공할 수 있습니다. 이 프레임워크의 유연성과 확장성은 개발자가 모든 현대 RPG 또는 MOBA 타이틀에서 볼 수 있는 복잡한 능력을 구현할 수 있게 해줍니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바