분류 전체보기

    [UE5] 실행 계산 개념, 아머속성 계산-변경 구현

    [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] 맞은적 머리위에 데미지 뜨도록 구현

    [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] 적 죽을때 용해효과 구현

    [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..

    [UE5] 적 죽음 구현

    [UE5] 적 죽음 구현

    * 어디에구현?적, 캐릭터가 모두사용 -> 전투인터에 만들고 캐릭베이스에서 구현강제 할거임class AURA_API ICombatInterface{ ... virtual void Die()=0; void AAuraCharacterBase::Die(){ //무기분리, 분리는자동으로 수행 -> 서버에서분리하면 클라에서도 자동분리 Weapon->DetachFromComponent(FDetachmentTransformRules(EDetachmentRule::KeepWorld,true)); MulticastHandleDeath();}void AAuraCharacterBase::MulticastHandleDeath_Implementation(){ //무기, 매시에 피직스 달기 => 땅..

    [UE5] 타격시 에니메이션 구현

    [UE5] 타격시 에니메이션 구현

    * 태그를 부여해주는 GE 만들기- 태그추가 해주시고struct FAuraGameplayTags{public: .. FGameplayTag Effects_HitReact;GameplayTags.Effects_HitReact = UGameplayTagsManager::Get().AddNativeGameplayTag( FName("Effects.HitReact"), FString("Effects.HitReact") ); Hit가 된대상의 태그가 HitReact로 바뀔거임 * 적클래스에서 태그의 변화를 구독하기- 콜백 함수추가void AAuraEnemy::HitReactTagChanged(const FGameplayTag CallbackTag, int32 NewCount){}- 태그..

    [UE5] json으로 레벨별 데미지 구현

    [UE5] json으로 레벨별 데미지 구현

    * 태그에 맞는 수정자값 설정- 태그추가struct FAuraGameplayTags{public: ... FGameplayTag Damage;void FAuraGameplayTags::InitializeNativeGameplayTags(){ ... GameplayTags.Damage = UGameplayTagsManager::Get().AddNativeGameplayTag( FName("Damage"), FString("Damage") );- 태그에맞는, 수정자설정void UAuraProjectileSpell::SpawnProjectile(const FVector& ProjectileTargetLocation){ ... //GE_Dama..

    [UE5] 데미지계산용 Meta 속성추가 // 데미지 계산하는 방법

    [UE5] 데미지계산용 Meta 속성추가 // 데미지 계산하는 방법

    * 데미지 계산하는 방법GE에서 직접계산하는게 아님meta속성, AS에 의해 아래 사항을 고려해서 최종데미지를 결정하고체력을 변화시키는 방식 * 현재 데미지 문제점 *  AS에 Meta속성추가, 구현서버에 복제할필요없이Local에서만 사용할거임UPROPERTY(BlueprintReadOnly, Category = "Meta Attributes") //복제안함FGameplayAttributeData IncomingDamage;ATTRIBUTE_ACCESSORS(UAuraAttributeSet, IncomingDamage);void UAuraAttributeSet::PostGameplayEffectExecute(const FGameplayEffectModCallbackData& Data){ ... ..