UE5/Advance Damage Techniques

    [UE5] 멀티플레이 test // 서버 트러블슈팅 클라에서 데미지 표시안됨 해결, 각자 클라에서는 각자의 데미지만 표시 구현

    [UE5] 멀티플레이 test // 서버 트러블슈팅 클라에서 데미지 표시안됨 해결, 각자 클라에서는 각자의 데미지만 표시 구현

    * 문제 : 호출스택 타고가면서 탐색원인 : 게임모드가 null임 / 게임모드는 gameplaystatics사용해서 클라에서 얻어오는경우에만 서버에서 유효함클라에서 null이 되버림 UCharacterClassInfo* UAuraAbilitySystemLibrary::GetCharacterClassInfo(const UObject* WorldContextObject){ //게임모드를 얻어오고 AAuraGameModeBase* AuraGameMode = Cast(UGameplayStatics::GetGameMode(WorldContextObject)); if (AuraGameMode == nullptr) return nullptr; //게임모드에있는 클래스정보들에 대해 retur..

    [UE5] 방마저에따른 데미지 감소 구현

    [UE5] 방마저에따른 데미지 감소 구현

    * execcalc에서 캡쳐속성선언//BP에노출안할거임, c++안에서만 사용되는 원시구조체struct AuraDamageStatics{ //캡쳐속성 선언 매크로 : 속성포인터가지고있음 ... DECLARE_ATTRIBUTE_CAPTUREDEF(FireResistance); DECLARE_ATTRIBUTE_CAPTUREDEF(LightningResistance); DECLARE_ATTRIBUTE_CAPTUREDEF(ArcaneResistance); DECLARE_ATTRIBUTE_CAPTUREDEF(PhysicalResistance);* 속성캡쳐 from target(고블린)AuraDamageStatics(){ .. DEFINE_ATTRIBUTE_CAPTUREDEF(..

    [UE5] 방마저 속성추가 / 리플리케이션 / 속성위젯에 속성추가

    [UE5] 방마저 속성추가 / 리플리케이션 / 속성위젯에 속성추가

    * 방마저 속성추가Attribute set 수정ctrl + h => 한번에 수정UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_FireResistance, Category = "Resistance Attributes")FGameplayAttributeData FireResistance;ATTRIBUTE_ACCESSORS(UAuraAttributeSet, FireResistance);UPROPERTY(BlueprintReadOnly, ReplicatedUsing = OnRep_LightningResistance, Category = "Resistance Attributes")FGameplayAttributeData LightningResistance;ATTRI..

    [UE5] 데미지 유형들 추가, 확장성 refactor

    [UE5] 데미지 유형들 추가, 확장성 refactor

    1. 태그추가struct FAuraGameplayTags{ FGameplayTag Damage_Fire;GameplayTags.Damage_Fire = UGameplayTagsManager::Get().AddNativeGameplayTag( FName("Damage.Fire"), FString("Fire Damage Type") ); 2. DamageAbility 추가상속관계 : Spell -> DamageAbility -> AuraAbilityUCLASS()class AURA_API UAuraProjectileSpell : public UAuraDamageGameplayAbility변수 이사UCLASS()class AURA_API UAuraDamageGameplayAbility : pu..

    [UE5] 크리시 글자 애니메이션 구현, 메시지 구현, 인스턴싱 정책

    [UE5] 크리시 글자 애니메이션 구현, 메시지 구현, 인스턴싱 정책

    1. 2. 애니매이션 만들기빨간색 핀꼽은후,위치, 크기, 투명도를 저장하면됨. 3. 이벤트 그래프에서 노드연결  * 함수만들면됨 기존거 복붙. 메시지만 set함정상작동 * 인스턴싱 정책https://dev.epicgames.com/documentation/en-us/unreal-engine/gameplay-ability?application_version=4.27인스턴싱 정책게임플레이 능력이 실행되면 일반적으로 능력의 진행 상황을 추적하기 위해 새로운 객체(능력 유형)가 생성됩니다. 능력은 배틀 로얄, MOBA, MMO 또는 RTS 게임에서 100명 이상의 플레이어와 AI 캐릭터 간의 전투와 같이 어떤 경우에는 매우 자주 실행될 수 있으므로 능력 객체를 빠르게 생성하면 성능에 부정적인 영향을 미칠 수 있..

    [UE5] 크리티컬시, 노란글씨로 구현

    [UE5] 크리티컬시, 노란글씨로 구현

    1.여기에 매개변수 추가(blcok, critical)void UAuraAttributeSet::ShowFloatingText(const FEffectProperties& Props, float Damage, bool bBlockedHit, bool bCriticalHit) const{ //데미지위젯을 데미지받은 캐릭위에 뛰우기 if(Props.SourceCharacter!=Props.TargetCharacter) //자기자신은 제외 { AAuraPlayerController* PC= Cast(UGameplayStatics::GetPlayerController(Props.SourceCharacter,0)); if(PC) { PC->ShowD..

    [UE5] Custum GE Context // Net Serialize, Custom Effect Context

    [UE5] Custum GE Context // Net Serialize, Custom Effect Context

    위 2개를 모방해서 커스텀타입을 만들거임. 일단 치명타, 블락 getter, setter만 만들어줌#pragma once // 헤더2번포함방지#include "GameplayEffectTypes.h"#include "AuraAbilityTypes.generated.h" //generated_body 사용위해 필요USTRUCT(BlueprintType)struct FAuraGameplayEffectContext : public FGameplayEffectContext{ GENERATED_BODY()public: //@Getter bool IsCriticalHit() const {return bIsCriticalHit ; } bool IsBlockHit() const { return bIsBlockedHit..