L7l : releve periodique ; hypothese du plafond WallT a 20 cm du sol en exterieur (echelle Z 0,01)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e941eab01c
commit
026bddf554
3 changed files with 41 additions and 3 deletions
|
|
@ -874,3 +874,15 @@ posés. Mesure en jeu préparée :
|
|||
| CHG | Date | Lot | Fichiers | Raison | Retour arrière |
|
||||
|---|---|---|---|---|---|
|
||||
| CHG-055 | 2026-10-01 | L7l | `Source/LifePlay/LPSessionLogSubsystem.cpp` : option `-LPDumpDelay` (délai du relevé sur motif) | relever, 4 s après chaque changement de lieu (`test0706 amenity`), le sol du lieu (`Room`), la capsule du joueur et du personnage en interaction ; script `LifePlay_releve_L7l.bat` du build `LifePlay_Build_5.5_L7cdj` | `git checkout L7j2-apres -- Source` |
|
||||
|
||||
Mesures L7l (2026-10-01, `L7l_releve2_20261001.log`) : **tous les lieux sont construits dans le studio**
|
||||
(acteur unique `Room_C_0` en −3 131 543 ; −14 967 213 ; −115), la ville étant masquée (`StreetMapStatic.bHidden`). Au
|
||||
centre sportif (échelle Z 0,2) : sol à −105, pieds du joueur à −100 (capsule −12, demi-hauteur 88) : correct.
|
||||
Échelles verticales déclarées : 81 lieux à 0,2, 5 à 0,3, 1 à 0,4 et les **7 lieux extérieurs à 0,01** (beach, forest,
|
||||
mountain, park, pool, river, street). Hypothèse : le plafond `WallT` (cube blanc, Z relatif 2 040, sans collision)
|
||||
suit l'échelle : 4,08 m en intérieur mais **20 cm au-dessus du sol en extérieur**, où il masque tout ce qui est plus bas
|
||||
(pieds, pieds des meubles) et apparaît comme le « sol » blanc ; les personnages marchent sur le vrai sol, dessous.
|
||||
|
||||
| CHG | Date | Lot | Fichiers | Raison | Retour arrière |
|
||||
|---|---|---|---|---|---|
|
||||
| CHG-056 | 2026-10-01 | L7l | `Source/LifePlay/LPSessionLogSubsystem.h/.cpp` : option `-LPDumpEvery=N` (relevé périodique) | confirmer l'hypothèse du plafond par une mesure en extérieur (`LifePlay_releve_L7l.bat`) | `git checkout L7j2-apres -- Source` |
|
||||
|
|
|
|||
|
|
@ -351,14 +351,33 @@ void ULPSessionLogSubsystem::DumpRequestedVariables(const TCHAR* When) const
|
|||
|
||||
void ULPSessionLogSubsystem::StartLogTriggeredDump()
|
||||
{
|
||||
FString Paths;
|
||||
FParse::Value(FCommandLine::Get(), TEXT("LPDumpPaths="), Paths, false);
|
||||
Paths.ParseIntoArray(DumpPathList, TEXT(","), true);
|
||||
|
||||
// Lot L7l : releve periodique (-LPDumpEvery=N secondes), sans motif du journal.
|
||||
float Every = 0.f;
|
||||
if (FParse::Value(FCommandLine::Get(), TEXT("LPDumpEvery="), Every) && Every > 0.f && DumpPathList.Num() > 0)
|
||||
{
|
||||
UE_LOG(LogLifePlay, Display, TEXT("Releve periodique toutes les %.1f s, chemins [%s]"), Every, *Paths);
|
||||
TWeakObjectPtr<ULPSessionLogSubsystem> WeakSelf(this);
|
||||
TSharedRef<int32> Index = MakeShared<int32>(0);
|
||||
EveryHandle = FTSTicker::GetCoreTicker().AddTicker(FTickerDelegate::CreateLambda([WeakSelf, Index](float)
|
||||
{
|
||||
if (const ULPSessionLogSubsystem* Self = WeakSelf.Get())
|
||||
{
|
||||
Self->DumpPaths(++*Index, TEXT("periodique"));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}), Every);
|
||||
}
|
||||
|
||||
FString Pattern;
|
||||
if (!FParse::Value(FCommandLine::Get(), TEXT("LPDumpOnLog="), Pattern, false) || Pattern.IsEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
FString Paths;
|
||||
FParse::Value(FCommandLine::Get(), TEXT("LPDumpPaths="), Paths, false);
|
||||
Paths.ParseIntoArray(DumpPathList, TEXT(","), true);
|
||||
int32 Max = 20;
|
||||
FParse::Value(FCommandLine::Get(), TEXT("LPDumpMax="), Max);
|
||||
// Lot L7l : delai avant releve (le lieu se charge en arriere-plan), 1,5 s par defaut.
|
||||
|
|
@ -432,6 +451,11 @@ void ULPSessionLogSubsystem::DumpPaths(int32 Index, const FString& Line) const
|
|||
|
||||
void ULPSessionLogSubsystem::Deinitialize()
|
||||
{
|
||||
if (EveryHandle.IsValid())
|
||||
{
|
||||
FTSTicker::GetCoreTicker().RemoveTicker(EveryHandle);
|
||||
EveryHandle.Reset();
|
||||
}
|
||||
if (Trigger.IsValid())
|
||||
{
|
||||
GLog->RemoveOutputDevice(Trigger.Get());
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Containers/Ticker.h"
|
||||
#include "Subsystems/GameInstanceSubsystem.h"
|
||||
#include "LPSessionLogSubsystem.generated.h"
|
||||
|
||||
|
|
@ -65,5 +66,6 @@ private:
|
|||
TSharedPtr<FLPLogCounter> Counter;
|
||||
TSharedPtr<class FLPLogTrigger> Trigger;
|
||||
TArray<FString> DumpPathList;
|
||||
FTSTicker::FDelegateHandle EveryHandle;
|
||||
double StartTime = 0.0;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue