전체 글 264

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (32) GE의 모디파이어_Attribute Based 파헤치기 02

이번 포스트에서도 역시 Attribute Based에 대해 알아보겠습니다.이전에 Gameplay Effect에서 총 2개의 Backing Attribute를 설정하였습니다.  위 2개의 Backing Attribute는 Health에 대해서 Add 연산을 수행합니다.그런데 여기에 Divide 즉, 나눗셈을 수행하게 되면 어떻게 될까요?다음과 같이 하나의 Backing Attribute를 추가해보았습니다. 현재 Health의 값은 50이고, Vigor은 9, Resilience는 12, 마지막으로 Intelligence는 17입니다.연산자간의 우선순위를 생각하면 나눗셈이 가장 우선으로 처리되야 합니다.따라서 실제 결과는 다음과 같이 나와야 합니다. 50 / 17 + 9 + 12 = 23.16 이 값이 맞는..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (31) GE의 모디파이어_Attribute Based 파헤치기 01

이번 포스트에서는 Gameplay Effect의 여러 모디파이어 중에서 Attribute Based에 대해 알아보겠습니다. 1) BP_TestActor 우선, 시험용도의 EffectActor를 하나 만들겠습니다.해당 Actor는 모디파이어가 Attribute Based인 Gameplay Effect를 타깃에게 적용합니다. 2) GE_TestAttributeBaseGameplay Effect를 하나 생성하고 모디파이어를 Attribute Based로 설정하면 다음과 같이 나타납니다. 부분별로 나눠서 정리해보았습니다. Attribute Based 모디파이어에 대해 몇 차례 나눠서 알아볼 예정이므로우선, Backing Attribute에 대해 알아보겠습니다. 2 - 1) Attribute to CaptureA..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (30) GE를 통해 Attribute 초기화하기

이번 포스트에서는 Attribute를 초기화하는 2가지 방법 중에서 2번째 방법인Gameplay Effect를 통해 Attribute를 초기화하는 방법을 알아보겠습니다.우선, 이전에 설정한 Data Table은 삭제하는 것으로 시작하겠습니다. 1) AuraCharacterBase#pragma once#include "CoreMinimal.h"#include "GameFramework/Character.h"#include "AbilitySystemInterface.h"#include "AuraCharacterBase.generated.h"class USkeletalMeshComponent;class UAbilitySystemComponent;class UAttributeSet;class UGameplayE..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (29) 데이터 테이블을 통한 Attribute 초기

이번 포스트에서는 Attribute를 초기화하는 2가지 방법 중에서데이터 테이블을 통해 초기화하는 방법을 알아보겠습니다.그리고 동시에 향후 게임에서 사용할 Attribute를 추가하도록 하겠습니다. 1) AuraAttributeSetUCLASS()class AURA_API UAuraAttributeSet : public UAttributeSet{ . . . public: /* * RPG Stat Attribute & Method */ UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_Strength, Category = "Stat Attributes") FGameplayAttributeData Strength; ATTRIBUTE_ACCESSORS(UAu..

유니티 입력 처리 심화 - (13) Action Asset에서의 Index와 Composite

이번 포스트에서는 Action Asset의 요소 중에서 Index와 Composite에 대해 알아보겠습니다.우선, 예제로 사용하는 Action Asset의 구성을 간단하게 훑어보겠습니다.  위와 같은 구성으로 이뤄져 있습니다.여기서 Input Action은 총 5개로,Jump / MoveHorizontal / MoveVertical / Attack / SpecialAttack으로 구성되어 있습니다. 1) Action Asset에서의 IndexIndex는 Action Asset에 속해 있는 각기 다른 Input Action마다 배정되는데처음 들었을 때 상당히 이해하기 힘든 구조로 되어 있습니다.위의 Action Asset에서의 Index를 그림으로 표현하면 다음과 같습니다.  즉, 하나의 Input Act..

JobQueue #2

이번에는 이전의 포스트에서 사용한 람다식을 이용하여 Action을 자동으로 수행하는 방식이 아닌새로운 Task 단위를 만들어 이를 수동으로 수행하는 방식으로 JobQueue를 구현해보겠습니다. 1) TaskQueueinterface ITask{ void Execute();}// Task 중에서 Broadcast를 수행하는 Taskclass BroadcastTask : ITask{ GameRoom _room; ClientSession _clientSession; string _chat; // 생성자에서 GameRoom, ClientSession, Chat을 초기화함 BroadcastTask(GameRoom room, ClientSession clientSession, str..

C# 2025.01.22