Unreal 15

[UE5/GAS] 데미지 전달에 GE 활용하기 (2) MetaAttribute와 CurveTable 활용하기

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트강의를 들으며 개념 정리 후, 다른 프로젝트에 실습하고 있습니다. 1. MetaAttribute Attribute 설정을 위해 사전에 설정하는 임시 Attribute기획 추가에 유연한 대처 가능 → 데미지 기능에 대한 보정 기능들 처리적용 후 바로 0으로 초기화하도록 설정리플리케이션에서 제외하는 것이 일반적 (최종 변경 값만 전달하면 되기 때문) 1) AttributeSet에 MetaAttribute로 사용할 Damage Attribute 추가 후, 0으로 초기화// Fill out your copyright notice in the Description page of Project Settings.#incl..

[UE5/GAS] Character Attribute로 Damage 전달하기

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트강의를 들으며 개념 정리 후, 다른 프로젝트에 실습하고 있습니다. AttributeSet 단일 Attribute Data (속성)인 GameplayAttributeData의 묶음. 기본 Attribute 값을 설정하고, 오류를 피하기 위한 최대 Attribute 값도 설정이 필요하다. GameplayAttributeData의 구성BaseValue : 기본 값으로 영구적으로 고정되는 고정 스탯 값 관리에 사용됨.CurrentValue : 변동 값으로 버프 등으로 임시적으로 변동되는 값 관리에 사용됨. 주요 함수PreAttributeChange : Attribute 변경 전에 호출하여 검사PostAttribut..

[UE5/GAS] AnimNotify와 Trigger Tag로 공격 판정하기

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트강의를 들으며 개념 정리 후, 다른 프로젝트에 실습하고 있습니다. 1. Trigger Tag를 등록하여 GA 활성화하기 1) AnimNotify를 상속받은 cpp 클래스 생성// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Animation/AnimNotifies/AnimNotify.h"#include "GameplayTagContainer.h"#include "VSAnimNotify_AttackHitCheck.generated.h"/** *..

[UE5/GAS] 상태Tag와 AT를 활용한 GA, AT 규칙

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트강의를 들으며 개념 정리 후, 다른 프로젝트에 실습하고 있습니다. 상태 태그를 이용한 어빌리티 활성화 판별CanActivateAbility현재 상태 태그를 확인하여 어빌리티의 활성화를 결정한다. bool UVSGA_AttackBase::CanActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, const FGameplayTagContainer* SourceTags, const FGameplayTagContainer* TargetTags, OUT FGameplayTagContainer* ..

[UE5/GAS] GAS와 CharacterPlayer, GA와 AbilityTask

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트 멀티플레이 환경에서 플레이어 캐릭터에 GAS를 설정할 때 주의할 점!플레이어 = (플레이어 컨트롤러)+(조정하는 폰)→ 2개의 액터 형태이기 때문에 이를 고려한 설계가 필요하다!→ 서버에서 보관할 데이터 / 실제로 조종하는 캐릭터의 분리 필요 GAS의 데이터를 담당하는 Actor : OwnerActor상호작용과 비주얼을 담당하는 Actor : AvatarActor 주기적으로 서버-클라이언트로 배포되는 PlayerState가 데이터를 관리하기 가장 적합하다!따라서 OwnerActor는 PlayerState로 지정, AvatarActor는 조종할 Character로 설정.→ PlayerState에서 ASC 생성,..

[UE5/GAS] GameAbilitySystem기초_Actor와 GAS, Gameplay Tag

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트~이번 강의의 내용~ASC의 생성과 초기화GA의 제작과 활용Tag의 활용 1. GAS를 사용한 구현 방법 → C++로만 모든 기능 구현 가능, Actor로부터 기능 분리 장점 1) 어빌리티 발동 준비ASC (AbilitySystemComponent) 선언액터들의 중앙처리장치 ASC를 통해 GA발동 가능, 부착한 액터끼리 GAS 상호작용 가능액터에 ASC 상속받아 생성InitAbilityActorInfo(실제 작업_데이터 변동이 일어나고 있는 액터 정보, 비주얼 작업_동작만 수행하는 아바타 액터)ASC 선언액터에 단 1개 부착 가능GAS를 관리하는 핵심 컴포넌트 GA (Gameplay Ability) 생성ASC에..

