====================================================================
依頼93：② の配膳だけ・配膳＋下げ膳を撮り直し、LP の Unity の動画5本の素材を撮る
2026-11-05 15:32〜18:40　作業場所 cs:78（Unity の作りは変えていない。check-in なし）
====================================================================

結論
  ・撮る5回（A 2回・B1 1回・B2 2回）は、どれも最後まで回り、全員帰った。瞬間移動 0・1コマの跳び 0。止める線には当たっていない
  ・A：② の2本は 75.9 分・75.8 分で終わった（上限 120 分）。パネル付きの動画2本（9 倍）を作った
  ・B1：カメラは実行ファイルの引数（-ssRecCam）だけで足せたので、Unity は変えていない（cs は上げていない）。
    4つのカメラで撮った回の記録は、同じ cs:78・同じ種で依頼91 に2つのカメラで撮った回と1行も違わなかった
  ・B2：今の版では、直す前の店でも丸テーブルのまわりで長く止まらなかった（いちばん長い止まり 3.6 秒・30 秒以上 0 回）。
    依頼どおり、そのまま撮って動画2本を作った
  ・直す前の店は、依頼26 のやり方そのままでは今の版で回らない（試算の版の突き合わせ）。店の形のデータだけを写して回した（決めてほしいこと 1）


--------------------------------------------------------------------
0. 始める前の確かめ（15:32 ごろ。どれも依頼どおり）
--------------------------------------------------------------------
  作業場所 cs:78 - head・保留 0（cm status --machinereadable は STATUS 行だけ）
  Builds/headless・Builds/rec20_bus91：どちらも build_id cs78_20261104_1011・unity_cs ServiceSim/cs:78・pending_changes 空
  Unity エディタ・night_runner・rec_runner：動いていない（Unity Hub と、依頼箱の inbox_runner.py だけ）
  KIOXIA マウント済み／unity_ledger_v1.lock なし
  台帳を archive/unity_ledger_v1_pre_rec93_20261105/ に退避（service_sim/unity/archive の下。依頼92 の退避と同じ所）
    2944 行・md5 53aa41f760e040b96ec904838d3e2fb3（退避の前と後で同じ）
    ※ 最初にまちがえて /Volumes/KIOXIA/r2r2r-data/archive/ に写したので、正しい所に写し直したあと、自分が作ったその写しだけを消した
  重い処理（録画の前に見た。止めていない）
    15:33：duetexpertd 68%・WindowServer 42%・corespotlightd 41%（自分が探し物に使った mdfind のためとみている）・Chrome の描画 9%
    15:37（A を始める直前）：xprotectd 22%・Chrome Helper 17%・Creative Cloud 11%・負荷 4.0〜4.4
    依頼92 で見た Chrome 193% のような重い処理はなかった


--------------------------------------------------------------------
1. 回ごと
--------------------------------------------------------------------
  （入店待ち・料理の待ち・turn は分、歩いた距離＝スタッフ1人・km）
  回	最後まで	全員帰った	実時間	瞬間移動	動画（長さ・速さ）
  A ② fam_p0 種8 serve	○	○ 10137秒	75.9分	0	whole_wide_l30_panel.mp4 76.1秒・9倍
  A ② fam_p0 種8 bus	○	○ 10056秒	75.8分	0	whole_wide_l30_panel.mp4 75.6秒・9倍
  B1 ③ fam_p1 種7 serve（4つのカメラ）	○	○ 11880秒	91.7分	0	four_views_panel.mp4 76.2秒・10.5倍／top_busy_loop.mp4 12.0秒／oblique_loop.mp4 12.0秒
  B2 ② fam_p0 種0 serve 直す前	○	○ 9628秒	6.7分	0	round_before_panel.mp4 20.0秒・1倍（録画のまま。店の 15 倍）
  B2 ② fam_p0 種0 serve 直した後	○	○ 9628秒	7.4分	0	round_after_panel.mp4 20.0秒・1倍（同じ）
  ・5回とも 1コマの跳び 0・解けずに残った詰まり 0
  ・同時2本・1回の上限 120 分（-ssMaxWallMin 120）。night_runner の外側の上限は 150 分にした
    （rec_runner は外側の上限が --max-wall-min 以下だと始めない作り。依頼92 は 120／80 だった）
  ・並び：A の2回（15:37〜16:53）→ 空いた所に B1（16:54〜18:25）・B2 直す前（16:55〜17:02）・B2 直した後（17:02〜17:09）
  ・止まった回はなく、回し直した回もない
  ・A の runner_log.txt の頭に、始める前に打った「から回し」（--dry-run）の行が残っている（回は起こしていない）


