re: the Stage-02 capture drew no capital ship at all — invert the match, then control range
Inverting the capture↔part question (invert_capture over one container, vcount_index over all 166) identifies every large draw in the 2026-07-31 capture: the player's own DeltaSaber (10891 verts), its weapon packs, the backdrop and particles. Of f101/e105/e106 only 1-3 of 15-37 resources have a drawn vcount, each a 44-225-vertex far-LOD/effect piece whose count collides with dozens of unrelated resources. So the zero-correlation was not an LOD-list gap, not over-strict position validation and not a different draw path: the ships were too far away to be drawn. approach_capture.py flies at a locked capital ship and presses F10 per range band, stamping each capture with its distance. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
45
tools/re-capture/ship_capture_close.sh
Executable file
45
tools/re-capture/ship_capture_close.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
# ONE blocking session: boot -> Stage 02 in flight -> fly AT a capital ship and
|
||||
# dump an F10 draw capture at each distance band (approach_capture.py).
|
||||
#
|
||||
# Supersedes ship_capture_session.sh for correlation work: that one pressed F10
|
||||
# wherever the craft happened to be, and the 2026-07-31 run proved that captures
|
||||
# nothing — inverting the match showed no capital-ship hull was drawn in any of
|
||||
# those frames, only the player's own craft and particles. Range is the variable
|
||||
# that matters, so range is what this controls.
|
||||
#
|
||||
# Usage: ship_capture_close.sh [seconds] [out_dir] [target_regex]
|
||||
set -u
|
||||
export HOME=/sylph-home/re SDL_AUDIODRIVER=dummy DISPLAY=:98
|
||||
export PYTHONPATH=/sylph-home/.local/lib/python3.12/site-packages
|
||||
SD="$(cd "$(dirname "$0")" && pwd)"
|
||||
SECS="${1:-240}"
|
||||
OUT="${2:-/sylph-home/re/shipcap-close}"
|
||||
TARGET="${3:-}"
|
||||
BINDIR="/home/fabi/RE - Project Sylpheed/xenia-canary-native/build/bin/Linux/Release"
|
||||
CFG=/tmp/nav-close.json
|
||||
mkdir -p "$OUT"
|
||||
rm -f "$BINDIR"/xenia_ship_capture_*.log "$OUT"/approach-bands.jsonl
|
||||
|
||||
"$SD/launch_mission.sh" fly || { echo "BOOT FAILED"; exit 1; }
|
||||
python3 "$SD/entities2.py" self 0x130 "$CFG" || { echo "BIND FAILED"; exit 1; }
|
||||
echo "--- config: $(cat "$CFG")"
|
||||
|
||||
# F10 goes to the emulator window through XTEST; the window must be focused.
|
||||
win="$(xdotool search --class -- xenia | tail -1)"
|
||||
[ -z "$win" ] && win="$(xdotool search --name -- Xenia | tail -1)"
|
||||
echo "WINDOW=$win"
|
||||
[ -n "$win" ] && { xdotool windowactivate "$win" 2>/dev/null; xdotool windowfocus "$win" 2>/dev/null; }
|
||||
|
||||
export SYLPH_CAPTURE_WIN="$win" SYLPH_CAPTURE_OUT="$OUT"
|
||||
if [ -n "$TARGET" ]; then
|
||||
python3 "$SD/approach_capture.py" "$CFG" "$SECS" --target "$TARGET" 2>&1 | tail -80
|
||||
else
|
||||
python3 "$SD/approach_capture.py" "$CFG" "$SECS" 2>&1 | tail -80
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
cp -v "$BINDIR"/xenia_ship_capture_*.log "$OUT"/ 2>/dev/null
|
||||
echo "--- bands ---"; cat "$OUT/approach-bands.jsonl" 2>/dev/null
|
||||
grep -c '^DRAW' "$OUT"/xenia_ship_capture_*.log 2>/dev/null
|
||||
echo "CLOSE CAPTURE SESSION DONE"
|
||||
Reference in New Issue
Block a user