Improve spear equipment icon silhouettes

This commit is contained in:
2026-07-10 00:19:27 +09:00
parent db319ea99f
commit 0e1613d1da
5 changed files with 315 additions and 92 deletions

View File

@@ -22,16 +22,19 @@ Generated by `scripts/audit-equipment-icon-quality.mjs`.
- Treasure/common distinction often relies on UI frame color plus a small palette change, not a strong unique silhouette.
- Reused helper silhouettes are the strongest quality risk because several different items collapse to the same shape at 14-22px.
## First Improvement Target
## Completed Improvement Passes
- Target: weapon spear/polearm family
- Item ids: `green-dragon-glaive`, `serpent-spear`, `sky-piercer-halberd`, `iron-spear`, `western-cavalry-spear`
- Reason: These are high-frequency equipment surfaces and several treasure/common weapons share a thin diagonal shaft silhouette; upgrading this group gives the clearest identity gain in sortie prep and equipment swap screens.
- weapon spear/polearm family: `green-dragon-glaive`, `serpent-spear`, `sky-piercer-halberd`, `iron-spear`, `western-cavalry-spear`
- The previous shared spear/polearm silhouettes now use item-specific helper shapes with enough primitive detail for 20px and 30px equipment UI reads.
## Next Improvement Target
- Target: armor silhouettes
- Item ids: `oath-robe`, `reinforced-lamellar`, `cloth-armor`, `lamellar-armor`, `rebel-vest`
- Reason: Armor and robes are readable but still depend on simple triangular torsos and small color accents; this is now the largest remaining shared-equipment silhouette group.
## Follow-Up Targets
- armor silhouettes: `oath-robe`, `reinforced-lamellar`, `cloth-armor`, `lamellar-armor`, `rebel-vest`
- Armor and robes are readable but depend on simple triangular torsos and small color accents.
- accessory charms and tokens: `bravery-token`, `mountain-guide-scroll`, `peach-charm`, `war-manual`, `wind-quiver`, `grain-pouch`, `yellow-scarf-charm`
- Accessories are the smallest UI read and several use compact badge-like shapes.
@@ -39,43 +42,44 @@ Generated by `scripts/audit-equipment-icon-quality.mjs`.
| score | signature | slots | ranks | items |
| ---: | --- | --- | --- | --- |
| 15 | `drawSpearIcon` | weapon | common, treasure | `serpent-spear`, `iron-spear`, `western-cavalry-spear` |
| 8 | `drawArmorIcon` | armor | common, treasure | `reinforced-lamellar`, `lamellar-armor` |
| 8 | `drawCharmIcon` | accessory | common, treasure | `peach-charm`, `yellow-scarf-charm` |
| 8 | `drawPolearmIcon` | weapon | treasure | `green-dragon-glaive`, `sky-piercer-halberd` |
| 8 | `drawRobeIcon` | armor | common, treasure | `oath-robe`, `cloth-armor` |
| 6 | `drawAxeIcon` | weapon | common | `leader-axe` |
| 6 | `drawSaberIcon` | weapon | common | `yellow-turban-saber` |
## Full Item Inventory
| item id | slot | rank | draw helpers | calls | primitives | colors | concerns |
| --- | --- | --- | --- | ---: | ---: | ---: | --- |
| `green-dragon-glaive` | weapon | treasure | `drawPolearmIcon` | 1 | 11 | 2 | single helper silhouette<br>low primitive detail |
| `serpent-spear` | weapon | treasure | `drawSpearIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `sky-piercer-halberd` | weapon | treasure | `drawPolearmIcon` | 1 | 11 | 2 | single helper silhouette<br>low primitive detail |
| `twin-oath-blades` | weapon | treasure | `drawSwordIcon`<br>`drawSwordIcon` | 2 | 32 | 3 | none |
| `white-feather-fan` | weapon | treasure | `drawFanIcon` | 1 | 19 | 2 | single helper silhouette |
| `iron-spear` | weapon | common | `drawSpearIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `leader-axe` | weapon | common | `drawAxeIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `short-bow` | weapon | common | `drawBowIcon` | 1 | 18 | 2 | single helper silhouette |
| `training-sword` | weapon | common | `drawSwordIcon` | 1 | 16 | 2 | single helper silhouette<br>low primitive detail |
| `western-cavalry-spear` | weapon | common | `drawSpearIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `yellow-turban-saber` | weapon | common | `drawSaberIcon` | 1 | 12 | 2 | single helper silhouette<br>low primitive detail |
| `oath-robe` | armor | treasure | `drawRobeIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `reinforced-lamellar` | armor | treasure | `drawArmorIcon` | 1 | 12 | 2 | single helper silhouette<br>low primitive detail |
| `cloth-armor` | armor | common | `drawRobeIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `lamellar-armor` | armor | common | `drawArmorIcon` | 1 | 12 | 2 | single helper silhouette<br>low primitive detail |
| `rebel-vest` | armor | common | `drawVestIcon` | 1 | 4 | 2 | single helper silhouette<br>low primitive detail |
| `bravery-token` | accessory | treasure | `drawTokenIcon` | 1 | 4 | 2 | single helper silhouette<br>low primitive detail |
| `mountain-guide-scroll` | accessory | treasure | `drawMapScrollIcon` | 1 | 13 | 2 | single helper silhouette<br>low primitive detail |
| `peach-charm` | accessory | treasure | `drawCharmIcon` | 1 | 4 | 2 | single helper silhouette<br>low primitive detail |
| `war-manual` | accessory | treasure | `drawBookIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `wind-quiver` | accessory | treasure | `drawQuiverIcon` | 1 | 8 | 2 | single helper silhouette<br>low primitive detail |
| `grain-pouch` | accessory | common | `drawPouchIcon` | 1 | 7 | 2 | single helper silhouette<br>low primitive detail |
| `yellow-scarf-charm` | accessory | common | `drawCharmIcon` | 1 | 4 | 2 | single helper silhouette<br>low primitive detail |
| `green-dragon-glaive` | weapon | treasure | `drawGreenDragonGlaiveIcon` | 1 | 23 | 6 | none |
| `serpent-spear` | weapon | treasure | `drawSerpentSpearIcon` | 1 | 29 | 4 | none |
| `sky-piercer-halberd` | weapon | treasure | `drawSkyPiercerHalberdIcon` | 1 | 24 | 7 | none |
| `twin-oath-blades` | weapon | treasure | `drawSwordIcon`<br>`drawSwordIcon` | 2 | 32 | 4 | none |
| `white-feather-fan` | weapon | treasure | `drawFanIcon` | 1 | 19 | 3 | none |
| `iron-spear` | weapon | common | `drawIronSpearIcon` | 1 | 26 | 7 | none |
| `leader-axe` | weapon | common | `drawAxeIcon` | 1 | 7 | 2 | low primitive detail |
| `short-bow` | weapon | common | `drawBowIcon` | 1 | 18 | 3 | none |
| `training-sword` | weapon | common | `drawSwordIcon` | 1 | 16 | 4 | low primitive detail |
| `western-cavalry-spear` | weapon | common | `drawWesternCavalrySpearIcon` | 1 | 27 | 7 | none |
| `yellow-turban-saber` | weapon | common | `drawSaberIcon` | 1 | 12 | 2 | low primitive detail |
| `oath-robe` | armor | treasure | `drawRobeIcon` | 1 | 7 | 3 | shared helper silhouette<br>low primitive detail |
| `reinforced-lamellar` | armor | treasure | `drawArmorIcon` | 1 | 12 | 3 | shared helper silhouette<br>low primitive detail |
| `cloth-armor` | armor | common | `drawRobeIcon` | 1 | 7 | 3 | shared helper silhouette<br>low primitive detail |
| `lamellar-armor` | armor | common | `drawArmorIcon` | 1 | 12 | 3 | shared helper silhouette<br>low primitive detail |
| `rebel-vest` | armor | common | `drawVestIcon` | 1 | 4 | 3 | low primitive detail |
| `bravery-token` | accessory | treasure | `drawTokenIcon` | 1 | 4 | 2 | low primitive detail |
| `mountain-guide-scroll` | accessory | treasure | `drawMapScrollIcon` | 1 | 13 | 5 | low primitive detail |
| `peach-charm` | accessory | treasure | `drawCharmIcon` | 1 | 4 | 2 | shared helper silhouette<br>low primitive detail |
| `war-manual` | accessory | treasure | `drawBookIcon` | 1 | 7 | 3 | low primitive detail |
| `wind-quiver` | accessory | treasure | `drawQuiverIcon` | 1 | 8 | 2 | low primitive detail |
| `grain-pouch` | accessory | common | `drawPouchIcon` | 1 | 7 | 2 | low primitive detail |
| `yellow-scarf-charm` | accessory | common | `drawCharmIcon` | 1 | 4 | 2 | shared helper silhouette<br>low primitive detail |
## Recommended Next Batch Definition
- Scope: replace or enrich the five spear/polearm weapon icons while keeping `item-${itemId}` texture keys stable.
- Success criteria: each item reads as a distinct weapon silhouette at 20px and 30px, with treasure weapons visibly richer than common weapons.
- Scope: improve armor silhouettes while keeping `item-${itemId}` texture keys stable.
- Item ids: `oath-robe`, `reinforced-lamellar`, `cloth-armor`, `lamellar-armor`, `rebel-vest`
- Success criteria: Each armor item should keep its slot identity while gaining a distinct outer silhouette and material cue at 20px and 30px.
- Keep the existing 64px texture size unless a UI-wide equipment icon pass is planned.
- Add before/after contact sheets and verify the sortie equipment list and equipment swap panel in a desktop browser.

View File

@@ -0,0 +1,29 @@
# Spear and Polearm Equipment Icon Pass
Generated after the spear/polearm icon rework in `src/game/scenes/BootScene.ts`.
## Scope
- `green-dragon-glaive`
- `serpent-spear`
- `sky-piercer-halberd`
- `iron-spear`
- `western-cavalry-spear`
## Before and After
| item id | previous helper | current helper | previous primitives | current primitives | audit concerns |
| --- | --- | --- | ---: | ---: | --- |
| `green-dragon-glaive` | `drawPolearmIcon` | `drawGreenDragonGlaiveIcon` | 11 | 23 | none |
| `serpent-spear` | `drawSpearIcon` | `drawSerpentSpearIcon` | 7 | 29 | none |
| `sky-piercer-halberd` | `drawPolearmIcon` | `drawSkyPiercerHalberdIcon` | 11 | 24 | none |
| `iron-spear` | `drawSpearIcon` | `drawIronSpearIcon` | 7 | 26 | none |
| `western-cavalry-spear` | `drawSpearIcon` | `drawWesternCavalrySpearIcon` | 7 | 27 | none |
## Browser QA
![Sortie prep equipment icon QA](./equipment-icon-spear-polearm-sortie-prep.png)
- URL checked: `http://127.0.0.1:4197/heros_web/?debug&debugSortiePrep&renderer=canvas`
- Result: sortie prep opened on a desktop 1280x720 canvas and rendered the generated equipment textures in the roster, slot, and detail surfaces.
- Follow-up target from the updated audit: armor silhouettes.

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB