==================================================================== LP 用に、②の丸テーブルのまわりを「直す前・直した後」で録画した 依頼:20261029_26_LP用に店2の直す前と後を録画する.md 2026-10-29 21:02 check-in:cs:41(録画のしくみだけ) 最後の状態:cs:41 head・保留 0 ==================================================================== 結論 ・始める前の確かめ5つは、すべて合格だった。 ・Unity Recorder は入っていなかった。足していない(理由は 2 章)。代わりに、撮るための小さなスクリプト2つを足して cs:41 で check-in した。 店・人・ロボットのコードと設定は変えていない。 ・2回とも completed で、録画は 2 本ずつ(寄り・全体)。どれも 3751 コマ・125.03 秒・30 コマ/秒・H.264・CRF 16・yuv420p。 ・直す前の回では、丸テーブルのまわりの 60 秒の「動けなくなった」が 8 回あった。p0check(画面なし)と時刻も場所も同じ。 ロボット2 が往復4で、t=1021.2〜1527.5 秒、抜けられずに待っている。 ・直した後の回では、同じ範囲の 60 秒の「動けなくなった」は 0。 ・ただし、直した後の 900〜1650 秒には「片方が T05・T06 に止まっている間に、もう1台が間を抜ける」場面はなかった(4 章の 3)。 ・ロボットの位置(5 秒ごと)は、画面なしの回とまったく同じだった(直した後は t=6290 秒まで、直す前は t=6550 秒まで)。 録画した 900〜1650 秒の動きは、録画で変わっていない。そのあとはずれていき、回全体の数は少し違う(4 章の 5)。 ・直す前の回のフォルダ名が直した後と同じになってしまうので、ラベルを lpdemobefore にした(決めてほしいこと 1)。 ・台帳は 667 → 669 行(追記だけ)。先頭 667 行の md5 は始める前と同じ。 ==================================================================== 1. 始める前の確かめ(5つとも合格。20:40 ごろ) ==================================================================== 1. Unity エディタ:起動していない(Unity Hub だけが起動していた) 2. /Volumes/KIOXIA:マウントされている。unity_ledger_v1.lock:なし 3. 台帳 unity_ledger_v1.csv:667 行・md5 c7e561fec03ba49cb6cf5fa44628fe5e(依頼と同じ) 4. ServiceSim の保留:0(cs:40 head) 5. iCloud の unity/site_copy_dffc100b269c/ と unity/site_copy_08db8a0d067c/:どちらもある 追加の確かめ:cs:39 と cs:40 の違いは、params・summary.json・6店の JSON と地図の 14 ファイルだけ。コードは同じ(前提どおり) ==================================================================== 2. 足したものと cs 番号 ==================================================================== cs:41(4 ファイル。コメント「LP用の録画のしくみを足す…」) Assets/ServiceSim/Recording/SimTimeRecorder.cs(+.meta) ・起動の引数に -ssRecord を付けたときだけ動く。夜の回・段階B・エディタでの Play では何もしない。シーンにも置いていない ・撮る時刻は店の中の時刻(stops.csv の t_s と同じ。Time.time − 回し始めの時刻)。900〜1650 秒を 0.2 秒ごとに撮る 回は今までどおり 1コマ 0.05 秒で進むので、撮る重さで変わるのは実時間だけ(4 コマに1回撮る) ・真上・正投影の録画用カメラを自分で作る(ふだんは切っておき、撮るコマだけ描く)。背景色・映すものは Main Camera の設定を写す。 画面の上の文字(OnGUI)は入らない。暗い膜・ぼかし・文字の重ねは入れていない ・描いた絵をそのまま ffmpeg に渡す。設定は libx264・preset slow・CRF 16・yuv420p・30 コマ/秒 ・その回の出力フォルダの下に recordings/ を作って書く。recordings/ がもうあれば撮らない(上書きしない) Assets/ServiceSim/Editor/RecordBuild.cs(+.meta) ・録画用の実行ファイルを、夜の実行ファイル(Builds/headless)とは別の場所に作る(中身の作り方は BuildHeadless と同じ)。 Builds/headless(cs:40 の夜用)は触っていない Unity Recorder を足さなかった理由 ・p0check・p0fixcheck は実行ファイル(player)で回した回。同じ道で回さないと比べられない ・Recorder はエディタの中でしか動かず、player では撮れない ・使い道がないので足さなかった。パッケージ(manifest.json)は変えていない 回し方 ・実行ファイル:-batchmode だけで、-nographics は付けない(描くため。HUD・1倍の待ちは -batchmode なので動かない) 引数 -ssCondition fam_p0_s2_r2_a19 -ssSeed 0 -ssNight 20261029 -ssParallel 1 -ssRunning 1    -ssPassBy on -ssRuleB off -ssStandbyReturn on(今の標準) ・ffmpeg:/opt/homebrew/Caskroom/miniforge/base/envs/ros_env/bin/ffmpeg(7.1.1。PATH にはなかったので、このパスを渡した) 最後の状態:cs:41 head・保留 0(cm status --machinereadable は STATUS 行だけ) ==================================================================== 3. 2回の run_stem と録画ファイル ==================================================================== 置き場所:/Volumes/KIOXIA/r2r2r-data/service_sim/unity/{run_stem}/recordings/ 2回とも、映す範囲・向き・カメラ・光・品質は同じ(同じスクリプト・同じ引数・同じシーン) 直した後(店の形の版 08db8a0d067c・cs:41・保留 0) run_stem:20261029_lpdemo_cs41_fam_p0_r2_s0_passon_sbret(completed・実時間 3.5 分・build_id cs41_20261029_2050) 20261029_2050_lpdemo_after_A_close.mp4 1680×1080・125.03 秒・3751 コマ・2,027,031 バイト 20261029_2050_lpdemo_after_B_whole.mp4 1920×1560・125.03 秒・3751 コマ・2,673,237 バイト 20261029_2050_lpdemo_after_A_close_frames.csv / _B_whole_frames.csv(frame, t_s。0 → 900.0 秒 … 3750 → 1650.0 秒。間はすべて 0.2 秒) 直す前(店の形の版 dffc100b269c・cs:41 に保留 17 件:写した 14 ファイルと、建てたときに触った .asset など 3 件) run_stem:20261029_lpdemobefore_cs41_fam_p0_r2_s0_passon_sbret(completed・実時間 3.6 分・build_id cs41_20261029_2055) 20261029_2055_lpdemo_before_A_close.mp4 1680×1080・125.03 秒・3751 コマ・3,307,186 バイト 20261029_2055_lpdemo_before_B_whole.mp4 1920×1560・125.03 秒・3751 コマ・2,518,174 バイト 20261029_2055_lpdemo_before_A_close_frames.csv / _B_whole_frames.csv(同じく 900.0〜1650.0 秒・0.2 秒ごと) 映像A(寄り):真上から正投影。x 3.0〜10.0・y 10.5〜15.0(7.0 × 4.5 m。1 m = 240 画素)。+y が画面の上 映像B(全体):真上から正投影。x −0.8〜24.8・y −0.8〜20.0(店の外寸 24 × 19.2 m に 0.8 m の余白。ServiceSimCameras.FrameTop と同じ余白) 見た目:ロボット白・スタッフ青・客黄。ロボットの道の線(薄いオレンジ)は今の標準のまま映る A の範囲についての気づき:T01・T04 の止まる位置は入るが、卓そのもの(T01 x 0〜2.6・T04 y 15.0〜16.2)は範囲の外で映らない 直す前の作り方(依頼の 3) ・site_copy_dffc100b269c の params・summary.json・6店の JSON と地図(14 ファイル)を cp で写した。 写したあと、14 ファイルとも cs:39 に check-in された中身と同じことを cmp で確かめた ・JSON Store「② を建てて確かめる」:版 dffc100b269c・卓 19・席 88・合わないもの なし・止まる位置は乗らない 0 / 19・ 受け渡し口から全 19 卓がつながった ・Map Planner「② 確かめ A」:引けない卓 0 / 19・待機場所3つとも引けた → 通った ・録画のあと cm undo で 17 件を戻した。params と②の JSON・地図が 08db8a0d067c の写しと同じに戻ったことを cmp で確かめた。保留 0 ・JSON Store は時刻の入らない名前で unity/screens/ に書き出す(20261029_p0_memory_json_check.txt・ 20261029_p0_memory_table_dist.csv・20261029_family_v0_* など)。直す前の版で上書きされたので、戻したあとにもう一度 「② を建てて確かめる」を回し、今の版(08db8a0d067c・合わないもの なし)の中身に書き直した。そのとき触った .asset 3 件も cm undo で戻した。 20261029_2055_* の名前のもの(直す前の確かめ A)は残してある ==================================================================== 4. 確かめたことの答え ==================================================================== 1. 直す前の録画の回の、丸テーブルのまわり(x 4.75〜6.85・y 11.3〜14.0)の 60 秒の「動けなくなった」 8 回あった。p0check と時刻・場所・理由が同じ(1 行ずつ同じ) ロボット1 往復3:t=948.1・1039.85・1267.0((5.36, 12.41)・椅子) ロボット2 往復4:t=1104.75(椅子)・1184.5・1265.15・1345.75・1420.95(もう1台のロボット)((5.85, 11.98)) → p0check(ロボット2・往復4・t=1021〜1527 秒ごろ)と同じ時刻に起きた 2. 直した後の録画の回の、同じ範囲の 60 秒の「動けなくなった」 0 回。p0fixcheck と同じ 900〜1650 秒のロボットの位置(robot_track.csv・5 秒ごと)は p0fixcheck と1行も違わない (ずれ始めるのは t=6290 秒。直す前も、p0check と t=6550 秒まで同じ) 3. 直した後の回で、片方が T05 か T06 に止まっている間に、もう1台が2つの丸テーブルの間を通り抜けた時刻(900〜1650 秒) なかった。この間に丸テーブルへ行ったのは1台ずつで、そのとき、もう1台は待機場所にいるか受け渡し口へ戻る途中だった ロボット1 が T05 に止まる:t≒950〜970・1270〜1290(もう1台は待機場所) ロボット2 が T05 に止まる:t≒1050〜1070・1330〜1350(もう1台は待機場所か受け渡し口のそば) 回全体で探すと、そういう場面は1つだけだった(範囲の外) t≒4855〜4880:ロボット2 が T05 に止まっている間に、ロボット1 が T06 へ入る(4858 秒ごろ)。 そのあと、ロボット1 が T06 に止まっている間に、ロボット2 が丸テーブルの間を抜けて受け渡し口へ戻る(4875 秒ごろ)。 p0fixcheck でも同じ時刻に起きている (robot_track.csv の 5 秒ごとの位置を線でつないで探した。秒は ±5 秒くらい) 4. 直す前の録画で、もう1台が抜けられずに待っている場面の始まりと終わり ロボット2(往復4・T05 へ):始まり t=1021.2((6.13, 11.85) で止まる)〜 終わり t=1527.5(動き出す)。T05 に着いたのは t=1545.0 映像のコマでは 606 〜 3137 番(mp4 の 20.2 〜 104.6 秒) ロボット2 の前で止まっていたのはロボット1(往復3・T03 へ行く途中)。T05 に止まっていたのではない。 (5.36, 12.41) で t≒948 から動けず、t=1526.8 に往復が打ち切られ、受け渡し口のそばへ瞬間移動した (t=1525 には (5.36, 12.41)、t=1530 には (9.75, 5.44))。この瞬間移動は映像Aにも映る(コマ 3134 前後) 5. 録画した回と画面なしの回の差(回全体。台帳と stops.csv) 直す前:録画 / p0check 直した後:録画 / p0fixcheck 30 秒以上の止まり 15 / 17 6 / 5 動けなくなった(60 秒) 12 / 12 5 / 2 往復の数 73 / 73 74 / 76 入店待ち(分) 1.42 / 1.45 1.56 / 1.22 料理の待ち(分) 0.98 / 0.94 0.61 / 0.54 会計待ち(分) 1.18 / 1.16 0.67 / 0.88 打ち切り 1 / 1 0 / 0 あきらめた 13 / 12 10 / 4 瞬間移動 14 / 15 11 / 15 店の時間(分) 163.3 / 164.0 165.2 / 162.7 ・900〜1650 秒は2回とも位置が同じなので、録画した場面は画面なしの回と同じ動き ・違いが出るのは t=6290 秒(直した後)・6550 秒(直す前)より後。直した後は入店待ち +0.35 分・動けなくなった +3 で、差が大きい 直した後の、丸テーブルの外の「動けなくなった」5 回の場所:待機場所1のそば (12.24, 5.51) 1 回・ 入口とレジのまわり((12.8〜13.5, 1.7〜3.3)。スタッフ・お客さん)4 回 ・ずれた理由は調べていない。今までの記録(busycheck)でも、同時に回す本数で数が動くと分かっている。 画面ありで回した分だけ1コマの実時間が変わったことが関わっている、と思うが、確かめていない ==================================================================== 5. 台帳 ==================================================================== 行数:667 → 669(2 行足した。追記だけ。列は 59 列のまま) 20261029_lpdemo_cs41_fam_p0_r2_s0_passon_sbret completed・ServiceSim/cs:41・08db8a0d067c 20261029_lpdemobefore_cs41_fam_p0_r2_s0_passon_sbret completed・ServiceSim/cs:41・dffc100b269c 先頭 667 行の md5:c7e561fec03ba49cb6cf5fa44628fe5e(始める前と同じ) 鍵ファイルは残っていない ※ 直す前の行の unity_cs は「cs:41」だが、実際は cs:41 のコードに、保留として cs:39 と同じデータを入れたもの。 見分けは layout_generation(dffc100b269c)でつく make_queue.py・night_runner.py・judge_night.py・p2m-site は変えていない ==================================================================== 6. 残ったもの(消そうとしたが、消す許可が出なかった) ==================================================================== 録画のしくみの試し(店の時刻 20〜26 秒だけ撮り、回の途中で止めた。台帳には書いていない)の出力が KIOXIA に残っている /Volumes/KIOXIA/r2r2r-data/service_sim/unity/20261029_rectest_cs40_fam_p0_r2_s0_passon_sbret/(recordings/ に試しの mp4 2 本) /Volumes/KIOXIA/r2r2r-data/service_sim/unity/20261029_rectest_cs40_fam_p0_r2_s0_passon_sbret_stopped/(途中で止めた回の記録) プロジェクトの Builds/rec_test・rec_after・rec_before(Builds/ は VCS の外) ==================================================================== 7. 決めてほしいこと ==================================================================== 1. 直す前の回のフォルダ名。 同じ夜・同じラベル lpdemo・同じ cs41 だと、直した後と1字も違わない名前になる(直す前の状態は check-in しないため)。 -ssTry 2 で分けると、judge_night.py が「やり直し」として1つにまとめてしまう。そのため、ラベルを lpdemobefore にして回した。 このままでよいか。名前を変えるなら、フォルダと台帳の run_folder をどうそろえるか。 2. 直した後の「すれ違って抜ける」場面が、録画した 900〜1650 秒の中にない。 回全体で1つだけあり、t≒4855〜4880 秒(画面なしの回でも同じ時刻)。 見せたいなら、直した後をこの時刻のあたり(例 4800〜4950 秒)で撮り足すかどうか。 依頼で撮り直してよいのは「直す前に詰まりが出なかったとき」だけなので、撮り直していない。 3. 録画した回の数が、画面なしの回と t≒6300 秒より後でずれる(直した後は、入店待ち 1.56 / 1.22 分・動けなくなった 5 / 2)。 録画の場面(900〜1650 秒)は同じ動きだが、LP に数字を並べるなら、画面なしの回(p0check・p0fixcheck)の数を使うのがよいと思う。どちらを使うか。 4. 試しの出力(6 章の rectest 2 フォルダ)を消すか残すか。