From d95a23f2e7d64de67a2ed142eeac9c4b42686e9d Mon Sep 17 00:00:00 2001 From: Foxim Date: Thu, 20 Feb 2025 18:00:26 +0100 Subject: [PATCH] feat: add all controls and dodge logic Added dodge mechanic with temporary values for testing. Dodge properties (dodge force., cooldown) are subject to change. --- .../Player/BP_ExoPlayerController.uasset | Bin 20170 -> 21791 bytes .../Inputs/IMC_ExoMappingContext.uasset | Bin 7907 -> 13310 bytes .../Player/Inputs/Inputs/AI_Aim.uasset | Bin 0 -> 1361 bytes .../Player/Inputs/Inputs/AI_Crouch.uasset | Bin 0 -> 1376 bytes .../Player/Inputs/Inputs/AI_Dodge.uasset | Bin 0 -> 1654 bytes .../Player/Inputs/Inputs/AI_Jump.uasset | Bin 0 -> 1649 bytes .../Player/Inputs/Inputs/AI_MeleAttack.uasset | Bin 0 -> 1396 bytes .../Player/Inputs/Inputs/AI_Reload.uasset | Bin 0 -> 1376 bytes .../Player/Inputs/Inputs/AI_Shoot.uasset | Bin 0 -> 1371 bytes .../Player/Inputs/Inputs/AI_Sprint.uasset | Bin 0 -> 1376 bytes .../Private/Player/ExoPlayerController.cpp | 71 +++++++++++++++- .../Exo/Public/Player/ExoPlayerController.h | 79 +++++++++++++++++- 12 files changed, 145 insertions(+), 5 deletions(-) create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_Aim.uasset create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_Crouch.uasset create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_Dodge.uasset create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_Jump.uasset create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_MeleAttack.uasset create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_Reload.uasset create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_Shoot.uasset create mode 100644 Content/Blueprints/Player/Inputs/Inputs/AI_Sprint.uasset diff --git a/Content/Blueprints/Player/BP_ExoPlayerController.uasset b/Content/Blueprints/Player/BP_ExoPlayerController.uasset index 8f8b2b70d0cd0246fd97601714127693d19b5a46..b7980c05862b33f017bc280308b9bfbf3751e4c0 100644 GIT binary patch delta 5910 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 e+-+6Ni0N(kPYNT>Ieh2GX< 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 Z@h+7}+u-&~-;~EprPJ56Z-$vkTtG2~ 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 literal 0 HcmV?d00001 diff --git a/Content/Blueprints/Player/Inputs/Inputs/AI_Crouch.uasset b/Content/Blueprints/Player/Inputs/Inputs/AI_Crouch.uasset new file mode 100644 index 0000000000000000000000000000000000000000..4c48e51be6d3c6df04a275e3bd1e441d60eabdef GIT binary patch literal 1376 zcmX@utTpe)|Ns9Jm>C$jm>3v70%;In1md?D8=ky$n(~GFmf<4D-EMjsK(YHQ3=9T9 zTHie}H&x#$r!=*oC^N65SU(^qu`;zt-!reE6v%^8j-K((Mfs)489*Hj4BS9m3Njc7 z+JJT`0%;Qy14BnsXE#$PM>j`9M>h*2b0a4wV<%G+6H7B^Qx~{mpn3*1pyPn{gEc>c zI`kco2H}4|{H#zWE9CZnm+ik774zKNHoLafsi951#%XHjufAOyl^Q{IgUkUrgq49A z$o}WOpHT?N)7B1kHPsGE%}GrxPSrKlGX~2uFs#y9ghL*v2@I+)YVHFuRDcfCVTFjn zNMN}B2L%|&P6H%45YsO|FO}g7^HE+|ASWO(IXf{u)h9nWF(B#RZAU zsSH9Tl^x^+dE{l~R1u)z`oYOXnFS^K&iO^Dq5er(smUb_KRk8q#E|4%^D+|il2cQ_ z@y2j<-RU=6Kv_ie8QQY{V*`pf=Oh*vGnAB9OymLbz^WaSLC$3ml1Sj;1d92lmL$3) zmLxJfY1lHE11JFX8$+>sho}I84_7x=XGtnFE*U^pfWTj1z=8Cl19WwNfa=)M6#@A$ zbsz`9089+V2hlJwWObkfh7SG#?LiiU#U&^qfdT>qKoN}#fD#@w;WGe@LNN=Z2VD#l z_#gmEIF4Wz1H)@1^O4PiO2a91v)~d~7$9@dBN8>@KLLa2GSp^}YE)Szpa?8^p(G(a z+@119;hR7m2oMKTj9$?Ab+)d||B4lW^J y0SGh;CqNEFMW8BzMbSZESvmdN(gr>2BNst_l0h@N?4Cs+%c=dEpv(#aAoT!Cl@`qa literal 0 HcmV?d00001 diff --git a/Content/Blueprints/Player/Inputs/Inputs/AI_Dodge.uasset b/Content/Blueprints/Player/Inputs/Inputs/AI_Dodge.uasset new file mode 100644 index 0000000000000000000000000000000000000000..48a2939e8a90c89d8d976084f6fd14e0fa68ed66 GIT binary patch literal 1654 zcmbVNO-NKx6h8h|j#k(YLAI!knL5vOrj+RC&5trxHkk&k^fq3`vGKj>y{9!nAW0;+ zih|k{B)O=C2)S!vLT-!*7jBAz%7UU6frU^xopa~C>CH4|bl|>o?m6dv=iGD8y>Du8 z*X_kbBGH)#P?QVs1vya;j?dlW^B+9d7aY%bkH`-jojXzYr~p7hE;X@UE_tGTJf=ky zLzjY47U!B2P-1;JGnpLd@Tpy4jtcfM zgRj2Mt zd5(laOw3c5)LCCFYl7-UIXBvDYjG}X8jA-tHO4g~4uSEv5%OwL6%Gq|(EtwEy}5G)3&4{WyC{7N@dLcB|yIn0ec`9v9{j=s?;tF(D< zl<7Jc=gwa(#+h)ILzF#~Zs{zhU_xhR9@Mz5^DcP$?%*)N9pwh|F@wSUz{IuHs4&X_ zdehLR^}pvSzgtyzxm9xlAo_s^Lcxj5Mig?U-*@yY5|)+y9DngEF>S=G7}?_5{Z?hc zTf%&7P(b@9qS$UBB`>Ba{=q1w6&In>u*mtRO-Fu&OPuOv)$1$u=Q3nrlQ|oHrj9NE z5k3MS3kl;{1;RPu*)dHQ!7{Pzwrn!tWHww{f6n2{F=1|woYRauP+{GHv_5y*8<_S% z{c@7wd)O9_adAQ(RmJy25z$-lp7!(P71(dXwB0MGu$HeFtz5h(bODJl`82XxgHjSi zTcU}*p3BL!fNbVJ;NM>8Dg1-n_%=G=-1m5v0+kVpjrw2JAJ3netVq7)0ObD*nEE|! literal 0 HcmV?d00001 diff --git a/Content/Blueprints/Player/Inputs/Inputs/AI_Jump.uasset b/Content/Blueprints/Player/Inputs/Inputs/AI_Jump.uasset new file mode 100644 index 0000000000000000000000000000000000000000..999a8bd31a8ead957a8864d366675a5b70a807da GIT binary patch literal 1649 zcmb7FO-vI(6dwNk;YYDi<3SI2K?T}cC_)rvOOaHu76GqxTqdPbb~n2VQsaTd3yG1$ zXyQpph#vGHBzlqqf#^Yu8cp3(_I{D5q-(@y_xsz_ukCBc^$vF z@8)76kqBoIlAB4$7tkmfFy=Z&W@dfY7V@U{4@sj(oqJ$yG=~r;XjcR6VlH2-n`wGf zF%4HJM&nF(1r)6tW|ooyZO6L1G{6(G8HRzhAX5;j2z2EEx8(6ilHXHZQCV4DRb5}_ zF0YdOQiV_QxU1dEV9aU=ejqykcp{s-$aBy*reOrCh^E_=rpA zp|%%jWI|#!>ym5sFPv%uj|+2_1m7l{>pG2xbX8-z87F~}4^cz~RfUm-tj7hI;>j~- znQSg&q__7!?SkbHl{;yKHL5a=MbA?+swzRa3PYnZBMvj(zY#z!dNdMYxw42vba^Y#xSC}>s+q1jRcEcqe8^&;?C^HMSFdzXMP}{%#>wk@Pd{$}uYK{&TY?X9 z>vb_|7{ol+dnF%c94pC~J8|p?=VL6sX5}5ynPISY^6cZ0OSqjA%%py5QZm!`;40Ev zhd_*m{%wW7=gYVorMH-U;z)q<1Fi#uqgZ9g?Nr=%z~yq!+PJ*G;0i1sDmzBHxFT+S z8onjSN1!6Oe-w=EioV@2w;#ZYB6o`Ai@U&T zIZdGzw!}5YIee-Ly+q-$gYZUsSn>hX2%N&Ba&m9+n$e1RFTvM`0=cgcyD%^%F1RC{ xh^M)ljUS-TYXAS%oyXzNC$jm>3v70%;In1md?D8=ky$n(~GFmf<4D-EMjsK(Ws(3=Aef zTHie}H&x#$r!=*oC^N65SU(^qu`;zt-!reE6v%^8j-K(psX3{RB_)Z;*+5+k4BS9m z2{IfACIRhJ1kwgZMi!QCW+slt&gQO8CT^xKj?PZ5&ISffZsulA7G`k8K=lkpKnDWd z0M`5o>eydE8icuk60;7q-O1;_@3$r^qQB9uYzdd{l(_FzULH&DaoQhhdA1#7H^>~2 zLs%J@f$V?Y`x%9RJZG5zxMQW?H5ALW$=asq%sl$f6Clb@WJlUbEml9`|92Mpul zg2d!h2BDJ54swINafwr~2+#uk;N+srf)ah_{G!xQ|D>$c89-Kmz+Yehg7l&Tbaj7#>e$g0 z0r@a>AP2z!Obo^c(J(P&b)bZX4*mh{K^B9>DJVgK0s;g;5snLh5+F1KFaV80F$<&z zU5pEA5GVmTLfQY3%ttm4Dh;R5&4No{VSvm*k4VhO{|5}F=TO^0Ixtlz0Yza+4JA40 zAtw=#Z$Lf^O9U1nA(aKG44^o6%FhSpzC5ry{D4`YEEST-Y>~`FO1^qvS#^T8se?-l ySU>{J!U>QAQxT|&V9|6CSbk3bwzNUd`p89)pJdRCF1u$D$Z~4GrU6tOq#ghOwH!|X literal 0 HcmV?d00001 diff --git a/Content/Blueprints/Player/Inputs/Inputs/AI_Reload.uasset b/Content/Blueprints/Player/Inputs/Inputs/AI_Reload.uasset new file mode 100644 index 0000000000000000000000000000000000000000..3a77ee1c8e3b6b1050374b89d5e66be6401daca3 GIT binary patch literal 1376 zcmX@utTpe)|Ns9Jm>C$jm>3v70%;In1md?D8=ky$n(~GFmf<4D-EMjsK(YHQ3=9T9 zTHie}H&x#$r!=*oC^N65SU(^qu`;zt-!reE6v%^8j-K&BsX6(HDL@?z4BS9m3Njc7 z+JJT`0%;RBGXq0&6GulUb2BqD6Bi?617kN6R|8iQ3j+g7Hw(C8pn3*1pyPn{gEc>c zI`kco2H}4|ye&MJQ-W`b)8dcrJa}PC#OEc4B&}PkwS@PG(hNNoIbYA25823lfu4 z8H7qIJID$0wWg}oB0$6SgOiIg3rh5z^NUhL{gbj%lS>$Wc218 zjp6FL({H$dvWVzAdYkb98&JeKC$YGgp`^TGA`g%UR_&M!axR0AL;?>dP|P>AB+(_Y zB$44s!eCHLRL7342*`)2 z133r=U}7*nh=z$Fs{;YT z@&!m=SR$~v2&pVcWdOykQ+_@$x8;HD_X8&RvQ$XovPCizDaq=AWz`AVrVcJ4U;zj; v3nxGhL`9$~f<@6mU|Bi++tLO->mwIIev&~my6m1sAj_%!nxM=I0wDDO1N9Te literal 0 HcmV?d00001 diff --git a/Content/Blueprints/Player/Inputs/Inputs/AI_Shoot.uasset b/Content/Blueprints/Player/Inputs/Inputs/AI_Shoot.uasset new file mode 100644 index 0000000000000000000000000000000000000000..caf92bbe2e86086f7a64a72a743312253a77d069 GIT binary patch literal 1371 zcmX@utTpe)|Ns9Jm>C$jm>3v70%;In1md?D8=ky$n(~GFmf<4D-EMjsK(Sja3=H}} zTHie}H&x#$r!=*oC^N65SU(^qu`;zt-!reE6v%^8j-K(s8Tt7oKn)BG+(29cG8YJ% zfmSI3X=4i`Ge-kcGc!X+H*;fiHy3j!Qwt+!OAA9|Gb2|cSGZ!JdIn{n+kn=CH9v;B z^EHqL;om?kr!3V~IQ5X@ZibHx5)Q9zI~Gj)p_jVFbtmT+-Mcc{f*`v==71c+%D@a{ z|MT9@CYC~qgXI|*R_QFlArI692CqvwZ9xnLpu^NzA!0BR z7_9$6;RUi&8%Ykt^vlmnW%$B;lvftW2}n%NPE1er$xlwq$*f8&$;{950|sw#L1J<$ zgHTCj2N@w=^ZCD@2+(Z(;N+srf)ah_{G!xQ|D>$ciz)Lv7;*j@?q*g z4uS!g7>p01VPeSYK*3lCH?3jCk&7u zK>i6!1eO#bl?AB`pqO>a&j;qTJh1J4z~o+*3Q1a^oCGryDZT1}Wz}IaIBio0mkzMt w1Db^sAP1o$P!+*q=pe9|oc?WTgP!$~iy%MApc!3u&mxfJ)P79^s5nSH0J#$prT_o{ literal 0 HcmV?d00001 diff --git a/Content/Blueprints/Player/Inputs/Inputs/AI_Sprint.uasset b/Content/Blueprints/Player/Inputs/Inputs/AI_Sprint.uasset new file mode 100644 index 0000000000000000000000000000000000000000..f73553063ddab63d4912d9f50a9becc5685a042c GIT binary patch literal 1376 zcmX@utTpe)|Ns9Jm>C$jm>3v70%;In1md?D8=ky$n(~GFmf<4D-EMjsK(YHQ3=9T9 zTHie}H&x#$r!=*oC^N65SU(^qu`;zt-!reE6v%^8j-K(sV0oYp1_o{*E(IA31Z_aO z6oIsvg^7Wgo1=lTlclALld+|tiL;55qp`8Ep}CWbo0%J2F;G2&8qje-`@x!@K^^)I zNQ3Y{AdcR<(_#ki0r%$5A=a0|IbSF|*>yzvj)(hd5e~ly(VPn)yFuoF9Ky=L3}pZF z-p?omKTLO85maSEW#lV)C2~t;lDUR3>BcmbXXx`FcKK9 z|3Lu;veN)b4#f1!&r4yR zNo5B)LB1&Dp05bdaQ)!qqRfI4edqk5)KLGVtkmQZh991~c4A0!u6Y@WdC93M;CN%W zy6*HFE}$$T`cCcob&U-u;+&IMT+C2XUNMme$OEf(Oa?iZK}aHj2NV##sU?Xni6w~) zPa3vN<^T#n{l-x2-XSW0;KS9;)mf4XjY|fQ6(H~z7;qrH=m1^aAD}vRbVWcuOdU98 zpz<&=WaTh1WObkfh7SG#?LiiU#U&^qfdT>qKoN}#fD#@w;WGe@LNN=Z2VD#l_#gmE zIF4Wz1H)@1^O4PiO2a91v)~d~7$9@dBN8>@KLLa2GSp^}YE)Szpa?8^p(G(a+@119;hR7m2oMKTj9$?Ab+)d||B4lW^J0SGh; uCqNEFMW8BzMbSZESvmdN(gr>2BNst_l0h@N?4Cs+%c=dEpv(#aAoT$6;uezt literal 0 HcmV?d00001 diff --git a/Source/Exo/Private/Player/ExoPlayerController.cpp b/Source/Exo/Private/Player/ExoPlayerController.cpp index 21ec5d8..1891fae 100644 --- a/Source/Exo/Private/Player/ExoPlayerController.cpp +++ b/Source/Exo/Private/Player/ExoPlayerController.cpp @@ -5,6 +5,7 @@ #include "EnhancedInputComponent.h" #include "EnhancedInputSubsystems.h" #include "GameFramework/Character.h" +#include "GameFramework/CharacterMovementComponent.h" AExoPlayerController::AExoPlayerController() { @@ -15,7 +16,7 @@ void AExoPlayerController::BeginPlay() { Super::BeginPlay(); check(InputContext); - + UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(GetLocalPlayer()); if (Subsystem) @@ -42,6 +43,8 @@ void AExoPlayerController::SetupInputComponent() EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AExoPlayerController::Move); EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &AExoPlayerController::Look); EnhancedInputComponent->BindAction(InteractAction, ETriggerEvent::Triggered, this, &AExoPlayerController::Interact); + EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerJump); + EnhancedInputComponent->BindAction(DodgeAction, ETriggerEvent::Started, this, &AExoPlayerController::PlayerDodge); } void AExoPlayerController::Move(const FInputActionValue& InputActionValue) @@ -74,3 +77,69 @@ void AExoPlayerController::Interact(const FInputActionValue& InputActionValue) if (InteractionComponent->InteractedActor) IInteractable::Execute_Interact(InteractionComponent->InteractedActor); } + +void AExoPlayerController::PlayerJump() +{ + +} + +void AExoPlayerController::PlayerDodge() +{ + UE_LOG(LogTemp, Error, TEXT("Player Dodge")); + + if (PlayerCharacter->GetCharacterMovement()->IsFalling()) return; + + if (!CanDodge) return; + + CanDodge = false; + + FVector DodgeDirection = PlayerCharacter->GetVelocity().GetSafeNormal(); + DodgeDirection.Z = 0.f; + + if (DodgeDirection.IsNearlyZero()) + DodgeDirection = PlayerCharacter->GetActorForwardVector(); + + PlayerCharacter->LaunchCharacter(DodgeDirection * DodgeForce, true, true); + + GetWorldTimerManager().SetTimer(DodgeCooldownTimer, this, &AExoPlayerController::ResetDodge, DodgeCooldown, false); +} + +void AExoPlayerController::ResetDodge() +{ + CanDodge = true; +} + +void AExoPlayerController::PlayerCrouch() +{ + +} + +void AExoPlayerController::PlayerSprint() +{ + +} + +void AExoPlayerController::PlayerShoot() +{ + +} + +void AExoPlayerController::PlayerAim() +{ + +} + +void AExoPlayerController::PlayerMeleAttack() +{ + +} + +void AExoPlayerController::PlayerChangeWeapon() +{ + +} + +void AExoPlayerController::PlayerReload() +{ + +} diff --git a/Source/Exo/Public/Player/ExoPlayerController.h b/Source/Exo/Public/Player/ExoPlayerController.h index 6085b1e..65dc0ab 100644 --- a/Source/Exo/Public/Player/ExoPlayerController.h +++ b/Source/Exo/Public/Player/ExoPlayerController.h @@ -26,14 +26,46 @@ public: protected: virtual void SetupInputComponent() override; + // Moja propozycja sterowania po prawej [Hubert] UFUNCTION(BlueprintCallable, Category = "Input") - void Move(const FInputActionValue& InputActionValue); + void Move(const FInputActionValue& InputActionValue); //WSAD UFUNCTION(BlueprintCallable, Category = "Input") - void Look(const FInputActionValue& InputActionValue); + void Look(const FInputActionValue& InputActionValue); // MouseXY UFUNCTION(BlueprintCallable, Category = "Input") - void Interact(const FInputActionValue& InputActionValue); + void Interact(const FInputActionValue& InputActionValue); // E + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerJump(); // Space + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerDodge(); // LShift(Pressed) + + UFUNCTION(BlueprintCallable, Category = "Input") + void ResetDodge(); + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerCrouch(); // LCtrl\C\X + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerSprint(); // LShift(Hold) + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerShoot(); // LPM + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerAim(); // PPM + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerMeleAttack(); // V + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerChangeWeapon(); // 1\2\MouseScroll + + UFUNCTION(BlueprintCallable, Category = "Input") + void PlayerReload(); // R + protected: UPROPERTY(EditAnywhere, Category = "Input") @@ -42,12 +74,51 @@ protected: UPROPERTY(EditAnywhere, Category= "Input") TObjectPtr MoveAction; + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr InteractAction; + UPROPERTY(EditAnywhere, Category = "Input") TObjectPtr LookAction; UPROPERTY(EditAnywhere, Category = "Input") - TObjectPtr InteractAction; + TObjectPtr JumpAction; + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr SprintAction; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr CrouchAction; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr DodgeAction; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Dodge Properties") + FTimerHandle DodgeCooldownTimer; + + UPROPERTY(EditAnywhere, Category = "Dodge Properties") + float DodgeForce = 5000.f; // Move to player if future for better modification + + UPROPERTY(EditAnywhere, Category = "Dodge Properties") + float DodgeCooldown = 2.f; // Move to player too. + + UPROPERTY(EditAnywhere, Category = "Dodge Properties") + bool CanDodge = true; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr ShootAction; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr ReloadAction; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr AimAction; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr MeleAction; + + UPROPERTY(EditAnywhere, Category = "Input") + TObjectPtr ChangeWeaponAction; + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Character") TObjectPtr PlayerCharacter;