Clarify Wu Yi unique officer silhouette

This commit is contained in:
2026-07-02 19:28:52 +09:00
parent 7cb48b2c31
commit b06c042162
21 changed files with 124 additions and 22 deletions

View File

@@ -0,0 +1,33 @@
# Unique Officer Personality QA v1
## Scope
Reviewed `unit-gong-zhi`, `unit-li-yan`, `unit-wu-yi`, `unit-wang-ping`, `unit-yan-yan`, and `unit-lu-meng` at 72px and 50px battle scale.
## Finding
`unit-wu-yi` was the weakest identity read. The v1 sprite used a teal/red officer palette that blended with the Wu faction board, even though Wu Yi is a Shu/Yizhou officer.
## Fix
Reworked `unit-wu-yi` into a Yizhou fortress officer: ochre-brown and dark indigo lamellar armor, tan leather, muted bronze trim, compact square helmet, command cloak, hooked dao, and command tally.
## Result
The QA board `unique-officer-personality-qa-v1.png` now separates these reads:
- Gong Zhi: olive route-guide cloak
- Li Yan: heavy gate/supply commander
- Wu Yi v2: Yizhou fortress officer
- Wang Ping: shielded mountain defender
- Yan Yan: elder burgundy defender
- Lu Meng: Wu river cloak commander
## Verification
- Sprite release gate: passed
- Art quality gate: passed
- Workflow consistency gate: passed
- Build/deploy: passed
- Local browser console errors: 0
- Deployed browser console errors: 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

View File

@@ -0,0 +1,30 @@
# Wu Yi Yizhou Officer v2 report
- source: `unique-officer-qa-wu-yi-v2-source.png`
- base status: ok
- action status: ok
- base partial alpha: 0, opaque pixels: 2138154
- action partial alpha: 0, opaque pixels: 4295358
- base frame border hits: 0
- action frame border hits: 0
- base empty frames: 0
- action empty frames: 0
- base bbox width range: 167..250
- base bbox height range: 286..288
- base bottom range: 303..303
- action bbox width range: 151..210
- action bbox height range: 282..288
- action bottom range: 303..303
- contact: `unique-officer-qa-wu-yi-v2-contact.png`
- animation: `unique-officer-qa-wu-yi-v2-animation.gif`
- before/after: `unique-officer-qa-wu-yi-v2-before-after.png`
- scale compare: `unique-officer-qa-wu-yi-v2-scale-compare.png`
- battle composite: `unique-officer-qa-wu-yi-v2-battle-composite.png`
- local browser check: `unique-officer-qa-wu-yi-v2-browser-check.png`
- deployed browser check: `unique-officer-qa-wu-yi-v2-prod-browser-check.png`
- personality QA board: `unique-officer-personality-qa-v1.png`
- identity change: v1 read too close to an Eastern Wu red/blue officer. v2 reframes Wu Yi as a Shu/Yizhou fortress officer with ochre-brown and dark indigo armor, tan leather, muted bronze trim, a compact square helmet, short command cloak, hooked dao, and command tally.
- validation: sprite release gate passed, art quality gate passed, workflow consistency gate passed
- build/deploy: `pnpm deploy:nas` passed and deployed to `/volume1/web/heros_web`
- browser verification: local debug preview console errors 0; deployed debug preview console errors 0
- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -926,10 +926,10 @@
"baseStatus": "ok",
"actionStatus": "ok",
"battleBasePx": [
24.4,
33.4,
46.0,
46.3
26.7,
39.9,
45.7,
46.0
],
"spec": null
}

View File

@@ -117,7 +117,7 @@ No next unit is currently defined.
| `unit-wu-strategist` | approved reference | approved-baseline | technical ok | 25.7..35.0 x 45.0..46.3 | |
| `unit-wu-strategist-fire` | approved reference | approved-baseline | technical ok | 25.9..32.7 x 46.0..47.1 | |
| `unit-wu-strategist-river` | approved reference | approved-baseline | technical ok | 24.6..34.8 x 45.4..46.3 | |
| `unit-wu-yi` | approved reference | approved-baseline | technical ok | 24.4..33.4 x 46.0..46.3 | |
| `unit-wu-yi` | approved reference | approved-baseline | technical ok | 26.7..39.9 x 45.7..46.0 | |
### Batch 5 remaining rebel/bandit units

Binary file not shown.

Before

Width:  |  Height:  |  Size: 837 KiB

After

Width:  |  Height:  |  Size: 838 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB

View File

@@ -4871,22 +4871,22 @@
1252
],
"partial_alpha": 0,
"opaque_pixels": 1872382,
"opaque_pixels": 2138154,
"border_hits": 0,
"min_width": 153,
"max_width": 209,
"min_height": 288,
"max_height": 290,
"min_width": 167,
"max_width": 250,
"min_height": 286,
"max_height": 288,
"min_bottom": 303,
"max_bottom": 303,
"empty_frames": 0,
"width_swing": 56,
"width_swing": 83,
"height_swing": 2,
"bottom_swing": 0,
"battle_min_width_px": 24.4,
"battle_max_width_px": 33.4,
"battle_min_height_px": 46.0,
"battle_max_height_px": 46.3,
"battle_min_width_px": 26.7,
"battle_max_width_px": 39.9,
"battle_min_height_px": 45.7,
"battle_max_height_px": 46.0,
"status": "ok"
},
"actions": {
@@ -4897,20 +4897,20 @@
1252
],
"partial_alpha": 0,
"opaque_pixels": 4212852,
"opaque_pixels": 4295358,
"border_hits": 0,
"min_width": 147,
"max_width": 238,
"min_width": 151,
"max_width": 210,
"min_height": 282,
"max_height": 288,
"min_bottom": 303,
"max_bottom": 303,
"empty_frames": 0,
"width_swing": 91,
"width_swing": 59,
"height_swing": 6,
"bottom_swing": 0,
"battle_min_width_px": 23.5,
"battle_max_width_px": 38.0,
"battle_min_width_px": 24.1,
"battle_max_width_px": 33.5,
"battle_min_height_px": 45.0,
"battle_max_height_px": 46.0,
"status": "ok"

View File

@@ -136,7 +136,7 @@ Visual review boards are generated by `scripts/render-unit-sprite-review-boards.
| batch4-wu | approved-baseline | `unit-wu-strategist` | ok | ok | 161..219 x 282..290 | 135..221 x 282..295 | 25.7..35.0 x 45.0..46.3 | w58 h8 b0 |
| batch4-wu | approved-baseline | `unit-wu-strategist-fire` | ok | ok | 162..205 x 288..295 | 133..218 x 284..295 | 25.9..32.7 x 46.0..47.1 | w43 h7 b0 |
| batch4-wu | approved-baseline | `unit-wu-strategist-river` | ok | ok | 154..218 x 284..290 | 133..222 x 284..290 | 24.6..34.8 x 45.4..46.3 | w64 h6 b0 |
| batch4-wu | approved-baseline | `unit-wu-yi` | ok | ok | 153..209 x 288..290 | 147..238 x 282..288 | 24.4..33.4 x 46.0..46.3 | w56 h2 b0 |
| batch4-wu | approved-baseline | `unit-wu-yi` | ok | ok | 167..250 x 286..288 | 151..210 x 282..288 | 26.7..39.9 x 45.7..46.0 | w83 h2 b0 |
| batch7-unique-officer | approved-baseline | `unit-yan-yan` | ok | ok | 190..235 x 286..288 | 170..242 x 271..295 | 30.4..37.5 x 45.7..46.0 | w45 h2 b0 |
| batch7-unique-officer | approved-baseline | `unit-yi-ji` | ok | ok | 174..212 x 286..288 | 167..273 x 286..295 | 27.8..33.9 x 45.7..46.0 | w38 h2 b0 |
| batch1-approved-core | approved-baseline | `unit-zhang-fei` | ok | ok | 143..306 x 274..289 | 188..286 x 181..290 | 22.8..48.9 x 43.8..46.2 | w163 h15 b14 |

View File

@@ -0,0 +1,39 @@
# Wu Yi v2 Approval Packet
## Target
`unit-wu-yi`
## Reason
The existing sprite read too much like a generic Eastern Wu officer because of the red/blue color mass and naval/officer silhouette. Wu Yi should read as a Shu/Yizhou fortress and supply-route officer.
## Delivered Assets
- Source: `unique-officer-qa-wu-yi-v2-source.png`
- Contact sheet: `unique-officer-qa-wu-yi-v2-contact.png`
- Animation: `unique-officer-qa-wu-yi-v2-animation.gif`
- Before/after: `unique-officer-qa-wu-yi-v2-before-after.png`
- Scale compare: `unique-officer-qa-wu-yi-v2-scale-compare.png`
- Battle composite: `unique-officer-qa-wu-yi-v2-battle-composite.png`
- Local browser check: `unique-officer-qa-wu-yi-v2-browser-check.png`
- Deployed browser check: `unique-officer-qa-wu-yi-v2-prod-browser-check.png`
- Personality QA board: `unique-officer-personality-qa-v1.png`
## Visual Direction
Wu Yi v2 uses ochre-brown and dark indigo armor, tan leather, muted bronze trim, compact square helmet, short command cloak, hooked dao, and command tally. The goal is a practical Yizhou gate commander instead of a Wu-colored river officer.
## Technical Checks
- 313x313 frame grid retained
- Idle/walk/action sheet structure retained
- Partial alpha: 0
- Frame border hits: 0
- Empty frames: 0
- Sprite release gate: passed
- Art quality gate: passed
- Workflow consistency gate: passed
- Build/deploy: passed
- Local browser console errors: 0
- Deployed browser console errors: 0