Retrait de BuildMod, NewMod, EditMod, ModSource, HairPipeline et leurs .py, Tools/anim, Tools/hairs, Tools/mods, ModSources, AnimSources, Config/LPSandbox.ini, lanceurs sandbox et guide des moddeurs (57 fichiers suivis ; contenu disque deplace vers la sauvegarde DC3). References et docs mises a jour. Pin addon 79f0205. Validation : DC3-VAL PASS (cuisson lpr_anim_freeanims depuis l'addon identique au mod publie, tournee identique a SB2-REF). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
68 lines
5.6 KiB
Markdown
68 lines
5.6 KiB
Markdown
# DC3-IMPL — Atelier de mods dans l'addon
|
|
|
|
- **Fiches** : DC3-T1 (A-IMPL-H, scripts structurants) et DC3-T2 (A-IMPL-L, déplacements simples) — **Modèle** :
|
|
M3 opus | opus pour les deux (DC3-T2 fait dans la foulée par la session principale, motif : les déplacements et
|
|
les chemins des scripts sont imbriqués, un second agent aurait dû relire tout le contexte).
|
|
- **Dépend de** : DC0-SPEC § 4. **Instantané addon** : `D:\Game\LifePlay_Backup_5.5\DC3-addon` (cibles absentes +
|
|
`Config\LPSandbox.ini`, `.gitignore`, `README.md`). **Branche addon** : `lot/DC3-atelier` (depuis `lot/DC2-modtools`).
|
|
- **Jeu** : côté jeu, rien n'est encore retiré (attente de la fin de la réécriture d'historique PUB1, autre session).
|
|
|
|
## Copie jeu → addon (même disposition relative)
|
|
|
|
746 fichiers comparés par SHA-256 : 0 différence (copie brute, avant adaptation). Une erreur de copie
|
|
(`Tools/anim/methodes/*.json` arrivés dans `Tools/anim/`) corrigée aussitôt, contenu vérifié identique.
|
|
|
|
| Élément | Addon |
|
|
|---|---|
|
|
| `Tools/BuildMod.ps1`, `NewMod.ps1`, `EditMod.ps1`, `ModSource.ps1`, `HairPipeline.ps1` | `Tools/` (adaptés, voir ci-dessous) |
|
|
| `Tools/HairImportFbx.py`, `HairMaterials.py`, `FbxMaterialMap.py`, `ImportQuaternius.py`, `DiagnosePose.py` | `Tools/` (inchangés) |
|
|
| `Tools/anim/` (`AnimPipeline.ps1`, `DeliverAnims.ps1` adaptés ; `.py`, `profiles/`, `methodes/` inchangés) | `Tools/anim/` — les 2 résidus non suivis `Tools/anim/21_Sandbox_Addon.md`, `Journal_Modifications.md` du jeu **non copiés** |
|
|
| `Tools/hairs/`, `Tools/mods/` | idem |
|
|
| `ModSources/` (3 mods, `*/Content` compris), `AnimSources/` | idem ; `ModSources/*/Content/` ignoré par git (comme dans le jeu) |
|
|
| `Tools/debug/LifePlay_{pair,interaction,measure}_sandbox.bat` | `Tools/debug/` (adaptés) |
|
|
| `Docs/Modding/FullGuides/Creating_Asset_Mods.md`, `ShortGuides/explanation.lphair` | `Docs/Modding/` |
|
|
|
|
## Deux racines
|
|
|
|
- Nouveau `Tools/Roots.ps1` : `$LPSbRoot` (addon, déduit de l'emplacement de `Roots.ps1`) et `Resolve-LPRoots
|
|
[-GameRoot]` → racine du jeu (paramètre, sinon `Config/LPSandbox.ini` `[Workshop] GameRoot=..\LifePlay-master 5.5`,
|
|
sinon erreur ; contrôle de `LifePlay.uproject`). Testé : `D:\Game\LifePlay-master 5.5` / `D:\Game\LifePlay-Sandbox`.
|
|
- `Config/LPSandbox.ini` de l'addon : section `[Workshop]` ajoutée (la copie du jeu reste lue par repli jusqu'à son retrait).
|
|
- Chaque script reçoit `-GameRoot` (facultatif) ; `$Root` = jeu ; passent à `$LPSbRoot` : `ModSources`, `AnimSources`,
|
|
`Tools/mods`, `Tools/anim/*.py`, `RetargetPack.py`, `ImportQuaternius.py` (`source.import` des `pack.json`),
|
|
lanceur d'interaction, `BuildMod`/`DeliverAnims` appelés par le pilote (avec `-GameRoot $Root`) ; restent au jeu :
|
|
projet, `Config/DefaultGame.ini`, `Releases`, `Mods`, `Content`, `Saved` (dont `travail` des `pack.json`),
|
|
`Licenses`, `Tools/RunCommandlet.ps1`, `Tools/BuildCollections.py` (`HairPipeline` : chemin explicite vers le jeu).
|
|
- `ModSource.ps1` : `Source = $LPSbRoot\ModSources\<Mod>`, `Mounted = <jeu>\Mods\<Mod>` (signature inchangée).
|
|
- Lanceurs `.bat` : `GAME` = `%LP_GAMEROOT%` sinon `%~dp0..\..\..\LifePlay-master 5.5` ; `PROJ`, `ROOT` (Mesure : `Saved\sandbox_mode.txt`) en dérivent.
|
|
- Analyse syntaxique PowerShell (`Parser::ParseFile`) : 6 scripts sans erreur.
|
|
|
|
## Reste (après la fin de PUB1)
|
|
|
|
Jeu : `git rm` des éléments copiés (scripts, `Tools/anim|hairs|mods`, `Config/LPSandbox.ini`, lanceurs, guide,
|
|
`ModSources` suivi) ; `ModSources/`, `AnimSources/` et fichiers non suivis **déplacés** vers la sauvegarde (jamais
|
|
supprimés) ; références (`SplitModules.ps1`, `LPModInfoSubsystem.h:8`, `BuildDebug.ps1:39`, `explanation.lpmod`,
|
|
README, `.gitignore`) ; retrait des replis `ProjectDir()` / `ProjectConfigDir()` de `LPAnimMeasurePaths` et
|
|
`LPSandboxConfig` (addon) — **reporté après DC3-T3** pour garder un repli pendant la validation.
|
|
|
|
## Report DC2 traité
|
|
|
|
`LPModTools/LPAnimCatalogCommandlet.cpp` : `-Livraison=` devient obligatoire (erreur d'usage, code 1) ; l'ancien défaut
|
|
(pack quaternius) faisait réécrire `Saved/AnimPipeline/quaternius/fiches_calculees.json` par un lancement sans
|
|
argument (DC2-VAL, anomalie 1). Le pilote passe toujours `-Livraison=` (inchangé). Recompilation nécessaire (DC3-T3).
|
|
|
|
## Après PUB1 : retrait côté jeu (2026-10-07)
|
|
|
|
- Addon commité d'abord : `1f4ec1f` (copie + adaptations, 164 fichiers).
|
|
- Instantané jeu `D:\Game\LifePlay_Backup_5.5\DC3` (59 fichiers : les 53 suivis retirés + `SplitModules.ps1`,
|
|
`LPModInfoSubsystem.h`, `BuildDebug.ps1`, `explanation.lpmod`, `README.md`, `.gitignore`).
|
|
- `git rm --cached` de 57 fichiers suivis (dont `AnimSources/*/pack.json`, `Tools/DiagnosePose.py`,
|
|
`Tools/ImportQuaternius.py`, suivis entre-temps par les commits de phase) ; **tout** le contenu disque correspondant
|
|
(754 fichiers, dont `ModSources` 133 Mo et les 2 résidus de `Tools/anim`) **déplacé** vers
|
|
`D:\Game\LifePlay_Backup_5.5\DC3\deplaces_du_jeu` (rien supprimé). Copie addon vérifiée identique (`pack.json`).
|
|
- Références : `SplitModules.ps1:21,41`, `LPModInfoSubsystem.h:8`, `BuildDebug.ps1:39`, `explanation.lpmod:17`
|
|
(dépôt de l'atelier), `README.md` (outils et guide dans un dépôt d'atelier séparé ; le jeu se construit sans lui),
|
|
`.gitignore` (`/ModSources/*/…` → `/ModSources/`, `/AnimSources/`). Seul reste un commentaire périmé dans
|
|
`LifePlay.Build.cs:30` (report DC4, avec `Json`).
|
|
- Addon : replis vers le jeu retirés (`LPAnimMeasurePaths::ToolsAnimDir()` → `<addon>/Tools/anim` seul ;
|
|
`LPSandboxConfig` → `<addon>/Config/LPSandbox.ini` seul).
|