78 lines
4.3 KiB
JSON
78 lines
4.3 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"reviewer": "model_conformance independent spec reviewer",
|
|
"base": "58410281e015c6600dc543c4e093fd95c036288c",
|
|
"reviewDateUtc": "2026-10-07T17:03:27.724783+00:00",
|
|
"status": "pass",
|
|
"blockers": [],
|
|
"readOnlyScope": "Repository and worktrees read-only; Python bytes/SHA/FBX parsing and image viewing only; no Blender/Unity/commit/runtime adoption. Writes limited to .dryforge/reviews evidence.",
|
|
"userApproval": "PENDING; this review does not approve runtime adoption",
|
|
"runtimeVerification": "NOT_RUN; later approved Unity integration must verify actual interaction, selection, 30-stage mapping and Android",
|
|
"task": "T1",
|
|
"branch": "dryforge/hero-model",
|
|
"commit": "7d7efbe6b6a1a419ac998f37e3e019a75570a9e5",
|
|
"worktree": "C:\\git\\MagnetismHeroes\\.dryforge\\worktrees\\T1",
|
|
"changedFiles": 7,
|
|
"evidenceRoot": "artifacts/verification/VisualUpgrade/ModelReview/Heroes",
|
|
"artifacts": [
|
|
{
|
|
"path": "SourceAssets/Models/Heroes/MagneticKnight.blend",
|
|
"bytes": 1833499,
|
|
"sha256": "7ce1272dfe861aee986609cdb899f0edf8b8f2f0f17269c0eda472c8aa90ee3a"
|
|
},
|
|
{
|
|
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/HeroBody.fbx",
|
|
"bytes": 60076,
|
|
"sha256": "56f3301176c612ebeab3fdaaba5c019674beeb0f727f97ed27dd67e32ff50a40"
|
|
},
|
|
{
|
|
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Models/Heroes/KnightEquipment.fbx",
|
|
"bytes": 222764,
|
|
"sha256": "a8059a020e79e080635e7326bb91576010cad10c60ee931d95536d47fe76e61c"
|
|
}
|
|
],
|
|
"hashes": "Source/2 FBX/face atlas/six sprite records independently matched actual bytes",
|
|
"preservation": "13 original FBX byte-identical; existing provenance Git blobs unchanged; only 7 added candidate/tool/doc files; no manual meta or runtime wiring",
|
|
"findings": [
|
|
{
|
|
"spec": "Body mesh/material improvement, radius .5m and root scale1",
|
|
"evidence": [
|
|
"tools/models/build_hero.py:238",
|
|
"tools/models/build_hero.py:251",
|
|
"SourceAssets/Models/Heroes/verification.json",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/body_standalone.png"
|
|
],
|
|
"observed": "New smooth body mesh/material authored. Actual FBX 1986 vertices with radii .499999984 to .500000019m; 1 body mesh and 22 equipment meshes, default scale1 and shared origin."
|
|
},
|
|
{
|
|
"spec": "Rounded open helmet, short blunt sword, round shield; existing 6 expressions, thin blue mask and cape coexist",
|
|
"evidence": [
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/hero_three_quarter.png",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/knight_front.png",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/knight_side.png",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/knight_back.png",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/expression_0_Neutral.png",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/expression_5_Celebrating.png"
|
|
],
|
|
"observed": "All 11 actual PNGs viewed. No face/eye/mouth occlusion or visible broken silhouette preventing the later interaction promise. Intentional attachment overlap is not treated as a solid-intersection-zero requirement."
|
|
},
|
|
{
|
|
"spec": "Editable source, export/reopen/mesh/SHA checks, source-to-game-file provenance; preview-only atlas reuse",
|
|
"evidence": [
|
|
"SourceAssets/Models/Heroes/README.md",
|
|
"SourceAssets/Models/Heroes/provenance.json",
|
|
"SourceAssets/Models/Heroes/verification.json",
|
|
"tools/models/build_hero.py:138",
|
|
"tools/models/build_hero.py:212",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/build-final.log",
|
|
"artifacts/verification/VisualUpgrade/ModelReview/Heroes/verify.log"
|
|
],
|
|
"observed": "Actual Blender5.2.2LTS reopen/FBX-import logs, named body/equipment/review collections, m Z-up to -Z-forward/Y-up, no animation. Face/ribbon not included in FBX and preserve source atlas SHA."
|
|
}
|
|
],
|
|
"remaining": [
|
|
"Full hero plus three-landscape presentation and explicit user model approval are still required before any runtime adoption.",
|
|
"One representative hero per group, quantity/ID/collider boundaries and scene selection are later Unity integration checks."
|
|
]
|
|
}
|