[UE5/GAS] Game Ability System이란?

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트이득우 교수님께서 스킬 기반의 복잡한 시스템 사용 시, GAS의 프레임워크 공부를 권장한다고 하셨다. 교육 과정에는 포함되어있지 않아, 이득우 교수님의 온라인 강의를 따로 찾아보게 되었다. GameAbilitySystem? 장점유연성과 확장성 → 생산성 차이모듈화 시스템 → 독립적인 기능으로 전체에 영향이 적음네트워크 멀티플레이 지원데이터 기반 설계높은 완성도의 프레임워크 단점학습 비용이 큼오버헤드 → 작은 프로젝트라면 GAS 도입이 너무 큰 비용일 수 있음 5가지 구성 요소ASC (Ability System Component): GAS 프레임워크를 관리하고 처리하는 액터 중앙 처리 장치Gameplay Tag :..

[UE5/LOL] Sobel Edge Filter 만들기 & UV 렌더링 문제 해결

Sobel Edge Filter의 기본은 다음 유튜브를 보며 공부하였다. https://www.youtube.com/watch?v=PXLgkxRizPI&t=11s Sobel Edge Filter?포스트 프로세싱 볼륨을 이용하여 SceneTexture에서 픽셀 정보를 받아와 아웃라인을 그려주는 필터이다. 위 필터를 공부하고 적용한 뒤, 흑백이 아니라 실제 텍스쳐 컬러와 혼합하는 작업을 추가하였다. 간단하게 원래 텍스쳐에서 컬러 값을 뽑아와 Multiply 해 주었다. 결과 화면Material 화면은 잘 나오지만, Editor Play 화면은 렌더링이 이상하게 되는 현상이 발생하였다. 위 현상을 해결하기 위하여 여러 파라미터들을 만져보다가 GetSceneTextureUV부분에서 문제가 생긴다는 것..

[UE5] Blueprint 프로젝트를 C++로 (3) 마우스 클릭으로 캐릭터 이동하기

2025.04.21 - [UnrealEngine5/프로젝트] - [UE5] Blueprint 프로젝트를 C++로 만들어보기 (3) 마우스 커서 기반 이동하기 [UE5] Blueprint 프로젝트를 C++로 만들어보기 (3) 마우스 커서 기반 이동하기1. 마우스 커서 보여주기 캐릭터 기능을 추가하기 전에, 컨트롤러에서 변경해야 할 점이 있다. 블루프린트로 만들었던 프로젝트에서는 마우스 커서의 input 위치를 바탕으로 이동했기 때문에,플narmhye.tistory.com 캐릭터를 단순 Location 변환이 아닌, 이동을 시켜야 한다. Blueprint에서는, AIController를 가져와 AI MoveTo로 Location을 전달하여 이동시켰다. 하지만, 지금 단계에서는 NavMeshVolume을 설정..

[UE5] Blueprint 프로젝트를 C++로 만들어보기 (3) 마우스 input 설정

1. 마우스 커서 보여주기 캐릭터 기능을 추가하기 전에, 컨트롤러에서 변경해야 할 점이 있다. 블루프린트로 만들었던 프로젝트에서는 마우스 커서의 input 위치를 바탕으로 이동했기 때문에,플레이어 컨트롤러에서 마우스 커서를 보여주는 설정을 추가해야 한다. PlayerController의 BeginPlay에서 SetShowMouseCursor로 설정 가능하다. // 마우스 커서 보이도록 설정. SetShowMouseCursor(true); 2. 캐릭터 input 설정_Move우선, input과 연관된 캐릭터 행동에는 이동밖에 없어 이동만 우선 구현해 보았다. 다른 행동들은 모두 UI로 델리게이트에 등록할 것이다. 1) 마우스 클릭이 완료된 시점(Trigger되었다 해제된 시점) 상태 확인하기블루프린..