UE5/GAS

    [UE5] GAS EffectActor // 포션먹으면 hp증가 구현, const_cast

    [UE5] GAS EffectActor // 포션먹으면 hp증가 구현, const_cast

    1. EffectActor 를 만듬2. 충돌할 구, 매쉬를 만듬, 연결 UPROPERTY(VisibleAnywhere) TObjectPtr Sphere; UPROPERTY(VisibleAnywhere) TObjectPtr Mesh;// 생성자AAuraEffectActor::AAuraEffectActor(){ // 이 액터는 매 프레임마다 업데이트되지 않음 PrimaryActorTick.bCanEverTick = false; // 메시 컴포넌트 생성 및 초기화 Mesh = CreateDefaultSubobject("Mesh"); // 메시를 루트 컴포넌트로 설정 SetRootComponent(Mesh); // 구형 충돌 컴포넌트 생성 및 초기화 Sphere = CreateDefaultSubobject("S..

    [UE5] GAS 속성개념, 구현, 속성추가방법, 디버깅방법

    [UE5] GAS 속성개념, 구현, 속성추가방법, 디버깅방법

    1. ASC는 (AttirubteSet) 같은클래스 타입을 여러개가질수 없음. //모호하기 때문2. 한 AS내에 모든속성 때려박기는 가능 3. 속성이란?숫자임, float임속성은 FGameplayAttributeData 구조체 내에 존재함.속성은 AttributeSet에 저장됨. AS는 속성들을 관리함.GameplayEffet => 속성값 변경* 예측(Prediction) : 값은 클라에서 변경하고, 서버에 알리기만함. 서버가 invalid하다고 판단하면 롤백할수 있음. 4.예측(Prediction) * 예측이 없는경우클라가서버에 피를-1깍겠다고 요청을보냄 -> 검증 -> ok신호 -> 피가1깍임(-) 100밀리초정도 걸림 => bad play 경험...(렉) *예측을 사용하는 경우gameplayEffe..

    [UE5] GAS Ability Actor Info // 능력 정보초기화 하는방법

    [UE5] GAS Ability Actor Info // 능력 정보초기화 하는방법

    1. 오너 vs 아바타오너 : 컴포넌트의 소유자아바타 : 능력의 대상적의 경우 : 둘이같음플레이어의경우 : 소유자는 PS임, 대상은 Player초기화 함수 2. 초기화 함수는 빙의 이후에 수행되야한다* Player 초기화 && ASC가 PS내에 있는경우 Possedby에서 초기화 => 서버를 위해 초기화OnRep_PS에서 초기화 => 클라를 위해 초기화2번 초기화 해줘야함. * Player 초기화 && ASC가 Player내에 있는경우Possedby에서 초기화 => 서버를 위해 초기화AcknowledgePossession에서 초기화 => 클라를 위해 초기화 * 적의경우비긴플레이에서 초기화해주면됨 3. 구현1. 적의경우멤버변수로 ASC, AS를 갖고있기 때문에비긴플레이어서 초기화하면 된다.void AAur..

    [UE5] GAS 복제 모드 설정 // 멀티플레이설계 -> 싱글플레이 작동가능(역X)

    [UE5] GAS 복제 모드 설정 // 멀티플레이설계 -> 싱글플레이 작동가능(역X)

    /** How gameplay effects will be replicated to clients */UENUM()enum class EGameplayEffectReplicationMode : uint8{ /** Only replicate minimal gameplay effect info. Note: this does not work for Owned AbilitySystemComponents (Use Mixed instead). */ Minimal, /** Only replicate minimal gameplay effect info to simulated proxies but full info to owners and autonomous proxies */ Mixed, /** Replicate fu..

    [UE5] GAS 구현 // ASC, AS Getter구현

    [UE5] GAS 구현 // ASC, AS Getter구현

    1.캐릭베이스 > ASC, AS 추가해주기 UPROPERTY() TObjectPtr AbilitySystemComponent; UPROPERTY() TObjectPtr AttributeSet; //속성을 가르키는 포인터 2. 적의경우 적 클래스내부에서 직접 초기화할것임 //PS사용안할것임!AAuraEnemy::AAuraEnemy(){ // 가시성 콜리전 채널(ECollisionChannel::ECC_Visibility)에 대한 메시 콜리전 응답을 ECollisionResponse::ECR_Block으로 설정합니다. // 이래야 윤곽선나옴 GetMesh()->SetCollisionResponseToChannel(ECC_Visibility, ECR_Block); AbilitySystemComponent =..

    [UE5] Gas Server 이해

    [UE5] Gas Server 이해

    1. 컨트롤러클라는 각각의 PC만 가지고있음2. PS모든 클라가 모든 PS,폰을 가짐 3. HUD클라만 각각의 HUD를 가짐 4. 복제(Replication)항상 서버->클라 방향임(-) 그러면, 클라0의 입력이 서버에 어떻게 전달되는가? -> RPC (원격 프로시저 호출) 이라고 하는 복제된 함수의 형태로 수행됨..? 더 알아봐야할듯-> 대부분 GAS가 알아서 처리해주기 때문에 서버편에서 알아보도록하자 5. 할일 캐릭Base에 AttributeSet, Component 달아주기

    [UE5] GAS 개요이해 // PlayerState, ASComponent, AttributeSet

    [UE5] GAS 개요이해 // PlayerState, ASComponent, AttributeSet

    1. 개요2. 구성방법2.1 : 폰에직접 달기(-) 폰이 죽으면, 능력치 데이터가 없어져버림 -> 별도로 데이터를 저장해줘야함2.2 : PlayerState라는 별도 클래스에 달기 && 폰과 PS 연결(+)폰이 죽으면, 폰만죽음부활시, 새 폰과 연결만 해주면됨 3. 실전적용적 : GAS를 직접 가짐 // 간단함, ai controller에서 조정하므로플레이어 : PS로 관리함 // 폰을 바꿀일이 많으므로 1. PlayerState 만들기// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameFramework/PlayerState.h"..