Create review-only magnetic knight body and equipment models
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,44 @@
|
||||
# Magnetic knight candidate
|
||||
|
||||
This is a model review candidate. It is not connected to a prefab, scene, stage,
|
||||
collider, input target or game state. User model/material approval precedes game
|
||||
adoption. No Unity import or Android appearance/selection pass is claimed here.
|
||||
|
||||
`MagneticKnight.blend` contains separately named editable collections for the
|
||||
one-meter spherical body, knight equipment, existing-face preview, thin ribbon
|
||||
preview, and render studio. The face atlas is packed unchanged for portability.
|
||||
The review face and ribbon are excluded from the FBX exports; retain the game's
|
||||
six-expression SpriteRenderer and existing animated light ribbon during later
|
||||
integration. There is no new face, head, arm, leg, rig or animation.
|
||||
|
||||
`HeroBody.fbx` has a body-centered pivot and radius 0.5 meters. `KnightEquipment.fbx`
|
||||
has the same attachment origin and contains named meshes for the open helmet,
|
||||
short rounded toy sword, and layered round magnet-emblem shield. Object scales
|
||||
are applied. Authoring is Z up in meters; exports use -Z forward / Y up without
|
||||
animation. Preserve the imported axis transform when creating the later wrapper.
|
||||
The existing SphereCollider radius 0.5, root scale 1, and ball IDs remain owned by
|
||||
the existing game. Equipment must stay visual-only, without colliders or input
|
||||
targets. The equipment is a GroupBadge candidate for one representative per group.
|
||||
|
||||
The opaque export materials use uniform portable base colors, roughness and
|
||||
metallic values, with no procedural texture or Blender-only shader dependency.
|
||||
Their exact values are in `provenance.json`. The body is smooth with welded poles
|
||||
and no geometric seam. Helmet details follow its shell, and sword/shield stay
|
||||
beside the open eye-and-mouth area. Verify numbers, selection highlights, crowded
|
||||
groups and camera-facing behavior in Unity after approval; Blender shots alone
|
||||
do not prove those gameplay checks.
|
||||
|
||||
Regeneration (from this worktree root, with the Blender execution owner):
|
||||
|
||||
```powershell
|
||||
& 'C:/Program Files/Blender Foundation/Blender 5.2/blender.exe' --background --python tools/models/build_hero.py -- --review-dir 'C:/git/MagnetismHeroes/artifacts/verification/VisualUpgrade/ModelReview/Heroes'
|
||||
& 'C:/Program Files/Blender Foundation/Blender 5.2/blender.exe' --background --python tools/models/build_hero.py -- --verify-only
|
||||
```
|
||||
|
||||
The tool only writes the Heroes source/export folders and the specified review
|
||||
folder. It does not run the initial scenery builder. Provenance includes the
|
||||
actual Blender version, source/export bytes and SHA256, existing sprite records,
|
||||
material values, source licensing, and review limits. `verification.json` records
|
||||
the actual source reopen, body radius/scale/geometry gates and FBX reimport checks.
|
||||
Unity-generated `.meta` files are deliberately absent from this candidate; the
|
||||
later Unity import owner must create them after approval.
|
||||
@@ -0,0 +1,212 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "CANDIDATE_ONLY_USER_MODEL_REVIEW_REQUIRED",
|
||||
"authoring": "Project-original meshes made by tools/models/build_hero.py; no downloaded character geometry.",
|
||||
"license": "Original project-authored mesh/material work; existing generated face atlas retains SourceAssets/Art/Faces/provenance.json usage/service terms. No exclusive rights claim for generated decal.",
|
||||
"tool": {
|
||||
"name": "Blender",
|
||||
"actualVersion": "5.2.2 LTS"
|
||||
},
|
||||
"units": "meters; authoring Z up, body-centered pivot at origin; .5m body radius; scale applied, object scales 1",
|
||||
"export": {
|
||||
"axisForward": "-Z",
|
||||
"axisUp": "Y",
|
||||
"globalScale": 1,
|
||||
"applyUnitScale": true,
|
||||
"applyScaleOptions": "FBX_SCALE_ALL",
|
||||
"bakeAnim": false,
|
||||
"selection": "Body separately; knight equipment assembly of named meshes. Review face/ribbon/studio excluded."
|
||||
},
|
||||
"attachments": {
|
||||
"Helmet": "Upper sphere shell with open front, eye/mouth clearance",
|
||||
"Sword": "Body-left, short blunt toy blade; no arm, no collider",
|
||||
"Shield": "Body-right round layered shield; magnet emblem",
|
||||
"pivot": "Every exported mesh local origin is the same body center. Preserve imported axis transform in future wrapper."
|
||||
},
|
||||
"portableMaterials": [
|
||||
{
|
||||
"name": "Hero_CyanSatin",
|
||||
"baseColorSrgb": [
|
||||
0.17,
|
||||
0.72,
|
||||
0.83
|
||||
],
|
||||
"roughness": 0.48,
|
||||
"metallic": 0
|
||||
},
|
||||
{
|
||||
"name": "Helmet_SilverTint",
|
||||
"baseColorSrgb": [
|
||||
0.72,
|
||||
0.85,
|
||||
0.86
|
||||
],
|
||||
"roughness": 0.39,
|
||||
"metallic": 0.18
|
||||
},
|
||||
{
|
||||
"name": "Ceramic_WarmCream",
|
||||
"baseColorSrgb": [
|
||||
0.97,
|
||||
0.92,
|
||||
0.78
|
||||
],
|
||||
"roughness": 0.43,
|
||||
"metallic": 0
|
||||
},
|
||||
{
|
||||
"name": "Trim_HoneyGold",
|
||||
"baseColorSrgb": [
|
||||
0.94,
|
||||
0.71,
|
||||
0.34
|
||||
],
|
||||
"roughness": 0.42,
|
||||
"metallic": 0.12
|
||||
},
|
||||
{
|
||||
"name": "Enamel_DeepTeal",
|
||||
"baseColorSrgb": [
|
||||
0.055,
|
||||
0.4,
|
||||
0.44
|
||||
],
|
||||
"roughness": 0.42,
|
||||
"metallic": 0
|
||||
},
|
||||
{
|
||||
"name": "Blade_SatinSilver",
|
||||
"baseColorSrgb": [
|
||||
0.85,
|
||||
0.92,
|
||||
0.91
|
||||
],
|
||||
"roughness": 0.4,
|
||||
"metallic": 0.2
|
||||
}
|
||||
],
|
||||
"existingFace": {
|
||||
"source": {
|
||||
"path": "SourceAssets/Art/Faces/face-expressions-v2.png",
|
||||
"bytes": 1609191,
|
||||
"sha256": "0e3c115619c4ae68cf8859ccbc6d4bfb3a26a1a247b3ddb41327c46829540c98"
|
||||
},
|
||||
"runtime": {
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Textures/FaceExpressions.png",
|
||||
"bytes": 1609191,
|
||||
"sha256": "0e3c115619c4ae68cf8859ccbc6d4bfb3a26a1a247b3ddb41327c46829540c98"
|
||||
},
|
||||
"spriteRecords": [
|
||||
{
|
||||
"name": "Neutral",
|
||||
"rect": [
|
||||
0.0,
|
||||
512.0,
|
||||
682.0,
|
||||
512.0
|
||||
],
|
||||
"pivot": [
|
||||
0.5,
|
||||
0.5
|
||||
],
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Sprites/Face0.asset",
|
||||
"sha256": "a351d09aef580f8bf3d73401008aa93c7fffb250ea010595824dff15766dfcf6"
|
||||
},
|
||||
{
|
||||
"name": "Interested",
|
||||
"rect": [
|
||||
682.0,
|
||||
512.0,
|
||||
682.0,
|
||||
512.0
|
||||
],
|
||||
"pivot": [
|
||||
0.5,
|
||||
0.5
|
||||
],
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Sprites/Face1.asset",
|
||||
"sha256": "a555b81eb573044b53edc7c57bbc2937ba1e7d789527bae02f97686cce6ff816"
|
||||
},
|
||||
{
|
||||
"name": "Focused",
|
||||
"rect": [
|
||||
1365.0,
|
||||
512.0,
|
||||
682.0,
|
||||
512.0
|
||||
],
|
||||
"pivot": [
|
||||
0.5,
|
||||
0.5
|
||||
],
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Sprites/Face2.asset",
|
||||
"sha256": "6c8cfcc79bf7ab2781b39303ebd6e723fd0f96aec9f30378c7197bb73720d020"
|
||||
},
|
||||
{
|
||||
"name": "Laughing",
|
||||
"rect": [
|
||||
0.0,
|
||||
0.0,
|
||||
682.0,
|
||||
512.0
|
||||
],
|
||||
"pivot": [
|
||||
0.5,
|
||||
0.68
|
||||
],
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Sprites/Face3.asset",
|
||||
"sha256": "9130d438849dc678504cc939f51c9ea91c5b1dff97b7f7f9248b2f617af4da26"
|
||||
},
|
||||
{
|
||||
"name": "Encouraging",
|
||||
"rect": [
|
||||
682.0,
|
||||
0.0,
|
||||
682.0,
|
||||
512.0
|
||||
],
|
||||
"pivot": [
|
||||
0.5,
|
||||
0.68
|
||||
],
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Sprites/Face4.asset",
|
||||
"sha256": "8325c280f8fd83b1f55102593dc772153a3953a70e818467894d7ac98c9f87c0"
|
||||
},
|
||||
{
|
||||
"name": "Celebrating",
|
||||
"rect": [
|
||||
1365.0,
|
||||
0.0,
|
||||
682.0,
|
||||
512.0
|
||||
],
|
||||
"pivot": [
|
||||
0.5,
|
||||
0.68
|
||||
],
|
||||
"path": "Assets/MagnetismHeroes/UnityRuntime/Presentation/Sprites/Face5.asset",
|
||||
"sha256": "a63967c62e7f1ddebe5cfa073b536992b1e02f2ff3aeacd515dc9cb230dca321"
|
||||
}
|
||||
],
|
||||
"reviewNormalization": "Read existing rects and pivots. TextureImporter nPOTScale=1 imports original 1536x1024 PNG at 2048x1024. Review UV uses existing imported-grid x/2048,width/2048,y/1024,height/1024; pivot preserved. Existing files unchanged. Game face appearance/import still requires later review."
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"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"
|
||||
}
|
||||
],
|
||||
"reviewScope": "Actual Blender renders and source/export geometry assertions. No Unity import, no Android, no gameplay/selection/UI-clearance pass claimed. Candidate files have no hand-authored .meta; future Unity import owner must generate them after approval.",
|
||||
"renders": "C:\\git\\MagnetismHeroes\\artifacts\\verification\\VisualUpgrade\\ModelReview\\Heroes"
|
||||
}
|
||||
@@ -0,0 +1,364 @@
|
||||
{
|
||||
"tool": "5.2.2 LTS",
|
||||
"sourceReopened": true,
|
||||
"sourceAssertions": {
|
||||
"meshCount": 23,
|
||||
"triangles": 15652,
|
||||
"bodyRadiusMeters": 0.5,
|
||||
"sourceBounds": {
|
||||
"HeroBody": [
|
||||
[
|
||||
-0.5,
|
||||
0.5
|
||||
],
|
||||
[
|
||||
-0.5,
|
||||
0.5
|
||||
],
|
||||
[
|
||||
-0.5,
|
||||
0.5
|
||||
]
|
||||
],
|
||||
"Helmet_OpenShell": [
|
||||
[
|
||||
-0.5319715738296509,
|
||||
0.5319715738296509
|
||||
],
|
||||
[
|
||||
-0.445354163646698,
|
||||
0.5319715738296509
|
||||
],
|
||||
[
|
||||
-0.07078947126865387,
|
||||
0.5379999876022339
|
||||
]
|
||||
],
|
||||
"Helmet_RolledCreamRim": [
|
||||
[
|
||||
-0.5453746318817139,
|
||||
0.5453530550003052
|
||||
],
|
||||
[
|
||||
-0.4633394181728363,
|
||||
0.5453746318817139
|
||||
],
|
||||
[
|
||||
-0.08790849149227142,
|
||||
0.3558972179889679
|
||||
]
|
||||
],
|
||||
"Helmet_CrownGoldRail": [
|
||||
[
|
||||
-0.02800000086426735,
|
||||
0.02800000086426735
|
||||
],
|
||||
[
|
||||
-0.45152127742767334,
|
||||
0.45152127742767334
|
||||
],
|
||||
[
|
||||
0.32673779129981995,
|
||||
0.5860000252723694
|
||||
]
|
||||
],
|
||||
"Helmet_CrownTealInlay": [
|
||||
[
|
||||
-0.014000000432133675,
|
||||
0.014000000432133675
|
||||
],
|
||||
[
|
||||
-0.44023397564888,
|
||||
0.44023397564888
|
||||
],
|
||||
[
|
||||
0.3551320731639862,
|
||||
0.5903148055076599
|
||||
]
|
||||
],
|
||||
"Helmet_Hinge_-1": [
|
||||
[
|
||||
-0.5070000290870667,
|
||||
-0.4230000078678131
|
||||
],
|
||||
[
|
||||
-0.25200000405311584,
|
||||
-0.2280000001192093
|
||||
],
|
||||
[
|
||||
-0.007000000216066837,
|
||||
0.07699999958276749
|
||||
]
|
||||
],
|
||||
"Helmet_HingeInset_-1": [
|
||||
[
|
||||
-0.4869999885559082,
|
||||
-0.4429999887943268
|
||||
],
|
||||
[
|
||||
-0.26350000500679016,
|
||||
-0.25049999356269836
|
||||
],
|
||||
[
|
||||
0.013000000268220901,
|
||||
0.05700000002980232
|
||||
]
|
||||
],
|
||||
"Helmet_Hinge_1": [
|
||||
[
|
||||
0.4230000078678131,
|
||||
0.5070000290870667
|
||||
],
|
||||
[
|
||||
-0.25200000405311584,
|
||||
-0.2280000001192093
|
||||
],
|
||||
[
|
||||
-0.007000000216066837,
|
||||
0.07699999958276749
|
||||
]
|
||||
],
|
||||
"Helmet_HingeInset_1": [
|
||||
[
|
||||
0.4429999887943268,
|
||||
0.4869999885559082
|
||||
],
|
||||
[
|
||||
-0.26350000500679016,
|
||||
-0.25049999356269836
|
||||
],
|
||||
[
|
||||
0.013000000268220901,
|
||||
0.05700000002980232
|
||||
]
|
||||
],
|
||||
"Sword_SoftBlade": [
|
||||
[
|
||||
-0.7200000286102295,
|
||||
-0.6150963306427002
|
||||
],
|
||||
[
|
||||
-0.13249999284744263,
|
||||
-0.07750000059604645
|
||||
],
|
||||
[
|
||||
-0.014999999664723873,
|
||||
0.47232866287231445
|
||||
]
|
||||
],
|
||||
"Sword_CenterInlay": [
|
||||
[
|
||||
-0.6919999718666077,
|
||||
-0.649011492729187
|
||||
],
|
||||
[
|
||||
-0.14300000667572021,
|
||||
-0.13500000536441803
|
||||
],
|
||||
[
|
||||
0.03500000014901161,
|
||||
0.4301910102367401
|
||||
]
|
||||
],
|
||||
"Sword_SoftCrossguard": [
|
||||
[
|
||||
-0.7879676222801208,
|
||||
-0.537032425403595
|
||||
],
|
||||
[
|
||||
-0.14749999344348907,
|
||||
-0.0625
|
||||
],
|
||||
[
|
||||
-0.05999999865889549,
|
||||
0.00800000037997961
|
||||
]
|
||||
],
|
||||
"Sword_TealGrip": [
|
||||
[
|
||||
-0.7042268514633179,
|
||||
-0.6257731914520264
|
||||
],
|
||||
[
|
||||
-0.14249999821186066,
|
||||
-0.06750000268220901
|
||||
],
|
||||
[
|
||||
-0.19499999284744263,
|
||||
-0.03999999910593033
|
||||
]
|
||||
],
|
||||
"Sword_CreamPommel": [
|
||||
[
|
||||
-0.7149999737739563,
|
||||
-0.6150000095367432
|
||||
],
|
||||
[
|
||||
-0.14249999821186066,
|
||||
-0.06750000268220901
|
||||
],
|
||||
[
|
||||
-0.2549999952316284,
|
||||
-0.1550000011920929
|
||||
]
|
||||
],
|
||||
"Sword_GripBand-0.08": [
|
||||
[
|
||||
-0.7039999961853027,
|
||||
-0.6309999823570251
|
||||
],
|
||||
[
|
||||
-0.14550000429153442,
|
||||
-0.06650000065565109
|
||||
],
|
||||
[
|
||||
-0.0860000029206276,
|
||||
-0.07400000095367432
|
||||
]
|
||||
],
|
||||
"Sword_GripBand-0.13": [
|
||||
[
|
||||
-0.7039999961853027,
|
||||
-0.6309999823570251
|
||||
],
|
||||
[
|
||||
-0.14550000429153442,
|
||||
-0.06650000065565109
|
||||
],
|
||||
[
|
||||
-0.13600000739097595,
|
||||
-0.12399999797344208
|
||||
]
|
||||
],
|
||||
"Sword_GripBand-0.18": [
|
||||
[
|
||||
-0.7039999961853027,
|
||||
-0.6309999823570251
|
||||
],
|
||||
[
|
||||
-0.14550000429153442,
|
||||
-0.06650000065565109
|
||||
],
|
||||
[
|
||||
-0.1860000044107437,
|
||||
-0.17399999499320984
|
||||
]
|
||||
],
|
||||
"Shield_CreamRolledEdge": [
|
||||
[
|
||||
0.33899998664855957,
|
||||
0.7950000166893005
|
||||
],
|
||||
[
|
||||
-0.20499999821186066,
|
||||
-0.13500000536441803
|
||||
],
|
||||
[
|
||||
-0.37167999148368835,
|
||||
0.11168000102043152
|
||||
]
|
||||
],
|
||||
"Shield_GoldInsetRing": [
|
||||
[
|
||||
0.36500000953674316,
|
||||
0.7689999938011169
|
||||
],
|
||||
[
|
||||
-0.22750000655651093,
|
||||
-0.19850000739097595
|
||||
],
|
||||
[
|
||||
-0.34411999583244324,
|
||||
0.0841199979186058
|
||||
]
|
||||
],
|
||||
"Shield_TealFace": [
|
||||
[
|
||||
0.3869999945163727,
|
||||
0.746999979019165
|
||||
],
|
||||
[
|
||||
-0.24449999630451202,
|
||||
-0.2214999943971634
|
||||
],
|
||||
[
|
||||
-0.3208000063896179,
|
||||
0.06080000102519989
|
||||
]
|
||||
],
|
||||
"Shield_MagnetEmblem": [
|
||||
[
|
||||
0.4659999907016754,
|
||||
0.6680000424385071
|
||||
],
|
||||
[
|
||||
-0.28299999237060547,
|
||||
-0.2409999966621399
|
||||
],
|
||||
[
|
||||
-0.20499999821186066,
|
||||
-0.057999998331069946
|
||||
]
|
||||
],
|
||||
"Shield_MagnetPole_0.487": [
|
||||
[
|
||||
0.46299999952316284,
|
||||
0.5109999775886536
|
||||
],
|
||||
[
|
||||
-0.28049999475479126,
|
||||
-0.24549999833106995
|
||||
],
|
||||
[
|
||||
-0.07500000298023224,
|
||||
-0.03799999877810478
|
||||
]
|
||||
],
|
||||
"Shield_MagnetPole_0.647": [
|
||||
[
|
||||
0.6230000257492065,
|
||||
0.6710000038146973
|
||||
],
|
||||
[
|
||||
-0.28049999475479126,
|
||||
-0.24549999833106995
|
||||
],
|
||||
[
|
||||
-0.07500000298023224,
|
||||
-0.03799999877810478
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"fbxReimportChecks": [
|
||||
{
|
||||
"file": "HeroBody.fbx",
|
||||
"meshCount": 1,
|
||||
"nonEmpty": true,
|
||||
"scaleOne": true
|
||||
},
|
||||
{
|
||||
"file": "KnightEquipment.fbx",
|
||||
"meshCount": 22,
|
||||
"nonEmpty": true,
|
||||
"scaleOne": true
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user