====================================================================
直した⑤（fam_p3）を建てて確かめる … ⑤が建たないので、建てる段で止めた
依頼：20261028_18_直した店5を建てて確かめる.md（依頼 17 のやり直し）
2026-10-28 14:01
====================================================================

結論

  ・始める前の確かめ5つは、すべて合格だった。
  ・サイトの params と ③⑦④⑤の店の形を写した。版はすべて 80a101e91410 でそろっていた。
    ③⑦④の中身は、前の写しと版の番号以外は同じだった。
  ・⑤を③⑦④と同じコードで建てようとしたら、**Unity の読み込みで「JSON と合わないもの 14 件」となり、建たなかった**。
    原因は⑤の JSON で、右の壁ぞいの細い通路 A03 の入口（entrance）が null になっていること。
    A03 を通る 13 卓（T21〜T28・T34〜T38）が読み込めない。
    店の形（サイト側）のデータが原因なので、依頼のとおり Unity 側では直していない（決めてほしいこと 1）。
  ・そのため、check-in・実行ファイルの作り直し・確かめの3回は、どれもしていない。
    台帳は 565 行のまま。本番の夜も回していない。
  ・保留を残さないよう、プロジェクトは cs:35 の状態に戻した（保留 0）。
    足した分（メニュー・.asset・シーンの1行）は控えに残したので、サイトが直れば同じ形でもう一度入れられる。


====================================================================
1. 始める前の確かめ（5つとも合格）
====================================================================

  1. Unity エディタ：起動していない（Unity Hub だけが起動していた）
  2. /Volumes/KIOXIA：マウントされている。unity_ledger_v1.lock：なし
  3. 台帳 unity_ledger_v1.csv：565 行・md5 7f636cb533be1ee07caabb8782455f15（退避と同じ）
  4. ServiceSim の保留：0（cs:35）
  5. 公開中の serving-robot-params.json：meta.layout_generation 80a101e91410・
     unity_conditions 12 件・stores は fam_p1 / fam_p5 / fam_p2 / fam_p3（1回目で合った）


====================================================================
2. 写したもの（やること 1）
====================================================================

  写し元：https://pixelstomotors.com/sim/（2026-10-28 13:57 に取得）
    控え：unity/site_copy_80a101e91410/（params・summary.json・layouts/unity/ の6店の JSON と地図）
  版の番号：params の layout_generation、p1・p5・p2・p3 の JSON と地図の meta.generation、
            summary.json の6店すべてが 80a101e91410
  ③⑦④（p1・p5・p2 の JSON と地図の6本）：前の写し（site_copy_39257d16b68a）と比べて、
            generation 以外の違いは 0
  summary.json：違うのは⑤の robot_dist_mean（13.7 → 12.5）と robot_dist_max（23.17 → 18.8）だけ
  params：common・unity_rules・stores の fam_p1 / fam_p5 / fam_p2、unity_conditions の 0〜8 番は前と同じ。
          足されたのは stores.fam_p3 と unity_conditions の 9〜11 番（⑤の 0・1・2 台）。
          meta で変わったのは layout_generation だけ

  プロジェクトへは cp でそのまま写した（手で値を写していない）。
  ただし 3 章のとおり⑤が建たなかったので、プロジェクトは cs:35 の写しに戻してある。


