proxy: document visual sneak SetSneaking result
This commit is contained in:
+114
@@ -2375,6 +2375,120 @@ mutating actors by default.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-03 - Proxy Visual Sneak Stage 1 SetSneaking Experiment
|
||||
|
||||
### Summary
|
||||
|
||||
Enabled the runtime-proxy-only visual sneak experiment that calls
|
||||
`RE::Actor::SetSneaking(...)` on assigned runtime proxy actors when the matching
|
||||
remote player's `isSneaking` state changes.
|
||||
|
||||
### Files Changed
|
||||
|
||||
- `plugin/src/F4TProxyActorController.cpp`
|
||||
- `docs/dev-log.md`
|
||||
|
||||
### Details
|
||||
|
||||
- Set `kEnableProxyVisualSneakSync` to `true` and kept
|
||||
`kEnableProxyVisualSneakExperimentalGraph` set to `false`.
|
||||
- Kept `kEnableProxyAIMovementIntentSuppression` disabled.
|
||||
- Replaced the enabled visual-sneak TODO path with a per-slot transition writer
|
||||
that calls `RE::Actor::SetSneaking(a_remotePlayer.isSneaking)` only when the
|
||||
requested visual sneak state differs from the last applied state, or when no
|
||||
visual sneak state has been applied to that slot yet.
|
||||
- Tracked applied visual sneak state with the existing
|
||||
`hasAppliedVisualSneakingState` and `lastAppliedVisualSneakingState` fields.
|
||||
- Added transition-only logs for applied visual sneak `true`, applied visual
|
||||
sneak `false`, and `SetSneaking(...)` returning `false`.
|
||||
- Added lifecycle clear handling that calls `SetSneaking(false)` for a valid
|
||||
runtime proxy actor before hold/disconnect, reusable transition, or
|
||||
reassignment clears visual sneak tracking.
|
||||
- Preserved existing animation debug logs, runtime proxy spawn/movement/snap
|
||||
behavior, same-cell gating, held/disconnected/reusable lifecycle, combat/AI
|
||||
neutralization, placed fallback availability, and the game-thread proxy
|
||||
controller boundary.
|
||||
- Left networking, protocol, Python server code, fake-client tooling, local
|
||||
player send logic, remote state storage, animation graph events/variables,
|
||||
`PerformAction`, `ActorState` writes, package/pathing/AI movement changes, and
|
||||
vendored CommonLibF4 unchanged.
|
||||
|
||||
### Testing
|
||||
|
||||
- Ran `xmake build` from `plugin`; it succeeded and rebuilt
|
||||
`Fallout4Together.dll`.
|
||||
- Manual test placeholder: start the Dev Server GUI, launch Fallout 4 through
|
||||
F4SE, `coc F4TTestCell01`, add fake clients, and toggle sneak on/off.
|
||||
- Expected manual result: only the assigned runtime proxy for the toggled fake
|
||||
client receives visual sneak transition logs and, if `SetSneaking(...)` works
|
||||
visually, crouches/stands with that fake client's `isSneaking` state.
|
||||
- Expected disconnect/reuse result: held or reused runtime proxies are cleared
|
||||
with `SetSneaking(false)` and do not remain stuck crouched for the next remote
|
||||
player.
|
||||
|
||||
### Known Issues
|
||||
|
||||
- Visual crouch behavior is still experimental. `SetSneaking(...)` may return
|
||||
false or may not visibly crouch this kind of runtime proxy actor, but the
|
||||
transition attempt should be logged without crashing.
|
||||
- Manual in-game validation is still required for visual behavior, multi-client
|
||||
isolation, disconnect cleanup, and reuse cleanup.
|
||||
|
||||
### Rollback
|
||||
|
||||
- If the proxy crashes, stops moving, gets stuck crouched, affects the local
|
||||
player, affects the wrong proxy, starts independent AI walking, or breaks the
|
||||
disconnect/reuse lifecycle, set `kEnableProxyVisualSneakSync` back to `false`
|
||||
and keep the scaffolding/debug logs.
|
||||
|
||||
### Next Steps
|
||||
|
||||
- Run the manual fake-client sneak toggle plan in `F4TTestCell01`.
|
||||
- Record whether `SetSneaking(...)` produces a visible crouch/stand result on
|
||||
runtime proxy actors.
|
||||
|
||||
---
|
||||
|
||||
## 2026-06-03 - Proxy Visual Sneak Stage 1 Rollback
|
||||
|
||||
### Summary
|
||||
|
||||
Rolled the runtime proxy visual sneak mutation flag back off after Stage 1
|
||||
confirmed `RE::Actor::SetSneaking(bool)` is safe to call but does not visually
|
||||
crouch transform-controlled runtime proxy actors.
|
||||
|
||||
### Files Changed
|
||||
|
||||
- `plugin/src/F4TProxyActorController.cpp`
|
||||
- `docs/dev-log.md`
|
||||
|
||||
### Proxy Visual Sneak Stage 1 Result
|
||||
|
||||
`RE::Actor::SetSneaking(bool)` was tested as the first visual sneak candidate. The call succeeded and did not crash, and per-slot sneak state transitions were detected correctly. However, the runtime proxy did not visually crouch in-game. This suggests `SetSneaking` alone does not drive the actor animation graph for transform-controlled runtime proxy actors.
|
||||
|
||||
The visual mutation flag has been set back to disabled by default. The scaffolding, read-only diagnostics, and transition logging remain in place for future animation investigation.
|
||||
|
||||
Next investigation should focus on read-only animation graph variable discovery before attempting graph writes or animation events.
|
||||
|
||||
### Testing
|
||||
|
||||
- Ran `xmake build` from `plugin`; it succeeded and rebuilt
|
||||
`Fallout4Together.dll`.
|
||||
- Pending manual validation: fake-client sneak toggles in `F4TTestCell01`
|
||||
should still produce animation debug `isSneaking` transition logs without
|
||||
applying visual sneak mutation by default.
|
||||
|
||||
### Known Issues
|
||||
|
||||
- Visual crouch behavior remains unresolved; `SetSneaking(...)` alone did not
|
||||
visibly crouch runtime proxy actors.
|
||||
|
||||
### Next Steps
|
||||
|
||||
- Proxy Animation Graph Read-Only Investigation.
|
||||
|
||||
---
|
||||
|
||||
## Entry Template
|
||||
|
||||
Use this format for future updates:
|
||||
|
||||
Reference in New Issue
Block a user