--------------------------------------------------------------------
2. A：② の撮り直し（依頼92 と同じ撮り方）
--------------------------------------------------------------------
  回し方：night/20261105_rec93a/rec_runner.py（依頼92 の rec_runner.py の写し。中身は変えていない）で
    --oblique --hide-paths --max-wall-min 120 --parallel 2 --no-retry --limit-min 150 --build Builds/rec20_bus91
    並び：night/20261105_rec93a/queue.json（依頼92 の queue.json から ② の2回だけを残し、label を rec93a にしたもの）
  依頼92 の止まった回のファイル：rec_compare_20261105/fam_p0/ はまだ無かったので、寄せるものはなかった
    （依頼92 の回のフォルダ 20261105_rec92_…fam_p0… は名前が違うので触っていない）
  置き場所：rec_compare_20261105/fam_p0/{serve|bus}/（録画 mp4・frames.csv・camera.json・timeline.csv・summary.json、bus は bus_summary.json・bus_runs.csv も）

  店	使い方	最後まで	全員帰った	実時間	瞬間移動	上限で戻った	入店待ち	料理の待ち	turn	歩いた距離	下げ膳を運んだ割合	動画（長さ・速さ）
  ② fam_p0 種8	serve	○	○ 10137秒	75.9分	0	-	1.46	0.62	2.60	1.60	-	76.1秒・9倍
  ② fam_p0 種8	bus	○	○ 10056秒	75.8分	0	0	1.40	1.19	2.47	1.13	0.750（27/36）	75.6秒・9倍
  ・数字は night/20261105_rec93b/agg93.py（依頼92 の agg92.py と同じ読み方）
  ・judge.md：回の失敗 0・基準なし 2

  パネル付きの動画：night/20261105_rec92/post92.py と pick_speed.py をそのまま使った（変えていない）
    速さ：pick_speed.py で 9 倍（録画 serve 685.2 秒・bus 680.3 秒）。2本とも同じ速さ
    make_panel_video.py は md5 45a541e860222bb0426ea30c5bd976d8（依頼92 と同じ。変えていない）
    出力：rec_compare_20261105/fam_p0/{serve|bus}/panel/whole_wide_l30_panel.mp4・whole_wide_l30_panel_mid.png・panel_log.txt
    1920x1080・30fps（スクリプトが確かめた）。題「② ロボット2台・配膳だけ」「② ロボット2台・配膳＋下げ膳」。bus の真ん中のコマで題が切れていないこと・「下げ膳」の表示が出ることを目で見た


