전체 글 315

[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] 데미지 전달에 GE 활용하기 (1)

인프런 [이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템] 강의 공부 노트강의를 들으며 개념 정리 후, 다른 프로젝트에 실습하고 있습니다. 지난번에 const_cast로 임의적으로 속성을 변경하여 값을 변경하던 과정을 GE를 사용하여 간접적으로 변경할 것이다. GE (GameplayEffect) 여기서 Effect는 영향의 의미로, 게임에 영향을 주는 객체를 말한다.→ 게임에 영향? 주로 데이터 변경을 의미 → GE는 Attribute와 함께 동작 GAS에서 가장 많은 기능을 제공하는 클래스이다. 타입Instant : Attribute에 즉각 적용, 한 프레임에 실행Duration : 지정한 시간 동안 동작Infinite : 명시적 종료 전까지 계속 동작장점 : 별도의 코딩이 없어..

[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++로 (4) Animation State Machine, Blend Space와 Blend Node, 완료

애니메이션 설정하기 1) Anim Instance 생성 2) 애니메이션 블루프린트 생성캐릭터의 스켈레톤과 위에서 생성한 애님인스턴스 설정 CharacterBase의 AnimInstance class 참조 변경 // set animation blueprint. ConstructorHelpers::FClassFinder AnimInstanceClassRef(TEXT("/Game/Animations/Alien/ABP_MABCharacter.ABP_MABCharacter_C")); if (AnimInstanceClassRef.Succeeded()) { GetMesh()->SetAnimInstanceClass(AnimInstanceClassRef.Class); } 확인 3) 생성한 AnimInstance 설정하..