====================================================================
3. ⑤を建てて分かったこと（やること 2）
====================================================================

  やったこと
    ④のときと同じ形で⑤を足し、Unity を画面なしで開いて
    「ServiceSim → JSON Store → ⑤ p3_relaxed_center を建てて確かめる」を走らせた
    （-batchmode -executeMethod ServiceSim.EditorTools.ServiceSimJsonStore.CheckP3）。
    組み立ては通った（error CS 0）。

  結果：建たなかった
    JsonStoreLayout が「JSON と合わないものが 14 件あるので建てませんでした」として止まった。
      - aisles[2].entrance が [x, y] ではありません（A03 の entrance が null）
      - T21・T22・T23・T24・T25・T26・T27・T28・T34・T35・T36・T37・T38：
        aisles に無い通路 "A03"（上の1件で A03 を読み込めなかったため）
    店ができないので、ほかの確かめ（止まる位置が NavMesh に乗るか・道のりの照合・
    待機場所・レジ・スタッフが待つ点・並ぶ点・NavMesh の切れ目）は走っていない。
    Map Planner の確かめ A も、同じ読み込みを通るので回していない。

  原因（⑤の JSON の中身）
    A03（右の壁ぞいの列の通路・幅 1.5 m）
      今の版   rect [23.3, 1.4, 24.8, 16.2]・端の点 (24.05, 0.6) と (24.05, 17.0)・
               end_dist [null, null]・entrance null
      前の版   rect [23.3, 1.4, 24.8, 12.65]・端の点 (24.05, 0.6) と (24.05, 13.45)・
               end_dist [null, 14.325]・entrance (24.05, 13.45)
    右の列を上へのばしたので、通路の上の端の点（通路の端から 0.8 m 外）が y = 17.0、
    つまり外壁の上の線の上に来た。下の端（y = 0.6）は前から行けない所なので、
    両方の端に受け渡し口から行けず、サイトの解析が entrance を null にしている。
    Unity の読み込みは「細い通路には入口が1つある」という前提で作ってある。

    参考：卓そのものへの道は JSON の routes にある（例 T21：受け渡し口から normal・13.9 m）。
    地図（map.json）の読み込みは通っていて、マスの数は JSON の counts と一致、
    止まる位置は読めた 33 卓すべて通れるマスの上、受け渡し口はふだんの道のマス、
    待機場所3つは「通れる幅だけ」のマス（④と同じ）だった。

  JSON の上で数えた点（建てていないので、置けたかどうかは未確認）
    卓 46・席 200（summary.json）／場所の点：受け渡し口・返却口・パントリー・入口・待合・トイレ・
    レジ 1・会計の列 3・レジ内 1・ドリンクバー（立つ点 4・列 3）・ロボットの待機場所 3・スタッフが待つ点 2
    スタッフが待つ点は (7.25, 10.0) と (17.75, 10.0)（パントリーの左右の端）。今回の決まりどおり、
    建てば 2 人ずつ同じ点に割り当てられる（コードは変えていない）。


====================================================================
4. 入れた cs・build_id・変えたファイル
====================================================================

  check-in：していない（cs:35 のまま・保留 0）
  画面なしの実行ファイル：作り直していない（build_id cs34_20261028_0642 のまま）

  一度変えて、cs:35 に戻したもの（控え：claude_code_reports/20261028_1401_p3_build_check2_pending/）
    Assets/ServiceSim/Experiment/serving-robot-params.json（公開版の写し）
    Assets/ServiceSim/Store/Layouts/summary.json・p1/p5/p2 の JSON と地図（公開版の写し）
    Assets/ServiceSim/Store/Layouts/p3_relaxed_center.json・_map.json（＋.meta）… 足して、消した
    Assets/ServiceSim/Store/StoreLayout_p3_relaxed_center.asset（＋.meta）… 足して、消した
      ④の .asset を写し、JSON・地図・名前・写し元を差し替えた。通路の幅は JSON と同じ 1.5 m
    Assets/ServiceSim/Editor/ServiceSimSetup.cs     P3LayoutPath と HeadlessRun.layouts に⑤
    Assets/ServiceSim/Editor/ServiceSimSiteRun.cs   ⑤の3条件（unity_conditions の 9・10・11）
    Assets/ServiceSim/Editor/ServiceSimJsonStore.cs 「⑤ p3_relaxed_center を建てて確かめる」・試算の値の確かめに⑤
    Assets/ServiceSim/Editor/ServiceSimMapPlanner.cs「⑤ 確かめ A」
    Assets/ServiceSim/Scenes/ServiceSim_Family.unity HeadlessRun.layouts に⑤（1行）
    Assets/ServiceSim/Store/Materials/Mat_RobotKeepout.mat
      Unity が書き直したが中身は cs:35 と同じだった。これも戻した
    控えには、変えたファイルそのものと cs:35 との差分（changes_vs_cs35.diff）、
    Unity のログ（unity_batch_checkP3.log）を置いた。
    公開版の params と店の形は unity/site_copy_80a101e91410/ にある。
    シーンと ProjectSettings は、Unity を開く前と同じだった（NavMeshAreas の書き足しも無かった）。

  ずっと残したもの（プロジェクトの外）
    unity/site_copy_80a101e91410/（README.txt つき）
    claude_code_reports/20261028_1401_p3_build_check2_pending/


