UE5
-
[UE5] 게임플레이 이펙트의 활용UE5 2025. 1. 7. 15:32
게임플레이 이펙트줄여서 GE(Gameplay Effect)로 불림GAS는 게임에 영향을 주는 객체를 별도로 분리해서 관리함게임에 영향을 준다는 것은 대부분 게임 데이터를 변경한다는 것을 의미함따라서 대부분 게임플레이 이펙트와 어트리뷰트는 함께 동작하도록 구성되어 있음GAS 시스템에서 가장 많은 기능을 제공하는 클래스세 가지 타입 존재Instant : 어트리뷰트에 즉각적으로 적용되는 게임플레이 이펙트. 한 프레임에 실행됨Duration : 지정한 시간 동안 동작하는 게임플레이 이펙트Infinite : 명시적으로 종료하지 않으면 계속 동작하는 게임플레이 이펙트 게임플레이 이펙트 모디파이어(Modifier)GE에서 어트리뷰트의 변경 방법을 지정한 설정을 모디파이어라고 함모디파이어의 사용 방법적용할 어트리뷰트의..
-
[UE5] 캐릭터 어트리뷰트 설정UE5 2025. 1. 6. 13:11
어트리뷰트 세트(Attribute Set)단일 어트리뷰트 데이터인 GameplayAttributeData의 묶음GameplayAttributeData는 하나의 값이 아닌 두 가지 값으로 구성되어 있음BaseValue : 기본 값. 영구히 적용되는 고정 스탯 값을 관리하는데 사용CurrentValue : 변동 값. 버프(Buff) 등으로 임시적으로 변동된 값을 관리하는데 사용어트리뷰트 세트의 주요 함수PreAttributeChange : 어트리뷰트 변경 전에 호출어트리뷰트 값 변경 가능PostAttributeChange : 어트리뷰트 변경 후에 호출어트리뷰트 값 변경 불가능. 읽기만 가능(로그용)PreGameplayEffectExecute : 게임플레이 이펙트 적용 전에 호출PostGameplayEffec..
-
[UE5] GAS를 활용한 캐릭터 공격UE5 2025. 1. 3. 14:17
캐릭터 콤보 공격 구현을 위한 기획공격 시작 후 유효 시간 내에 추가 공격 입력을 넣으면, 다음 공격 모션을 발동콤보 공격에 대한 정보는 ABComboActionData에서 불러들임AT를 발동하고 입력 점검 타이머도 함께 발동입력 점검 타이머가 발동되면 다음 공격 입력이 있는지 검사다음 공격 입력이 있으면 다음 공격 모션을 발동하고 다시 입력 점검 타이머를 발동// Fill out your copyright notice in the Description page of Project Settings.#include "GA/ABGA_Attack.h"#include "Character/ABCharacterBase.h"#include "Abilities/Tasks/AbilityTask_PlayMontageAnd..
-
[UE5] GAS를 활용한 캐릭터의 입력 처리UE5 2025. 1. 2. 12:30
플레이어 캐릭터의 ASC 설정분수대 액터와 같이 플레이어 캐릭터에 설정하는 것이 가능하지만 네트워크 멀티플레이를 감안했을 때, 서버에서 클라이언트로 배포되는 액터가 보다 적합이 때 많이 사용하는 액터가 주기적으로 플레이어 정보를 배포하는 PlayerState 액터따라서 Owner를 PlayerState로 설정하고, Avatar를 Character로 설정하는 것이 일반적인 방법// ABGASCharacterPlayer.cppAABGASPlayerState* GASPS = GetPlayerState();ASC = GASPS->GetAbilitySystemComponent();// Owner는 PlayerState, Avatar는 Character(this)ASC->InitAbilityActorInfo(GAS..
-
[UE5] GAS(GamePlay Ability System)의 시작UE5 2024. 12. 30. 14:40
게임플레이 어빌리티 시스템(GAS) 프레임 워크액터가 소유하고 발동할 수 있는 어빌리티 및 액터 간의 인터랙션 기능을 제공하는 프레임워크RPG, 액션 어드벤처, MOBA 장르의 제작을 쉽게하기 위한 도구. 대부분의 게임 제작에 활용 가능GAS 프레임워크의 장점유연성과 확장성 : 다양하고 복잡한 게임 제작에 대응할 수 있도록 범용적으로 설계모듈러 시스템 : 각 기능에 대한 의존성이 최소화되도록 설계네트워크 지원 : 네트워크 멀티플레이어 게임에서도 활용 가능하도록 설계데이터 기반 설계 : 데이터를 기반으로 동작하도록 설계완성도 : 포트나이트 게임 서비스를 통해 실효성 검증GAS 프레임워크의 단점배우는 학습 비용 : 구성 요소가 많아서 학습하는 비용이 꽤 큼오버헤드 : 작은 규모의 프로젝트에는 복잡한 구조가 ..
-
[UE5] 네트워크 멀티플레이어 최적화UE5 2024. 12. 26. 17:36
네트워크 멀티플레이어를 위해 고려할 최적화 요소 [일반적으로 최적화시 고려할 사항]불필요한 액터의 리플리케이션 옵션을 끄기액터에 맞는 최적의 업데이트 빈도(Frequency)와 우선권(Priority) 설정연관성(Relevancy)을 위한 최적의 조건 설정프로퍼티 리플리케이션의 조건 설정필요시 휴먼(Dormancy) 상태의 설정데이터 크기의 양자화 (FVector_NetQuantize)[기타 심화 주제]구조체 데이터 전송의 최적화 설계 (NetSerialize)프로퍼티 리플리케이션의 푸시 모델 설정필요시 빠른 배열 자료구조를 사용한 데이터 전달 (FFastArraySerializer)빠른 리플리케이션 엔진의 교체 (ReplicationGraph, Iris) [NetSerialize 데이터 설계]네크워크로..
-
[UE5] 움직임 리플리케이션UE5 2024. 12. 20. 08:15
다음은 언리얼 공식 문서 Networked Movement in the Character Movement Component의 일부를 번역한 것이다. Autonomous Proxy (자율 프록시)캐릭터는 소유 클라이언트의 기기에서 실행되며, 플레이어가 로컬에서 직접 제어합니다. Authority (권한)캐릭터는 게임을 호스팅하는 서버에 존재합니다. Simulated Proxy (시뮬레이티드 프록시)캐릭터는 다른 클라이언트에 존재하며, 원격으로 제어되는 캐릭터를 볼 수 있습니다.이 캐릭터는 서버에서 AI에 의해 제어되거나, 다른 클라이언트의 Autonomous Proxy에 의해 제어될 수 있습니다. 복제(Replication) 프로세스는 TickComponent 함수 내에서 반복적으로 수행되며, 매 틱마..
-
[UE5] 전역 네임스페이스와 ::의 활용UE5 2024. 12. 19. 06:10
전역 네임스페이스(Global Namespace)란? C++에서 **전역 네임스페이스(Global Namespace)**는 특정 네임스페이스에 속하지 않은 함수, 변수, 클래스, 열거형 등이 기본적으로 포함되는 가장 바깥쪽의 범위를 뜻한다. 전역 네임스페이스는 모든 파일에서 접근할 수 있는 기본 범위이다.전역 네임스페이스는 이름이 없는 네임스페이스로 간주되며, 이를 명시적으로 참조하려면 범위 지정 연산자(::)를 사용한다. 전역 네임스페이스의 특징 모든 코드에서 접근 가능:전역 네임스페이스에 있는 요소는 기본적으로 모든 소스 파일에서 접근 가능기본 범위:함수, 변수, 클래스 등을 아무 네임스페이스에도 포함하지 않고 선언하면 자동으로 전역 네임스페이스에 포함범위 지정 연산자(::):전역 네임스페이스를 ..