Files
aetherbound-guild/docs/goals/PHASE9_0R2_CHARACTER_ANIMATION_GOAL.md
T

5.6 KiB

Phase 9.0R2 Character Animation Goal

Owner Failure

The Owner rejected the P9.0R1 battle motion on 2026-08-12. Moving, bobbing, rotating, scaling or fading one static full-body image is not character animation. The earliest failed player boundary is visible body and limb motion that explains what each profession and the enemy are doing.

Role And Baseline

  • Role: development task.
  • Repository: aetherbound_guild only.
  • Baseline: clean/upstream P9.0R1 closure db75a17ce8b0a3bc702ad535fa16491debf582e4.
  • Active contract: docs/runtime/PHASE9_0R2_CHARACTER_ANIMATION_CONTRACT.md.
  • Active ledger: docs/reviews/PHASE9_GODOT_VERTICAL_SLICE_LEDGER.md.

Owned Slice

Preserve the accepted Title, Guild Yard choice, battle composition, victory, Home and confirmed Restart flow. Replace the static battle actors with real frame animation bound to the existing deterministic tutorial events:

  1. Hearthguard advances, braces, attacks and celebrates with authored pose changes.
  2. Riftblade advances, telegraphs, attacks, recoils and dies with authored pose changes.
  3. Wayrunner visibly evades and counterattacks.
  4. Farstring visibly draws and releases an arrow.
  5. Kindhand visibly raises the lantern and performs a heal.
  6. Damage and healing commit exactly once at their declared impact frames.

The fixed slice must support both front choices and both rear choices. The runtime may reuse accepted multi-frame Phase 6 cycles. New action strips must retain the Phase 7 identity anchors and use the repository media pipeline with source, prompt, provider task, processing and curation provenance.

Frozen

  • Contract, difficulty and Market systems.
  • Recruitment economy, equipment and Party order.
  • Chapters, content counts and authoritative battle formulas.
  • Persistence, save migration and offline behavior.
  • Final audio, physical-device work, native packaging, TestFlight, stores and release.
  • Broad UI or background redesign unrelated to animation readability.

Acceptance

  • Every claimed state has at least two visually distinct body/limb frames.
  • Runtime changes actor textures over time in a normal-rendered battle.
  • Advance motion combines frame animation with translation and stops at contact; translation alone never satisfies the animation gate.
  • Attack, guard, evade/counter, draw/release, lantern/heal, hit and death have readable anticipation, action/impact and recovery or terminal holds.
  • HP changes happen once at the event's impact frame, never at phase entry and never twice after a long or interrupted frame.
  • Riftblade death is non-looping and holds its final frame.
  • Reduced motion keeps authored action poses and impact timing while removing nonessential translation or looping idle motion.
  • Home and confirmed Restart clear animation, impact and transient battle state.
  • Both front x both rear routes reach one victory without a duplicate result.
  • Fresh focused tests, full affected suite, normal-render captures and one fixed 15-30 second MovieWriter recording pass with strict diagnostics clean.
  • The recording visibly proves changing limb/body poses at play size.
  • Source is committed, pushed and clean before candidate handoff. A new Web preview is published as a new artifact; the rejected P9.0R1 artifact remains historical.

Paid Generation Boundary

The root workspace standing authorization applies. This task may make at most four API Mart image-generation calls and spend at most USD 5 equivalent total. The intended calls are Wayrunner evade/counter, Farstring draw/release and Kindhand lantern/heal, with one call reserved for a failed or rejected row. Dry-run, credential preflight, task IDs, returned cost and exact references are retained. No video, music, SFX or unrelated image generation is authorized.

Candidate Outcome

Fixed clean/upstream source 6c72e243c2a35574a9a15ed7f22b0b44f0d0f865 supplies 92 runtime frames and 20 animation states for Hearthguard, Wayrunner, Farstring, Kindhand and Riftblade. Exact automated markers are:

  • ABG_P9_0R2_ANIMATION_ASSETS_OK files=92 states=20 calls=4 cost_usd=0.056
  • ABG_P9_0R2_CHARACTER_ANIMATION_OK actors=5 states=20 impact_once=true death_hold=true reduced_motion=true
  • ABG_P9_0R1_DOMAIN_OK routes=2 replace=front,rear restart=confirmed home=1 battle_phases=6 victory_once=1
  • ABG_P9_0R1_TOUCH_OK touch=15 fallback=0 direct=0 replace=2 battle=1 home=1 restart=confirmed
  • ABG_P9_0R1_LAYOUT_OK fixtures=13 landscape=12 portrait=1 pages=4 locales=2 text_130=true min_touch=44

Fresh normal-render evidence includes two 1280x720 H.264 recordings of 19.466667 seconds. One proves Hearthguard guard/attack plus Farstring draw/release; the other proves Wayrunner evade/counter plus Kindhand lantern/heal. Both include Riftblade telegraph, attack, hit and non-looping death. The pre-Web 44-row attempt-02 inventory verifies 44/44 with SHA-256 e92e2f7e1897cb8723f886cb463f878455ddc24a294000328170e17c8edd1e1a. Attempt 01 remains INVALID_MOVIE_OUTPUT_PATH and was not reused.

The final Web projection is runtime/build/web-preview/6c72e24-r2/, with nine-file manifest SHA-256 04f655e9ba23e11c21fb1f4d1c7873459d003f0db07964106bc2e93bb3c46483. Its PCK contains representative action frames for all five actors and contains neither tests nor evidence. Artifact Gallery item pPeYCfGUlBjV was published as a new runtime; remote Title rendering and browser diagnostics pass. Human visual acceptance, understanding, fun, physical-device, packaging, store and release gates remain open.

Aetherbound Guild P9.0R2 character animation candidate ready

or

Aetherbound Guild P9.0R2 redesign required: <earliest failed player boundary>