--------------------------------------------------------------------
3. B1：③ fam_p1・2台・種7・serve（条件2）を4つのカメラで
--------------------------------------------------------------------
  足したカメラと cs
    実行ファイル（cs:78）の録画の引数 -ssRecCam（名前,方位,見下ろす角度,注視点x,注視点y,距離,画角,w,h）は、どの向きのカメラでも置けるので、
    Unity には何も足していない。cs は 78 のまま。回し方だけ night/20261105_rec93b/rec_runner93.py（依頼92 の rec_runner.py の写し）に
    --lp4（4つのカメラ）と --close（B2 の寄り）の2つの引数を足した
  LOG371 の4視点の向き（four-views.mp4 は Unity エディタの4分割の画面。画面の向きの印から読んだ）
    真上：画面の上が店の手前（入口の側）・画面の右が店の左　／　正面：奥（キッチンの側）から入口の方を水平に見る　／
    横：右の壁の側から左を水平に見る　／　斜め：右奥の角の側から見下ろす
  撮ったカメラ（どれも 3840×2160・画角 40°・注視点は店の中央 (12, 8)。0.5 秒ごと・回の最初から全員が帰るまで・frames.csv・camera.json）
    wide_l30：方位 +30°・見下ろす角度 60°・距離 39.4 m（依頼87 と同じ）
    top     ：方位 180°・見下ろす角度 90°・距離 26.3 m。カメラは (12, 8) の真上・高さ 26.3 m。LOG371 の真上と同じ向き
    front   ：方位 180°・見下ろす角度 45°・距離 27.4 m。カメラは (12, 27.37)・高さ 19.37 m（店の奥の外）。LOG371 の正面と同じ方位
    side    ：方位 −90°・見下ろす角度 45°・距離 33.4 m。カメラは (35.62, 8)・高さ 23.62 m（店の右の外）。LOG371 の横と同じ方位
    距離は night/20261105_rec93b/camdist93.py（依頼87 の camdist.py と同じ決め方：床の角と四方の壁の上が画面の 97% に入るいちばん近い所。
      同じ計算で wide_l30 が 39.4 m になることを確かめた）。撮ったあと camera.json の行列で、どのカメラにも店全体が入っていることを確かめた
    正面・横を水平（0°）にしなかったわけ：録画の道具の斜めのカメラは注視点が床の高さなので、0° だと床の高さから撮ることになり、卓に遮られる。
      LOG371 の正面・横は正投影の水平の画面で、今の録画の道具では同じものは撮れない（決めてほしいこと 2）。正面ではキッチンの箱の手前（入口側）が一部隠れる

  同じ種の2回の一致（カメラを足したことの確かめ）
    この回（20261105_rec93lp_…）と、同じ cs:78・同じ条件・同じ種で依頼91 に wide_l30・wide_r30 の2つで撮った回（20261104_rec91_…）を比べた
    contacts・dishes・give_ups・groups・nowarp_jams・passes・people_jams・requeues・rescues・robot_track・stops・timeline・yields・frames.csv は1字も違わない。
    trips.csv は plan_ms_max だけ、summary.json は written_at だけ違う（依頼92 の比べ方と同じく一致とみる）
    Unity を変えていないので、cs を上げたうえでの2回の確かめは要らないと判断した

  作ったもの（rec_lp_20261105/p1_s7/。作り方 night/20261105_rec93b/lp93_b1.py・記録 b1_log.txt）
    1. four_views_panel.mp4（＋ four_views_panel.png）：1920x1080・30fps・2286 コマ・76.2 秒・10.5 倍。題「③ ロボット2台・4つの視点」
       4本を 960×540 に縮めて 2×2 に並べた four_views_2x2.mp4（1920×1080・各映像の左上に「真上」「斜め」「正面」「横」）と、
       four_views_2x2_frames.csv（4本の frames.csv が同じことを確かめて写した）を make_panel_video.py に渡した。
       make_panel_video.py は変えていない。2×2 は 16:9 で、ふつうに渡すと左右が切れるので、もとからある --fit（切らずに縮めて上下に余白）を使った
       速さは依頼91・92 と同じ決め方（0.5 刻みで 60〜90 秒に入るうち 75 秒にいちばん近いもの）
    2. top_busy_loop.mp4（＋ png）：1200×800（3:2）・12.0 秒・360 コマ・音なし
       切り出した店の時刻：6360〜6540 秒（開店から 1時間46分〜1時間49分）。録画のコマ 12720〜13079
       選び方：timeline.csv の行ごとに「席にいる組＋手すきでないスタッフ＋動いているロボット」を数え、続く4行（180 秒）の平均がいちばん大きい所
       （46.5。4行は 47・46・46・47）。真上の録画を横 3240 に切って（店は 373〜3467 px に入る）縮めた
    3. oblique_loop.mp4（＋ png）：1000×876・12.0 秒・音なし。wide_l30 の同じ時刻（6360〜6540 秒）
       8:7 にすると縦が 875 で奇数になり、ふつうの mp4（yuv420p）にできないので 876 にした（比 1.1416。8:7 は 1.1429）（決めてほしいこと 3）
       店の四隅と壁の上は 751〜3122 px に入るので、横 2466 に切っても店全体が入る
    再生の速さ：ループの2本は録画のまま（1コマ＝店の 0.5 秒・店の 15 倍）。最初と最後はつながっていない（切り出しただけ）
  目で見たこと：4視点の真ん中のコマで4つとも店全体が映り、名前の札が読め、題が切れていない。真上は入口が上に来る（LOG371 と同じ）


