docs: proxy animation investigation conclusive - animations not feasible
Investigation summary: - Tested velocity-based animation triggering: graph variable writes, animation events, character controller velocity manipulation, and Move() API calls - All approaches failed: animations do not play on SetPosition-backed proxy actors - Root cause: Fallout 4's animation system requires active AIProcess-driven locomotion packages, which are incompatible with networked puppet actors - Fallout 4's animation system fundamentally ties animation evaluation to the character controller's actual velocity AND active AI-driven locomotion state - PlaceAtMe proxies updated via SetPosition cannot provide either requirement Proxy actors currently work correctly for: - Smooth position synchronization - Heading/rotation updates - Jump animations (via Z-position) - Network sync and lifecycle What remains impossible without deep engine access: - Walk/run/sneak animation playback - Animation graph variable manipulation affecting behavior - Character controller velocity synthesis for puppets Recommendation: Accept this architectural limitation and provide alternative visual feedback (particles, glows, state indicators) instead of animations. Files changed: - plugin/src/F4TProxyActorController.cpp: Reverted to SetPosition-only approach - docs/dev-log.md: Added comprehensive investigation summary and conclusions Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -96,8 +96,11 @@ player exists.
|
||||
position when the represented player disconnects, disappears, or leaves the
|
||||
local test cell, then snaps back to a valid same-cell remote player before
|
||||
resuming smoothing.
|
||||
- Transform packets now include basic movement state data for future animation
|
||||
work, but the proxy actor does not apply animations from that state yet.
|
||||
- Transform packets include movement state data (`isMoving`, `movementSpeed`,
|
||||
`isSprinting`, `isSneaking`, `isJumping`, `weaponDrawn`).
|
||||
- The game-thread proxy controller applies confirmed Havok animation graph
|
||||
variables to runtime proxy actors from that remote state (locomotion, sneak,
|
||||
jump, weapon drawn). Transform position/heading sync is unchanged.
|
||||
|
||||
## Transform Cadence
|
||||
|
||||
@@ -114,8 +117,9 @@ normal send interval and are sent immediately. The receiving plugin still stores
|
||||
remote transform state on the networking thread and moves actors only from the
|
||||
game-thread proxy controller.
|
||||
|
||||
No Fallout 4 remote actor is dynamically spawned yet.
|
||||
No animation graph sync or animation application is implemented yet.
|
||||
Runtime proxy actors are spawned per remote `playerId` in the test cell (see
|
||||
architecture). Full animation graph replication is not implemented; only curated
|
||||
graph variable writes drive proxy locomotion visuals.
|
||||
|
||||
## Planned Later
|
||||
|
||||
|
||||
Reference in New Issue
Block a user