97bb53f6cd
Work-Package: M02-RND-CHARACTER-PRESENTATION-001 Agent: sindo-main-codex Tests: presentation/input/movement/terrain/camera regressions; coordinate/streaming/docs/coordination gates; renderer dry-run 7/7 Fidelity: preserves current sandbox model/outfit and Stand/Idle/Run/Walk behavior; build-12340 parity remains unverified
84 lines
3.5 KiB
Markdown
84 lines
3.5 KiB
Markdown
# M02-RND-CHARACTER-PRESENTATION-001 — Character presentation boundary
|
|
|
|
<!-- OPENWC_CLAIM:M02-RND-CHARACTER-PRESENTATION-001:sindo-main-codex:2026-07-16 -->
|
|
|
|
## Ownership
|
|
|
|
- Target: M02
|
|
- Program: RND/GMP
|
|
- Owner/Agent ID: sindo-main-codex
|
|
- Branch: `work/sindo-main-codex/m02-character-presentation`
|
|
- Lease expires UTC: 2026-07-16
|
|
- Integrator: M02 milestone integrator
|
|
|
|
## Outcome
|
|
|
|
Move character GLB composition, geoset/texture/outfit setup and locomotion
|
|
animation selection from `ThirdPersonWowController` into independently
|
|
replaceable `CharacterAppearancePresenter` and `CharacterAnimationPresenter`
|
|
components without changing the current sandbox presentation.
|
|
|
|
## Non-goals
|
|
|
|
- Add new model, equipment, animation or build-12340 behavior.
|
|
- Change character asset formats, DBC parsing, texture composition or geoset rules.
|
|
- Add network-driven appearance/movement snapshots.
|
|
- Change input, movement, terrain, camera or renderer streaming behavior.
|
|
- Mark M02 complete or edit its checklist/Evidence.
|
|
|
|
## Paths
|
|
|
|
- Exclusive: `src/scenes/character/character_appearance_presenter.gd`,
|
|
`src/scenes/character/character_animation_presenter.gd`,
|
|
`src/tools/verify_character_presentation.gd`,
|
|
`docs/modules/character-presentation.md`, this claim
|
|
- Shared/hotspots: `src/scenes/player/third_person_wow_controller.gd`, runtime
|
|
streaming scenes, player regression scene, `src/tools/verify_player_input.gd`,
|
|
`docs/modules/local-player-movement.md`, `docs/modules/README.md`
|
|
- Reused unchanged: geoset controller, texture compositor and outfit resolver
|
|
- Generated/ignored: local `.godot`, native DLL, generated resources and renderer corpus
|
|
|
|
## Contracts and data
|
|
|
|
- Appearance API loads/replaces one character root under the existing `Visual` node.
|
|
- Animation API binds an `AnimationPlayer` from that root and accepts a typed
|
|
moving/stationary presentation state.
|
|
- Scene paths, model defaults, DBC/cache/coordinate contracts remain unchanged.
|
|
- Consumers: player scene composition and renderer viewport only.
|
|
|
|
## Dependencies
|
|
|
|
- Requires: merged camera package on master `68e6f60`.
|
|
- Blocks: final M02 sandbox-profile gate and target integration audit.
|
|
- External state: asset-free tests use a synthetic mesh and AnimationPlayer.
|
|
|
|
## Verification
|
|
|
|
- Dedicated appearance composition, replacement, grounding and failure regression.
|
|
- Dedicated animation discovery, fallback, looping, blend and state regression.
|
|
- Player source-boundary and three-scene wiring checks.
|
|
- Existing input/movement/terrain/camera regressions, coordinate gates and renderer dry-run.
|
|
- Fidelity evidence: preserve current sandbox model path, scale, yaw, outfit,
|
|
Stand/Idle and Run/Walk selection only; no original-client parity claim.
|
|
|
|
## Documentation deliverables
|
|
|
|
- Inline public API/export documentation for both presenters.
|
|
- Module specification with inputs/outputs, data-flow, lifecycle/state and sequence diagrams.
|
|
- Updated movement consumer/source map and module registry.
|
|
|
|
## Simplicity and naming
|
|
|
|
- Important names: `CharacterAppearancePresenter`, `CharacterAnimationPresenter`.
|
|
- Simplest approach: two small scene components on the existing `Visual` subtree.
|
|
- Rejected complexity: generic presenter framework, async asset scheduler and duplicated character systems.
|
|
- Unavoidable complexity: scene-tree composition and AnimationPlayer discovery run on the main thread.
|
|
- Measured optimization evidence: not applicable.
|
|
|
|
## Status
|
|
|
|
- State: active
|
|
- Done: claim and isolated worktree from merged camera master
|
|
- Next: extract presenters, migrate scenes/player, test and document
|
|
- Blocked by:
|