(Feat) Add footsteps
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "FpsPlayer.h"
|
||||
#include "GameFramework/CharacterMovementComponent.h"
|
||||
#include "HeldItemComponent.h"
|
||||
|
||||
void UFpsArmsAnimInstance::NativeInitializeAnimation()
|
||||
{
|
||||
@@ -47,9 +48,30 @@ void UFpsArmsAnimInstance::NativeUpdateAnimation(float DeltaSeconds)
|
||||
bIsMoving = GroundSpeed > MovingSpeedThreshold
|
||||
&& !Movement->GetCurrentAcceleration().IsNearlyZero();
|
||||
|
||||
// Lu depuis le composant plutot que mis en cache dans un membre : apres un
|
||||
// respawn le pawn est un NOUVEL acteur, avec un nouveau composant, et un
|
||||
// pointeur garde ici pointerait sur celui du cadavre.
|
||||
if (const UHeldItemComponent* HeldItems = Player->GetHeldItemComponent())
|
||||
{
|
||||
bHasItemInHand = HeldItems->HasItemInHand();
|
||||
}
|
||||
|
||||
bIsSprinting = Player->IsSprinting();
|
||||
bIsFalling = Movement->IsFalling();
|
||||
bIsCrouching = Movement->IsCrouching();
|
||||
VerticalSpeed = Movement->Velocity.Z;
|
||||
|
||||
// Les deux etats de deplacement au sol sont composes ICI et nulle part
|
||||
// ailleurs. bIsSprinting ne dit que « la touche est enfoncee » : sans le ET
|
||||
// avec bIsMoving, appuyer sur Maj a l'arret suffit a lancer l'animation de
|
||||
// course, bras qui pompent devant un personnage qui ne bouge pas.
|
||||
//
|
||||
// Le sol et l'accroupi sont exclus des deux pour que ces booleens restent
|
||||
// mutuellement exclusifs avec les etats Air et Crouch de la machine : deux
|
||||
// conditions vraies en meme temps, c'est une transition prise au hasard.
|
||||
const bool bGrounded = !bIsFalling && !bIsCrouching;
|
||||
bIsRunning = bGrounded && bIsMoving && bIsSprinting;
|
||||
bIsWalking = bGrounded && bIsMoving && !bIsSprinting;
|
||||
|
||||
// La cadence suit la vitesse REELLE et pas l'etat de sprint : c'est ce qui
|
||||
// fait que les bras accelerent pendant la montee en vitesse, au lieu de
|
||||
|
||||
Reference in New Issue
Block a user