Differentiate strategist props from Zhuge Liang fan

This commit is contained in:
2026-07-02 10:05:38 +09:00
parent 5ce5778c07
commit b325b35f4e
60 changed files with 342 additions and 133 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

View File

@@ -0,0 +1,24 @@
# Fa Zheng prop fix v1 report
- source: `propfix-fa-zheng-source-v1.png`
- base status: ok
- action status: ok
- base partial alpha: 0, opaque pixels: 2131622
- action partial alpha: 0, opaque pixels: 4574401
- base frame border hits: 0
- action frame border hits: 0
- base empty frames: 0
- action empty frames: 0
- base bbox width range: 152..250
- base bbox height range: 282..294
- base bottom range: 303..303
- action bbox width range: 131..231
- action bbox height range: 282..294
- action bottom range: 303..303
- contact: `propfix-fa-zheng-v1-contact.png`
- animation: `propfix-fa-zheng-v1-animation.gif`
- before/after: `propfix-fa-zheng-v1-before-after.png`
- scale compare: `propfix-fa-zheng-v1-scale-compare.png`
- battle composite: `propfix-fa-zheng-v1-battle-composite.png`
- manual checks: run build and local browser verification after generation
- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

View File

@@ -0,0 +1,24 @@
# Ma Liang prop fix v1 report
- source: `propfix-ma-liang-source-v1.png`
- base status: ok
- action status: ok
- base partial alpha: 0, opaque pixels: 1934766
- action partial alpha: 0, opaque pixels: 4224110
- base frame border hits: 0
- action frame border hits: 0
- base empty frames: 0
- action empty frames: 0
- base bbox width range: 150..217
- base bbox height range: 282..290
- base bottom range: 303..303
- action bbox width range: 126..204
- action bbox height range: 282..295
- action bottom range: 303..303
- contact: `propfix-ma-liang-v1-contact.png`
- animation: `propfix-ma-liang-v1-animation.gif`
- before/after: `propfix-ma-liang-v1-before-after.png`
- scale compare: `propfix-ma-liang-v1-scale-compare.png`
- battle composite: `propfix-ma-liang-v1-battle-composite.png`
- manual checks: run build and local browser verification after generation
- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 KiB

View File

@@ -0,0 +1,24 @@
# Pang Tong prop fix v1 report
- source: `propfix-pang-tong-source-v1.png`
- base status: ok
- action status: ok
- base partial alpha: 0, opaque pixels: 1907114
- action partial alpha: 0, opaque pixels: 4307606
- base frame border hits: 0
- action frame border hits: 0
- base empty frames: 0
- action empty frames: 0
- base bbox width range: 152..205
- base bbox height range: 282..290
- base bottom range: 303..303
- action bbox width range: 131..203
- action bbox height range: 282..295
- action bottom range: 303..303
- contact: `propfix-pang-tong-v1-contact.png`
- animation: `propfix-pang-tong-v1-animation.gif`
- before/after: `propfix-pang-tong-v1-before-after.png`
- scale compare: `propfix-pang-tong-v1-scale-compare.png`
- battle composite: `propfix-pang-tong-v1-battle-composite.png`
- manual checks: run build and local browser verification after generation
- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 886 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 KiB

View File

@@ -0,0 +1,24 @@
# Shu Strategist prop fix v1 report
- source: `propfix-shu-strategist-source-v1.png`
- base status: ok
- action status: ok
- base partial alpha: 0, opaque pixels: 2151310
- action partial alpha: 0, opaque pixels: 4345236
- base frame border hits: 0
- action frame border hits: 0
- base empty frames: 0
- action empty frames: 0
- base bbox width range: 149..249
- base bbox height range: 282..288
- base bottom range: 303..303
- action bbox width range: 125..237
- action bbox height range: 248..288
- action bottom range: 303..303
- contact: `propfix-shu-strategist-v1-contact.png`
- animation: `propfix-shu-strategist-v1-animation.gif`
- before/after: `propfix-shu-strategist-v1-before-after.png`
- scale compare: `propfix-shu-strategist-v1-scale-compare.png`
- battle composite: `propfix-shu-strategist-v1-battle-composite.png`
- manual checks: run build and local browser verification after generation
- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 885 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 KiB

View File

@@ -0,0 +1,24 @@
# Sima Yi prop fix v1 report
- source: `propfix-sima-yi-source-v1.png`
- base status: ok
- action status: ok
- base partial alpha: 0, opaque pixels: 2205012
- action partial alpha: 0, opaque pixels: 4503608
- base frame border hits: 0
- action frame border hits: 0
- base empty frames: 0
- action empty frames: 0
- base bbox width range: 159..237
- base bbox height range: 282..294
- base bottom range: 303..303
- action bbox width range: 137..224
- action bbox height range: 276..294
- action bottom range: 303..303
- contact: `propfix-sima-yi-v1-contact.png`
- animation: `propfix-sima-yi-v1-animation.gif`
- before/after: `propfix-sima-yi-v1-before-after.png`
- scale compare: `propfix-sima-yi-v1-scale-compare.png`
- battle composite: `propfix-sima-yi-v1-battle-composite.png`
- manual checks: run build and local browser verification after generation
- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,45 @@
# Strategist Prop Audit
This audit keeps Zhuge Liang's large white feather fan as a unique signature prop.
## Prop Rule
- `unit-zhuge-liang` is the only unit allowed to use a large white feather fan silhouette.
- Other strategist, civil-official, and shaman units should use bamboo slips, scrolls, maps, command tablets, brush cases, small folding fans, talismans, ritual staffs, or faction-specific tools.
- A fan is acceptable only when it does not read as Zhuge Liang's large white feather fan at 50px battle scale.
## Current Audit
| unit | current prop read | issue | action |
| --- | --- | --- | --- |
| `unit-zhuge-liang` | large white feather fan | allowed signature prop | keep |
| `unit-ma-liang` | bamboo slips, bound book, scroll case | white feather fan removed | fixed in batch 1 |
| `unit-pang-tong` | dark wood slips, compact dark folded fan, scroll bundles | no white feather fan | fixed in batch 1 |
| `unit-sima-yi` | black command tablet, sealed military order, tally baton | fan removed | fixed in batch 1 |
| `unit-fa-zheng` | campaign map board, command slips, tally baton | fan removed | fixed in batch 1 |
| `unit-yi-ji` | letter, bamboo slips, scroll | distinct civil envoy | keep |
| `unit-huang-quan` | bamboo slips, map board, baton | distinct quartermaster official | keep |
| `unit-shu-strategist` | writing brush, bamboo slips, compact field map | white feather fan removed | fixed in batch 1 |
| `unit-shu-strategist-field` | likely strategist prop variant | needs later batch check | later |
| `unit-shu-strategist-white` | likely pale strategist prop variant | needs later batch check | later |
| `unit-wei-strategist` | white feather fan in several poses | too close to Zhuge Liang | later prop cleanup |
| `unit-wei-strategist-black` | dark strategist prop variant | needs later batch check | later |
| `unit-wei-strategist-blue` | strategist prop variant | needs later batch check | later |
| `unit-wu-strategist` | white feather fan in several poses | too close to Zhuge Liang | later prop cleanup |
| `unit-wu-strategist-fire` | white fan in fire strategist poses | too close to Zhuge Liang | later prop cleanup |
| `unit-wu-strategist-river` | white fan in river strategist poses | too close to Zhuge Liang | later prop cleanup |
| `unit-nanman-shaman` | ritual staff / tribal ornaments | not a white feather fan | keep |
| `unit-nanman-shaman-ember` | ritual staff / ember ornaments | not a white feather fan | keep |
| `unit-nanman-shaman-storm` | ritual staff / storm ornaments | not a white feather fan | keep |
## Representative Fix Batch
The first correction batch changes:
- `unit-ma-liang`
- `unit-pang-tong`
- `unit-sima-yi`
- `unit-fa-zheng`
- `unit-shu-strategist`
Later cleanup should remove white-feather-fan reads from remaining generic strategist variants after this representative batch is verified.

View File

@@ -0,0 +1,44 @@
# Strategist Prop Fix Batch 1
Goal: keep Zhuge Liang's large white feather fan unique, while preserving strategist readability for representative units.
## Units Updated
| unit | old read | new prop direction | result |
| --- | --- | --- | --- |
| `unit-ma-liang` | white feather fan / soft scholar | bamboo slips, bound book, scroll case, sealed letter | fixed |
| `unit-pang-tong` | strategist fan pattern | dark wood slips, compact dark folded fan, scroll bundles | fixed |
| `unit-sima-yi` | gray fan could echo Zhuge Liang | black command tablet, sealed military order, tally baton | fixed |
| `unit-fa-zheng` | small fan plus command slips | campaign map board, command slips, tally baton | fixed |
| `unit-shu-strategist` | large white feather fan | writing brush, bamboo slips, compact field map | fixed |
## Deliverables
| unit | contact | animation | before/after | battle preview | browser check |
| --- | --- | --- | --- | --- | --- |
| `unit-ma-liang` | `docs/propfix-ma-liang-v1-contact.png` | `docs/propfix-ma-liang-v1-animation.gif` | `docs/propfix-ma-liang-v1-before-after.png` | `docs/propfix-ma-liang-v1-battle-composite.png` | `docs/propfix-ma-liang-v1-debug-preview-battle-check.png` |
| `unit-pang-tong` | `docs/propfix-pang-tong-v1-contact.png` | `docs/propfix-pang-tong-v1-animation.gif` | `docs/propfix-pang-tong-v1-before-after.png` | `docs/propfix-pang-tong-v1-battle-composite.png` | `docs/propfix-pang-tong-v1-debug-preview-battle-check.png` |
| `unit-sima-yi` | `docs/propfix-sima-yi-v1-contact.png` | `docs/propfix-sima-yi-v1-animation.gif` | `docs/propfix-sima-yi-v1-before-after.png` | `docs/propfix-sima-yi-v1-battle-composite.png` | `docs/propfix-sima-yi-v1-debug-preview-battle-check.png` |
| `unit-fa-zheng` | `docs/propfix-fa-zheng-v1-contact.png` | `docs/propfix-fa-zheng-v1-animation.gif` | `docs/propfix-fa-zheng-v1-before-after.png` | `docs/propfix-fa-zheng-v1-battle-composite.png` | `docs/propfix-fa-zheng-v1-debug-preview-battle-check.png` |
| `unit-shu-strategist` | `docs/propfix-shu-strategist-v1-contact.png` | `docs/propfix-shu-strategist-v1-animation.gif` | `docs/propfix-shu-strategist-v1-before-after.png` | `docs/propfix-shu-strategist-v1-battle-composite.png` | `docs/propfix-shu-strategist-v1-debug-preview-battle-check.png` |
## Technical Verification
- `pnpm build`: passed.
- `scripts/audit-unit-sprite-sheets.py`: passed for updated sheets.
- `scripts/check-unit-sprite-approval-gate.py --mode release`: passed.
- `scripts/check-unit-sprite-workflow-consistency.py`: passed.
- Local browser checks: 5/5 passed.
- Local browser console errors: `0`.
- Local browser 404s: `0`.
## Follow-Up Queue
The representative batch fixes the most visible overlap. Remaining generic variants that still need later prop cleanup:
- `unit-wei-strategist`
- `unit-wu-strategist`
- `unit-wu-strategist-fire`
- `unit-wu-strategist-river`
- `unit-shu-strategist-field`
- `unit-shu-strategist-white`

