依頼139:病院の Unity を立体の見た目にして、色3案とカメラ4つのサンプルを撮る(2026-11-10) ==================================================================== -------------------------------------------------------------------- 0. 始める前の確かめ(すべて合格) -------------------------------------------------------------------- 作業場所の保留:0(最後の check-in は cs:115) Unity・回し係:動いていない(Unity Hub だけ)。KIOXIA:マウント済み params(p2m-site main tools/hospital_sim/hospital-unity-params.json)md5 f72d3810674b31dadd9dfa4ce0141178(依頼138 と同じ) hospital_h0.json a29cd1d981e5b3086fb623fc647926d9・hospital_h0b.json ddefbd8ca0db243f41601532e7b8dee8(どちらも依頼のとおり) -------------------------------------------------------------------- 1. 立体の見た目の作り(-h139Look on のときだけ。既定は off=今の平らな図のまま。夜の回し方は変わらない) -------------------------------------------------------------------- 直したのは Assets/ServiceSim/Hospital/ の中だけ: HospitalLook.cs(新しい。見た目と撮影)・HospitalRun.cs(引数と呼び出しを足しただけ)・Editor/HospitalSetup.cs・Hospital.unity・ Materials/H139_*.mat(10 個) 見た目だけにするための決まり: ・足した物には当たり(Collider)を付けない。NavMesh を焼いたあとに置く。乱数を使わない ・人・ロボットの元の見た目(Body)は描かないだけにして、そのまま残す(当たり・動き・数え方・記録は触らない) ・部屋の箱(StoreBuilder の Room…)も描かないだけで、当たりは残す 使った配膳の値(読んだ所:Scenes/ServiceSim_Family.unity・Store/Materials・People/Guest.prefab・SeatedGuestBody.prefab・ Robot/ServingRobot.prefab・Recording/SimTimeRecorder.cs・rec_lp_20261105 の録画) 床:Mat_Floor(0.86,0.84,0.79)・壁と部屋の箱:Mat_Wall(0.40,0.43,0.48)・高さ 2.4 m(StoreLayout.wallHeight)。 床と壁は病院でもはじめから配膳の Floor/Wall の部品を使っている 光:Sun 強さ 1.1・色(1,0.98,0.94)・やわらかい影・影の濃さ 1・bias 0.05・normal bias 0.4、向きは録画のときの高さ 75° (SimTimeRecorder の既定)・方角 -34°。Fill 強さ 0.35・色(0.85,0.9,1)・(28°,160°)・影なし。 まわりの光 Flat(0.46,0.47,0.50) 背景:配膳の録画の背景の画素(102,96,91)。配膳は空の既定の「地面」の色がそのまま写っているので、同じ色を単色で出した (撮った画像の隅が 102,96,91 になっているのを確かめた) 影を描く距離:配膳の店より広い(120 m)ので 400 m に延ばした(Ultra の 150 m では奥に影が出ない)。影の向き・濃さは同じ 材質:配膳の Mat_Guest・Mat_Staff・Mat_Robot・Mat_RobotFront をそのまま写した(H139_Guest など。光沢 0.12 も同じ) 人とロボット 歩く患者・付き添い:配膳のお客さんと同じ黄色のカプセル(体 直径 0.4・高さ 1.59+頭 0.22) 杖の人:同じ黄色のカプセル+細い杖(直径 0.045・長さ 0.9・右手の前・握り付き。色は濃い灰色 0.30,0.31,0.33) 車いす:濃い灰色(0.30,0.31,0.33)の台(外形 0.65×1.10=数える長方形と同じ)・座面・背・車輪(直径 0.6)・足台に、 配膳の座った人と同じ形の黄色を座らせた。真上から濃い灰色の四角に黄色の点で見える スタッフ:配膳のスタッフと同じ青のカプセル ストレッチャー:外形 0.70×2.60(数える長方形と同じ)のうち、前の 2.1 m を白に近い灰色(0.86,0.87,0.88)の台(高さ 0.87・脚 4 本・枕)、 後ろに押す青のスタッフ ロボット:配膳と同じ白の円柱+橙の前の印。直径 0.549(数える丸と同じ)・高さ 1.081(params の KEENON W3 の h)。 前の印は配膳と同じ割合(高さの 0.8・前へ直径の 0.45・幅 直径の 0.6) 部屋:シミュレーションで建てているのは廊下のまわり(z13〜31)だけなので、見た目では h0 の外形 120×60 m のうち 「建てた床」と「待合」でない所を、配膳のキッチンと同じ灰色の箱(高さ 2.4 m)で埋めた(廊下だけの回で 10 個)。 外来・検査室・薬剤部などは1つながりの灰色の箱に見える(部屋どうしの境は描いていない) 問題の輪:今までどおり床の上に出す(Unity では描かず、カメラの行列で床の点を画素に移して重ねる。色と印は依頼136 と同じ・10 秒出す) 総合受付・会計・待合(h0 rect [25.1,15.1,70,27])の置き方(飾り。当たりなし・動かない・人数にも数えにも入れない) 床:待合の範囲いっぱいに差し色の床(下の色3案)。大廊下の側(z27)は壁を置かず開けた 壁:奥(z15.1、職員の中廊下との境)と西(x25.1、西の縦廊下との境)に厚さ 0.15・高さ 2.4。玄関の通り(x44〜52)は奥の壁を空けた 受付のカウンター x28〜40・会計のカウンター x56〜67。どちらも z16.6〜17.2(奥の壁から 1.5 m 前)・高さ 1.0。 本体(前板)=木目、天板(厚さ 0.05・まわりに 0.08 出す)=天板の色 長いす:4人掛け(座 0.55 m×4+ひじ掛け 0.06×2=長さ 2.32 m・奥行き 0.55・座面の高さ 0.45・背 0.42)。大廊下(+z)を向く。 玄関の通りの西(x25.25〜44)と東(x52〜70)に、それぞれ 5 台×5 列(列の間 1.3 m、いちばん後ろの列の背 z18.7・ いちばん前の列の前 z24.45)=50 台。大廊下の端(z27)から 2.55 m、壁と玄関の通りから 0.9 m 以上離した 座っている患者(飾り):長いすの決まった席だけ(乱数なし)に 86 人。形は配膳の座った人と同じ黄色 人・ロボットの道にかからないこと:待合の範囲は当たりのある箱のままで、NavMesh も無い(人もロボットも入れない)。 撮った画像でも長いす・座った人が廊下や歩く人に重なっていないのを見た 色3案(長いすの張り地・木目(脚・ひじ掛け・カウンターの前板)・カウンターの天板・待合の床の差し色)。最終の値: A ミント×木目:長いす #9FD6CB・木目 #D7B88C・天板 #F3F0E8・待合の床 #E4CFAA B 生成り×木目:長いす #E6DAC3・木目 #CFA77A・天板 #F6F3EC・待合の床 #D8BF98 C 黄緑×木目 :長いす #B3CC6E・木目 #D7B88C・天板 #F3F0E8・待合の床 #E4CFAA 長いす・木目・天板は依頼の値のまま(直していない)。 待合の床の差し色は依頼に値が無かったので、写真の明るい木の床から選んだ(下の「決めてほしいこと」1)。 はじめは待合の床を廊下と同じ色で撮ったところ、待合と大廊下の境が見分けられなかったので入れた。 差し色はこの4か所(張り地・木目・天板・床)だけで、ほかは増やしていない (B は長いすの色と床の色が近いので、床を少し濃い木の色にした) -------------------------------------------------------------------- 2. カメラ4つ(配膳の -ssRecCam と同じ決め方:透視投影・縦の画角 40°・注視点から向きの逆へ距離だけ下がる。 方位 0=+z(奥)を向く。2720×2160 で撮って 1360×1080 に縮め、右に 560 のパネルを付けて 1920×1080) -------------------------------------------------------------------- 距離は、範囲の四隅(高さ 0 と 2.4 m)がすべて画面の内側(余白 3%)に入るいちばん近い距離を、tools/camfit139.py で計算した 1 真上・引き top_wide 見下ろす 90°・方位 0・注視点 (60, 30)・距離 142.8 m(高さ 142.8 m)・範囲 x-0.5〜120.5・z-0.5〜60.5(フロア全体) 2 真上・寄り top_near 見下ろす 90°・方位 0・注視点 (40.5, 22.5)・距離 73.2 m・範囲 x10〜71・z13.5〜31.5 (大廊下の人の多い区間と待合の全体。はじめ x18〜62 で撮ったら待合の東の端が切れ、 ロボットも画面の左の端にいたので広げた) 3 60°見下ろし・左30°・引き obl_l30_wide 見下ろす 60°・方位 30(配膳の wide_l30 と同じ)・注視点 (54.69, 22.45)・距離 154.5 m (カメラの高さ 133.8 m)・範囲 フロア全体 4 60°見下ろし・右30°・寄り obl_r30_near 見下ろす 60°・方位 -30・注視点 (20.69, 29.05)・距離 27.5 m(カメラの高さ 23.8 m)・ 範囲 x9〜31・z26〜32 寄りの場所を選んだ理由:20261109_day138 の day138_v06_hall_s0(廊下だけ・0.6m/秒・種0)の events.csv の 1〜5 の位置を数えた。 ・走っている間(行き・帰り)71 件:6 m 幅で数えると x17〜23 に 51 件(中の平均 x19.9。大廊下の西の縦廊下への曲がり角の手前) ・待っている間も入れた全部 2,786 件:x9.5〜15.5 に 2,729 件(積む所 (12,30.5) で待っている間のひやり) この2つ(x12 と x20)がどちらも入るよう、大廊下 x9〜31 に寄った。曲がり角(西の縦廊下の入り口)も入る カメラごとの行列は runs/look139_v06_hall_s0/look139/cam_*.json(床の点→画素の式つき) 右のパネル(配膳の round_after_panel と同じ作り:白地 249,247,244・小さな見出し・大きな時刻・「ロボット・スタッフがしていること」・数) 見出し:病院 h0・廊下だけ・0.6m/秒・種0/色の案/カメラ 時刻(7:30 からの秒を時計にした) ロボット 1台:待っている/行き/帰り/表と裏口を移る のうち今のものを濃くし、白い丸と「表→検体受付」などを付ける スタッフ:ロボットの助け(助けに出ているスタッフの数だけ青の四角) 大廊下の人(x0〜70) 撮り始め(9:57:25)からの問題 1〜5 の数(輪の色つき)・うち速いままのひやり・止まりきれなかった 左上の見本:患者・付き添い(黄)・杖の人(黄+杖)・車いす(濃い灰色の四角に黄)・スタッフ(青)・ストレッチャー(灰の台+青)・ロボット(白) 引きのカメラ(1・3)だけ、ロボットの位置に白い輪を足した(引きではロボットが 6 画素ほどで見つけにくかったため。パネルの下に書いた) -------------------------------------------------------------------- 3. 撮った回と時刻 -------------------------------------------------------------------- 回:廊下だけ・0.6m/秒・種0(依頼138 の day138_v06_hall_s0 と同じ条件)を -h139Look on で回した(look139_v06_hall_s0) 静止画の時刻:7:30 から 8862 秒=9時57分42秒(外来の山場 8:00〜11:00 の中)。 この日の山場の中の便は1便目だけ(8843 秒に出る)で、ロボットが大廊下の人の多い区間を走るのは 8845〜8875 秒(行き)と 9100〜9155 秒(帰り)。8862 秒はロボットが (19.5, 28.4) を行きで走っていて、x17〜23 の問題の多い所の中・ 大廊下の人 60 人・直前の 10 秒に問題が起きている時刻なので選んだ 動画:色A・カメラ4つ・各 8845〜8945 秒(9:57:25〜9:59:05)を 0.2 秒ごとに撮り、25 コマ/秒で流す=店の時刻の5倍・20.04 秒・1920×1080・パネル付き 撮る回は 8945 秒で止めた(-h139EndAfterShots。summary は status stopped) -------------------------------------------------------------------- 4. 確かめ -------------------------------------------------------------------- (1) 依頼138 の check138a と同じ回(時間で切替・0.6m/秒・種0)を、cs:116 の実行ファイルで -h139Look on(画面を描く設定)で回した (check139a_v06_switch_s0。最後まで・status completed)。記録7つの md5: legs.csv c16df55d225bff9b9e2c35391751ef84 依頼138 と一致 events.csv 7e32a56d9806c6354704a3c91af29148 一致 rescues.csv 46f222937bb9562043663e1a3d7f8b2f 一致 robot_track.csv 458987516003595228862fd1ebb1f31b 一致 trips.csv 3ae372d5b5eedce24fedf3da531f49e0 一致 moves.csv b20f7c01f8596d37a26906ac7ef31028 一致 crowd.csv ad41d0201578ec8e1129ae4d76220ca2 一致 summary.json で違うのは run・unity_cs・wall_s だけ (2) 瞬間移動:check139a ロボット 0・人 0。撮った回 look139 もロボット 0・人 0 (3) 撮った回(撮りながら・色を入れ替えながら)も、依頼138 の day138_v06_hall_s0 と止めた 8945 秒まで同じ: robot_track 17,890 行・crowd 150 行がそのまま同じ、events は 8940 秒までに閉じた 1,213 件が同じ (4) 12 枚を開いて見たこと・直したこと ・人・車いす・ロボット:寄り(2・4)ではすべて見分けられる。車いすは真上から濃い灰色の四角+黄色、杖は寄りで見える細い棒。 引き(1・3)では人は小さな点で、杖は見えない。ロボットは白い点で見つけにくいので白い輪を足した(直した) ・ストレッチャー:撮った時刻(8845〜8945 秒)には1台も出ていない(記録で 0 台を確かめた)ので、12 枚には写っていない。 確かめのために同じ回の 0〜3600 秒を 20 秒ごとに別に撮り(verify/)、300 秒の真上・寄りで、職員の中廊下を白に近い灰色の台+ 青の押す人の形で見分けられるのを見た ・パネルの文字:はじめ見出しの2行目(色とカメラ)が右で切れていたので3行に分けた。いちばん下の注の行も右で切れたので短くした。 直したあとは切れていない ・薄くなった輪が点線のように見えたので、輪を1つずつ別の層に描いて重ねるようにした ・待合:はじめ床が廊下と同じ色で大廊下との境が分からなかったので、差し色の床を入れた。全体図で外来などの部屋が無く空白に 見えたので、外形 120×60 m を灰色の箱で埋めた。長いすは道・人に重なっていない ・カメラ4(南東から 60°)では、大廊下の南の半分が手前の部屋(お薬の窓口 x0〜23・高さ 2.4 m)に隠れる(約 1.4 m)。 隠れた所で起きた問題の輪は箱の上に重なって見える(決めてほしいこと 2) ・真上・寄りの範囲を広げた(上の 2 を参照) -------------------------------------------------------------------- 5. 出力の場所 -------------------------------------------------------------------- KIOXIA /Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261110_look139/ stills/still_{A|B|C}_{top_wide|top_near|obl_l30_wide|obl_r30_near}.png(12 枚・パネル込み 1920×1080) sheets/compare_cam1_top_wide.png・compare_cam2_top_near.png・compare_cam3_obl_l30_wide.png・compare_cam4_obl_r30_near.png(色3案を横に並べた図)・ overview_12.png(12 枚の一覧) videos/hospital139_A_{top_wide|top_near|obl_l30_wide|obl_r30_near}_5x.mp4(各 20.04 秒・25 コマ/秒・1920×1080) runs/look139_v06_hall_s0/(撮った回の記録・look139/ に Unity で撮った元の画像・cam_*.json・look_frames.csv) runs/check139a_v06_switch_s0/(確かめの回) verify/(ストレッチャーの見え方の確かめ)・logs/ tools/run139.sh(回す)・camfit139.py(カメラの距離)・pan139.py(輪とパネル・並べた図・動画)・vid139.sh iCloud …/サービスロボット導入シミュレーション/hospital/look139/ に並べた図 5 枚を写した(md5 一致を確かめた) -------------------------------------------------------------------- 6. check-in・実行ファイル -------------------------------------------------------------------- check-in:cs:116(保留 0)。Setup が H127 の材質を保存し直して保留にしたが、中身が同じなので元に戻した(check-in していない) 実行ファイル:Builds/hospital139/HospitalSim.app(build_info:unity_cs ServiceSim/cs:116・pending_changes 空)。 Builds/hospital127・132・134・136・138 はそのまま 配膳の場面・配膳の実行ファイル・配膳の台帳・配膳と共通の部品には触っていない(材質は写して Hospital/Materials に置いた) 使い方:今までの引数に -h139Look on を足す。撮るときは -h139Cam name,方位,見下ろす角度,注視点x,注視点z,距離,画角,w,h(何本でも)・ -h139StillAt 秒(色3案×カメラを PNG に)・-h139VidFrom 秒 -h139VidTo 秒 -h139VidStep 秒 -h139VidScheme A(JPG のコマ)・ -h139EndAfterShots on(撮り終えたら止める) -------------------------------------------------------------------- 決めてほしいこと(直し方の候補は作っていない) -------------------------------------------------------------------- 1. 待合の床の差し色:依頼の色3案に値が無かったので、写真の明るい木の床から A・C #E4CFAA、B #D8BF98 を選んだ。 この値でよいか、または差し色を入れないか 2. カメラ4(60°見下ろし・右30°・寄り)は配膳と同じく南側から見るので、問題がいちばん多い大廊下 x12〜23 の南の半分が、 手前の部屋の箱(高さ 2.4 m・配膳の壁と同じ)に隠れる。隠れた所の輪は箱の上に重なって見える。このままでよいか 3. 部屋の見せ方:シミュレーションで建てていない部屋(北の外来・南の薬剤部など)も含めて、外形 120×60 m の床でない所を 1つながりの灰色の箱で描いた(部屋どうしの境は描いていない)。これでよいか 4. ストレッチャーは撮った時刻に出ていないので、12 枚・動画には写っていない(見分けは別の時刻で確かめた)。このままでよいか 判定:止めた(決めてほしいことあり)