LifePlay-Revival/Docs/Migration/etat/sandbox/DC3/DC3-IMPL.md
edujiro5972 e46093c81c DC3 : atelier de mods hors du jeu, dans l'addon LifePlay-Sandbox (CHG-236)
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>
2026-10-07 19:53:13 +02:00

5.6 KiB

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).