View File

@@ -430,10 +430,10 @@
"baseStatus": "ok", "baseStatus": "ok",
"actionStatus": "ok", "actionStatus": "ok",
"battleBasePx": [ "battleBasePx": [
24.9, 23.8,
34.2, 39.8,
45.0, 45.0,
46.8 46.0
], ],
"spec": "unit-sprite-batch2-shu-strategist-spec.md" "spec": "unit-sprite-batch2-shu-strategist-spec.md"
}, },
@@ -1208,10 +1208,10 @@
"baseStatus": "ok", "baseStatus": "ok",
"actionStatus": "ok", "actionStatus": "ok",
"battleBasePx": [ "battleBasePx": [
29.1, 24.3,
35.3, 39.9,
46.3, 45.0,
46.3 47.0
], ],
"spec": null "spec": null
}, },
@@ -1348,9 +1348,9 @@
"baseStatus": "ok", "baseStatus": "ok",
"actionStatus": "ok", "actionStatus": "ok",
"battleBasePx": [ "battleBasePx": [
25.6, 24.0,
38.8, 34.7,
46.3, 45.0,
46.3 46.3
], ],
"spec": null "spec": null
@@ -1362,10 +1362,10 @@
"baseStatus": "ok", "baseStatus": "ok",
"actionStatus": "ok", "actionStatus": "ok",
"battleBasePx": [ "battleBasePx": [
28.0, 24.3,
32.1, 32.7,
46.0, 45.0,
46.0 46.3
], ],
"spec": null "spec": null
}, },
@@ -1376,10 +1376,10 @@
"baseStatus": "ok", "baseStatus": "ok",
"actionStatus": "ok", "actionStatus": "ok",
"battleBasePx": [ "battleBasePx": [
31.3, 25.4,
33.5, 37.9,
46.0, 45.0,
46.0 47.0
], ],
"spec": null "spec": null
}, },

View File

