#!/bin/bash # 맵 하나의 바닥을 자리마다 찍는다. bash floor_tour.sh <꼬리표> <맵 이름> " " [" " ...] → cap/floor_<맵>_<꼬리표>_<번호>.png # Entry 에서 Play → 로비 → 필드 이동 → 준비 기다림 → 자리마다 촬영(임시 카메라 · 플레이어는 옮기지 않는다) → 에디터 로그 점검 → Play 종료 # BOSS=<보스 열쇠> 를 주면 끝에 그 보스의 전용 필드에도 들어가 찍는다(예: BOSS=R4) SP="C:/Users/sw/AppData/Local/Temp/claude/E--BurningTimes/3562a2c1-e88a-4143-b7ec-e74c317778d8/scratchpad" source "$SP/bt.sh" export PYTHONIOENCODING=utf-8 TAG="$1"; MAP="$2"; shift; shift st python "$SP/logscan.py" mark unity command clear_console --project-path "$P" --format json --no-banner >/dev/null 2>&1 unity command editor_play --project-path "$P" --format json --no-banner 2>&1 | grep -E '"success"' | head -1 for i in $(seq 1 40); do sleep 3 r=$(ev lobby_ready 2>&1 | head -1) case "$r" in *"scene=Lobby"*"player=True"*"config=True"*) echo "ready $i"; break;; esac done sleep 6 ev travel go "$MAP" | grep -o "go=[A-Za-z]*" ok="" for k in $(seq 1 60); do sleep 2 s=$(ev travel state 2>&1 | head -1) case "$s" in *"traveling=False"*"current=$MAP/"*"player=True"*) ok="1"; break;; esac done sleep 8 echo "[$MAP] ${ok:+OK} $(ev travel state | grep -o 'characters=[0-9]*\|pos=([^)]*)' | tr '\n' ' ')" ev shot_cam "floor_${MAP}_${TAG}_0start" >/dev/null n=1 for xz in "$@"; do set -- $xz ev shot_at "floor_${MAP}_${TAG}_${n}" "$1" "$2" >/dev/null echo " shot $n ($1, $2)" n=$((n+1)) done python "$SP/logscan.py" scan "floor-$MAP" if [ -n "$BOSS" ]; then ev arena enter $BOSS | head -1 for k in $(seq 1 10); do sleep 2 s=$(ev floor_probe 2>&1 | head -1) case "$s" in "field="*) break;; esac done sleep 3 echo "$BOSS $s" ev shot_cam "floor_${MAP}_${TAG}_boss" >/dev/null ev arena exit | head -1 sleep 3 fi unity command editor_stop --project-path "$P" --format json --no-banner 2>&1 | grep -E '"success"' | head -1 sleep 6 st python "$SP/logscan.py" scan "floor-tour-$TAG"