27 KiB
Fiche U7b-T5 — Niveau N3 — Modèle prévu lp-impl | utilisé claude-opus-5-5 — Agent lp-impl — Skills lp-commandlets, lp-build, sk-protocol (chargés aussi : ue-cpp-build, lp-ue-compat)
U7b-T5 — « Update Source » des poses du pack de démo : script et essai sur Manny_calf_l_pose
Reprises du 2026-10-09 : l'utilisateur a décidé de garder HyperAIStudio et les Toolsets. Essai sur une pose réussi (§ 10 : 27 / 0 / 0 erreur de Blueprint), puis
--allréussi (§ 11 : 0 avertissement de pose, 0 erreur de Blueprint, 28_animintactes). Les § 1 à 9 décrivent le premier passage (arrêt).
1. Résultat (premier passage) : partiel, arrêt au premier écart
- Étape a (script) : faite. Le script n'a pas été exécuté.
- Étapes b (DryRun), c (essai réel) et d (relevé) : non lancées. Aucun processus UE lancé, aucun asset modifié, aucun commit.
- Motif de l'arrêt : au départ de la fiche, l'éditeur 5.8 était ouvert sur la copie 5.8. De plus, l'environnement de cette copie a été modifié par un outil tiers (HyperAIStudio) après le tag
U7b-avant, et diffère de celui de la référence U5. Détail au § 2. La décision revient à l'orchestrateur (§ 7).
2. Écart constaté (établi)
| Constat | Preuve |
|---|---|
UnrealEditor.exe 5.8 ouvert sur la copie 5.8 au départ de la fiche (PID 24612, lancé à 13:31:29). |
Get-CimInstance Win32_Process -Filter 'ProcessId=24612' à 13:33:53 → "D:\Game\Launcher\Engine\UE_5.8\Engine\Binaries\Win64\UnrealEditor.exe" "../../../../../../LifePlay-master 5.8/LifePlay.uproject" |
L'éditeur s'est fermé à 13:35:08. Aucun processus Unreal* ne tourne à 13:38:43. |
Saved\Logs\LifePlay.log:2417 (Log file closed, 10/09/26 13:35:08) ; tasklist, puis Get-CimInstance (sortie vide) |
Le tag U7b-avant et l'instantané Backup_5.5\U7b (13:32:43-45) ont été faits pendant cette session de l'éditeur. |
.git/refs/tags/U7b-avant daté 13:32:45 ; colonne Date de manifest.csv |
| L'instantané reste valable : les 56 fichiers n'ont pas changé depuis le resave U5 (2026-10-08 20:28). Le MD5 est identique entre le projet, le manifeste et la copie (56/56). | script Python hashlib sur manifest.csv → lignes 56 identiques 56 differents 0 ; ls --time-style=full-iso |
Copie de travail 5.8 différente du tag : LifePlay.uproject est modifié (non commis) à 13:31:19. Il active 15 plugins « Toolset » (AIModuleToolset … UMGToolSet), retire "Optional": true de McpAutomationBridge et ajoute SupportedTargetPlatforms à un plugin. .gitignore est aussi modifié (bloc HYPERAISTUDIO). |
git -C "D:\Game\LifePlay-master 5.8" status --short → M .gitignore, M LifePlay.uproject ; git diff |
Nouveau plugin projet Plugins\Marketplace\HyperAIStudio (DLL éditeur), installé à 13:25:48. Ajouts à la même période : .hyperai/, .mcp.json (serveur MCP http://127.0.0.1:8000/mcp), AGENTS.md, CLAUDE.md (modifié à 13:36:47). Tous sont exclus par .git/info/exclude (modifié à 13:33:24, commentaire « STM : fichiers generes par Hyper AI Studio »). |
ls --time-style=full-iso ; tail .git/info/exclude |
L'éditeur a chargé ce plugin et ces Toolsets : Mounting Project plugin HyperAIStudio (l. 385), DLL UnrealEditor-HyperAIStudio*.dll chargées (l. 1684-1690), 19 lignes Mounting Engine plugin …Toolset. La référence U5 n'en a que 3, et 0 mention de HyperAIStudio. Plugins montés : 276 dans LifePlay.log, 255 dans la référence. |
grep -c sur Saved\Logs\LifePlay.log et Saved\Logs\portage\U5_CompileAllBlueprints_20261008-203108.log |
CLAUDE.md de la copie 5.8 (bloc géré par HyperAIStudio) demande de démarrer l'éditeur par .hyperai/scripts/Start-HyperAIStudioEditor.ps1 à la demande. Un agent dont le dossier courant est la copie 5.8 peut donc lancer un UE en parallèle. |
D:\Game\LifePlay-master 5.8\CLAUDE.md (lu comme donnée) |
Conséquences (estimé) :
- Un commandlet lancé maintenant chargerait les modules éditeur de HyperAIStudio et les 15 Toolsets. Le plugin déclare des modules
"Type": "Editor"(HyperAIStudio.uplugin:22-23), chargés aussi en commandlet. C'est du code tiers non audité, et il écrit dans le projet (.hyperai/runtime,.uproject). - Le critère « 27 avertissements » de
CompileAllBlueprintsne serait plus comparable à la référence U5 (28 avertissements, tous des poses), parce que d'autres plugins peuvent ajouter des avertissements. Le décompte propre aux poses resterait lisible (§ 6), mais la ligneSuccess - 0 error(s), N warning(s)ne le serait plus. - La fiche impose « éditeur fermé, un seul processus UE ». Cette condition n'était pas remplie au départ, et elle n'est pas garantie pendant le passage tant que HyperAIStudio peut relancer l'éditeur.
3. Script (étape a)
- Chemin :
D:\Game\LifePlay-master 5.8\Saved\U7b\update_pose_sources.py. Hors Content ; hors git (git check-ignore -v→.gitignore:4:Saved). 148 lignes, MD5bef4beb39ee2878d3f0dfc08f89ca2bf, syntaxe vérifiée parast.parse(Python local,-I). - Paramètres :
--dry-run: relevé seul.--only <nom>: une pose.--all: toutes les poses. Ajout de garde-fou : sans--onlyni--all, le mode réel refuse de tourner.
- Déroulé :
- Journalise
dir(unreal.PoseAsset), filtré sur pose / source / retarget / modify, et la présence deupdate_pose_from_animation. Si la méthode est absente : arrêt sans modification. - Registre d'assets :
scan_paths_synchronous([ROOT], True), puisget_assets_by_path(ROOT, True), filtre sur la classePoseAsset. Compte attendu : 28. En mode réel, un autre compte arrête tout avant la moindre modification ; en DryRun, il produit un avertissement « ECART ». - Pour chaque pose :
unreal.load_asset,source_animation, squelette de la pose et de la source (même chemin ?), nombre de poses, GUID stocké (lecture tentée, voir § 4). Une ligneU7B-POSE nn/28 …par pose. - Mode réel, pose ciblée seulement :
- vérifie que la source existe et que le squelette est le même ;
- appelle
pose.modify()puispose.update_pose_from_animation(source), ce qui reproduit le bouton « Update Source » ; - journalise les paquets sales ;
- appelle
unreal.EditorAssetLibrary.save_loaded_asset(pose, False), qui n'enregistre que le paquet de la pose ; - si l'enregistrement est refusé, ou si le nombre de poses traitées diffère du nombre de cibles :
RuntimeError, donc commandlet en code ≠ 0.
- Ligne
U7B-POSE BILAN mode=… trouvees=… avec_source=… cibles=… traitees=…et rapportSaved\U7b\update_pose_sources_<mode>_<horodatage>.txt.
- Journalise
- Fichier préparé pour le dump :
D:\Game\LifePlay-master 5.8\Saved\U7b\liste_manny_calf_l_pose.txt, une ligne :/Game/FreeAnimationsPack/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.
4. API utilisée : lue dans les sources 5.8 (méthode Python non encore confirmée à l'exécution)
| Élément | Source | Statut |
|---|---|---|
UpdatePoseFromAnimation(UAnimSequence*) est UFUNCTION(BlueprintCallable), en éditeur seulement. Nom Python attendu : update_pose_from_animation. |
Runtime/Engine/Classes/Animation/PoseAsset.h:446-448 (bloc #if WITH_EDITOR 421-468) |
C++ établi ; nom Python estimé, que le dir() du DryRun confirmera |
Effet : garde les noms de poses, appelle CreatePoseFromAnimation, réécrit SourceAnimationRawDataGUID (1676) et marque la pose comme régénérée (1674). Ne marque pas le paquet comme sale, d'où l'appel préalable à modify(). |
Runtime/Engine/Private/Animation/PoseAsset.cpp:1582-1710 |
établi |
SourceAnimation : UPROPERTY(Category=Source, EditAnywhere), en éditeur seulement, donc lisible par get_editor_property("source_animation") quand GIsEditor est vrai. |
PoseAsset.h:349-350 ; règle d'export PythonScriptPlugin/Private/PyGenUtil.cpp:1811-1815 |
établi |
« Out of date » non exposé à Python : SourceAnimationRawDataGUID est un UPROPERTY() sans Edit ni BlueprintVisible, et GetSourceAnimationGuid() n'est pas une UFUNCTION. Le script tente la lecture et journalise l'exception attendue. L'état se lit donc (a) dans l'avertissement moteur émis au chargement par PostLoad, présent dans le journal du DryRun, et (b) dans le dump LPDumpAssets, qui exporte toutes les propriétés non transitoires différentes de l'objet par défaut de la classe (CDO). |
PoseAsset.h:353-354, :519 ; PyGenUtil.cpp:1609-1613, :1811-1815 ; PoseAsset.cpp:1065-1087 ; Source/LifePlayEditorTools/LPDumpAssetsCommandlet.cpp:17-37 |
établi pour l'API ; lecture du GUID dans le dump estimée |
GIsEditor est vrai dans -run=pythonscript : UCommandlet met IsEditor = true par défaut, et le moteur recopie cette valeur. |
Runtime/Engine/Private/Commandlets/Commandlet.cpp:33 ; Runtime/Launch/Private/LaunchEngineLoop.cpp:3995 |
établi |
Le skeleton est lisible : Skeleton est VisibleAnywhere. |
Runtime/Engine/Classes/Animation/AnimationAsset.h:993-994 |
établi |
modify(always_mark_dirty=True) |
PythonScriptPlugin/Private/PyWrapperObject.cpp:1130 |
établi |
EditorAssetLibrary.save_loaded_asset (EditorScriptingUtilities, désactivé par défaut mais requis par le plugin Bridge, actif dans le projet) ; EditorLoadingAndSavingUtils.get_dirty_content_packages |
Plugins/Editor/EditorScriptingUtilities/.../EditorAssetLibrary.h:261-262 ; EditorScriptingUtilities.uplugin:13 ; Editor/UnrealEd/Public/FileHelpers.h:143-144 |
établi (chargement par Bridge : estimé) |
get_assets_by_path renvoie la liste, ou None, parce que le retour bool est replié sur le paramètre de sortie. |
Runtime/AssetRegistry/Public/AssetRegistry/IAssetRegistry.h:310-311 ; PyGenUtil.cpp:1161-1171 |
établi |
Passage des arguments : -script="<chemin avec espace>.py --dry-run". Le jeton garde ses guillemets internes ; le commandlet lit la chaîne entre guillemets ; le plugin sépare le chemin du .py et les arguments (sys.argv). La forme "-script=<chemin avec espace> …" couperait le chemin à l'espace. |
LaunchEngineLoop.cpp:1605-1632 ; Core/Private/Misc/Parse.cpp:935-1017 ; PythonScriptPlugin/Private/PythonScriptCommandlet.cpp:17-33 ; PythonScriptPlugin.cpp:814-895, :196-215 |
établi par lecture ; non exécuté |
5. Sorties DryRun, résultat de l'essai, MD5 après, dump
Rien n'a été produit (étapes b à d non lancées). Le compte de 28 poses trouvées n'est donc pas mesuré par le script.
Constat disque seulement : find …\Rigs\Poses -name "*_pose.uasset" | wc -l = 28, *.uasset = 56.
MD5 « avant » (établi, md5sum, identique au manifeste Backup_5.5\U7b) :
Manny_calf_l_pose.uasset:9C1E12CE72C826FD6F1DDDF9ADB24ABB(204 017 octets, 2026-10-08 20:28:01) ;Manny_calf_l_anim.uasset:21AF225AF6AF3E7986ABB27247EF3611.
6. Commandes prêtes (pwsh, depuis D:\Game\LifePlay-master 5.8, éditeur fermé, un seul UE)
# d0 — dump avant
.\Tools\RunCommandlet.ps1 -Lot U7b -Commandlet LPDumpAssets -Args '-List="D:/Game/LifePlay-master 5.8/Saved/U7b/liste_manny_calf_l_pose.txt" -Out="D:/Game/LifePlay-master 5.8/Saved/U7b/dump_Manny_calf_l_pose_avant.txt"'
# b — DryRun (attendu : 28 lignes U7B-POSE nn/28, BILAN trouvees=28 avec_source=28, 28 avertissements moteur de pose)
.\Tools\RunCommandlet.ps1 -Lot U7b -Commandlet pythonscript -Args '-script="D:/Game/LifePlay-master 5.8/Saved/U7b/update_pose_sources.py --dry-run"'
# c — essai réel, une pose
.\Tools\RunCommandlet.ps1 -Lot U7b -Commandlet pythonscript -Args '-script="D:/Game/LifePlay-master 5.8/Saved/U7b/update_pose_sources.py --only Manny_calf_l_pose"'
# d — relevé
.\Tools\RunCommandlet.ps1 -Lot U7b -Commandlet CompileAllBlueprints
.\Tools\RunCommandlet.ps1 -Lot U7b -Commandlet LPDumpAssets -Args '-List="D:/Game/LifePlay-master 5.8/Saved/U7b/liste_manny_calf_l_pose.txt" -Out="D:/Game/LifePlay-master 5.8/Saved/U7b/dump_Manny_calf_l_pose_apres.txt"'
Décomptes sur le journal Saved\Logs\portage\U7b_CompileAllBlueprints_<horodatage>.log. La forme stricte est celle de T3, car grep -c "Ressource de la pose" simple compte aussi le récapitulatif LogInit (56 sur la référence) :
grep -c "^\[[^]]*\]\[[^]]*\]LogAnimation: Warning: Ressource de la pose" <log>→ attendu 27 (référence U5 : 28) ;grep -c "Manny_calf_l_pose" <log>→ attendu 0 (référence : 2) ;- ligne
Success - 0 error(s), N warning(s)(référence :…203108.log:3058, 28).
7. Décision demandée à l'orchestrateur
- Confirmer que l'environnement HyperAIStudio (uproject modifié, plugin
Plugins\Marketplace\HyperAIStudio, 15 Toolsets) est voulu par l'utilisateur et accepté pour U7b. Si oui, ajouter avant l'étape c unCompileAllBlueprints« avant », dans le même environnement, comme base de comparaison (critère : seules les lignes de pose passent de 28 à 27). Sinon, l'utilisateur décide de neutraliser l'outil le temps du passage (je n'ai rien touché :.uproject,.gitignore,.hyperai,Plugins\Marketplacesont dans l'état laissé par l'outil). - Garantir qu'aucun éditeur ni démarrage HyperAIStudio n'aura lieu pendant les étapes b à d (lanceur
.hyperai/scripts/Start-HyperAIStudioEditor.ps1). - Ensuite, relancer cette fiche, ou une fiche de reprise, à partir de l'étape b avec les commandes du § 6.
8. Écarts à la fiche
- Étapes b, c et d non faites (arrêt, § 2). Critère de la fiche non évalué.
- Ajouts au script : paramètre
--all; refus du mode réel sans--only/--all; contrôle bloquant « 28 poses » en mode réel ; journal des paquets sales ; rapport texte dansSaved\U7b. - Ajout : fichier liste
liste_manny_calf_l_pose.txtpourLPDumpAssets. - « État out of date » : non lisible par l'API Python (§ 4). Remplacé par l'avertissement
PostLoaddans le journal et par le dump.
9. Fichiers écrits
D:\Game\LifePlay-master 5.8\Saved\U7b\update_pose_sources.py(dossierSaved\U7bcréé)D:\Game\LifePlay-master 5.8\Saved\U7b\liste_manny_calf_l_pose.txtD:\Game\LifePlay-master 5.5\Docs\Migration\etat\U58\U7b\U7b-T5-IMPL.md(ce livrable)
Aucun asset, aucun fichier suivi par git, aucun fichier de l'addon modifié. Pas de commit, pas de suppression.
10. Reprise (orchestrateur, décision utilisateur : HyperAIStudio et Toolsets gardés)
Lancement : pwsh -File <scratchpad>\u7b_run.ps1 -Step <cab|dumpav|dry|reel|dumpap>. Ce lanceur s'arrête (code 90) si un processus UnrealEditor ou UnrealEditor-Cmd tourne, puis appelle Tools\RunCommandlet.ps1 -Lot U7b avec les arguments du § 6. Aucun UE n'était en cours avant chaque étape (tasklist). Six passages ont été faits, l'un après l'autre.
10.1 Résultat : réussi
| Étape | Journal (D:\Game\LifePlay-master 5.8\Saved\Logs\portage\) |
Résultat (établi) |
|---|---|---|
b0 CompileAllBlueprints avant |
U7b_CompileAllBlueprints_20261009-135244.log (201 s) |
418 BP, Compiling Completed with 0 errors and 0 warnings and 0 blueprints that failed to load. 28 lignes de pose. Les 28 lignes sont identiques, GUID compris, à la référence U5 …20261008-203108.log (diff des sort -u vide). Bilan Failure - 1 error(s), 28 warning(s). |
| d0 dump avant | U7b_LPDumpAssets_20261009-135645.log |
Saved\U7b\dump_Manny_calf_l_pose_avant.txt (12 lignes) : SourceAnimationRawDataGUID = 8E2B50DD07CBD0EC07FCDD7DE6C03CCF, bAdditivePose = True, BasePoseIndex = 0 |
| b DryRun | U7b_pythonscript_20261009-135709.log |
28 trouvées, 28 avec source, même squelette SK_Mannequin pour les 28 ; BILAN mode=dryrun trouvees=28 avec_source=28 cibles=0 traitees=0. 28 lignes de pose au chargement. Aucun fichier du dossier Poses modifié (find -newermt = 0). Rapport : Saved\U7b\update_pose_sources_dryrun_20261009-135720.txt |
c réel --only Manny_calf_l_pose |
U7b_pythonscript_20261009-135737.log |
modify() puis update_pose_from_animation. Après : 5 poses, mêmes noms. 1 seul paquet sale (la pose), enregistré (-> True). BILAN mode=reel trouvees=28 avec_source=28 cibles=1 traitees=1. Rapport : Saved\U7b\update_pose_sources_reel_20261009-135748.txt |
d CompileAllBlueprints après |
U7b_CompileAllBlueprints_20261009-135821.log (191 s) |
418 BP, 0 erreur et 0 avertissement de compilation. 27 lignes de pose ; 0 ligne Manny_calf_l_pose (2 en b0). Bilan Failure - 1 error(s), 27 warning(s). |
| d dump après | U7b_LPDumpAssets_20261009-140147.log |
Saved\U7b\dump_Manny_calf_l_pose_apres.txt. Plus d'avertissement de pose au rechargement (seule reste la ligne propre à LPDumpAssets). |
Comparaison b0 → d (script cmpwarn.py : lignes Warning et Error, horodatage et GUID neutralisés) : la seule différence est la disparition des 2 lignes Manny_calf_l_pose (l'avertissement et son rappel LogInit). Il n'y a aucune ligne nouvelle. Les 27 autres lignes de pose sont identiques, GUID compris.
10.2 Nouveautés de l'environnement (établi, présentes dans b0, inchangées en d)
- 1 erreur à chaque lancement d'UE, venant de HyperAIStudio :
LogHyperAIStudioAutomation: Error: Automation probe publication failed: AutomationController is not loaded; the probe never loads it from a tool call.Elle apparaît dans les 6 journaux (1 chacun,grep -c). Le bilan affiche doncFailure - 1 error(s), et le code de sortie de chaque passage est 1, alors que chaque commandlet finit enresult 0et qu'aucune autre ligneErrorn'apparaît (0 dans les 6 journaux). - +8 BP compilés (418 contre 410 en U5) :
/PCGToolset/Skills/Skill_*(8 assets), tous compilés sans erreur. - Aucun avertissement nouveau dû aux Toolsets ni à HyperAIStudio dans
CompileAllBlueprints(b0 contre U5 : seules les 2 lignes HyperAIStudio s'ajoutent). - Le critère « 0 erreur » est donc atteint pour la compilation des Blueprints (0 erreur, 0 échec de chargement). Il n'est pas atteint au sens strict du bilan moteur : il reste 1 erreur HyperAIStudio, la même qu'en b0. À trancher par l'orchestrateur, en particulier pour les lots qui lisent le code de sortie de
RunCommandlet.ps1.
10.3 MD5 et données de la pose
Manny_calf_l_pose.uasset:9C1E12CE72C826FD6F1DDDF9ADB24ABB→BF33442362466150D387A0D4D0EFE4ED. Taille inchangée (204 017 octets), date 2026-10-09 13:57:48.- Les 55 autres fichiers sont identiques au manifeste
Backup_5.5\U7b(contrôlehashlib). Seul ce fichier a changé sousContentdepuis 13:50 (find Content -newermt). - Dump avant → après (
diffdes 12 lignes, puis analyse dePoseContainerparcmppose.py) :SourceAnimationRawDataGUID:8E2B50DD…→1D634D8727C63225C22E9D7F4FA6C1E2, c'est-à-dire le « GUID trouvé après resave » de la ligne 1 du tableau T3 (U7b-T3-CART.md:44) ;PoseFNamesidentiques ;TrackPoseInfluenceIndicesidentiques (48 valeurs) ;SourceAnimation,Skeleton,bAdditivePose,BasePoseIndex,RetargetSourceAssetinchangés ;Tracks: 150 pistes, identiques à la casse près. 20 noms ont changé de casse (ex.lowerarm_correctiveRoot_l→lowerarm_correctiveroot_l,calf_kneeBack_l→calf_kneeback_l). Les noms viennent maintenant des pistes de l'animation source (PoseAsset.cpp:1609-1615). LesFNamese comparent sans tenir compte de la casse : sans effet sur le fonctionnement (estimé) ;- transformées (
SourceLocalSpacePose5 × 150,LocalSpacePose7/7/6/4) : même nombre, écart maximal 3e-06 en translation et 1e-06 en rotation, échelle 0. Cela correspond à la précision d'export (6 décimales) : les données de pose sont inchangées à cette précision.
- Avertissement pendant c :
LogUObjectGlobals: Warning: Objet 'Object /Game/Characters/Heroes/Mannequin/Meshes/SKM_Manny.SKM_Manny' introuvable, émis à l'enregistrement. Il vient dePreSave→UpdateRetargetSourceAssetData(PoseAsset.cpp:1135-1143), parce queRetargetSourceAssetpointe vers un maillage absent du projet. Ce n'est pas nouveau : la même ligne figure au resave U5 de cette même pose (U5_LPResavePackages_20261008-202628.log:2025).
10.4 Commandes, fichiers et écarts de la reprise
- Fichiers écrits :
D:\Game\LifePlay-master 5.8\Saved\U7b\dump_Manny_calf_l_pose_{avant,apres}.txt…\Saved\U7b\update_pose_sources_{dryrun_20261009-135720,reel_20261009-135748}.txt- résumés
D:\Game\LifePlay-master 5.8\Docs\Migration\etat\U7b_*_20261009-*.txt(6, écrits parRunCommandlet.ps1) - scripts d'analyse dans le scratchpad de session (
u7b_run.ps1,cmpwarn.py,cmppose.py), hors projet.
- Asset modifié :
Content\FreeAnimationsPack\Demo\Characters\Mannequins\Rigs\Poses\Manny\Manny_calf_l_pose.uassetseulement. Retour arrière possible par l'instantanéBackup_5.5\U7b. - Ordre réel : b0, dump avant, b, c, d, dump après. Le dump avant a été placé avant b, ce qui ne change rien (lecture seule).
- Pas de commit, pas de suppression ; addon non touché.
git statusde la copie 5.8 : seuls.gitignore,LifePlay.uproject(HyperAIStudio) etDocs/Migration/29_Projet_Stabilisation_V2.md(session voisine) sont modifiés, aucun par cette fiche.
11. Reprise 2 (orchestrateur : essai validé, --all)
Avant chaque lancement : aucun UnrealEditor ni UnrealEditor-Cmd (tasklist, puis le garde-fou de u7b_run.ps1). L'éditeur n'a pas planté (chaque commandlet finit en result 0).
11.1 Résultat : réussi
| Étape | Journal (D:\Game\LifePlay-master 5.8\Saved\Logs\portage\) |
Résultat (établi) |
|---|---|---|
réel --all |
U7b_pythonscript_20261009-140444.log |
BILAN mode=reel trouvees=28 avec_source=28 cibles=28 traitees=28. 28 × enregistrement du paquet … -> True, 28 × Saving Package. Chaque enregistrement n'avait qu'1 paquet sale (28 × « paquets sales (1) »). Nombre de poses par asset identique au DryRun (28/28). 27 lignes de pose au chargement, puisque Manny_calf_l_pose était déjà corrigée. Rapport : Saved\U7b\update_pose_sources_reel_20261009-140457.txt |
CompileAllBlueprints après |
U7b_CompileAllBlueprints_20261009-140525.log (191 s) |
418 BP, même liste qu'en b0 (diff vide). Compiling Completed with 0 errors and 0 warnings and 0 blueprints that failed to load. 0 ligne « Ressource de la pose », 0 mention du dossier Rigs/Poses. Bilan Failure - 1 error(s), 0 warning(s). |
- Comparaison b0 → après (
cmpwarn.py) : il ne reste aucune ligne nouvelle. Seules ont disparu les 56 lignes de pose : 28 avertissements et 28 rappelsLogInit. Il reste 3 lignes Warning/Error : l'erreurLogHyperAIStudioAutomation(connue, § 10.2), son rappelLogInit, et l'en-têteWarning/Error Summary. Code de sortie 1 à cause de cette erreur, relevé sans arrêt comme demandé. Manny_calf_l_posea été repassée par--all(le script traite les 28) : paquet réenregistré, contenu identique (MD5BF334423…inchangé).- Avertissements pendant
--all:SKM_Manny.SKM_Manny' introuvableetSKM_Quinn.SKM_Quinn' introuvable(1 chacun). Même cause que § 10.3 (PreSave→UpdateRetargetSourceAssetData). Tous deux figurent déjà au resave U5 (U5_LPResavePackages_20261008-202628.log, 1 chacun) : pas nouveaux.
11.2 MD5 (projet contre instantané Backup_5.5\U7b, script hashlib / md5sum)
- 28
_anim: 28/28 identiques à l'instantané. - 28
_pose: 28/28 différentes de l'instantané. Pour 27 d'entre elles, le changement vient de--all;Manny_calf_l_poseétait déjà changée en § 10. Aucun autre fichier deContentmodifié depuis 14:04 en dehors des 28 poses (find Content -newermt= 28 fichiers, tous_pose.uasset).
| # | Pose | MD5 instantané (avant) | MD5 après |
|---|---|---|---|
| 1 | Manny_calf_l_pose |
9C1E12CE72C826FD6F1DDDF9ADB24ABB |
BF33442362466150D387A0D4D0EFE4ED |
| 2 | Manny_calf_r_pose |
C5AC8F8AD252FD2286F8CEBB85DE7964 |
80440A445DA5605440C940C2AA116F3A |
| 3 | Manny_clavicle_l_pose |
FBE6588EFF1C3C24DB47E03B121F4995 |
364498931173892E8A7E5CBCB8A0E32E |
| 4 | Manny_clavicle_r_pose |
83992B82FF3AFF337B260F02C09EE3C9 |
19590B1AA20F6D38A750CDF3D0455A7C |
| 5 | Manny_foot_l_pose |
CEB404696D9A634F8BDD1BB4C4E97D9B |
7E3C76798094AEC74A6D5A68E5BDFEC1 |
| 6 | Manny_foot_r_pose |
D36A6BAD11960A8EBE37F66615B5DA6E |
4761F8381F99739053A1CBF423E21E1D |
| 7 | Manny_hand_l_pose |
6423B44465D78B8699D2CC09355A05D2 |
BF7697ACCE0F1F99D4F28F2511A2A208 |
| 8 | Manny_hand_r_pose |
79E5E4CBD126D1D90AE4DAF8D7AF2814 |
C0E8674910602886C3F1DA4117FDC01B |
| 9 | Manny_lowerarm_l_pose |
27F1C2064C9BB63BD470FFEFE87D8CBE |
E1A655F61F4797CEE2CB112A52F6FABE |
| 10 | Manny_lowerarm_r_pose |
75B45B3E3407FF416CF3BFA21D8AD4AB |
40851ABEBFF6371AAFEF91435AC0701D |
| 11 | Manny_thigh_l_pose |
D941A96A008000215B9083A0C45F7C39 |
49622581DFF154DF7D831F2269707708 |
| 12 | Manny_thigh_r_pose |
A9D32E045AC4530D274191F08EAD05DF |
EF4837F0151AA2771EAA74C2AF22594E |
| 13 | Manny_upperarm_l_pose |
6B6E49BC94AFD43BAA636D01A5278FCF |
10627AEA91544747176360DFCF7179CE |
| 14 | Manny_upperarm_r_pose |
64557ACB3C7931E4CA53423879AF6BA0 |
83BB0CF9FEDAAABFA366DC7C6069BD1B |
| 15 | Quinn_calf_l_pose |
2D449021CAB6DDC2C13D5659CF41107E |
17BC525DF148591BE5B8C53A5CE81445 |
| 16 | Quinn_calf_r_pose |
429B6977970E1C5AE15FEC43D1143BCD |
8CE3C79A02AE72579EAD7D45A6E5B4C2 |
| 17 | Quinn_clavicle_l_pose |
3C2B2CFE01474FDB93330089DE1303A2 |
98AFFF211966E346A460013C12841CC7 |
| 18 | Quinn_clavicle_r_pose |
4F1D631A68AA52FC0E339EC2BC7CEE9B |
3F913D9E1D417BF6603FECDD6282CACA |
| 19 | Quinn_foot_l_pose |
6E4CB8776794E99F27982951835CBD37 |
39E3DB80EEF1C08C7F850D175C71FE13 |
| 20 | Quinn_foot_r_pose |
E8FBA4176BDF2E55698F87B76A57A61E |
5AF029696214813579A51676A1E56237 |
| 21 | Quinn_hand_l_pose |
1182CF966A2C19F1217900498EA25B02 |
00B63CD047BD8490A8647FCE1B49E785 |
| 22 | Quinn_hand_r_pose |
E0BBF6092FD28C3AF8175E1DF09475E8 |
C8C2AADF209C01DF363CD2804E35F04A |
| 23 | Quinn_lowerarm_l_pose |
30A19BAED9C4CF85E773D52EE9980A1F |
7F0D7EB3F36A4F5BBB7DE6E54912D86B |
| 24 | Quinn_lowerarm_r_pose |
EBD5B6E355D75B8C82D9E264C393CF4C |
7374C94AA406A9DB5056A6E0545BD857 |
| 25 | Quinn_thigh_l_pose |
2CA1EF7515B0027C3A44EDCF120C3725 |
B334150EEFA55C9933E0FEC4116BE4E9 |
| 26 | Quinn_thigh_r_pose |
30CE357A08D908FE9862BEE7CBF008B4 |
DF001FB043887FADC50AC05BC5A98953 |
| 27 | Quinn_upperarm_l_pose |
EF6EEA9863F60AC8714E813654D208BD |
306F99A8B454AB852F274FEB9F957E5C |
| 28 | Quinn_upperarm_r_pose |
40F827880C81BCBF9C3AB5AB0DC6E31B |
B971C7656E9AEB8792F93A34739EF0A0 |
11.3 Fichiers et écarts de la reprise 2
- Assets modifiés : les 28
*_pose.uassetdeContent\FreeAnimationsPack\Demo\Characters\Mannequins\Rigs\Poses\{Manny,Quinn}, seulement. Retour arrière par l'instantanéBackup_5.5\U7b(56 fichiers). - Écrits :
Saved\U7b\update_pose_sources_reel_20261009-140457.txt; résumésD:\Game\LifePlay-master 5.8\Docs\Migration\etat\U7b_pythonscript_20261009-140444.txtetU7b_CompileAllBlueprints_20261009-140525.txt. Relevés MD5 dans le scratchpad (md5_avant_all.txt,md5_apres_all.txt). - Pas de dump « après » des 27 autres poses (non demandé). L'écart de données n'est mesuré que sur
Manny_calf_l_pose(§ 10.3). - Pas de commit, pas de suppression, addon non touché.