--------------------------------------------------------------------
4. B2：② の丸テーブル T05・T06 の直す前・直した後（fam_p0_s2_r2_a19・種0・serve）
--------------------------------------------------------------------
  直す前の店の建て方
    ・依頼26 は site_copy_dffc100b269c の14ファイル（試算の値 serving-robot-params.json・summary.json・6店の店の形と地図）を写した。
      今は試算の値が v2.9 で、実行ファイルは v2.9 でないと回さない（SimParams.asset の expectModel）。dffc100b269c の試算の値は v2.8 なので、
      14ファイルを写すと回らない
    ・そこで、店の形のデータだけを写した：Store/Layouts/p0_memory.json・p0_memory_map.json・summary.json を site_copy_dffc100b269c から写し（cmp で同じと確かめた）、
      試算の値は今の v2.9 のまま、版の札 meta.layout_generation の1行だけを 9b8dae7ebf8c → dffc100b269c にした
      （店の形の版と突き合わせて違えば回さない作りなので）（決めてほしいこと 1）
    ・この状態で RecordBuild.Build により Builds/rec21_before93 を作った（build_id cs78_20261105_1543・pending_changes「保留あり 4 件」）
    ・作ってすぐ cm undo で4件を戻した（データは実行ファイルに入っているので、撮る前に戻してよいと判断した）。
      戻したあと、4ファイルとも作る前の控え（night/20261105_rec93b/before_build/now_cs78/）と cmp で同じ・保留 0 を確かめた。撮り終えたあとも保留 0
    ・night_runner は保留つきの実行ファイルを受け付けないので、直す前の回は依頼26 と同じく実行ファイルを直接起こした（night/20261105_rec93b/run93b.sh）。
      引数は rec_runner が作るものと同じ（-ssLabel rec93before）
    ・台帳の layout_generation：直す前の回は dffc100b269c、直した後は 9b8dae7ebf8c（どちらも unity_cs は ServiceSim/cs:78）
  直す前の店と今の店の違い（dffc100b269c と 9b8dae7ebf8c の ② の JSON を比べた）
    T06 の位置（x 5.85〜6.95 → 6.85〜7.95）のほか、T01・T04・T05 の止まる位置、道順（routes）、場所の点（places）が違う。
    直す前の店には StaffPost が無いので、今の決まり（持ち場 入）で回しても持ち場は 0 か所になる（ログ「持ち場: 入（StaffPost 0 か所）」）
  カメラ：依頼28 の映像A と同じ置き方（真上・正投影・x 3.0〜10.0・y 10.5〜15.0・1680×1080・光の角度 75°）。
    コマの間隔は 0.5 秒（make_panel_video.py が1コマ＝店の 0.5 秒の作りのため。依頼28 は 0.2 秒）。回の最初から終わりまで。道の線は描かない（依頼87 と同じ）
    出力：{回}/recordings/…_A_close.mp4・…_A_close_frames.csv、{回}/timeline.csv

  丸テーブルの間で止まったか（stops.csv。x 3.6〜8.0・y 11.0〜14.2 で始まった止まり）
    直す前：44 回・合わせて 44.9 秒・30 秒以上 0 回・60 秒以上 0 回。いちばん長いのはロボット1 往復31 の t=4227.25 秒から 3.6 秒（スタッフとすれ違った）
    直した後：21 回・合わせて 35.2 秒・30 秒以上 0 回・60 秒以上 0 回。いちばん長いのはロボット1 往復65 の t=7139.75 秒から 5.35 秒
    → 今の版では、直す前の店でも丸テーブルの間で止まらなかった（依頼26 のような 60 秒の動けなくなりは出ない）。数秒の止まりは直す前の方が多い
  選んだ範囲：店の時刻 4080〜4380 秒（68分〜73分・300 秒）。2本とも同じ範囲・同じ速さ（1 倍）
    理由：直す前のいちばん長い止まり（4227.25 秒から 3.6 秒）の真ん中を中心に、依頼の上限の 300 秒をとった。
    この間、直す前はロボット1 が丸テーブルの間でスタッフとすれ違うたびに 8 回止まる（4184〜4235 秒・4372 秒）。
    直した後は同じ頃に 4 回（4213〜4226 秒）
  作ったもの（rec_lp_20261105/p0_round/{before|after}/。作り方 night/20261105_rec93b/lp93_b2.py・記録 p0_round/b2_log.txt）
    round_before_panel.mp4（＋ png）：1920x1080・30fps・600 コマ・20.0 秒・題「② 丸テーブルの間・直す前」
    round_after_panel.mp4（＋ png）：同じ・題「② 丸テーブルの間・T06 を右へ1.0m」
    make_panel_video.py の --from 4080 --to 4380 --speed 1 --fit（映像A は横 1680 で、ふつうに渡すと左右が切れるので切らずに縮めた）
    目で見たこと：10 秒目のコマで、直した後は T06 が右へずれていること、題が切れていないこと


