O1 : build allege (plugins moteur limites a l'editeur, contenu non cuit, sans symboles) ; lien Mega V1.1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
d2fa4b5df8
commit
b6e587164d
6 changed files with 272 additions and 55 deletions
|
|
@ -45,6 +45,23 @@ bSkipMovies=False
|
|||
; Tout /Game doit donc etre cuit, quelle que soit la methode d'empaquetage (ERR-026).
|
||||
+DirectoriesToAlwaysCook=(Path="/Game")
|
||||
+DirectoriesToNeverCook=(Path="/Game/Heavy/New/fBlah")
|
||||
; Lot O1 : contenu des plugins limites a l'editeur (LifePlay.uproject, TargetAllowList Editor) : jamais cuit.
|
||||
+DirectoriesToNeverCook=(Path="/Interchange")
|
||||
+DirectoriesToNeverCook=(Path="/InterchangeAssets")
|
||||
+DirectoriesToNeverCook=(Path="/NNEDenoiser")
|
||||
+DirectoriesToNeverCook=(Path="/NNERuntimeORT")
|
||||
+DirectoriesToNeverCook=(Path="/HairStrands")
|
||||
+DirectoriesToNeverCook=(Path="/SpeedTreeImporter")
|
||||
+DirectoriesToNeverCook=(Path="/Paper2D")
|
||||
+DirectoriesToNeverCook=(Path="/MovieRenderPipeline")
|
||||
+DirectoriesToNeverCook=(Path="/USDCore")
|
||||
+DirectoriesToNeverCook=(Path="/Bridge")
|
||||
+DirectoriesToNeverCook=(Path="/Fab")
|
||||
+DirectoriesToNeverCook=(Path="/LiveLink")
|
||||
+DirectoriesToNeverCook=(Path="/MetaHumanSDK")
|
||||
+DirectoriesToNeverCook=(Path="/Takes")
|
||||
+DirectoriesToNeverCook=(Path="/PythonScriptPlugin")
|
||||
+DirectoriesToNeverCook=(Path="/ChaosVD")
|
||||
+DirectoriesToAlwaysStageAsNonUFS=(Path="Modules")
|
||||
|
||||
[/Script/McpAutomationBridge.McpAutomationBridgeSettings]
|
||||
|
|
|
|||
|
|
@ -238,4 +238,27 @@ La bibliothèque compte environ 3 000 produits, dont 302 outils et plugins. Prod
|
|||
| AssetDump: Agents-readable assets | fallingsappy | export lisible des assets pour un agent : pourrait compléter `AuditAssets.py` |
|
||||
|
||||
Rien n'a été acheté, réclamé ni téléchargé. Chaque outil retenu sera évalué dans une copie du projet,
|
||||
dans un lot dédié, avec l'accord de l'utilisateur.
|
||||
dans un lot dédié, avec l'accord de l'utilisateur.
|
||||
|
||||
## 11. Lot O1 : build allégé (2026-10-02)
|
||||
|
||||
| Modification | Fichier |
|
||||
|---|---|
|
||||
| 20 plugins moteur limités à l'éditeur (`"TargetAllowList": ["Editor"]`) : `NNEDenoiser`, `NNERuntimeORT`, `Interchange`, `InterchangeAssets`, `InterchangeTests`, `Fab`, `Bridge`, `MetaHumanSDK`, `SpeedTreeImporter`, `HairStrands`, `MovieRenderPipeline`, `Paper2D`, `USDCore`, `ChaosVD`, `LiveLink`, `ConcertMain`, `ConcertSyncClient`, `ConcertSyncCore`, `Takes`, `PythonScriptPlugin` | `LifePlay.uproject` |
|
||||
| Leur contenu n'est plus cuit (`+DirectoriesToNeverCook`) : sans cela, la cuisson échoue sur les pipelines `Interchange` | `Config/DefaultGame.ini` |
|
||||
| Build sans symboles de débogage (`-nodebuginfo`) | commande de build |
|
||||
|
||||
Justification : `Tools/AuditScriptDeps.py` (dépendances des 8 563 assets, lecture seule) montre que le contenu n'utilise
|
||||
que 24 modules de code, dont aucun des plugins retirés. L'éditeur et l'outil MCP les gardent.
|
||||
|
||||
Piège : la cuisson incrémentale (`-iterate`) garde le contenu déjà cuit des plugins retirés ; il a été déplacé vers
|
||||
`D:\Game\LifePlay_Backup_5.5\O1\_cuisson_retiree`.
|
||||
|
||||
| Build Shipping | Avant (V1.1) | Après (O1) |
|
||||
|---|---:|---:|
|
||||
| Taille | 3 246 Mo | **2 859 Mo (−387 Mo, −12 %)** |
|
||||
| Fichiers | 24 249 | 23 901 |
|
||||
| Paquets du jeu | 8 561 | 8 561 |
|
||||
| `NNE`, `Interchange`, `.pdb`, `DirectML.dll` | présents | absents |
|
||||
|
||||
Build : `D:\Game\LifePlay_Build_5.5_O1`. Validation en jeu : **en attente**.
|
||||
|
|
@ -905,3 +905,4 @@ Validation L7c/L7d (2026-10-02, parc, même cadrage) : la nuit reste claire (sol
|
|||
| CHG-058 | 2026-10-02 | Doc | nouveaux `07_Architecture_5.5.md`, `08_Guide_Developpeur.md`, `09_Commandes_Utiles.md`, `10_Protocole_Operations.md` ; mis à jour `README.md` (migration et racine), `01`, `03`, `04` (bilan §5), `05` (CX-C14 à C18, statuts), `06` (résultat V1), registre (ERR-020) | finalisation de la documentation de migration : architecture finale, guide développeur, commandes, protocole et leçons | `git revert` du commit |
|
||||
| CHG-059 | 2026-10-02 | O0 | nouveaux `Tools/AuditAssets.py`, `Docs/Migration/11_Audit_Optimisation.md` ; lanceur `LifePlay_profil_O0.bat` (build L7cdj, hors dépôt) | audit d'optimisation en lecture seule : inventaire des assets, build livré, leviers et lots proposés ; aucune modification du projet | `git revert` du commit |
|
||||
| CHG-060 | 2026-10-02 | O0 | `Docs/Migration/11_Audit_Optimisation.md` §9-10 ; lanceur `LifePlay_profil_O0.bat` corrigé (capture par `-ExecCmds`) | résultats de la mesure en jeu (60 images/s tenues, à-coups du thread de jeu dus aux minuteries Blueprint, 463 Mo de physique) ; produits utiles de la bibliothèque Fab ; lots révisés | `git revert` du commit |
|
||||
| CHG-061 | 2026-10-02 | O1 | `LifePlay.uproject` (20 plugins limités à l'éditeur), `Config/DefaultGame.ini` (16 `DirectoriesToNeverCook`), nouveau `Tools/AuditScriptDeps.py` ; `README.md` : lien Mega de la V1.1 | build Shipping allégé de 387 Mo sans changement de contenu ; build `LifePlay_Build_5.5_O1` | `Tools\Restore.ps1 -Lot O1` ou `git checkout O1-avant -- LifePlay.uproject Config` |
|
||||
|
|
|
|||
|
|
@ -1,49 +1,189 @@
|
|||
{
|
||||
"FileVersion": 3,
|
||||
"EngineAssociation": "5.5",
|
||||
"Category": "",
|
||||
"Description": "LifePlay 2026.9 beta - portage UE 5.5",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "LifePlay",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default"
|
||||
},
|
||||
{
|
||||
"Name": "LifePlayEditorTools",
|
||||
"Type": "Editor",
|
||||
"LoadingPhase": "Default",
|
||||
"AdditionalDependencies": [
|
||||
"Engine"
|
||||
]
|
||||
}
|
||||
],
|
||||
"Plugins": [
|
||||
{
|
||||
"Name": "ModdingExtra",
|
||||
"Enabled": true
|
||||
},
|
||||
{
|
||||
"Name": "StreetMap",
|
||||
"Enabled": true
|
||||
},
|
||||
{
|
||||
"Name": "EnhancedInput",
|
||||
"Enabled": true
|
||||
},
|
||||
{
|
||||
"Name": "McpAutomationBridge",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "AndroidFileServer",
|
||||
"Enabled": false
|
||||
}
|
||||
],
|
||||
"TargetPlatforms": [
|
||||
"Windows"
|
||||
]
|
||||
}
|
||||
{
|
||||
"FileVersion": 3,
|
||||
"EngineAssociation": "5.5",
|
||||
"Category": "",
|
||||
"Description": "LifePlay 2026.9 beta - portage UE 5.5",
|
||||
"Modules": [
|
||||
{
|
||||
"Name": "LifePlay",
|
||||
"Type": "Runtime",
|
||||
"LoadingPhase": "Default"
|
||||
},
|
||||
{
|
||||
"Name": "LifePlayEditorTools",
|
||||
"Type": "Editor",
|
||||
"LoadingPhase": "Default",
|
||||
"AdditionalDependencies": [
|
||||
"Engine"
|
||||
]
|
||||
}
|
||||
],
|
||||
"Plugins": [
|
||||
{
|
||||
"Name": "ModdingExtra",
|
||||
"Enabled": true
|
||||
},
|
||||
{
|
||||
"Name": "StreetMap",
|
||||
"Enabled": true
|
||||
},
|
||||
{
|
||||
"Name": "EnhancedInput",
|
||||
"Enabled": true
|
||||
},
|
||||
{
|
||||
"Name": "McpAutomationBridge",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "AndroidFileServer",
|
||||
"Enabled": false
|
||||
},
|
||||
{
|
||||
"Name": "NNEDenoiser",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "NNERuntimeORT",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "Interchange",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "InterchangeAssets",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "InterchangeTests",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "Fab",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "Bridge",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "MetaHumanSDK",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "SpeedTreeImporter",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "HairStrands",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "MovieRenderPipeline",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "Paper2D",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "USDCore",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "ChaosVD",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "LiveLink",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "ConcertMain",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "ConcertSyncClient",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "ConcertSyncCore",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "Takes",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "PythonScriptPlugin",
|
||||
"Enabled": true,
|
||||
"TargetAllowList": [
|
||||
"Editor"
|
||||
]
|
||||
}
|
||||
],
|
||||
"TargetPlatforms": [
|
||||
"Windows"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
11
README.md
11
README.md
|
|
@ -6,12 +6,13 @@ life simulation RPG (**adult content**), ported from Unreal Engine 4.27 to **Unr
|
|||
## Download the full project
|
||||
|
||||
This Git repository does not contain the heavy assets (see [Repository contents](#repository-contents)). To build or
|
||||
play, download the full source archive. The V1.1 archive will be linked here once uploaded; until then, use the V1
|
||||
archive below and update the Git files from the `v1.1` tag (the heavy assets did not change between V1 and V1.1).
|
||||
play, download the full source archive.
|
||||
|
||||
**[LifePlay_Revival_V1_UE5.5_Full_Source_Code.7z](https://mega.nz/file/zloFkL7T#3P5GDfcfF5U352T0s472vCtyNh131RLgNWn__PSNL2I)** (Mega, 4.85 GB, 8.36 GB extracted)
|
||||
**[LifePlay_Revival_V1.1_UE5.5_Full_Source_Code.7z](https://mega.nz/file/rwpRTbjA#P6sKfJM8xfGeLXcIylUsUvRSGezLi36FWtXgwxFxvvo)** (Mega, 4.94 GB)
|
||||
|
||||
- SHA-256: `38ee16640f960317348a044195a23b55ac8eda34aec085e661034dc9c26cc594`
|
||||
- SHA-256: `6dbfb18e55e51558708239856b54f757b6044307d2d1cf261e88c94baaf617ae`
|
||||
- Previous version: [LifePlay_Revival_V1_UE5.5_Full_Source_Code.7z](https://mega.nz/file/zloFkL7T#3P5GDfcfF5U352T0s472vCtyNh131RLgNWn__PSNL2I)
|
||||
(4.85 GB, SHA-256 `38ee16640f960317348a044195a23b55ac8eda34aec085e661034dc9c26cc594`).
|
||||
- Same layout as the original author's full source archives: the project folder at the archive root, 7z LZMA2.
|
||||
- Contains the complete `Content` folder (including `Content/Heavy` converted to UE5 format), the compiled editor
|
||||
modules in `Binaries` (the project opens without compiling), the `StreetMap` and `ModdingExtra` plugins, and a
|
||||
|
|
@ -21,7 +22,7 @@ archive below and update the Git files from the `v1.1` tag (the heavy assets did
|
|||
Check the file after downloading (PowerShell):
|
||||
|
||||
```powershell
|
||||
Get-FileHash .\LifePlay_Revival_V1_UE5.5_Full_Source_Code.7z -Algorithm SHA256
|
||||
Get-FileHash .\LifePlay_Revival_V1.1_UE5.5_Full_Source_Code.7z -Algorithm SHA256
|
||||
```
|
||||
|
||||
## Status: V1.1 (tag `v1.1`, 2026-10-01)
|
||||
|
|
|
|||
35
Tools/AuditScriptDeps.py
Normal file
35
Tools/AuditScriptDeps.py
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# Lot O1 : modules de code (/Script/...) et paquets de plugins (/<Plugin>/...) dont dependent les assets de /Game.
|
||||
# Lecture seule. Sortie : Saved/Audit/script_deps.json {module: [assets qui en dependent]}
|
||||
#
|
||||
# Usage :
|
||||
# UnrealEditor-Cmd.exe <projet> -run=pythonscript -script="<projet>/Tools/AuditScriptDeps.py" -unattended -nopause -nosplash
|
||||
|
||||
import json
|
||||
import os
|
||||
import unreal
|
||||
|
||||
registry = unreal.AssetRegistryHelpers.get_asset_registry()
|
||||
registry.search_all_assets(True)
|
||||
assets = registry.get_assets_by_path("/Game", recursive=True)
|
||||
opts = unreal.AssetRegistryDependencyOptions(include_soft_package_references=True, include_hard_package_references=True,
|
||||
include_searchable_names=False, include_soft_management_references=False,
|
||||
include_hard_management_references=False)
|
||||
deps = {}
|
||||
seen = set()
|
||||
for a in assets:
|
||||
pkg = str(a.package_name)
|
||||
if pkg in seen:
|
||||
continue
|
||||
seen.add(pkg)
|
||||
for d in registry.get_dependencies(a.package_name, opts) or []:
|
||||
d = str(d)
|
||||
if d.startswith("/Game/"):
|
||||
continue
|
||||
key = d if d.startswith("/Script/") else "/" + d.split("/")[1]
|
||||
deps.setdefault(key, []).append(pkg)
|
||||
|
||||
out = os.path.join(unreal.Paths.project_saved_dir(), "Audit", "script_deps.json")
|
||||
os.makedirs(os.path.dirname(out), exist_ok=True)
|
||||
with open(out, "w", encoding="utf-8") as f:
|
||||
json.dump({k: sorted(set(v)) for k, v in sorted(deps.items())}, f, indent=1)
|
||||
unreal.log_warning("AuditScriptDeps : {} modules -> {}".format(len(deps), out))
|
||||
Loading…
Reference in a new issue