(Feat) Add footsteps

This commit is contained in:
2026-08-11 15:23:10 +02:00
parent e8e128457a
commit 176beab9fc
4776 changed files with 18806 additions and 121 deletions
@@ -6,7 +6,9 @@
#include "GameFramework/PlayerController.h"
#include "MainMenuPlayerController.generated.h"
class ACharacterPreviewActor;
class AMenuCameraSpot;
class UCharacterCustomizationWidget;
class UConfirmDialogWidget;
class UMainMenuWidget;
class UScreenFadeComponent;
@@ -27,7 +29,17 @@ enum class EMenuPendingAction : uint8
* n'est donc chargee qu'a la reponse du service en ligne -- ou tout de suite
* si celui-ci refuse, puisqu'un echec reseau ne doit pas empecher de jouer.
*/
StartGame
StartGame,
/**
* On ne quitte PAS la map : le mannequin est pose dans MenuScene, on ne fait
* que porter la vue sur lui. Le fondu sert a masquer la bascule -- un
* travelling depuis l'angle de menu traverserait le decor.
*/
OpenCustomization,
/** Retour du mannequin vers un angle de menu, meme mecanique en sens inverse. */
CloseCustomization
};
/**
@@ -102,6 +114,35 @@ protected:
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Menu")
TSubclassOf<USettingsMenuWidget> SettingsMenuClass;
/**
* Ton WBP_CharacterCustomization. Laisse-le vide pour retrouver l'ancien
* comportement -- Jouer lance directement la partie. Pratique pour tester
* autre chose sans traverser l'ecran a chaque fois.
*/
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Menu|Customization")
TSubclassOf<UCharacterCustomizationWidget> CustomizationMenuClass;
/**
* Le mannequin pose dans MenuScene. Cherche par classe au BeginPlay plutot
* qu'assigne ici : une reference d'acteur dans un CDO de controller ne
* survit pas au chargement de la map.
*/
UPROPERTY(Transient, BlueprintReadOnly, Category = "Menu|Customization")
TObjectPtr<ACharacterPreviewActor> CharacterPreview;
UPROPERTY(Transient, BlueprintReadOnly, Category = "Menu|Customization")
TObjectPtr<UCharacterCustomizationWidget> CustomizationMenu;
/**
* Duree de CHAQUE moitie du fondu entre le menu et l'ecran de customisation.
* Le passage complet dure donc le double.
*
* Plus court que le fondu de depart vers la partie : on ne change pas de
* map, il n'y a rien a charger, et une attente ici ne serait qu'une attente.
*/
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Menu|Customization", meta = (ClampMin = "0.05"))
float CustomizationFadeDuration = 0.35f;
/** Fondu d'arrivee sur le menu, au lancement du jeu. */
UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Menu", meta = (ClampMin = "0.1"))
float OpeningFadeDuration = 1.5f;
@@ -146,6 +187,26 @@ private:
UFUNCTION()
void HandleSettingsCloseRequested();
/**
* Ouvre l'ecran de customisation et pose la vue sur le mannequin.
*
* L'ordre compte : SetViewTarget d'abord, widget ensuite. L'inverse
* afficherait la colonne par-dessus l'ancien cadrage pendant toute la duree
* du blend.
*/
void OpenCustomization();
/** Le joueur a valide : on soumet l'apparence, puis on lance la partie. */
UFUNCTION()
void HandleCustomizationConfirmed();
/** Le joueur renonce : retour au menu, rien n'est ecrit. */
UFUNCTION()
void HandleCustomizationCancelled();
/** Referme l'ecran et rend la vue a l'angle de menu. */
void CloseCustomization();
/**
* La session n'a pas pu etre creee -- Steam eteint, hors ligne, service en
* panne. On charge la map QUAND MEME.