UE5/Damage
[UE5] 치명타 구현
- 속성추가 해주시고//BP에노출안할거임, c++안에서만 사용되는 원시구조체struct AuraDamageStatics{ //캡쳐속성 선언 매크로 : 속성포인터가지고있음 DECLARE_ATTRIBUTE_CAPTUREDEF(Armor); DECLARE_ATTRIBUTE_CAPTUREDEF(ArmorPenetration); DECLARE_ATTRIBUTE_CAPTUREDEF(BlockChance); DECLARE_ATTRIBUTE_CAPTUREDEF(CriticalHitChance); DECLARE_ATTRIBUTE_CAPTUREDEF(CriticalHitResistance); DECLARE_ATTRIBUTE_CAPTUREDEF(CriticalHitDamage); ..
[UE5] 데미지계산 계수 하드코딩 fix
- 계수를 커브테이블로 리팩토링 하고자함 - 클래스인포에 CT 변수추가class AURA_API UCharacterClassInfo : public UDataAsset{ ... UPROPERTY(EditDefaultsOnly,Category="Common Class Defaults") TObjectPtr DamageCalculationCoefficients;* CT에 접근방법게임모드 접근후, 게임모드에 있는 클래스정보를 리턴하면됨클래스정보 @Getter를 라이브러리에서 구현UCharacterClassInfo* UAuraAbilitySystemLibrary::GetCharacterClassInfo(const UObject* WorldContextObject){ //게임모드를 얻어오고 ..
[UE5] 방어력, 방관 구현
- 방관속성 추가해주시고//BP에노출안할거임, c++안에서만 사용되는 원시구조체struct AuraDamageStatics{ //캡쳐속성 선언 매크로 : 속성포인터가지고있음 DECLARE_ATTRIBUTE_CAPTUREDEF(Armor); DECLARE_ATTRIBUTE_CAPTUREDEF(ArmorPenetration); DECLARE_ATTRIBUTE_CAPTUREDEF(BlockChance); AuraDamageStatics() { DEFINE_ATTRIBUTE_CAPTUREDEF(UAuraAttributeSet, Armor, Target, false); //아머라는 속성을 캡쳐하겠다. from target(적) 스냅샷X DEFINE_AT..
[UE5] Block Chance 구현
* 데미지를 얻고, 블록 계산후, 실제속성(데미지)를 변경하고자함void UExecCalc_Damage::Execute_Implementation(const FGameplayEffectCustomExecutionParameters& ExecutionParams, FGameplayEffectCustomExecutionOutput& OutExecutionOutput) const{// Get Damage Set by Caller Magnitudefloat Damage = Spec.GetSetByCallerMagnitude(FAuraGameplayTags::Get().Damage);//Capture Blockchacne on target , 블록인지 결정//블록이면, 데미지 없애기//실제속성변경const FGa..
[UE5] 실행 계산 개념, 아머속성 계산-변경 구현
속성을 캡쳐할수있는 기능임 * 실행계산 구현 - 아바타액터얻기, 스펙 얻어보기UExecCalc_Damage::UExecCalc_Damage(){}void UExecCalc_Damage::Execute_Implementation(const FGameplayEffectCustomExecutionParameters& ExecutionParams, FGameplayEffectCustomExecutionOutput& OutExecutionOutput) const{ const UAbilitySystemComponent* SourceASC= ExecutionParams.GetSourceAbilitySystemComponent(); const UAbilitySystemComponent* TargetA..
[UE5] 맞은적 머리위에 데미지 뜨도록 구현
* 애니메이션구현 * 위젯을 뷰포트에 추가만 하면됨 * Text값에 데미지를 연결하기 - 우리는 적이든 캐릭터든 둘다 받는 데미지가 뜨길원함 -> PC 에서 구현 UFUNCTION(Client, Reliable) //클라이언트RPC, 신뢰가능한 void ShowDamageNumber(float DamageAmount, ACharacter* TargetCharacter); UPROPERTY(EditDefaultsOnly) TSubclassOf DamageTextComponentClass;};//대상 캐릭터위에 데미지 띄워주는 함수//RPC함수 : 서버에서 호출가능void AAuraPlayerController::ShowDamageNumber_Implementation(float DamageAmount,..
[UE5] 적 죽을때 용해효과 구현
* 설계결론 : c++에서 죽을때, 머테리얼을 바꾸고, Dissiolve 값을 스무스하게 바꿔주면 된다. * 구현 UCLASS(Abstract) //추상클래스임 class AURA_API AAuraCharacterBase : public ACharacter, public IAbilitySystemInterface, public ICombatInterface{ ... /* 용해 Effect*/ void Dissolve(); //머테리얼을 교체하는 함수 UFUNCTION(BlueprintImplementableEvent) //타임라인설정하는 함수, BP에서 구현 void StartDissolveTimeLine(UMaterialInstanceDynamic* DynamicMat..