목록언리얼/Framework (8)
보키_기록용

Lyra 게임을 하다가 ESC를 누르면 나오는 이 화면. 이 화면은 어떻게 뜨는지 궁금했다. Enhanced Input을 하면서 ESC 바인딩은 나온적이 없어서 더 궁금했다. 일단 저 위젯의 이름은 W_LyraGameMenu. 위젯 리플렉터로 찾아냈다. LyraGameMenu의 레퍼런스 뷰어를 보면 마지막에 인게임 화면 위젯이 있다. (W_ShooterHUDLayout) 이 W_ShooterHUDLayout의 클래스 디폴트탭에 EscapeMenuClass라는 칸이 있다. 해당 칸에 W_LyraGameMenu가 있다. W_ShooterHUDLayout의 부모 클래스로 가보면 // LyraHUDLayout.h #pragma once #include "CoreMinimal.h" #include "Bluepri..

언리얼 엔진의 고급 유저 인터페이스를 위한 일반 UI 플러그인 | 언리얼 엔진 5.0 문서 (unrealengine.com) 일반 UI 일반 UI 플러그인으로 복잡한 멀티 레이어 유저 인터페이스를 생성하세요. docs.unrealengine.com 여러 레이어로 쌓인 UI 중 어떤 위젯에 포커스를 줘서 입력을 받는 부분 처리, 플랫폼별로 버튼 다르게 쓰는 등에 장점이 있음. 언리얼 예제 프로그램인 Lyra에서는 이걸 기반으로 하고있다. 포트나이트에서도 썼다고 함. Enhanced Input System 붙여보다가 #include "CommonInputBaseTypes.h" 라는게 나왔는데 찾다가 Common UI에서 나온거라는걸 알게됨. 목적이 저 헤더파일이라 제대로 쓰는건 나중에 할 예정. 1. 편집(..
Attribute Set 생성 시 어트리뷰트 프로퍼티를 리플리케이션할 때 DOREPLIFETIME_CONDITION_NOTIFY를 사용했었다. void UGASTestAttributeSet::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const { Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREPLIFETIME_CONDITION_NOTIFY(ULyraHealthSet, Health, COND_None, REPNOTIFY_Always); } DOREPLIFETIME가 일반적이지만 클라이언트 측 ability prediction관련으로 복잡한 오류가 발생되서 DOREPLIFETIME_CONDITION_..
중요 요소 Ability System Component : Gameplay Ability System의 심장. System의 모든 상호작용을 다룬다. Gameplay Abilities : 게임에서 할 수 있는 모든 행동이나 기술. 한 번에 둘 이상을 활성화 할 수 있다. Ability Task : 보다 일반적인 Gameplay Task (게임플레이 태스크) 클래스를 상속받아 Gameplay Abilities (게임플레이 어빌리티)내에서만 사용가능한 특수한 형태. Gameplay Abilities를 더 유연하게 사용하기 위해 시간이 지남에 따라 발생하거나 특정 시점에 실행되는 Delegate를 사용할 때 쓴다. BP로 구현할 수 없고 C++로만 작성할 수 있다. Attribute Set FGameplayA..
전에 공부했던 Gameplay Ability System 관련해서 예제들이 Ability를 다 BP로 만들어서 C++로 만들어보고자 한다. 위 링크 글에서 GA_Punch를 C++로 만들기 #include "CoreMinimal.h" #include "Core/Ability/GASTestGameplayAbility.h" #include "PunchAbility.generated.h" class UAbilityTask_SuccessFailEvent; /** * */ UCLASS() class GAMEPLAYABILITYTEST_API UPunchAbility : public UGASTestGameplayAbility { GENERATED_BODY() protected: UPunchAbility(); vir..

WaitSuccessFailEvent 원래는 엔진에 있던 Wait Gamplay Event 썼는데 결과 값에서 적이 맞든 안맞든 같은 결과가 나와서 Custom함. 따라서 기본 골자는 Wait Gamplay Event를 따라간다. #include "CoreMinimal.h" #include "Abilities/Tasks/AbilityTask.h" #include "AbilityTask_SuccessFailEvent.generated.h" class UAbilitySystemComponent; DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FWaitSuccessFailEventDelegate, FGameplayEventData, Payload); /** * Custom Ab..

이어서 Gameplay Ability System 기초 정리 System Setup 플러그인 편집창에서 Gameplay Abilities 활성 (프로젝트이름).build.cs 파일에 PublicDependencyModuleNames에 "GameplayAbilities", "GameplayTags"및 "GameplayTasks"를 추가한다. PublicDepend.. bokki0117.tistory.com 참고 (23) [UE5 - C++] Gameplay Ability System in Unreal Engine 5 - Part 02 - The Editor - YouTube (23) [UE5 - C++] Gameplay Ability System in Unreal Engine 5 - Part 03 - Cu..

System Setup 플러그인 편집창에서 Gameplay Abilities 활성 (프로젝트이름).build.cs 파일에 PublicDependencyModuleNames에 "GameplayAbilities", "GameplayTags"및 "GameplayTasks"를 추가한다. PublicDependencyModuleNames.AddRange(new string[] { "GameplayAbilities", "GameplayTags", "GameplayTasks", "Core", "CoreUObject", "Engine", "InputCore" }); 기본 용어 Attribute Set FGameplayAttributeData 구조체에 정의된다. current/max health (현재/최대 생명력), ..