From 31271a62b01f894cdf05039f2e3a8b48d6c4b0eb Mon Sep 17 00:00:00 2001 From: "PCYPC\\pcy35" Date: Thu, 3 Aug 2023 15:59:38 +0900 Subject: [PATCH] =?UTF-8?q?[=EB=B0=95=EC=B9=98=EC=98=81]=20=EC=A0=84?= =?UTF-8?q?=ED=88=AC=20=EB=B0=8F=20=EC=B6=A9=EB=8F=8C=EC=8B=9C=EC=8A=A4?= =?UTF-8?q?=ED=85=9C=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Blueprints/BP_CombatCharacter.uasset | Bin 34977 -> 42892 bytes .../Gruntling/A_Guardian_Impact_Cue.uasset | Bin 0 -> 9052 bytes .../7/YS/ZFVZV5RGVXFDJDFNO8TVNW.uasset | Bin 6051 -> 6249 bytes Source/D1/CombatCharacter.cpp | 38 ++++++++---------- Source/D1/CombatCharacter.h | 18 ++++++--- Source/D1/Components/CollisionComponent.cpp | 6 --- 6 files changed, 30 insertions(+), 32 deletions(-) create mode 100644 Content/CombatSystem/CourseFiles/SoundFX/Gruntling/A_Guardian_Impact_Cue.uasset diff --git a/Content/CombatSystem/Blueprints/BP_CombatCharacter.uasset b/Content/CombatSystem/Blueprints/BP_CombatCharacter.uasset index be2604fad218f1f8ca692865afb66306f370c965..4aecd32d55cd34a1e3609f2800ae3eba9c740a48 100644 GIT binary patch delta 13228 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 delta 8188 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 literal 0 HcmV?d00001 diff --git a/Content/__ExternalActors__/Maps/ThirdPersonMap/7/YS/ZFVZV5RGVXFDJDFNO8TVNW.uasset b/Content/__ExternalActors__/Maps/ThirdPersonMap/7/YS/ZFVZV5RGVXFDJDFNO8TVNW.uasset index bb1604a72be0b348ee509d8ac1d21f50953f1b61..7da89d1a2a6698387eba096edfb9d83f1ea04798 100644 GIT binary patch delta 2138 zcma)-O-xfk5P;_uG_8eFX#3joV=Rb({In`4e?oy^3`+b#JraI{jkP5OB$$|b5~4&& z)~jOl$VJneUJNFJQR5#-^d!cEilB)e)WqPjkI>fJPnv<8o8a#^r+J>J-4hCtWE34#fm8orV^GkXilV{9(t{(9GG} zE%z?`ULJoo_VW7oA2Z>p9Pgx|O4|7mCu_4L#Gdig8jXr!4WvJaLt>C%C`Q_;Xp(8U@+7a^!t4SzF=T~XQ0RL3-q=2 z4xSA5fc);sf@fW5b#;S(xN~Gci3#`T-@8rdcgzTvPt_47Y|NP2BGZvV z(+y!7li8`%c3q*JJ?2D}(BjS9Am){JR%~jKsTJsaMVLnH?2@Tnr+2U=(~2}3d7IXo zBsrPaVr9=|J=UNIHODE|bi$N-fl6_*i&u?fEzBL?0?Mz(0lR+As11ThZS z$t}VGZ+jGaI=qDy5#JlwEY@m42d#R8OK8mOn{5j_XEjR>cG+q#i^+pWUb|<|4=X`& zu~*i@I;*;XbTQH+!|G~BGr499BjqK19^VK#?1ar?z^?_0ixt^Q*`&>~j~G=CuvJWA z5=~53)Z2xT5;Tgn%o8}6S=LMG%qeFdjd2F>Hc=)TDPy9w#KBB9DwnHo%aBD6!QRN; WO#ZD_C0C3TPHFYO-NpLswSNJep%AM8 delta 2031 zcma)7O=uHQ5S~r4l46sl?dEOLCPk~Q)&9jAZEB&!)M^o`w1O8wL|PCL6g_xr6b~M& zypuv(!DA01Iq0beMXKIBRP>~W9u$8nDALqDATO>v8Ym91ikf~T;mM6Lb1GPP ze0t?#;Yt3~!jGRT#iew9v99Ok(yi4;24aY3SU)pPw!g!yOE%^GlT8#VW;?pB+NE3| zW0XDwXN=MXGZ!p&GBCvYH==j39cN8Sa9!+MN8E0*Yw5pa*S|&KDeFi>vwb!;41?6)dT{3K^z{IBi;hb2?0JMPNrE4*NyxC z7ol`ti%`0+g&X93i?x6`p8`ABC)1!&i|yr;qZ?rSN5mZ{=X3j)5oS3^N-mO@&=0qx zoX}bM;lx+Y$Mg4YEZvm@-Cevm>CTH2pNy9#)8kX1;Bs>Q1jHA>5kJC%9Q%g2As^f? z^s^i2osmyC3?Yy^L63k4Jsb4X_v&+M4;t5BznP{2hRBOD-K-7Oq63kPlCRRsHE-$f z^-7`b&CRo8!kXk@TIW=+PO0W(i+EVm ze=m|0R@bUy%GBpoEGhYJ3}71@QGG{QNsCv~VS(3l=@NA`aFVEguToQ0 findHitMontage(TEXT("/Script/Engine.AnimMontage'/Game/CombatSystem/CourseFiles/Animations/HitReactions/Standing_React_Large_Front_Montage.Standing_React_Large_Front_Montage'")); - if (findHitMontage.Succeeded()) - HitMontage = findHitMontage.Object; } void ACombatCharacter::BeginPlay() @@ -107,14 +102,15 @@ float ACombatCharacter::TakeDamage(float Damage, FDamageEvent const& DamageEvent CharacterTakeDamage(fDamage); - //TODO : Sound, Effect Emitter, Play anim montage - //static void PlaySoundAtLocation( - // const UObject * WorldContextObject, USoundBase * Sound, FVector Location, - // float VolumeMultiplier = 1.f, float PitchMultiplier = 1.f, float StartTime = 0.f, - // class USoundAttenuation* AttenuationSettings = nullptr, USoundConcurrency * ConcurrencySettings = nullptr, - // const UInitialActiveSoundParams * InitialParams = nullptr) - //UGameplayStatics::PlaySoundAtLocation(this, HitSound, PointDamageEvent->HitInfo.Location); + //Play Sound + UGameplayStatics::PlaySoundAtLocation(this, HitSound, PointDamageEvent->HitInfo.Location); + + //Hit Effect + UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), HitEmitter, PointDamageEvent->HitInfo.Location); + + //Play Animation PlayAnimMontage(HitMontage); + IsDisabled = true; } return fDamage; @@ -308,13 +304,13 @@ void ACombatCharacter::ApplyHitReactionPhysicsVelocity(float InitialSpeed) void ACombatCharacter::EnableRagdoll() { - GetCharacterMovement()->SetMovementMode(EMovementMode::MOVE_None, 0); - GetCapsuleComponent()->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Ignore); - GetCapsuleComponent()->SetCollisionResponseToChannel(ECollisionChannel::ECC_Camera, ECollisionResponse::ECR_Ignore); + GetCharacterMovement()->SetMovementMode(EMovementMode::MOVE_None, 0); //movement ´õ ÀÌ»ó ¾ø°Ô ¹Ù²Þ + GetCapsuleComponent()->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Ignore); //Ãæµ¹¹«½Ã + GetCapsuleComponent()->SetCollisionResponseToChannel(ECollisionChannel::ECC_Camera, ECollisionResponse::ECR_Ignore); //Ä«¸Þ¶ó Ãæµ¹¹«½Ã FAttachmentTransformRules rules(EAttachmentRule::KeepWorld, EAttachmentRule::KeepWorld, EAttachmentRule::KeepWorld, true); - GetCameraBoom()->AttachToComponent(GetMesh(), rules, PelvisBoneName); - GetCameraBoom()->bDoCollisionTest = false; - GetMesh()->SetCollisionProfileName(TEXT("ragdoll"), true); + GetCameraBoom()->AttachToComponent(GetMesh(), rules, PelvisBoneName); //camera¸¦ ôÃß»À¿¡ ºÙÀÓ + GetCameraBoom()->bDoCollisionTest = false; //Ä«¸Þ¶ó Ãæµ¹ ¾ø°Ô ÇÔ + GetMesh()->SetCollisionProfileName(TEXT("ragdoll"), true); //ragdoll ·Î º¯°æ GetMesh()->SetAllBodiesBelowSimulatePhysics(PelvisBoneName, true, true); GetMesh()->SetAllBodiesBelowPhysicsBlendWeight(PelvisBoneName, 1.f); } @@ -370,10 +366,10 @@ void ACombatCharacter::PerformDeath() { IsDead = true; EnableRagdoll(); - ApplyHitReactionPhysicsVelocity(2000.f); + ApplyHitReactionPhysicsVelocity(2000.f); //Ãæµ¹À» Á» ´õ ±×·²½ÎÇÏ°Ô Çϱâ À§Çؼ­ µÞ¹æÇâÀ¸·Î Ãæ°Ý if (IsValid(CombatComponent->GetMainWeapon())) - CombatComponent->GetMainWeapon()->SimulateWeaponPhysics(); + CombatComponent->GetMainWeapon()->SimulateWeaponPhysics(); //¹«±âÀÇ Ãæµ¹Å´ FTimerHandle deathTimer; GetWorld()->GetTimerManager().SetTimer(deathTimer, FTimerDelegate::CreateLambda([&]() @@ -381,7 +377,7 @@ void ACombatCharacter::PerformDeath() if (IsValid(CombatComponent->GetMainWeapon())) CombatComponent->GetMainWeapon()->Destroy(); this->Destroy(); - }), 4.f, false); + }), 4.f, false); // 4ÃÊ ÈÄ¿¡ object »èÁ¦ } bool ACombatCharacter::CanPerformToggleCombat() diff --git a/Source/D1/CombatCharacter.h b/Source/D1/CombatCharacter.h index b198af4b..b3164ac9 100644 --- a/Source/D1/CombatCharacter.h +++ b/Source/D1/CombatCharacter.h @@ -102,6 +102,7 @@ private: void PerformAttack(int32 attackIndex); void PerformDodge(); + UFUNCTION(BlueprintCallable) //Àӽà void PerformDeath(); bool CanPerformToggleCombat(); @@ -115,19 +116,26 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Weapon", meta = (AllowPrivateAccess = "true")) TSubclassOf Weapon; - UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true")) + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Hit", meta = (AllowPrivateAccess = "true")) FName PelvisBoneName; -private: - //TODO : particle, sound Ãß°¡ - //class USoundWave* HitSound; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Hit", meta = (AllowPrivateAccess = "true")) TObjectPtr HitMontage; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Hit", meta = (AllowPrivateAccess = "true")) + TObjectPtr HitSound; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Hit", meta = (AllowPrivateAccess = "true")) + TObjectPtr HitEmitter; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats", meta = (AllowPrivateAccess = "true")) + float Health; private: bool CombatEnabled; bool IsTogglingCombat; bool IsDodge; bool IsDisabled; bool IsDead; - float Health; + }; diff --git a/Source/D1/Components/CollisionComponent.cpp b/Source/D1/Components/CollisionComponent.cpp index 7b844130..7b36aabe 100644 --- a/Source/D1/Components/CollisionComponent.cpp +++ b/Source/D1/Components/CollisionComponent.cpp @@ -36,12 +36,6 @@ void UCollisionComponent::TickComponent(float DeltaTime, ELevelTick TickType, FA void UCollisionComponent::CollisionTrace() { - //static bool SphereTraceMultiForObjects( -// const UObject * WorldContextObject, const FVector Start, -// const FVector End, float Radius, const TArray > &ObjectTypes, -// bool bTraceComplex, const TArray&ActorsToIgnore, EDrawDebugTrace::Type DrawDebugType, -// TArray&OutHits, bool bIgnoreSelf, FLinearColor TraceColor = FLinearColor::Red, -// FLinearColor TraceHitColor = FLinearColor::Green, float DrawTime = 5.0f); FVector StartLocation, EndLocation; StartLocation = CollisionMeshComponent->GetSocketLocation(StartSocketName); EndLocation = CollisionMeshComponent->GetSocketLocation(EndSocketName);