From 8da4bccfe59218b1ea59fd48eb4b5843323f9e88 Mon Sep 17 00:00:00 2001 From: "PCYPC\\pcy35" Date: Tue, 5 Sep 2023 17:13:47 +0900 Subject: [PATCH] =?UTF-8?q?[=EB=B0=95=EC=B9=98=EC=98=81]=20-=20=EA=B0=81?= =?UTF-8?q?=EC=A2=85=20=EB=B2=84=EA=B7=B8=20=EC=A1=B0=EC=B9=98=20-=20?= =?UTF-8?q?=EB=AA=AC=EC=8A=A4=ED=84=B0=20=EA=B3=B5=EA=B2=A9=20=EC=8B=9C=20?= =?UTF-8?q?=ED=9A=8C=EC=A0=84=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80=20-?= =?UTF-8?q?=20=EA=B5=AC=EB=A5=B4=EA=B8=B0=20=EC=8B=9C=20=EB=AC=B4=EC=A0=81?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Config/DefaultEngine.ini | 1 + .../Blueprints/AI/BP_BossEnemy.uasset | Bin 59492 -> 71316 bytes .../Blueprints/AI/BP_MobEnemy.uasset | Bin 36569 -> 37138 bytes .../Blueprints/Animnotifies/IFrame_ANS.uasset | Bin 0 -> 30323 bytes .../Blueprints/Timeline/MovementCurve.uasset | Bin 0 -> 1893 bytes .../Timeline/RotateToTargetCurve.uasset | Bin 1923 -> 1923 bytes .../Animations/Dodge/Rolling_Montage.uasset | Bin 12418 -> 14029 bytes Content/CombatSystem/UI/WBP_BossHealth.uasset | Bin 47776 -> 47721 bytes .../0/TW/0VDDP91WGE7KN4PI09N3CG.uasset | Bin 8252 -> 8757 bytes .../C/XB/VDN1AZGBR27RRAVN232UU7.uasset | Bin 7744 -> 8055 bytes .../AI/BehaviorTreeNodes/T_PerformAction.cpp | 6 ++ .../D1/AI/BehaviorTreeNodes/T_PerformAction.h | 1 + Source/D1/AI/BossEnemy.h | 2 +- Source/D1/AI/CombatAIController.cpp | 29 +++----- Source/D1/AI/MasterAI.cpp | 70 ++++++++++++++++-- Source/D1/AI/MasterAI.h | 25 ++++++- Source/D1/CombatPlayerCharacter.cpp | 36 ++++++--- Source/D1/CombatPlayerCharacter.h | 7 +- Source/D1/Components/CollisionComponent.cpp | 9 ++- Source/D1/Components/TargetingComponent.cpp | 5 +- Source/D1/Interface/CombatInterface.h | 6 +- 21 files changed, 149 insertions(+), 48 deletions(-) create mode 100644 Content/CombatSystem/Blueprints/Animnotifies/IFrame_ANS.uasset create mode 100644 Content/CombatSystem/Blueprints/Timeline/MovementCurve.uasset diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index a767fe5a..9ae2485f 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -145,4 +145,5 @@ ManualIPAddress= +ClassRedirects=(OldName="/Script/D1.CombatCharacter",NewName="/Script/D1.CombatPlayerCharacter") +FunctionRedirects=(OldName="/Script/D1.ICombatInterface.PerformCombatAction",NewName="/Script/D1.ICombatInterface.PerformAction") +FunctionRedirects=(OldName="/Script/D1.ICombatInterface.PerformCombatAttack",NewName="/Script/D1.ICombatInterface.PerformAttack") ++FunctionRedirects=(OldName="/Script/D1.ICombatInterface.SetIFrames",NewName="/Script/D1.ICombatInterface.SetIFrame") diff --git a/Content/CombatSystem/Blueprints/AI/BP_BossEnemy.uasset b/Content/CombatSystem/Blueprints/AI/BP_BossEnemy.uasset index 57f00da6b81ff2233df660345e63d8fc83588ff2..138b79008c51a71550670a920356002e1bae2ac9 100644 GIT binary patch literal 71316 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 z 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 diff --git a/Content/CombatSystem/Blueprints/AI/BP_MobEnemy.uasset b/Content/CombatSystem/Blueprints/AI/BP_MobEnemy.uasset index d6588a50c7d506daa6dde34b76d529a461d65f8c..3f5659d3ab3637f9150a8adaf766f756926c9f5a 100644 GIT binary patch delta 14145 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 delta 13714 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 IQc2SP1Ld|@aR2}S literal 0 HcmV?d00001 diff --git a/Content/CombatSystem/Blueprints/Timeline/RotateToTargetCurve.uasset b/Content/CombatSystem/Blueprints/Timeline/RotateToTargetCurve.uasset index 53332ff88091202987b87ba4821c8e641d6ca7a2..68d0a8002d9e3e679fe7f28105a5b79f1ae287a0 100644 GIT binary patch delta 50 zcmZqXZ{}aXC=he>)rG59Zn(~p5Z=E`Y(nH_0mkX9j7*a!vPp3>F#th>-K?3Cc9YMt GZ36)9tP!{X delta 59 zcmZqXZ{}aXC?I$5h{N`;4L)nU4)V;JHErEy0mkX9lNYeDqu>Bm7PbaE28IUv$!FQN F0RXdY6?6aq diff --git a/Content/CombatSystem/CourseFiles/Animations/Dodge/Rolling_Montage.uasset b/Content/CombatSystem/CourseFiles/Animations/Dodge/Rolling_Montage.uasset index 489176c9d4cd558d7eb6e9027adb842e73a2885b..93e5eb0857ee8cb0a7143039fbf25a90142c783b 100644 GIT binary patch literal 14029 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 eY%5dR|z^MJV>qhLYzxY@)6ynlMDW~Fo+l-u7 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 Zi;B(ej7bPdygemY`N}DC8{!%9{|`+83mE_a diff --git a/Content/CombatSystem/UI/WBP_BossHealth.uasset b/Content/CombatSystem/UI/WBP_BossHealth.uasset index 7658a2d84655591a9d43cd18cc29eb9243250cea..b6a29b66a860f05889513ef9b1e42260e14f0f65 100644 GIT binary patch delta 8194 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 diff --git a/Content/__ExternalActors__/Maps/ThirdPersonMap/0/TW/0VDDP91WGE7KN4PI09N3CG.uasset b/Content/__ExternalActors__/Maps/ThirdPersonMap/0/TW/0VDDP91WGE7KN4PI09N3CG.uasset index b9df30ccbb91912666ddc10070af717dd71460bd..006e8828d2f603cc512fc2cb94f2d22d8cfdd9cf 100644 GIT binary patch literal 8757 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 literal 8252 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 H^bh<76~BZ( diff --git a/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.cpp b/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.cpp index 3cfeb6e3..7b42bca1 100644 --- a/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.cpp +++ b/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.cpp @@ -4,8 +4,14 @@ #include "AI/BehaviorTreeNodes/T_PerformAction.h" #include "AIController.h" +#include "Definitions/CombatGameplayTags.h" #include "Interface/CombatInterface.h" +UT_PerformAction::UT_PerformAction() +{ + StateTag = FCombatGameplayTags::Get().Character_State_GeneralActionState; +} + EBTNodeResult::Type UT_PerformAction::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) { EBTNodeResult::Type result = Super::ExecuteTask(OwnerComp, NodeMemory); diff --git a/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.h b/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.h index c9902277..aa5482a8 100644 --- a/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.h +++ b/Source/D1/AI/BehaviorTreeNodes/T_PerformAction.h @@ -15,6 +15,7 @@ class D1_API UT_PerformAction : public UBTTaskNode GENERATED_BODY() public: + UT_PerformAction(); virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override; private: diff --git a/Source/D1/AI/BossEnemy.h b/Source/D1/AI/BossEnemy.h index 372e6c19..2927a79f 100644 --- a/Source/D1/AI/BossEnemy.h +++ b/Source/D1/AI/BossEnemy.h @@ -48,5 +48,5 @@ private: UPROPERTY(EditAnywhere, Blueprintable, Category="Initialization", meta=(AllowPrivateAccess="true")) FName WeaponHandSocketName; UPROPERTY(VisibleAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess="true")) - TObjectPtr BossHealthWidget; + TObjectPtr BossHealthWidget; }; diff --git a/Source/D1/AI/CombatAIController.cpp b/Source/D1/AI/CombatAIController.cpp index 1163eb70..0ecd75a5 100644 --- a/Source/D1/AI/CombatAIController.cpp +++ b/Source/D1/AI/CombatAIController.cpp @@ -53,38 +53,29 @@ void ACombatAIController::OnPossess(APawn* InPawn) void ACombatAIController::OnUpdatePerception(const TArray& PerceivedActors) { - for (auto SensoredActor : PerceivedActors) + for (auto SensoredActor : PerceivedActors) //탐지된 Actor { + IGameplayTagAssetInterface* CurActor = Cast(SensoredActor); //Player가 아닌 Actor는 탐지되도 반응 없게 함 + if(!CurActor) + continue; + if(!CurActor->HasMatchingGameplayTag(FCombatGameplayTags::Get().Character_Player)) + continue; + FActorPerceptionBlueprintInfo PerceptionInfo; GetPerceptionComponent()->GetActorsPerception(SensoredActor, PerceptionInfo); - for(int i = 0; i < PerceptionInfo.LastSensedStimuli.Num(); i++) + for(int i = 0; i < PerceptionInfo.LastSensedStimuli.Num(); i++) //탐지방식에 따른 for문 { auto Info = PerceptionInfo.LastSensedStimuli[i]; auto SensedClass = UAIPerceptionSystem::GetSenseClassForStimulus(this, Info); if(SensedClass == UAISense_Sight::StaticClass()) { - if(Info.WasSuccessfullySensed()) - { - IGameplayTagAssetInterface* CurActor = Cast(SensoredActor); - if(!CurActor) - continue; - if(CurActor->HasMatchingGameplayTag(FCombatGameplayTags::Get().Character_Player)) - SetTargetActor(SensoredActor); - } - else - SetTargetActor(SensoredActor); + SetTargetActor(SensoredActor); } else if(SensedClass == UAISense_Damage::StaticClass()) { if(Info.WasSuccessfullySensed() && !Info.IsExpired()) //After DamageConfig->GetMaxAge then Expired - { - IGameplayTagAssetInterface* CurActor = Cast(SensoredActor); - if(!CurActor) - continue; - if(CurActor->HasMatchingGameplayTag(FCombatGameplayTags::Get().Character_Player)) - SetTargetActor(SensoredActor); - } + SetTargetActor(SensoredActor); } } } diff --git a/Source/D1/AI/MasterAI.cpp b/Source/D1/AI/MasterAI.cpp index 58596328..a1d4ee8b 100644 --- a/Source/D1/AI/MasterAI.cpp +++ b/Source/D1/AI/MasterAI.cpp @@ -13,6 +13,7 @@ #include "Engine/DamageEvents.h" #include "NiagaraFunctionLibrary.h" #include "Components/CollisionComponent.h" +#include "Components/TimelineComponent.h" #include "Components/WidgetComponent.h" #include "DamageType/AttackDamageType.h" #include "Kismet/KismetMathLibrary.h" @@ -89,6 +90,11 @@ AMasterAI::AMasterAI() InputCollisionObjectTypes.Add(UEngineTypes::ConvertToObjectType(ECollisionChannel::ECC_Pawn)); MainWeaponCollisionComponent->SetCollisionObjectTypes(InputCollisionObjectTypes); MainWeaponCollisionComponent->SetDrawDebugType(EDrawDebugTrace::None); + FGameplayTagContainer GameplayTags(FCombatGameplayTags::Get().Character_Enemy); + MainWeaponCollisionComponent->SetGameplayTagsIgnore(GameplayTags); + + //Settings OwnedGameplayTags + OwnedGameplayTags.AddTag(FCombatGameplayTags::Get().Character_Enemy); //Setting MovementSpeed MovementSpeedMode = EMovementSpeedMode::Jogging; @@ -96,20 +102,27 @@ AMasterAI::AMasterAI() JoggingSpeed = 500.f; SprintSpeed = 700.f; - //Settings OwnedGameplayTags - OwnedGameplayTags.AddTag(FCombatGameplayTags::Get().Character_Enemy); - PelvisBoneName = TEXT("pelvis"); + + //Setting Timeline + RotateToTargetTimeLineComponent = CreateDefaultSubobject(TEXT("RotateToTargetTimeLineComponent")); } void AMasterAI::BeginPlay() { - Super::BeginPlay(); // BP의 BeginPlay가 먼저 호출됨 (ReceiveBeginPlay) // 따라서 생성자로 올림 //StatsComponent->InitializeStats(); + + //Setting Timeline + FOnTimelineFloat TimelineFloatCallback; + TimelineFloatCallback.BindUFunction(this, FName("RotateToTargetUpdate")); + RotateToTargetTimeLineComponent->SetTimelineLength(0.25f); + RotateToTargetTimeLineComponent->SetLooping(false); + if(CurveFloatTimeline) + RotateToTargetTimeLineComponent->AddInterpFloat(CurveFloatTimeline, TimelineFloatCallback); } float AMasterAI::TakeDamage(float Damage, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) @@ -178,8 +191,8 @@ FRotator AMasterAI::GetDesiredRotation_Implementation() bool AMasterAI::CanReceiveDamage_Implementation() { - bool result; - result = (StateManagerComponent->GetCurrentState() != FCombatGameplayTags::Get().Character_State_Dead); + bool result = (StateManagerComponent->GetCurrentState() != FCombatGameplayTags::Get().Character_State_Dead); + result &= !bEnableIFrame; return result; } @@ -198,6 +211,11 @@ void AMasterAI::DeactivateCollision_Implementation(ECollisionPart CollisionPart) MainWeaponCollisionComponent->DeactivateCollision(); } +void AMasterAI::SetIFrame_Implementation(bool InputEnableIFrame) +{ + bEnableIFrame = InputEnableIFrame; +} + float AMasterAI::PerformAction(FGameplayTag ActionTag, FGameplayTag StateTag, int32 MontageIndex, bool bRandomIndex) { TArray montages = GetActionMontage(ActionTag); @@ -280,6 +298,7 @@ void AMasterAI::OnTargeted(bool bIsTargeted) void AMasterAI::OnTargetSet(AActor* NewTarget) { + TargetActor = NewTarget; } void AMasterAI::SetMovementSpeedMode(EMovementSpeedMode NewSpeedMode) @@ -310,7 +329,9 @@ void AMasterAI::CharacterStateBegin(FGameplayTag CharState) if (FGameplayTag::EmptyTag == CharState) {/*None*/} else if (FCombatGameplayTags::Get().Character_State_Attacking == CharState) - {/*None*/} + { + RotateToTarget(); + } else if (FCombatGameplayTags::Get().Character_State_Dodging == CharState) {/*None*/} else if (FCombatGameplayTags::Get().Character_State_GeneralActionState == CharState) @@ -328,7 +349,9 @@ void AMasterAI::CharacterStateEnd(FGameplayTag CharState) if (FGameplayTag::EmptyTag == CharState) {/*None*/} else if (FCombatGameplayTags::Get().Character_State_Attacking == CharState) - {/*None*/} + { + StopRotateToTarget(); + } else if (FCombatGameplayTags::Get().Character_State_Dodging == CharState) {/*None*/} else if (FCombatGameplayTags::Get().Character_State_GeneralActionState == CharState) @@ -428,6 +451,37 @@ void AMasterAI::ApplyImpactEffect(EDamageType InDamageType) UNiagaraFunctionLibrary::SpawnSystemAtLocation(GetWorld(), HitEmitter, LastHitInfo.Location); } +void AMasterAI::RotateToTarget() +{ + RotateToTargetTimeLineComponent->PlayFromStart(); +} + +void AMasterAI::StopRotateToTarget() +{ + RotateToTargetTimeLineComponent->Stop(); +} + +void AMasterAI::RotateToTargetUpdate(float Value) +{ + if(!IsValid(TargetActor)) + return; + + + const FRotator CurrentRotator = GetActorRotation(); + FVector StartVector = GetActorLocation(); + FVector TargetVector = TargetActor->GetActorLocation(); + FRotator TargetRotator = UKismetMathLibrary::FindLookAtRotation(StartVector, TargetVector); + + UWorld* WorldPointer = GetWorld(); + if(!WorldPointer) + return; + double deltaTime = UGameplayStatics::GetWorldDeltaSeconds(WorldPointer); + FRotator NewRotator = FMath::Lerp(CurrentRotator, TargetRotator, Value); + NewRotator.Roll = CurrentRotator.Roll; + NewRotator.Pitch = CurrentRotator.Pitch; + SetActorRotation(NewRotator); +} + void AMasterAI::PerformDeath() { EnableRagdoll(); diff --git a/Source/D1/AI/MasterAI.h b/Source/D1/AI/MasterAI.h index ed7a3a74..43db87ca 100644 --- a/Source/D1/AI/MasterAI.h +++ b/Source/D1/AI/MasterAI.h @@ -64,6 +64,9 @@ public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent) void DeactivateCollision(ECollisionPart CollisionPart); virtual void DeactivateCollision_Implementation(ECollisionPart CollisionPart) override; + UFUNCTION(BlueprintCallable, BlueprintNativeEvent) + void SetIFrame(bool InputEnableIFrame); + virtual void SetIFrame_Implementation(bool InputEnableIFrame) override; virtual EMovementSpeedMode GetCombatMovementSpeedMode() override { return GetMovementSpeedMode(); } virtual float PerformAction(FGameplayTag ActionTag, FGameplayTag StateTag, int32 MontageIndex, bool bRandomIndex); @@ -75,7 +78,7 @@ public: // Inherited via IGameplayTagAssetInterface virtual void GetOwnedGameplayTags(FGameplayTagContainer& TagContainer) const override { TagContainer = OwnedGameplayTags; } -public: //Using Child Class +public: virtual void OnTargetSet(AActor* NewTarget); public: void SetMovementSpeedMode(EMovementSpeedMode NewSpeedMode); @@ -95,6 +98,12 @@ private: void ApplyHitReaction(EDamageType InDamageType); void ApplyImpactEffect(EDamageType InDamageType); + //Timeline + void RotateToTarget(); + void StopRotateToTarget(); + UFUNCTION() + void RotateToTargetUpdate(float Value); + protected: virtual void PerformDeath(); bool PerformHitStun(); @@ -158,12 +167,22 @@ private: TArray> PatrolPoints; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GameplayTags", meta = (AllowPrivateAccess = "true")) FGameplayTagContainer OwnedGameplayTags; - + +private: //Timeline + UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Timeline", meta = (AllowPrivateAccess = "true")) + TObjectPtr RotateToTargetTimeLineComponent; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Timeline", meta = (AllowPrivateAccess = "true")) + TObjectPtr CurveFloatTimeline; + const float RotateToTargetInterpSpeed = 9.f; private: FTimerHandle StaminaTimerHandle; private: bool bCanMove = true; bool bHitFront; - FHitResult LastHitInfo; + bool bEnableIFrame; + FHitResult LastHitInfo; + + UPROPERTY() + TObjectPtr TargetActor; }; diff --git a/Source/D1/CombatPlayerCharacter.cpp b/Source/D1/CombatPlayerCharacter.cpp index 92604ef7..2dd1aecb 100644 --- a/Source/D1/CombatPlayerCharacter.cpp +++ b/Source/D1/CombatPlayerCharacter.cpp @@ -103,11 +103,7 @@ ACombatPlayerCharacter::ACombatPlayerCharacter() PelvisBoneName = TEXT("pelvis"); //Setting Timeline - FOnTimelineFloat CurveFloatCallback; - CurveFloatCallback.BindUFunction(this, FName("RotateToTargetUpdate")); RotateToTargetTimeLineComponent = CreateDefaultSubobject(TEXT("RotateToTargetTimeLineComponent")); - RotateToTargetTimeLineComponent->SetTimelineLength(5.0f); - RotateToTargetTimeLineComponent->AddInterpFloat(CurveFloatTimeline, CurveFloatCallback); } void ACombatPlayerCharacter::BeginPlay() @@ -131,6 +127,14 @@ void ACombatPlayerCharacter::BeginPlay() ABaseEquippable* SpawnItem = Cast(GetWorld()->SpawnActor(Weapon, &GetActorTransform(), spawnParam)); if (SpawnItem) SpawnItem->OnEquipped(); + + //Setting Timeline - if you set on Constructor, Can not get Curve + FOnTimelineFloat TimelineFloatCallback; + TimelineFloatCallback.BindUFunction(this, FName("RotateToTargetUpdate")); + RotateToTargetTimeLineComponent->SetTimelineLength(5.0f); + RotateToTargetTimeLineComponent->SetLooping(false); + if(CurveFloatTimeline) + RotateToTargetTimeLineComponent->AddInterpFloat(CurveFloatTimeline, TimelineFloatCallback); } void ACombatPlayerCharacter::Tick(float DeltaSeconds) @@ -200,8 +204,8 @@ FRotator ACombatPlayerCharacter::GetDesiredRotation_Implementation() bool ACombatPlayerCharacter::CanReceiveDamage_Implementation() { - bool result; - result = (StateManagerComponent->GetCurrentState() != FCombatGameplayTags::Get().Character_State_Dead); + bool result = (StateManagerComponent->GetCurrentState() != FCombatGameplayTags::Get().Character_State_Dead); + result &= !bEnableIFrame; return result; } @@ -270,6 +274,11 @@ void ACombatPlayerCharacter::DeactivateCollision_Implementation(ECollisionPart C weapon->DeactivateCollision(CollisionPart); } +void ACombatPlayerCharacter::SetIFrame_Implementation(bool InputEnableIFrame) +{ + bEnableIFrame = InputEnableIFrame; +} + float ACombatPlayerCharacter::PerformAction(FGameplayTag ActionTag, FGameplayTag StateTag, int32 MontageIndex, bool bRandomIndex) { ABaseWeapon* CurrentWeapon = CombatComponent->GetMainWeapon(); @@ -721,14 +730,21 @@ void ACombatPlayerCharacter::StopRotateToTarget() RotateToTargetTimeLineComponent->Stop(); } -void ACombatPlayerCharacter::RotateToTargetUpdate(float Output) +void ACombatPlayerCharacter::RotateToTargetUpdate(float Value) { - if(!IsValid(TargetingComponent)) + if(!IsValid(TargetingComponent->GetTargetActor())) return; const FRotator CurrentRotator = GetActorRotation(); - FRotator TargetRotator = UKismetMathLibrary::FindLookAtRotation(GetActorLocation(), TargetingComponent->GetTargetActor()->GetActorLocation()); - double deltaTime = UGameplayStatics::GetWorldDeltaSeconds(GetOwner()); + FVector StartVector = GetActorLocation(); + FVector TargetVector = TargetingComponent->GetTargetActor()->GetActorLocation(); + FRotator TargetRotator = UKismetMathLibrary::FindLookAtRotation(StartVector, TargetVector); + + UWorld* WorldPointer = GetWorld(); + if(!WorldPointer) + return; + double deltaTime = UGameplayStatics::GetWorldDeltaSeconds(WorldPointer); + FRotator NewRotator = FMath::RInterpTo(CurrentRotator, TargetRotator, deltaTime, RotateToTargetInterpSpeed); NewRotator.Roll = CurrentRotator.Roll; NewRotator.Pitch = CurrentRotator.Pitch; diff --git a/Source/D1/CombatPlayerCharacter.h b/Source/D1/CombatPlayerCharacter.h index 032367c0..1b81e421 100644 --- a/Source/D1/CombatPlayerCharacter.h +++ b/Source/D1/CombatPlayerCharacter.h @@ -115,6 +115,9 @@ public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent) void DeactivateCollision(ECollisionPart CollisionPart); virtual void DeactivateCollision_Implementation(ECollisionPart CollisionPart) override; + UFUNCTION(BlueprintCallable, BlueprintNativeEvent) + void SetIFrame(bool InputEnableIFrame); + virtual void SetIFrame_Implementation(bool InputEnableIFrame) override; virtual EMovementSpeedMode GetCombatMovementSpeedMode() override { return GetMovementSpeedMode(); } virtual float PerformAction(FGameplayTag ActionTag, FGameplayTag StateTag, int32 MontageIndex, bool bRandomIndex = false); @@ -163,7 +166,8 @@ private: //Timeline void RotateToTarget(); void StopRotateToTarget(); - void RotateToTargetUpdate(float Output); + UFUNCTION() + void RotateToTargetUpdate(float Value); private: void PerformDeath(); @@ -233,6 +237,7 @@ private: bool bAttackCharged; bool bCanMove = true; bool bHitFront; + bool bEnableIFrame; FHitResult LastHitInfo; FGameplayTagContainer OwnedGameplayTags; }; diff --git a/Source/D1/Components/CollisionComponent.cpp b/Source/D1/Components/CollisionComponent.cpp index f45fd54d..8c5a1e92 100644 --- a/Source/D1/Components/CollisionComponent.cpp +++ b/Source/D1/Components/CollisionComponent.cpp @@ -65,14 +65,17 @@ void UCollisionComponent::ActivateCollision() bool UCollisionComponent::CanHitActor(AActor* InActor) { - bool result = false; + bool result = true; IGameplayTagAssetInterface* tagInterface = Cast(InActor); - if(tagInterface) + if(!tagInterface) + return false; + else { result &= !tagInterface->HasAnyMatchingGameplayTags(GameplayTagsIgnore); //Ignore Tag result &= !AlreadyHitActors.Contains(InActor); //Alread Hit result &= !ActorsToIgnore.Contains(InActor); //Ignore actor + return result; } - return result; + } diff --git a/Source/D1/Components/TargetingComponent.cpp b/Source/D1/Components/TargetingComponent.cpp index f5b386ef..1d6e18a5 100644 --- a/Source/D1/Components/TargetingComponent.cpp +++ b/Source/D1/Components/TargetingComponent.cpp @@ -160,7 +160,10 @@ void UTargetingComponent::UpdateTargetingControlRotation() TargetLocation = TargetActor->GetActorLocation() - FVector(0.f, 0.f, 100.f); FRotator TargetRotation = UKismetMathLibrary::FindLookAtRotation(GetOwner()->GetActorLocation(), TargetLocation); - FRotator CameraRotation = FMath::RInterpTo(OwnerController->K2_GetActorRotation(), TargetRotation, UGameplayStatics::GetWorldDeltaSeconds(GetOwner()), TargetRotationInterpSpeed); + UWorld* WorldPointer = GetWorld(); + if(!WorldPointer) + return; + FRotator CameraRotation = FMath::RInterpTo(OwnerController->K2_GetActorRotation(), TargetRotation, UGameplayStatics::GetWorldDeltaSeconds(WorldPointer), TargetRotationInterpSpeed); OwnerController->SetControlRotation(UKismetMathLibrary::MakeRotator(OwnerController->K2_GetActorRotation().Roll, CameraRotation.Pitch, CameraRotation.Yaw)); } else diff --git a/Source/D1/Interface/CombatInterface.h b/Source/D1/Interface/CombatInterface.h index 0402268a..88f216e0 100644 --- a/Source/D1/Interface/CombatInterface.h +++ b/Source/D1/Interface/CombatInterface.h @@ -4,6 +4,7 @@ #include "CoreMinimal.h" #include "GameplayTagContainer.h" +#include "Definitions/CombatGameplayTags.h" #include "Definitions/GameEnums.h" #include "UObject/Interface.h" #include "CombatInterface.generated.h" @@ -40,12 +41,13 @@ public: void ActivateCollision(ECollisionPart CollisionPart); UFUNCTION(BlueprintCallable, BlueprintNativeEvent) void DeactivateCollision(ECollisionPart CollisionPart); - + UFUNCTION(BlueprintCallable, BlueprintNativeEvent) + void SetIFrame(bool InputEnableIFrame); UFUNCTION() virtual EMovementSpeedMode GetCombatMovementSpeedMode() = 0; UFUNCTION(Category="CombatActions") - virtual float PerformAction(FGameplayTag ActionTag, FGameplayTag StateTag, int32 MontageIndex, bool bRandomIndex = false); + virtual float PerformAction(FGameplayTag ActionTag, FGameplayTag StateTag = FCombatGameplayTags::Get().Character_State_GeneralActionState, int32 MontageIndex = 0, bool bRandomIndex = false); UFUNCTION(Category="CombatActions") virtual float PerformAttack(FGameplayTag AttackType, int32 AttackIndex, bool bRandomIndex = false);