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).
|
; Tout /Game doit donc etre cuit, quelle que soit la methode d'empaquetage (ERR-026).
|
||||||
+DirectoriesToAlwaysCook=(Path="/Game")
|
+DirectoriesToAlwaysCook=(Path="/Game")
|
||||||
+DirectoriesToNeverCook=(Path="/Game/Heavy/New/fBlah")
|
+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")
|
+DirectoriesToAlwaysStageAsNonUFS=(Path="Modules")
|
||||||
|
|
||||||
[/Script/McpAutomationBridge.McpAutomationBridgeSettings]
|
[/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` |
|
| 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,
|
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-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-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-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,
|
"FileVersion": 3,
|
||||||
"EngineAssociation": "5.5",
|
"EngineAssociation": "5.5",
|
||||||
"Category": "",
|
"Category": "",
|
||||||
"Description": "LifePlay 2026.9 beta - portage UE 5.5",
|
"Description": "LifePlay 2026.9 beta - portage UE 5.5",
|
||||||
"Modules": [
|
"Modules": [
|
||||||
{
|
{
|
||||||
"Name": "LifePlay",
|
"Name": "LifePlay",
|
||||||
"Type": "Runtime",
|
"Type": "Runtime",
|
||||||
"LoadingPhase": "Default"
|
"LoadingPhase": "Default"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "LifePlayEditorTools",
|
"Name": "LifePlayEditorTools",
|
||||||
"Type": "Editor",
|
"Type": "Editor",
|
||||||
"LoadingPhase": "Default",
|
"LoadingPhase": "Default",
|
||||||
"AdditionalDependencies": [
|
"AdditionalDependencies": [
|
||||||
"Engine"
|
"Engine"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Plugins": [
|
"Plugins": [
|
||||||
{
|
{
|
||||||
"Name": "ModdingExtra",
|
"Name": "ModdingExtra",
|
||||||
"Enabled": true
|
"Enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "StreetMap",
|
"Name": "StreetMap",
|
||||||
"Enabled": true
|
"Enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "EnhancedInput",
|
"Name": "EnhancedInput",
|
||||||
"Enabled": true
|
"Enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "McpAutomationBridge",
|
"Name": "McpAutomationBridge",
|
||||||
"Enabled": true,
|
"Enabled": true,
|
||||||
"TargetAllowList": [
|
"TargetAllowList": [
|
||||||
"Editor"
|
"Editor"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "AndroidFileServer",
|
"Name": "AndroidFileServer",
|
||||||
"Enabled": false
|
"Enabled": false
|
||||||
}
|
},
|
||||||
],
|
{
|
||||||
"TargetPlatforms": [
|
"Name": "NNEDenoiser",
|
||||||
"Windows"
|
"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
|
## Download the full project
|
||||||
|
|
||||||
This Git repository does not contain the heavy assets (see [Repository contents](#repository-contents)). To build or
|
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
|
play, download the full source archive.
|
||||||
archive below and update the Git files from the `v1.1` tag (the heavy assets did not change between V1 and V1.1).
|
|
||||||
|
|
||||||
**[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.
|
- 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
|
- 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
|
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):
|
Check the file after downloading (PowerShell):
|
||||||
|
|
||||||
```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)
|
## 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