feat: integrate q-style company identity slice

This commit is contained in:
2026-09-09 12:10:07 +08:00
parent 6e15aec46f
commit 9c235fbfda
10 changed files with 72 additions and 12 deletions
@@ -114,6 +114,14 @@ angular content destination plate so it reads as a button at play size instead
of floating text. Current-worktree Contract, Guild and Market focused attempts
pass with strict diagnostics `0`.
Character identity slice (working tree, 2026-09-09): a four-cell Q company
sheet was generated from the approved calibration board and deterministically
chroma-sliced into shield idle/wave and mage idle/wave assets. The first visible
MVP profession IDs now use the Q shield pair (PF-B01/PF-B02) and Q mage idle
(PF-B06) through `InitialCompanyArt`; existing profession semantics and IDs are
unchanged. Current-worktree Market and Contract captures pass. The sheet is an
identity slice, not a claim that all twelve base professions are complete.
Title affordance follow-up (`fcb2eb3`, 2026-09-09): the four Title actions now
use the shared icon vocabulary (`confirm`, `inspect`, `settings`, `help`) with
reserved icon slots and text bounds. The focused responsive check and clean
+9 -9
View File
@@ -31,21 +31,21 @@ passed their focused capture markers with strict diagnostics `0`:
- `imported`: Godot import completed for the new backgrounds.
- `integrated`: Title, Guild, Contract and Market reference the new assets.
- `runtime_seen`: current captures show the assets in the real View paths.
- `agent_visual_reviewed`: yes, at the 760x360 fixture above.
- `agent_visual_reviewed`: yes, at the 760x360 fixture above and on the
identity-locked Q company sprite sheet used by the current Market capture.
- `human_reviewed`: owner approved the calibration board; complete runtime flow
remains open for review.
- `device_verified` / `release_accepted`: not claimed.
## Earliest failed boundary and next falsifying test
The earliest remaining failure is character identity consistency in the
interactive Company/Market surfaces: those portraits still use the earlier
medium-proportion assets while the environments now follow the approved compact
Q direction. Contract is temporarily using the authored Q figures in its route
master. The next bounded task is one identity-locked Q/chibi company sprite set,
integrated into Guild and Market (and later Contract) and re-captured at the
same fixtures. Do not expand content or add decorative motion until that set
passes play-size silhouette and crop review.
The first identity slice is now integrated for the visible MVP profession IDs,
but remaining professions still use historical portraits. Contract temporarily
uses the authored Q figures in its route master. The next bounded task is to
extend this same identity-locked family to the remaining roles, then add a
small idle/breathing loop after the static silhouettes pass play-size review.
Do not expand content or add decorative motion until the role coverage and
anchor policy are stable.
Gate: OPEN (environment slice integrated; full Q-style character presentation
not yet accepted).
@@ -0,0 +1,28 @@
Create ONE REGULAR 2x2 GRID with FOUR EQUAL CELLS and clear fixed boundaries.
This is a transparent-ready 2D game character sheet, not a scene.
Use a solid bright magenta #FF00FF background across the whole canvas.
Every subject is fully inside its cell with generous padding and must not cross
cell boundaries. No text, labels, UI, scenery, ground, shadows or extra figures.
Use the attached approved Q-style calibration board only to match its compact
Japanese hand-drawn mobile RPG language: super-deformed proportions, large
expressive face, short body, clean dark ink contour, warm cel shading, bright
painted colors, friendly readable silhouette at small size. Do not copy any
character or layout from the reference.
TOP-LEFT: canonical chibi shield guardian idle, front three-quarter view,
navy-and-cream armor, round shield with a small gold four-point crest, short
brown hair, cheerful confident expression, complete body from head to boots.
TOP-RIGHT: canonical chibi wind mage idle, front three-quarter view, navy and
lavender robe, oversized soft witch hat, small wooden staff, light silver hair,
cheerful confident expression, complete body from head to boots.
BOTTOM-LEFT: the EXACT SAME shield guardian identity as TOP-LEFT, friendly
recruit-card pose with shield lowered and one hand raised, same outfit, colors,
face, proportions and outline.
BOTTOM-RIGHT: the EXACT SAME wind mage identity as TOP-RIGHT, friendly
recruit-card pose with staff angled outward and one hand raised, same outfit,
colors, face, proportions and outline.
Keep all four figures compact and consistently scaled, with feet aligned to a
shared visual baseline inside each cell. No pixel art, no 3D render, no realism,
no gradients that erase the ink contour, no duplicate limbs, no cropped anatomy.
@@ -0,0 +1,17 @@
{
"mode": "execute",
"model": "gpt-image-2",
"size": "1:1",
"resolution": "2k",
"output": "runtime/assets/entry/recruit_stickers/m52_q_company_sprite_sheet_raw.png",
"local_references": [
"docs/runtime/m52_qstyle_calibration.png"
],
"remote_reference_count": 0,
"prompt_chars": 1790,
"task_id": "task_01M2250YF7KJP9S7S5D8ZJX0P0",
"status": "completed",
"bytes": 5165875,
"cost": 0.014,
"credits_cost": 0.14
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 MiB

+10 -3
View File
@@ -13,14 +13,21 @@ const TINKER = preload("res://assets/entry/recruit_stickers/pf_b09-512.png")
const HEXER = preload("res://assets/entry/recruit_stickers/pf_b10-512.png")
const CONDUCTOR = preload("res://assets/entry/recruit_stickers/pf_b11-512.png")
const QUARTERMASTER = preload("res://assets/entry/recruit_stickers/pf_b12-512.png")
const Q_SHIELD_IDLE = preload("res://assets/entry/recruit_stickers/m52_q_company/shield_idle.png")
const Q_SHIELD_WAVE = preload("res://assets/entry/recruit_stickers/m52_q_company/shield_wave.png")
const Q_MAGE_IDLE = preload("res://assets/entry/recruit_stickers/m52_q_company/mage_idle.png")
const Q_MAGE_WAVE = preload("res://assets/entry/recruit_stickers/m52_q_company/mage_wave.png")
const PROFESSION_TEXTURES := {
"PF-B01": HEARTHGUARD,
"PF-B02": BLADE,
# M52 MVP identity slice: the first visible Company roles use the approved
# Q/chibi pair. Remaining professions stay on their historical assets until
# their own identity-locked sprite rows are produced.
"PF-B01": Q_SHIELD_IDLE,
"PF-B02": Q_SHIELD_WAVE,
"PF-B03": SPEAR,
"PF-B04": WAYRUNNER,
"PF-B05": FARSTRING,
"PF-B06": MAGUS,
"PF-B06": Q_MAGE_IDLE,
"PF-B07": KINDHAND,
"PF-B08": WARD,
"PF-B09": TINKER,