UE5 70

어빌리티 태스크 (AT)의 활용

Unreal GAS: 어빌리티 태스크(AT) 활용 패턴 정리Gameplay Ability System(GAS)에서 어빌리티는 한 프레임 내에서 시작되며,EndAbility 혹은 CancelAbility가 호출되기 전까지는 계속 실행 상태를 유지합니다.즉, GA가 시작되면 명시적으로 끝내기 전까지는 유효합니다. 시간이 걸리는 GA는 어떻게 설계할까?어빌리티 중에는 애니메이션 재생, 캐스팅 타임, 딜레이 후 효과 적용 등 시간이 필요한 작업들이 있습니다.이런 작업을 동기적으로 처리하면 복잡해지고 GA가 차단될 수 있기 때문에,비동기 방식으로 처리하는 것이 좋습니다.이를 위해 GAS는 Ability Task(AT, 혹은 Task Ability로 TA)를 제공합니다. 어빌리티 태스크(AT) 활용 패턴기본 사용 ..

UE5/GAS 2025.06.10

게임플레이 어빌리티 스펙

1. 스펙(Spec)이란?스펙(Spec)은 게임플레이 어빌리티(Ability)에 대한 정보를 담고 있는 구조체입니다.ASC(Ability System Component)는 어빌리티 인스턴스를 직접 참조하지 않고, 스펙 정보만을 가지고 관리합니다.스펙은 어빌리티의 현재 상태 등 다양한 정보를 포함합니다.ASC에서 어빌리티를 제어할 때는, 스펙에 포함된 Handle 값을 사용해 컨트롤합니다.핸들 값은 전역으로 관리되며, 스펙이 생성될 때마다 1씩 증가합니다. 기본값은 -1이며, 이는 잘못된 핸들인지 여부를 판별하는 데 사용됩니다.요약어빌리티 정보: 스펙(Spec)어빌리티 인스턴스 레퍼런스: 스펙 핸들(Handle)2. 어빌리티 시스템 컴포넌트의 입력 처리게임 어빌리티 스펙에는 입력 값을 지정할 수 있는 필드..

UE5/GAS 2025.06.09

GAS 캐릭터 입력 처리

플레이어 캐릭터 기획기존 플레이어 캐릭터 클래스를 상속입력에 따라 정해진 게임플레이 어빌리티가 발동되도록 설정점프 GA : 스페이스 바를 누르면 점프 어빌리티가 발동공격 GA : 마우스 왼쪽 클릭시 공격 어빌리티가 발동 기본적으로 ASC 를 사용하고,어빌리티 태스트를 사용해서 보다 게임플레이 어빌리티를 풍부하게 구현할 것이다. 또한 게임플레이 태그를 사용하여 현재 캐릭터의 상태를 표현하고디버깅 기능을 확인하는 것이 중요하다. 게임플레이 어빌리티 시스템의 기본 흐름으로게임플레이 어빌리티 구현시 어빌리티 태스크를 보조적으로 활용하는 방법을 학습할 것이다. 플레이어의 ASC 설정 지난 번 구현한 분수대 액터처럼 구현하려면 싱글 플레이까지 가능하다.하지만 네트워크 멀티플레이까지 감안한다면 몇 가지 추가로 고민..

UE5/GAS 2025.06.07

GAS 시스템 시작

학습 실습https://github.com/kwon1232/GAS_Study/tree/main/Lecture/2/Source(Ability System Component)ASC 어빌리티 시스템 컴포넌트를 줄여서 ASC로 불린다.게임플레이 어빌리티 시스템을 관리하는 핵심 컴포넌트이다.게임플레이 어빌리티 및 다양한 작업을 관리하는 처리하는 중앙 처리 장치이다. 액터에 단 하나만 부착할 수 있다.액터는 부착된 ASC를 통해 게임플레이 어빌리티(GA)를 발동시킬 수 있다. ASC를 부착한 액터 사이에 해당 컴포넌트를 통해 GAS 시스템의 상호작용이 가능해진다. (Gameplay Ability)GA 게임플레이 어빌리티는 줄여서 GA(Gameplay Ability)로 불린다.ASC에 등록되어 발동시킬 수 있는 액..

UE5/GAS 2025.05.23

UE 5.1 시작 시 항상 마지막 프로젝트 로드 설정

왼족에 보이는 것 처럼 4.27과 5.1의 설정은 조금 다르다. 시작 시 항상 마지막 프로젝트 로드하기가 켜져있으면 에디터 실행 시 마지막으로 실행한 프로젝트가 실행된다.에디터가 안켜져서 당황해서 이것 저것 ini파일도 보고 뒤적거렸는데,저 설정 값만 꺼주면 된다. 5.1 사용시 VS 꼭 설치해야 할 구성 요소 필수 항목“C++를 사용한 데스크톱 개발” 워크로드MSVC v143 - VS 2022 C++ x64/x86 빌드 도구Windows 10 SDK (10.0.19041.0 이상) 추가로 권장CMake, ninja, Windows용 C++ CMake 도구.NET SDK (기본 포함됨) 참고: 왜 v143이 필요한가요?Unreal Engine 5는 Visual Studio 2022 기준으로 v143 ..

UE5 2025.05.23

GAS 어빌리티 시스템 컴포넌트-ASC

