인사말 안녕하세요. 이번 포스트에서는 언리얼엔진 게임플레이 이펙트에서 스택에 대해 알아보겠습니다. 일반적으로 게임에서 자주 볼 수 있는 스택 시스템이 맞습니다. 게임플레이 이펙트 스택킹(Gameplay Effects Stacking) 게임플레이 이펙트(Gameplay Effects)는 기본적으로 게임플레이 이펙트 스펙(GameplayEffectSpec)의 새 인스턴스를 적용하며, 이전에 존재하던 스펙 인스턴스와는 독립적으로 작동합니다. 그러나, 게임플레이 이펙트를 스택킹(Stacking)으로 설정할 수 있으며, 이 경우 새로운 게임플레이 이펙트 스펙을 추가하는 대신 기존 스펙의 스택 수를 변경합니다. 스택킹은 지속(Duration) 및 무한(Infinite) 게임플레이 이펙트에만 작동합니다. 인스턴트에는..
인사말 안녕하세요. 이번 포스트에서는 이전에 만들었던 Aura Effect Actor 개선에 대해 작성하겠습니다. 문제점 현재 Aura Effect Actor는 Mesh Component 와 Sphere Component를 C++ 에서 생성했습니다. 여기서 발생한 문제점은 코드로 생성하였기 때문에 디자이너가 작업할 수 있는 유연성을 제한되었습니다. 즉, 블루프린트에서 수정하고 작업하기가 어렵게 되었습니다. 이를 개선하기 위해서 기존 코드로 작성되어 있던 Mesh Component와 Sphere Component 를 제거하고 Sphere Component 의 오버랩 이벤트도 삭제합니다. 변경 사항 - 1. Mesh Component 와 Sphere Component 를 C++ 에서 제거, 이를 블루프린트에..
인사말 안녕하세요. 이번 포스트에서 GAS에서 Attribute Change를 통해서 체력과 마나를 변경해 보록 하겠습니다. WBP_Overlay WBP_Overlay에 만들어둔 WBP_HealthGrobe 와 WBP_ManaGlobe를 추가해 주도록 합니다. 그리고 그래프에서는 Event Widget Controller Set 을 실행시키도록 합니다. HealthGlobe 와 ManaGlobe 의 블루프린트 그래프는 아래와 같이 구현되여 있습니다. 구현부(SetWidgetController) void UAuraUserWidget::SetWidgetController(UObject* InWidgetController) { WidgetController = InWidgetController; WidgetC..
서론 언리얼 엔진의 Gameplay Ability System에서 능력 시스템 구성요소(Ability System Component, ASC)의 소유자(Owner)와 아바타(즉, 게임 내에서의 대리자 또는 표현)를 설정하는 과정을 설명해드리겠습니다. 이 과정은 네트워크 멀티플레이어 게임에서 중요하며, 능력 시스템 구성요소가 올바르게 복제되고 초기화되어 각 플레이어의 캐릭터에 대한 능력이 적절히 작동하도록 합니다. 능력 시스템 구성요소의 초기화 과정은 소유자 액터와 아바타 액터에 대한 정보를 설정하는 것을 포함합니다. 이 설정은 서버에서 수행되며, 클라이언트는 서버에서 설정된 값을 복제받아 사용합니다. UAbilitySystemComponent::InitAbilityActorInfo 함수 UAbilityS..
인사말 이번 포스트에서는 언리얼엔진에서 Post Process Volume(PPV) 를 이용해서 액터에 Highlight를 적용해도록 하겠습니다. Post Process Volume 배치 월드에 볼륨을 배치합니다. Post Process Volume 세팅 Post Process Material 에 PP_Highlight 를 넣어줍니다. Post Process Volume Settings 에서 Infinite Extend (Unbound) 를 체크합니다. (월드 전체) 프로젝트 세팅 변경 프로젝트 세팅에서 Custom Depth-Stencil Pass 를 Enable With Stencil 로 변경합니다. AAuraEnemy 코드 변경 AuraEnemy 의 코드를 변경해줍니다. 콜리전 응답 채널을 변경합니..
서론 C++에서 숫자 구분자는 코드의 가독성을 높이는데 큰 도움을 줍니다. C++14부터 지원되기 시작한 이 기능을 통해, 개발자는 큰 숫자를 더욱 쉽게 읽고 이해할 수 있습니다. 숫자 구분자는 ' (싱글 쿼테이션)를 사용하여 숫자 내에서 구분자로 작용하며, 컴파일러는 이 구분자를 무시합니다. 예제 코드 다음은 C++에서 숫자 구분자를 사용하는 다양한 예제입니다. #include int main() { // 정수에서의 사용 int distance = 149'600'000; // 태양에서 지구까지의 평균 거리(km) // 부동 소수점 숫자에서의 사용 double avogadroNumber = 6.022'140'76e23; // 아보가드로 수 // 2진수에서의 사용 int bin = 0b1010'1011'1..