====================================================================
5. make_queue.py（やること 3・6。台帳には書いていない）
====================================================================

  コードは変えていない。写した params（12 件）で /tmp に作って確かめた
  （このとき 1 回だけ。プロジェクトを戻したあとは、cs:35 の 9 件の params に戻っている）。
    --stores fam_p3 --seeds 0 --label p3check
      → fam_p3_s4_r0_a46・r1_a46・r2_a46 の 3 回（すれ違い入・待機場所へ戻る入・案B切、
         0 台は trays 1・1 台と 2 台は trays 3・レジ 1）
    何も指定しない
      → fam_p1・fam_p5 × 0・1・2 台 × 種 0〜9 ＝ 60 回。
         night/20261102/queue.json（v5 の夜）と、回の並びと中身が同じ（label を除く）
  judge_night.py は変えていない。
  作業フォルダに queue の一時ファイルは置いていない（/tmp にだけ作った）。


====================================================================
6. 確かめの3回（やること 5）
====================================================================

  回していない（⑤が建たないため）。
  画面なしの実行ファイルでも、同じ読み込み（JsonStoreLayout）で止まるので、
  今のまま回しても3回とも店が建たずに終わる。


====================================================================
7. 台帳
====================================================================

  行数 565（変わらず）・md5 7f636cb533be1ee07caabb8782455f15（退避と同じ）。鍵ファイルなし。


====================================================================
8. エイイチが画面で⑤を見る手順
====================================================================

  今は見られない（⑤はプロジェクトに入っていない）。
  サイトの形が直って入れたあとは、④と同じく次のとおり：
    1. Unity Hub から ServiceSim を開き、シーン Assets/ServiceSim/Scenes/ServiceSim_Family.unity を開く
    2. 建てるだけで見る：ServiceSim → JSON Store → ⑤ p3_relaxed_center を建てて確かめる
    3. 回して見る：ServiceSim → Site Run → ⑤ スタッフ4人・ロボット0台 / 1台 / 2台
       （Play に入って回り、終わると自動で抜ける。出力は KIOXIA に出る）


====================================================================
9. 決めてほしいこと
====================================================================

  1. ⑤の右の壁ぞいの通路 A03 の入口が null になっている件（3 章）。
     どちらで直すかを決めてください。
     (a) サイト側：右の列の上の端（rect の y 16.2）を下げて、通路の上の端の点を壁から離す、
         または通路の端の点の置き方（壁に当たるときの扱い）を直して、entrance が入るようにする。
         直したら版の番号が変わるので、params と ③⑦④の版の番号もそろえて出し直しになる
     (b) Unity 側：入口が null の細い通路を読めるようにする（コードの規則の変更。
         ③⑦④には null の通路が無いので動きは変わらないはずだが、⑤のための手直しになる）
     依頼の決まり（直すならサイトが先）に従い、どちらもしていません。
  2. 直ったあとは、この依頼をもう一度渡してください。控え（pending フォルダ）にある
     メニュー・.asset・シーンの1行は、版が変わっても名前が同じならそのまま使えます。
