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 | 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` |
|
| 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()
|
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;
|
FString Pattern;
|
||||||
if (!FParse::Value(FCommandLine::Get(), TEXT("LPDumpOnLog="), Pattern, false) || Pattern.IsEmpty())
|
if (!FParse::Value(FCommandLine::Get(), TEXT("LPDumpOnLog="), Pattern, false) || Pattern.IsEmpty())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
FString Paths;
|
|
||||||
FParse::Value(FCommandLine::Get(), TEXT("LPDumpPaths="), Paths, false);
|
|
||||||
Paths.ParseIntoArray(DumpPathList, TEXT(","), true);
|
|
||||||
int32 Max = 20;
|
int32 Max = 20;
|
||||||
FParse::Value(FCommandLine::Get(), TEXT("LPDumpMax="), Max);
|
FParse::Value(FCommandLine::Get(), TEXT("LPDumpMax="), Max);
|
||||||
// Lot L7l : delai avant releve (le lieu se charge en arriere-plan), 1,5 s par defaut.
|
// 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()
|
void ULPSessionLogSubsystem::Deinitialize()
|
||||||
{
|
{
|
||||||
|
if (EveryHandle.IsValid())
|
||||||
|
{
|
||||||
|
FTSTicker::GetCoreTicker().RemoveTicker(EveryHandle);
|
||||||
|
EveryHandle.Reset();
|
||||||
|
}
|
||||||
if (Trigger.IsValid())
|
if (Trigger.IsValid())
|
||||||
{
|
{
|
||||||
GLog->RemoveOutputDevice(Trigger.Get());
|
GLog->RemoveOutputDevice(Trigger.Get());
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "CoreMinimal.h"
|
#include "CoreMinimal.h"
|
||||||
|
#include "Containers/Ticker.h"
|
||||||
#include "Subsystems/GameInstanceSubsystem.h"
|
#include "Subsystems/GameInstanceSubsystem.h"
|
||||||
#include "LPSessionLogSubsystem.generated.h"
|
#include "LPSessionLogSubsystem.generated.h"
|
||||||
|
|
||||||
|
|
@ -65,5 +66,6 @@ private:
|
||||||
TSharedPtr<FLPLogCounter> Counter;
|
TSharedPtr<FLPLogCounter> Counter;
|
||||||
TSharedPtr<class FLPLogTrigger> Trigger;
|
TSharedPtr<class FLPLogTrigger> Trigger;
|
||||||
TArray<FString> DumpPathList;
|
TArray<FString> DumpPathList;
|
||||||
|
FTSTicker::FDelegateHandle EveryHandle;
|
||||||
double StartTime = 0.0;
|
double StartTime = 0.0;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue