Improve handpainted battle unit readability

This commit is contained in:
2026-06-30 22:18:34 +09:00
parent 6eb3f029c3
commit 3092b295e6
101 changed files with 1405 additions and 16 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

View File

@@ -0,0 +1,36 @@
# Handpaint Batch 1 Alpha Validation
## unit-guan-yu
- base: size (5008, 1252), partial alpha 0, opaque pixels 2269236
- action: size (11268, 1252), partial alpha 0, opaque pixels 4929316
- contact: `handpaint-batch1-unit-guan-yu-contact.png`
- animation: `handpaint-batch1-unit-guan-yu-animation.gif`
- before/after: `handpaint-batch1-unit-guan-yu-before-after.png`
## unit-zhang-fei
- base: size (5008, 1252), partial alpha 0, opaque pixels 2215087
- action: size (11268, 1252), partial alpha 0, opaque pixels 4580452
- contact: `handpaint-batch1-unit-zhang-fei-contact.png`
- animation: `handpaint-batch1-unit-zhang-fei-animation.gif`
- before/after: `handpaint-batch1-unit-zhang-fei-before-after.png`
## unit-rebel
- base: size (5008, 1252), partial alpha 0, opaque pixels 2168171
- action: size (11268, 1252), partial alpha 0, opaque pixels 5156024
- contact: `handpaint-batch1-unit-rebel-contact.png`
- animation: `handpaint-batch1-unit-rebel-animation.gif`
- before/after: `handpaint-batch1-unit-rebel-before-after.png`
## unit-rebel-archer
- base: size (5008, 1252), partial alpha 0, opaque pixels 1902601
- action: size (11268, 1252), partial alpha 0, opaque pixels 4808052
- contact: `handpaint-batch1-unit-rebel-archer-contact.png`
- animation: `handpaint-batch1-unit-rebel-archer-animation.gif`
- before/after: `handpaint-batch1-unit-rebel-archer-before-after.png`
## unit-rebel-cavalry
- base: size (5008, 1252), partial alpha 0, opaque pixels 1820794
- action: size (11268, 1252), partial alpha 0, opaque pixels 4278832
- contact: `handpaint-batch1-unit-rebel-cavalry-contact.png`
- animation: `handpaint-batch1-unit-rebel-cavalry-animation.gif`
- before/after: `handpaint-batch1-unit-rebel-cavalry-before-after.png`

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

View File

@@ -0,0 +1,53 @@
# Tactical Unit Sprite Art Direction
## Goal
Create new frame-by-frame raster unit sprites for the battle map. The sprites must read clearly at the live desktop battle scale, where a unit is displayed around a 50px tile, while still looking intentional when inspected at the original 313x313 frame size.
This pass is not a filter pass, alpha fix, vector redraw, or procedural shape generator. It is an art-directed raster repaint pass. Each pose should feel drawn as a distinct frame, with changes in stance, cloth, weapon position, and motion energy.
## Copyright Boundary
The visual mood may reference historical Three Kingdoms tactical RPGs: heroic silhouettes, ornate but readable armor, strong faction colors, and dramatic weapon poses.
Do not copy KOEI artwork, character portraits, logos, sprite silhouettes, UI assets, or exact costume designs. Use original silhouettes, original clothing details, and original frame layouts made for this project.
## Battle Readability Rules
- The body pixels of the unit must be fully opaque.
- The surrounding frame background may be transparent after extraction.
- At 50px display size, the silhouette must be readable before interior detail.
- Avoid hairline strokes, pale low-contrast outlines, watercolor transparency, glow-only shapes, or thin ornamental clutter.
- Use a dark outer contour, large color planes, and one or two strong highlight areas.
- Weapon identity must be visible from the silhouette.
- Friendly heroes should be richer and more ornate than common soldiers, but not so dense that the 50px battle read is lost.
## Liu Bei Sample Direction
Liu Bei is the approval-gate sample.
Core read:
- Noble commander with a sword.
- Deep green outer robe, warm cream inner robe, muted bronze/gold armor trim.
- Upright, restrained, humane leader posture rather than brute force.
- Sword should be readable in attack frames and visible enough in idle/walk frames.
Frame requirements:
- Base sheet: 4 directions x 16 frames.
- Per direction: idle 8 frames, walk 8 frames.
- Action sheet: 4 directions x 36 frames.
- Per direction: attack 10, strategy 8, item 8, hurt 4, celebrate 6.
- Frame size remains 313x313.
- Frames should preserve the same character but vary pose, robe hem, sleeves, sword angle, and weight shift.
## Approval Gate
Only Liu Bei may be produced in this sample phase. Do not expand to Guan Yu, Zhang Fei, rebel soldiers, or the full roster until the sample has been reviewed and approved.
Required sample outputs:
- 313x313 contact sheet for Liu Bei.
- Animated GIF or browser capture for idle/walk/action.
- 100% desktop browser screenshot from the battle map.
- Before/after comparison against the current checked-in Liu Bei sprite.
No deployment, commit, or push is allowed before sample approval.