@@ -65,7 +65,7 @@ No next unit is currently defined.
| `unit-shu-spearman` | approved reference | approved-baseline | technical ok | 23.3..42.0 x 43.8..46.3 | `unit-sprite-batch2-shu-spearman-spec.md` | | `unit-shu-spearman` | approved reference | approved-baseline | technical ok | 23.3..42.0 x 43.8..46.3 | `unit-sprite-batch2-shu-spearman-spec.md` |
| `unit-shu-spearman-guard` | approved reference | approved-baseline | technical ok | 29.4..32.7 x 44.2..47.1 | | | `unit-shu-spearman-guard` | approved reference | approved-baseline | technical ok | 29.4..32.7 x 44.2..47.1 | |
| `unit-shu-spearman-veteran` | approved reference | approved-baseline | technical ok | 26.0..32.9 x 46.3..47.1 | | | `unit-shu-spearman-veteran` | approved reference | approved-baseline | technical ok | 26.0..32.9 x 46.3..47.1 | |
| `unit-shu-strategist` | approved reference | approved-baseline | technical ok | 24.9..34.2 x 45.0..46.8 | `unit-sprite-batch2-shu-strategist-spec.md` | | `unit-shu-strategist` | approved reference | approved-baseline | technical ok | 23.8..39.8 x 45.0..46.0 | `unit-sprite-batch2-shu-strategist-spec.md` |
| `unit-shu-strategist-field` | approved reference | approved-baseline | technical ok | 26.5..32.9 x 44.2..47.1 | | | `unit-shu-strategist-field` | approved reference | approved-baseline | technical ok | 26.5..32.9 x 44.2..47.1 | |
| `unit-shu-strategist-white` | approved reference | approved-baseline | technical ok | 24.9..32.7 x 44.2..47.1 | | | `unit-shu-strategist-white` | approved reference | approved-baseline | technical ok | 24.9..32.7 x 44.2..47.1 | |
@@ -162,7 +162,7 @@ No next unit is currently defined.
| unit | role | stage | status | battle base px | spec | | unit | role | stage | status | battle base px | spec |
| --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- |
| `unit-cao-cao` | approved reference | approved-baseline | technical ok | 32.9..36.4 x 46.3..47.3 | | | `unit-cao-cao` | approved reference | approved-baseline | technical ok | 32.9..36.4 x 46.3..47.3 | |
| `unit-fa-zheng` | approved reference | approved-baseline | technical ok | 29.1..35.3 x 46.3..46.3 | | | `unit-fa-zheng` | approved reference | approved-baseline | technical ok | 24.3..39.9 x 45.0..47.0 | |
| `unit-gong-zhi` | approved reference | approved-baseline | technical ok | 33.2..35.5 x 46.3..46.3 | | | `unit-gong-zhi` | approved reference | approved-baseline | technical ok | 33.2..35.5 x 46.3..46.3 | |
| `unit-huang-quan` | approved reference | approved-baseline | technical ok | 28.9..34.8 x 46.3..46.3 | | | `unit-huang-quan` | approved reference | approved-baseline | technical ok | 28.9..34.8 x 46.3..46.3 | |
| `unit-huang-zhong` | approved reference | approved-baseline | technical ok | 27.2..36.3 x 46.3..47.3 | | | `unit-huang-zhong` | approved reference | approved-baseline | technical ok | 27.2..36.3 x 46.3..47.3 | |
@@ -172,9 +172,9 @@ No next unit is currently defined.
| `unit-lu-meng` | approved reference | approved-baseline | technical ok | 27.0..40.4 x 46.0..46.3 | | | `unit-lu-meng` | approved reference | approved-baseline | technical ok | 27.0..40.4 x 46.0..46.3 | |
| `unit-ma-chao` | approved reference | approved-baseline | technical ok | 26.5..42.0 x 46.0..47.3 | | | `unit-ma-chao` | approved reference | approved-baseline | technical ok | 26.5..42.0 x 46.0..47.3 | |
| `unit-ma-dai` | approved reference | approved-baseline | technical ok | 27.0..39.8 x 46.0..46.3 | | | `unit-ma-dai` | approved reference | approved-baseline | technical ok | 27.0..39.8 x 46.0..46.3 | |
| `unit-ma-liang` | approved reference | approved-baseline | technical ok | 25.6..38.8 x 46.3..46.3 | | | `unit-ma-liang` | approved reference | approved-baseline | technical ok | 24.0..34.7 x 45.0..46.3 | |
| `unit-pang-tong` | approved reference | approved-baseline | technical ok | 28.0..32.1 x 46.0..46.0 | | | `unit-pang-tong` | approved reference | approved-baseline | technical ok | 24.3..32.7 x 45.0..46.3 | |
| `unit-sima-yi` | approved reference | approved-baseline | technical ok | 31.3..33.5 x 46.0..46.0 | | | `unit-sima-yi` | approved reference | approved-baseline | technical ok | 25.4..37.9 x 45.0..47.0 | |
| `unit-wang-ping` | approved reference | approved-baseline | technical ok | 28.0..33.7 x 45.7..46.0 | | | `unit-wang-ping` | approved reference | approved-baseline | technical ok | 28.0..33.7 x 45.7..46.0 | |
| `unit-yan-yan` | approved reference | approved-baseline | technical ok | 30.4..37.5 x 45.7..46.0 | | | `unit-yan-yan` | approved reference | approved-baseline | technical ok | 30.4..37.5 x 45.7..46.0 | |
| `unit-yi-ji` | approved reference | approved-baseline | technical ok | 27.8..33.9 x 45.7..46.0 | | | `unit-yi-ji` | approved reference | approved-baseline | technical ok | 27.8..33.9 x 45.7..46.0 | |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 849 KiB

After

Width:  |  Height:  |  Size: 844 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 97 KiB

View File

@@ -83,22 +83,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 2296062, "opaque_pixels": 2131622,
"border_hits": 0, "border_hits": 0,
"min_width": 182, "min_width": 152,
"max_width": 221, "max_width": 250,
"min_height": 290, "min_height": 282,
"max_height": 290, "max_height": 294,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 39, "width_swing": 98,
"height_swing": 0, "height_swing": 12,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 29.1, "battle_min_width_px": 24.3,
"battle_max_width_px": 35.3, "battle_max_width_px": 39.9,
"battle_min_height_px": 46.3, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.3, "battle_max_height_px": 47.0,
"status": "ok" "status": "ok"
}, },
"actions": { "actions": {
@@ -109,22 +109,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 5507911, "opaque_pixels": 4574401,
"border_hits": 0, "border_hits": 0,
"min_width": 183, "min_width": 131,
"max_width": 244, "max_width": 231,
"min_height": 270, "min_height": 282,
"max_height": 290, "max_height": 294,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 61, "width_swing": 100,
"height_swing": 20, "height_swing": 12,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 29.2, "battle_min_width_px": 20.9,
"battle_max_width_px": 39.0, "battle_max_width_px": 36.9,
"battle_min_height_px": 43.1, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.3, "battle_max_height_px": 47.0,
"status": "ok" "status": "ok"
} }
}, },
@@ -767,21 +767,21 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 2452368, "opaque_pixels": 1934766,
"border_hits": 0, "border_hits": 0,
"min_width": 160, "min_width": 150,
"max_width": 243, "max_width": 217,
"min_height": 290, "min_height": 282,
"max_height": 290, "max_height": 290,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 83, "width_swing": 67,
"height_swing": 0, "height_swing": 8,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 25.6, "battle_min_width_px": 24.0,
"battle_max_width_px": 38.8, "battle_max_width_px": 34.7,
"battle_min_height_px": 46.3, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.3, "battle_max_height_px": 46.3,
"status": "ok" "status": "ok"
}, },
@@ -793,22 +793,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 6122211, "opaque_pixels": 4224110,
"border_hits": 0, "border_hits": 0,
"min_width": 160, "min_width": 126,
"max_width": 264, "max_width": 204,
"min_height": 286, "min_height": 282,
"max_height": 290, "max_height": 295,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 104, "width_swing": 78,
"height_swing": 4, "height_swing": 13,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 25.6, "battle_min_width_px": 20.1,
"battle_max_width_px": 42.2, "battle_max_width_px": 32.6,
"battle_min_height_px": 45.7, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.3, "battle_max_height_px": 47.1,
"status": "ok" "status": "ok"
} }
}, },
@@ -1394,22 +1394,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 2067632, "opaque_pixels": 1907114,
"border_hits": 0, "border_hits": 0,
"min_width": 175, "min_width": 152,
"max_width": 201, "max_width": 205,
"min_height": 288, "min_height": 282,
"max_height": 288, "max_height": 290,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 26, "width_swing": 53,
"height_swing": 0, "height_swing": 8,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 28.0, "battle_min_width_px": 24.3,
"battle_max_width_px": 32.1, "battle_max_width_px": 32.7,
"battle_min_height_px": 46.0, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.0, "battle_max_height_px": 46.3,
"status": "ok" "status": "ok"
}, },
"actions": { "actions": {
@@ -1420,22 +1420,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 5101099, "opaque_pixels": 4307606,
"border_hits": 0, "border_hits": 0,
"min_width": 164, "min_width": 131,
"max_width": 273, "max_width": 203,
"min_height": 286, "min_height": 282,
"max_height": 290, "max_height": 295,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 109, "width_swing": 72,
"height_swing": 4, "height_swing": 13,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 26.2, "battle_min_width_px": 20.9,
"battle_max_width_px": 43.6, "battle_max_width_px": 32.4,
"battle_min_height_px": 45.7, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.3, "battle_max_height_px": 47.1,
"status": "ok" "status": "ok"
} }
}, },
@@ -2819,22 +2819,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 2006886, "opaque_pixels": 2151310,
"border_hits": 0, "border_hits": 0,
"min_width": 156, "min_width": 149,
"max_width": 214, "max_width": 249,
"min_height": 282, "min_height": 282,
"max_height": 293, "max_height": 288,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 58, "width_swing": 100,
"height_swing": 11, "height_swing": 6,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 24.9, "battle_min_width_px": 23.8,
"battle_max_width_px": 34.2, "battle_max_width_px": 39.8,
"battle_min_height_px": 45.0, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.8, "battle_max_height_px": 46.0,
"status": "ok" "status": "ok"
}, },
"actions": { "actions": {
@@ -2845,22 +2845,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 5055851, "opaque_pixels": 4345236,
"border_hits": 0, "border_hits": 0,
"min_width": 155, "min_width": 125,
"max_width": 243, "max_width": 237,
"min_height": 282, "min_height": 248,
"max_height": 293, "max_height": 288,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 88, "width_swing": 112,
"height_swing": 11, "height_swing": 40,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 24.8, "battle_min_width_px": 20.0,
"battle_max_width_px": 38.8, "battle_max_width_px": 37.9,
"battle_min_height_px": 45.0, "battle_min_height_px": 39.6,
"battle_max_height_px": 46.8, "battle_max_height_px": 46.0,
"status": "ok" "status": "ok"
} }
}, },
@@ -2990,22 +2990,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 2302994, "opaque_pixels": 2205012,
"border_hits": 0, "border_hits": 0,
"min_width": 196, "min_width": 159,
"max_width": 210, "max_width": 237,
"min_height": 288, "min_height": 282,
"max_height": 288, "max_height": 294,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 14, "width_swing": 78,
"height_swing": 0, "height_swing": 12,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 31.3, "battle_min_width_px": 25.4,
"battle_max_width_px": 33.5, "battle_max_width_px": 37.9,
"battle_min_height_px": 46.0, "battle_min_height_px": 45.0,
"battle_max_height_px": 46.0, "battle_max_height_px": 47.0,
"status": "ok" "status": "ok"
}, },
"actions": { "actions": {
@@ -3016,22 +3016,22 @@
1252 1252
], ],
"partial_alpha": 0, "partial_alpha": 0,
"opaque_pixels": 5483833, "opaque_pixels": 4503608,
"border_hits": 0, "border_hits": 0,
"min_width": 180, "min_width": 137,
"max_width": 267, "max_width": 224,
"min_height": 286, "min_height": 276,
"max_height": 290, "max_height": 294,
"min_bottom": 303, "min_bottom": 303,
"max_bottom": 303, "max_bottom": 303,
"empty_frames": 0, "empty_frames": 0,
"width_swing": 87, "width_swing": 87,
"height_swing": 4, "height_swing": 18,
"bottom_swing": 0, "bottom_swing": 0,
"battle_min_width_px": 28.8, "battle_min_width_px": 21.9,
"battle_max_width_px": 42.7, "battle_max_width_px": 35.8,
"battle_min_height_px": 45.7, "battle_min_height_px": 44.1,
"battle_max_height_px": 46.3, "battle_max_height_px": 47.0,
"status": "ok" "status": "ok"
} }
}, },

View File

@@ -52,7 +52,7 @@ Visual review boards are generated by `scripts/render-unit-sprite-review-boards.
| batch | stage | stem | base | actions | base bbox | action bbox | battle base px | motion swing | | batch | stage | stem | base | actions | base bbox | action bbox | battle base px | motion swing |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| batch7-unique-officer | approved-baseline | `unit-cao-cao` | ok | ok | 206..228 x 290..296 | 186..252 x 270..296 | 32.9..36.4 x 46.3..47.3 | w22 h6 b0 | | batch7-unique-officer | approved-baseline | `unit-cao-cao` | ok | ok | 206..228 x 290..296 | 186..252 x 270..296 | 32.9..36.4 x 46.3..47.3 | w22 h6 b0 |
| batch7-unique-officer | approved-baseline | `unit-fa-zheng` | ok | ok | 182..221 x 290..290 | 183..244 x 270..290 | 29.1..35.3 x 46.3..46.3 | w39 h0 b0 | | batch7-unique-officer | approved-baseline | `unit-fa-zheng` | ok | ok | 152..250 x 282..294 | 131..231 x 282..294 | 24.3..39.9 x 45.0..47.0 | w98 h12 b0 |
| batch7-unique-officer | approved-baseline | `unit-gong-zhi` | ok | ok | 208..222 x 290..290 | 196..287 x 270..290 | 33.2..35.5 x 46.3..46.3 | w14 h0 b0 | | batch7-unique-officer | approved-baseline | `unit-gong-zhi` | ok | ok | 208..222 x 290..290 | 196..287 x 270..290 | 33.2..35.5 x 46.3..46.3 | w14 h0 b0 |
| batch1-approved-core | approved-baseline | `unit-guan-yu` | ok | ok | 190..270 x 276..291 | 172..296 x 171..289 | 30.4..43.1 x 44.1..46.5 | w80 h15 b4 | | batch1-approved-core | approved-baseline | `unit-guan-yu` | ok | ok | 190..270 x 276..291 | 172..296 x 171..289 | 30.4..43.1 x 44.1..46.5 | w80 h15 b4 |
| batch7-unique-officer | approved-baseline | `unit-huang-quan` | ok | ok | 181..218 x 290..290 | 176..251 x 284..290 | 28.9..34.8 x 46.3..46.3 | w37 h0 b0 | | batch7-unique-officer | approved-baseline | `unit-huang-quan` | ok | ok | 181..218 x 290..290 | 176..251 x 284..290 | 28.9..34.8 x 46.3..46.3 | w37 h0 b0 |
@@ -64,7 +64,7 @@ Visual review boards are generated by `scripts/render-unit-sprite-review-boards.
| batch7-unique-officer | approved-baseline | `unit-lu-meng` | ok | ok | 169..253 x 288..290 | 153..238 x 286..290 | 27.0..40.4 x 46.0..46.3 | w84 h2 b0 | | batch7-unique-officer | approved-baseline | `unit-lu-meng` | ok | ok | 169..253 x 288..290 | 153..238 x 286..290 | 27.0..40.4 x 46.0..46.3 | w84 h2 b0 |
| batch7-unique-officer | approved-baseline | `unit-ma-chao` | ok | ok | 166..263 x 288..296 | 166..263 x 284..296 | 26.5..42.0 x 46.0..47.3 | w97 h8 b0 | | batch7-unique-officer | approved-baseline | `unit-ma-chao` | ok | ok | 166..263 x 288..296 | 166..263 x 284..296 | 26.5..42.0 x 46.0..47.3 | w97 h8 b0 |
| batch7-unique-officer | approved-baseline | `unit-ma-dai` | ok | ok | 169..249 x 288..290 | 162..239 x 284..290 | 27.0..39.8 x 46.0..46.3 | w80 h2 b0 | | batch7-unique-officer | approved-baseline | `unit-ma-dai` | ok | ok | 169..249 x 288..290 | 162..239 x 284..290 | 27.0..39.8 x 46.0..46.3 | w80 h2 b0 |
| batch7-unique-officer | approved-baseline | `unit-ma-liang` | ok | ok | 160..243 x 290..290 | 160..264 x 286..290 | 25.6..38.8 x 46.3..46.3 | w83 h0 b0 | | batch7-unique-officer | approved-baseline | `unit-ma-liang` | ok | ok | 150..217 x 282..290 | 126..204 x 282..295 | 24.0..34.7 x 45.0..46.3 | w67 h8 b0 |
| batch6-nanman-special | approved-baseline | `unit-meng-huo` | ok | ok | 174..221 x 286..288 | 149..248 x 275..289 | 27.8..35.3 x 45.7..46.0 | w47 h2 b0 | | batch6-nanman-special | approved-baseline | `unit-meng-huo` | ok | ok | 174..221 x 286..288 | 149..248 x 275..289 | 27.8..35.3 x 45.7..46.0 | w47 h2 b0 |
| batch6-nanman-special | approved-baseline | `unit-nanman-infantry` | ok | ok | 152..219 x 288..288 | 152..243 x 265..288 | 24.3..35.0 x 46.0..46.0 | w67 h0 b0 | | batch6-nanman-special | approved-baseline | `unit-nanman-infantry` | ok | ok | 152..219 x 288..288 | 152..243 x 265..288 | 24.3..35.0 x 46.0..46.0 | w67 h0 b0 |
| batch6-nanman-special | approved-baseline | `unit-nanman-infantry-jungle` | ok | ok | 172..209 x 286..288 | 158..247 x 282..288 | 27.5..33.4 x 45.7..46.0 | w37 h2 b0 | | batch6-nanman-special | approved-baseline | `unit-nanman-infantry-jungle` | ok | ok | 172..209 x 286..288 | 158..247 x 282..288 | 27.5..33.4 x 45.7..46.0 | w37 h2 b0 |
@@ -75,7 +75,7 @@ Visual review boards are generated by `scripts/render-unit-sprite-review-boards.
| batch6-nanman-special | approved-baseline | `unit-nanman-shaman` | ok | ok | 190..214 x 288..288 | 197..263 x 277..290 | 30.4..34.2 x 46.0..46.0 | w24 h0 b0 | | batch6-nanman-special | approved-baseline | `unit-nanman-shaman` | ok | ok | 190..214 x 288..288 | 197..263 x 277..290 | 30.4..34.2 x 46.0..46.0 | w24 h0 b0 |
| batch6-nanman-special | approved-baseline | `unit-nanman-shaman-ember` | ok | ok | 180..212 x 288..290 | 180..242 x 264..290 | 28.8..33.9 x 46.0..46.3 | w32 h2 b0 | | batch6-nanman-special | approved-baseline | `unit-nanman-shaman-ember` | ok | ok | 180..212 x 288..290 | 180..242 x 264..290 | 28.8..33.9 x 46.0..46.3 | w32 h2 b0 |
| batch6-nanman-special | approved-baseline | `unit-nanman-shaman-storm` | ok | ok | 195..223 x 286..290 | 195..245 x 240..290 | 31.2..35.6 x 45.7..46.3 | w28 h4 b0 | | batch6-nanman-special | approved-baseline | `unit-nanman-shaman-storm` | ok | ok | 195..223 x 286..290 | 195..245 x 240..290 | 31.2..35.6 x 45.7..46.3 | w28 h4 b0 |
| batch7-unique-officer | approved-baseline | `unit-pang-tong` | ok | ok | 175..201 x 288..288 | 164..273 x 286..290 | 28.0..32.1 x 46.0..46.0 | w26 h0 b0 | | batch7-unique-officer | approved-baseline | `unit-pang-tong` | ok | ok | 152..205 x 282..290 | 131..203 x 282..295 | 24.3..32.7 x 45.0..46.3 | w53 h8 b0 |
| batch1-approved-rebel | approved-baseline | `unit-rebel` | ok | ok | 195..284 x 271..281 | 180..286 x 178..289 | 31.2..45.4 x 43.3..44.9 | w89 h10 b8 | | batch1-approved-rebel | approved-baseline | `unit-rebel` | ok | ok | 195..284 x 271..281 | 180..286 x 178..289 | 31.2..45.4 x 43.3..44.9 | w89 h10 b8 |
| batch1-approved-rebel | approved-baseline | `unit-rebel-archer` | ok | ok | 185..263 x 272..278 | 116..284 x 228..288 | 29.6..42.0 x 43.5..44.4 | w78 h6 b1 | | batch1-approved-rebel | approved-baseline | `unit-rebel-archer` | ok | ok | 185..263 x 272..278 | 116..284 x 228..288 | 29.6..42.0 x 43.5..44.4 | w78 h6 b1 |
| batch5-rebel-other | approved-baseline | `unit-rebel-archer-fire` | ok | ok | 161..249 x 288..295 | 161..252 x 285..295 | 25.7..39.8 x 46.0..47.1 | w88 h7 b0 | | batch5-rebel-other | approved-baseline | `unit-rebel-archer-fire` | ok | ok | 161..249 x 288..295 | 161..252 x 285..295 | 25.7..39.8 x 46.0..47.1 | w88 h7 b0 |
@@ -100,10 +100,10 @@ Visual review boards are generated by `scripts/render-unit-sprite-review-boards.
| batch2-shu | approved-baseline | `unit-shu-spearman` | ok | ok | 146..263 x 274..290 | 146..276 x 280..295 | 23.3..42.0 x 43.8..46.3 | w117 h16 b0 | | batch2-shu | approved-baseline | `unit-shu-spearman` | ok | ok | 146..263 x 274..290 | 146..276 x 280..295 | 23.3..42.0 x 43.8..46.3 | w117 h16 b0 |
| batch2-shu | approved-baseline | `unit-shu-spearman-guard` | ok | ok | 184..205 x 277..295 | 176..276 x 232..295 | 29.4..32.7 x 44.2..47.1 | w21 h18 b0 | | batch2-shu | approved-baseline | `unit-shu-spearman-guard` | ok | ok | 184..205 x 277..295 | 176..276 x 232..295 | 29.4..32.7 x 44.2..47.1 | w21 h18 b0 |
| batch2-shu | approved-baseline | `unit-shu-spearman-veteran` | ok | ok | 163..206 x 290..295 | 143..276 x 221..295 | 26.0..32.9 x 46.3..47.1 | w43 h5 b0 | | batch2-shu | approved-baseline | `unit-shu-spearman-veteran` | ok | ok | 163..206 x 290..295 | 143..276 x 221..295 | 26.0..32.9 x 46.3..47.1 | w43 h5 b0 |
| batch2-shu | approved-baseline | `unit-shu-strategist` | ok | ok | 156..214 x 282..293 | 155..243 x 282..293 | 24.9..34.2 x 45.0..46.8 | w58 h11 b0 | | batch2-shu | approved-baseline | `unit-shu-strategist` | ok | ok | 149..249 x 282..288 | 125..237 x 248..288 | 23.8..39.8 x 45.0..46.0 | w100 h6 b0 |
| batch2-shu | approved-baseline | `unit-shu-strategist-field` | ok | ok | 166..206 x 277..295 | 166..269 x 277..295 | 26.5..32.9 x 44.2..47.1 | w40 h18 b0 | | batch2-shu | approved-baseline | `unit-shu-strategist-field` | ok | ok | 166..206 x 277..295 | 166..269 x 277..295 | 26.5..32.9 x 44.2..47.1 | w40 h18 b0 |
| batch2-shu | approved-baseline | `unit-shu-strategist-white` | ok | ok | 156..205 x 277..295 | 156..269 x 276..295 | 24.9..32.7 x 44.2..47.1 | w49 h18 b0 | | batch2-shu | approved-baseline | `unit-shu-strategist-white` | ok | ok | 156..205 x 277..295 | 156..269 x 276..295 | 24.9..32.7 x 44.2..47.1 | w49 h18 b0 |
| batch7-unique-officer | approved-baseline | `unit-sima-yi` | ok | ok | 196..210 x 288..288 | 180..267 x 286..290 | 31.3..33.5 x 46.0..46.0 | w14 h0 b0 | | batch7-unique-officer | approved-baseline | `unit-sima-yi` | ok | ok | 159..237 x 282..294 | 137..224 x 276..294 | 25.4..37.9 x 45.0..47.0 | w78 h12 b0 |
| batch7-unique-officer | approved-baseline | `unit-wang-ping` | ok | ok | 175..211 x 286..288 | 158..256 x 286..295 | 28.0..33.7 x 45.7..46.0 | w36 h2 b0 | | batch7-unique-officer | approved-baseline | `unit-wang-ping` | ok | ok | 175..211 x 286..288 | 158..256 x 286..295 | 28.0..33.7 x 45.7..46.0 | w36 h2 b0 |
| batch3-wei | approved-baseline | `unit-wei-archer` | ok | ok | 190..245 x 288..296 | 190..245 x 282..296 | 30.4..39.1 x 46.0..47.3 | w55 h8 b0 | | batch3-wei | approved-baseline | `unit-wei-archer` | ok | ok | 190..245 x 288..296 | 190..245 x 282..296 | 30.4..39.1 x 46.0..47.3 | w55 h8 b0 |
| batch3-wei | approved-baseline | `unit-wei-archer-crossbow` | ok | ok | 186..230 x 288..290 | 169..276 x 249..290 | 29.7..36.7 x 46.0..46.3 | w44 h2 b0 | | batch3-wei | approved-baseline | `unit-wei-archer-crossbow` | ok | ok | 186..230 x 288..290 | 169..276 x 249..290 | 29.7..36.7 x 46.0..46.3 | w44 h2 b0 |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 997 KiB

After

Width:  |  Height:  |  Size: 931 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 868 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 879 KiB

After

Width:  |  Height:  |  Size: 830 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 891 KiB

After

Width:  |  Height:  |  Size: 959 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 976 KiB

After

Width:  |  Height:  |  Size: 956 KiB