Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
55 lines
3.4 KiB
JSON
55 lines
3.4 KiB
JSON
{
|
|
"implemented": [
|
|
"Atomic bounded four/nine-vector RPC packet with scope and eye poses, scope identity and native lens geometry. No extra per-frame HTTP or server rendering.",
|
|
"Two bounded pose buffers use an exact shared playback time, including after unresolved optics. PiP FOV, parallax and vignette interpolate with aim.",
|
|
"Native local PiP rendering lifecycle on compatible streamed optic; no ADS activation, weapon input registration or zoom commands. Main view uses owner eye camera, lens uses owner aiming camera.",
|
|
"Native authored reticle geometry, zoom, zeroing, illumination, parallax and owner-computed lens shading. Existing 2D presentation fallback and recent world-axis camera correction retained.",
|
|
"Cleanup on target/view changes, expired stream and camera exit; partial initialization cleanup and two-second retry backoff. Refuse other active PiP ownership or main camera slot."
|
|
],
|
|
"settings": "Both watched player and spectator must use PiP (2D scopes disabled). A 2D source supplies only one camera and remains 2D. Unknown/custom renderers or incompatible materials fall back.",
|
|
"tests_passed": [
|
|
"test_observer_pip.py: actual acquisition/cleanup/fallback bodies with native rendering doubled",
|
|
"test_observer_view_relay.py: actual authority/packet handling, atomic dual delivery, malformed eye rejection, stale metadata refusal, 2D transitions",
|
|
"test_observer_view_buffer.py: actual interpolation, joint lens timeline, eye recovery alignment, jitter, target/scope changes, expiry and memory bound",
|
|
"test_observer_view_anchor.py",
|
|
"test_observer_scope.py",
|
|
"test_observer_head_visibility.py",
|
|
"test_spectator_recovery.py"
|
|
],
|
|
"limitations": [
|
|
"No live multiplayer visual verification. Native weapon proxy animation may still differ from the owner-sampled eye pose.",
|
|
"Addon-specific PiP materials, render texture output, reticle visual alignment and GPU/FPS impact require in-game verification.",
|
|
"Native compiler success verifies API/type compatibility, not rendered optics or RPC delivery between two running clients."
|
|
],
|
|
"published": false,
|
|
"server_restarted": false,
|
|
"sha256": {
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "ed64c5e39766baf0616071e5eb7f3127ebbe8459721febeeb9a80fecb283131b",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c4f5d325c61f87a4c88a0a1b2fe1e6eea8b02f1e4e24e49b13d145a301067cc3",
|
|
"addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e",
|
|
"tests/test_observer_view_relay.py": "8853817e96c590a057051b682753f177ca4ce6fc39c99147f3be016a2ed13911",
|
|
"tests/test_observer_view_buffer.py": "b0678f585e93d5d879e45fdd2b4f982f8f8eb70a3cba7096bef7baad58506fef",
|
|
"tests/test_observer_pip.py": "45e51eb12ff4056630b8982a40fabbfa05d851fe8e4b43a90601e360466c7eaf",
|
|
"tests/test_observer_view_anchor.py": "76fb68241e5aa9125cd3dab5aefd7992ca3417f86fb39a4cfc7b92b72aac5e52",
|
|
"docs/spectator-guidance.md": "8f7a7c5a5fb4bb9453c1ab0df48a9ca4d72e469204a560576dc33229d5b8f8de"
|
|
},
|
|
"native_compile": {
|
|
"result": "compiled",
|
|
"cleanup": {
|
|
"cleanup_confirmed": true,
|
|
"idle_verified": true,
|
|
"errors": [],
|
|
"orphan_cleanup": {
|
|
"attempted": true,
|
|
"report": {
|
|
"scope": "/tmp/erri-headless-compat/pfx",
|
|
"candidates": [],
|
|
"term_sent": [],
|
|
"kill_sent": [],
|
|
"cleared": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|