ASC가 GAS의 핵심 ASC가 GAS의 핵심이다.시스템과의 모든 상호작용을 처리하는 UActorComponent(UAbilitySystemComponent)이다.GameplayAbility를 사용하거나 Attribute를 가지거나,GameplayEffect를 받으려는 액터에는 반드시 ASC가 하나씩 붙어 있어야 한다.이러한 오브젝트는 모두 asc안에 존재하며, (AttributeSet에 의해 리플리케이드되는 ATTRIBUTE를 제외하고,)ASC에 의해 관리 및 리플리케이트된다. 이를 서브클래싱할 것을 권장하지만 필수는 아니다. ASC가 붙은 액터를 ASC의 OwnerActor라고 한다.그리고 ASC의 물리적 표현 액터를 AvatarActor라고 한다. MOBA 게임에서 단순한 AI미니언의 경우 처럼 ..

UE5/GAS 2025.05.09

[GAS] 언리얼 게임플레이 어빌리티 시스템 개요 (UE GAS Overview)

해당 GAS관련 학습 프로젝트를 진행하며 작성하는 글에서의사용자의 정의를 하고자한다. 해당 분류의 포스팅에서의 사용자의 의미는언리얼에서 GAS를 사용하여 제작하는 사용자를 일컫는 말로 정의하고자 한다. 언리얼 게임 플레이 어빌리티 시스템을 이용하면 다양한 아이템을 제작할 수 있다.또한조종하는 캐릭터가 다양한 공격과 스킬을 사용할 수 있다. 물론 GAS를 사용하지 않아도공격과 스킬, 다양한 아이템은 제작할 수 있다만 시스템을 사용해서 보다 효과적으로 구현해 본 경험을 가지는 게 나의 학습 목표이다. 자, 이제 왜 GAS를 사용하면 어떤 점이 좋은지공부하며 차차 알아가보자. 오늘 포스팅 목표는 다음과 같다. 게임플레이 어빌리티 시스템을 구성하는 주요 개념과 핵심 구성요소의 학습C++ 언어로 게임플레이 어빌..

UE5/GAS 2025.04.26

언리얼 컴포지션

언리얼 컴포지션이란? 언리얼 컴포지션은 객체 지향 설계의 핵심 개념 중 하나인 Composition (컴포지션)을 언리얼 엔진에서 구현하는 방법을 의미한다. 이는 단순한 상속(Inheritance, Is-A 관계)만으로는 해결하기 어려운 복잡한 객체 설계 문제를,Has-A 관계를 통해 해결하는 기법이다. 주요 개념Has-A 관계:상속이 “~이다”라는 관계라면, 컴포지션은 “~을 가진다”라는 관계이다. 예를 들어, 게임 캐릭터가 여러 개의 컴포넌트(무기, 방어구, 스킬 등)를 갖는 경우, 이를 각각의 독립 객체로 구성해 관리할 수 있다.언리얼 엔진에서의 컴포지션 구현:언리얼 엔진에서는 UObject 기반의 오브젝트를 조합하여 복잡한 객체를 구성하는데, 이를 위해 두 가지 주요 방법을 사용한다.필수적 포함:..

UE5 2025.03.22

언리얼 오브젝트 리플렉션 시스템

언리얼 리플렉션 시스템이란? 리플렉션 시스템은 프로그램이 실행시간에 자기 자신을 조사하는 기능이다.이는 언리얼 엔진 테크놀로지의 근간을 이루는 것으로,에디터의 디테일 패널, 시리얼라이제이션, 가비지 콜렉션, 네트워크 리플렉션,블프/C++ 커뮤니케이션 등 다수의 시스템에 탑재된 것이다. 그러나 C++는 어떠한 형태의 리플렉션도 지원하지 않아,언리얼에는 자체적으로 C++ 클래스, 구조체, 함수, 멤버 변수, 열거형 관련 정보를수집, 질의, 조작하는 별도의 시스템이 구축되어 있다.전형적으로 이러한 리플렉션은 '프로퍼티 시스템'이라고 부르는데,'리플렉션'은 그래픽 용어이기도 하기 때문이다. 즉 리플렉션과 프로퍼티 시스템은 같은 뜻을 가리키는동의어이다. 리플리케이션 시스템은 옵션이다.리플렉션 시스템에 보이도록 했..

UE5 2025.03.18

언리얼 문자열 처리 FString과 FName, FText 사용 이유

언리얼의 문자열 처리 FString과 FName, FText 언리얼에서는 문자열 처리를 위해 FString을 제공한다.문자열을 다룰 때 사용하는 FString과 TCHAR를 변환하는 메커니즘을 사용하도록언리얼에서는 권장하고 있다. 간단히 FString과 TCHAR를 설명하자면,TCHAR는 문자열 배열 FString는 클래스라는 차이가 있다.  그런데 문자열 관리를 위해 FString을 제공하는데왜 Fname, FText를 또 제공할까? FName & FText의 제공 용도  FName과 FText는 주로 에셋관리를 위해서 사용되는 문자열 체계이다. 우리가 어떤 애셋을 빠르게 찾고 싶을 때이름을 지정해주는 게 명확하다.이 때, FName과 FText를 사용하는 것이다. 즉 언리얼에서 제공하는 둘의 사용 용..

UE5 2025.03.08