--------------------------------------------------------------------
5. 台帳
--------------------------------------------------------------------
  2944 行 → 2949 行（追記 5 行だけ。どれも completed・ServiceSim/cs:78）
    20261105_rec93a_…fam_p0_r2_s8…（9b8dae7ebf8c）・…_bus（9b8dae7ebf8c）・20261105_rec93before_…fam_p0_r2_s0…（dffc100b269c）・
    20261105_rec93after_…（9b8dae7ebf8c）・20261105_rec93lp_…fam_p1_r2_s7…（9b8dae7ebf8c）
  先頭 2944 行の md5 は 53aa41f760e040b96ec904838d3e2fb3（退避と同じ）。終わったあとの md5 068dae4ef80e1e5730a145f238298061。鍵ファイルは残っていない
  ※ 直す前の行の unity_cs は cs:78 だが、中身は cs:78 に保留として ② の店の形を入れた実行ファイル。見分けは layout_generation（dffc100b269c）でつく（依頼26 と同じ）


--------------------------------------------------------------------
6. 記録の置き場所
--------------------------------------------------------------------
  night/20261105_rec93a/（A の queue.json・rec_runner.py・runner_log・runs.csv・judge・panel_fam_p0_*_log.txt）
  night/20261105_rec93b/（rec_runner93.py・camdist93.py・q_b1.json・q_b2after.json・run93b.sh・run93b_log.txt・agg93.py・lp93_b1.py・lp93_b2.py・
    before_build/（直す前の実行ファイルの build.log と、戻したことを確かめた控え）・logs/（直す前の回のログ））
  night/20261105_rec93lp/・night/20261105_rec93after/（B1・B2 直した後の実行係の記録）
  Builds/rec21_before93（直す前の実行ファイル。Builds/ は VCS の外）
  前の分（rec_compare_20261105 のほかの店・依頼92 の ② の回など）は消していない・上書きしていない


--------------------------------------------------------------------
決めてほしいこと
--------------------------------------------------------------------
  1. B2 の直す前の店の作り方と、LP での使い方。
     ・依頼26 と同じに14ファイル（試算の値 v2.8 ごと）を写すと今の版では回らないので、② の店の形・地図・summary.json だけを写し、
       試算の値は v2.9 のまま版の札（layout_generation）だけを合わせた。このやり方でよいか
     ・直す前の店（dffc100b269c）は T06 のほかに、止まる位置・道順・スタッフの持ち場（0 か所）も今の店と違う。
       題「T06 を右へ1.0m」だけの違いとは言い切れない
     ・今の版では直す前でも丸テーブルの間で長く止まらない（最長 3.6 秒）。LP の「直す前は止まる・直した後は止まらない」という見せ方には、
       今回の2本はそのままは合わない。2本を使うか、前の録画（依頼28・cs:43）を残すか
  2. B1 の正面・横の見下ろす角度を 45° にした（LOG371 は水平の正投影）。録画の道具では水平の正投影は撮れない。
     このままでよいか、録画の道具に水平の正投影のカメラを足す（Unity を変えるので cs を上げ、2回の確かめが要る）か
  3. oblique_loop.mp4 を 1000×876 にした（8:7 の 1000×875 は縦が奇数で、ふつうの mp4 にできない）。このままでよいか

判定：止めた（決めてほしいことあり）
