(Feat) Add Animation

This commit is contained in:
2026-08-06 13:27:21 +02:00
parent fca1b271f1
commit 72a34f6e40
64 changed files with 1943 additions and 83 deletions
@@ -9,6 +9,8 @@
#include "Kismet/GameplayStatics.h"
#include "MusicPlaylistDataAsset.h"
#include "Sound/SoundBase.h"
#include "Sound/SoundClass.h"
#include "SurvivalAudioSettings.h"
#include "UObject/UObjectGlobals.h"
UMusicSubsystem* UMusicSubsystem::Get(const UObject* WorldContextObject)
@@ -298,6 +300,20 @@ void UMusicSubsystem::PlayTrackAtCursor(float FadeInDuration)
return;
}
// Un curseur de volume ne doit RIEN faire d'autre que changer le volume.
//
// Sans PlayWhenSilent, une source devenue inaudible -- curseur Musique a zero --
// est declaree TERMINEE par le moteur : OnAudioFinished part, HandleTrackFinished
// enchaîne, et le silence entre deux morceaux (MinGapBetweenTracks) demarre. Le
// joueur qui remonte son volume n'entend alors plus rien jusqu'a la piste
// suivante, alors qu'il n'a fait que bouger un reglage. Avec ce mode le morceau
// continue d'avancer sans etre rendu, et redevient simplement audible.
//
// Pose ICI et pas sur les assets, pour la meme raison que la SoundClass dans
// CreateMusicComponent : ajouter une piste a une playlist ne doit rien demander
// de plus. Ecrire ce champ ne salit pas l'asset -- rien n'appelle MarkPackageDirty.
Track->VirtualizationMode = EVirtualizationMode::PlayWhenSilent;
if (!MusicComponent)
{
MusicComponent = CreateMusicComponent(Track);
@@ -353,6 +369,14 @@ UAudioComponent* UMusicSubsystem::CreateMusicComponent(USoundBase* Sound)
return nullptr;
}
// La classe est imposee ICI plutot que sur chaque asset de morceau : ajouter une
// piste a une playlist ne doit pas demander de penser a la taguer, sinon le
// curseur Musique cesse d'agir sur elle sans le moindre signe.
if (USoundClass* MusicClass = USurvivalAudioSettings::Get()->GetMusicSoundClass())
{
Component->SoundClassOverride = MusicClass;
}
Component->bIsMusic = true;
Component->OnAudioFinished.AddDynamic(this, &UMusicSubsystem::HandleTrackFinished);
return Component;