「通れるはず」のストレスを可視化する。ハコブくんの動くワイヤーフレーム構築
動くワイヤーフレーム構築の第一歩
Day 38で定義した「忖度(そんたく)のROI」を具体化するため、シミュレーション環境の構築を開始します。Unityでの新規プロジェクトを立ち上げる際は、以下の設定で進めていきます。
※薬剤搬送ロボットハコブくんは技術検証用の仮想設定です。 実用化目的ではなく、制御・UIデザイン・HRI(人間とロボットの相互作用)の本質を探求するコンセプトとして定義しています。

プロジェクト作成時のテンプレート
Template:
Universal 3D(SRP)※ワイヤーフレームやエッジ強調のシェーダーが扱いやすく、M1 Macでも動作が軽量です。
Project Name:
Hakobu-kun_Simulation
必須プラグインの導入(真っ先にやるべきこと)
プロジェクトを開いたら、まず以下の2つを導入してください。これらは既存のプロジェクトに後から入れると壊れやすい部分です。
ROS-TCP-Connector: ROS 2との通信。
URDF Importer: ハコブくんの物理構成(URDF)を読み込むため。
必須プラグインの導入(Git URL経由)
ここから「ハコブくん」が動くための「体」と「世界」を構築していきます。
UnityのプラグインはPC全体ではなくプロジェクト単位で管理されるため、新しいプロジェクトを作るたびに、改めて導入(インポート)作業が必要になります。
プロジェクトを開いたら、まず以下の2つを導入します。これらは既存のプロジェクトに後から入れると壊れやすい部分です。
ROS-TCP-Connector: ROS 2との通信。
URDF Importer: ハコブくんの物理構成(URDF)を読み込むため。
Unityの Package Managerc を使って、GitHubから直接プラグインをインストールします。これが最もエラーが少なく、最新版を保てる方法です。
手順
Unity上部メニューの Window > Package Manager を開く。
左上の 「+」ボタン をクリックし、Add package from git URL... を選択。
以下のURLを1つずつコピー&ペーストして Add を押してください。
ROS-TCP-Connector(通信用)
https://github.com/Unity-Technologies/ROS-TCP-Connector.git?path=/com.unity.robotics.ros-tcp-connector
URDF Importer(ロボット読込用)
https://github.com/Unity-Technologies/URDF-Importer.git?path=/com.unity.robotics.urdf-importer
[!IMPORTANT] インポート中に「このパッケージは新しい入力をサポートしています。再起動しますか?」というようなダイアログが出たら Yes を押して再起動してください。
空間の構築
設計通り、2幅の通路を持つ「極限まで抽象化された世界」を作ります。
① 空の地面(Floor)を作る
Hierarchyウィンドウ(左側のリスト)で右クリック > 3D Object > Plane を作成。
名前を
Floorに変更。
Inspectorウィンドウ(右側)の Transform を設定
Position:
(0, 0, 0)Scale:
(5, 1, 5)(これで50m四方の広い地面になります)
② 2m幅の通路(Wall)を作る
Cubeを2つ置いて、その隙間を2mにします。
3D Object > Cube を作成し、名前を
Wall_Leftにする。Position:
(0, 0.5, 1)(中心から1m横)Scale:
(10, 1, 0.1)(長さ10m、高さ1mの壁)
Wall_Leftを右クリックして Duplicate(複製)し、名前をWall_Rightにする。
Position:
(0, 0.5, -1)(中心からマイナス1m横)
これで、壁と壁の間の距離がぴったり2mになります。
ロボットと人間の「仮配置」
ワイヤーフレーム検証の核となる「カプセル」を置きます。
Hierarchy で右クリック > 3D Object > Capsule を作成。
名前を
Hakobu_kunにし、色を付けるためにMaterialを作成して(Projectウィンドウで右クリック > Create > Material)アタッチしてください。もう一つ Capsule を作り、名前を
Nurseにして別の色を付けます。
ロボットと人間を色付けする。

ペンキ(Material)を2つ作る
画面下のProjectウィンドウ(
Assetsフォルダの中)の何もないところで右クリックします。Create > Materialを選択します。
名前を
Mat_Hakobuに書き換えます。同様にもう一度右クリック > Create > Materialを行い、名前を
Mat_Nurseにします。
色(カラー)を指定する
今作った
Mat_Hakobuをクリックして選択します。画面右側のInspectorウィンドウを見ます。
Base Map(または Albedo)という項目の横にある白い長方形(カラーピッカー をクリックします。
好きな色を選びます(ハコブくんなら、ロゴで使っているような清潔感のある青や、ブランドカラーがおすすめです)。
同様に
Mat_Nurseも選択し、Base Map で別の色(例:人間を識別しやすいオレンジや緑など)に設定します。
カプセルに色を塗る
色を塗る方法はドラッグ&ドロップが一番簡単です。
Projectウィンドウにある
Mat_Hakobuを、そのままSceneビュー上のカプセル(ハコブくん)に向かってマウスで引きずっていき、離します。同様に
Mat_Nurseを、もう一方のカプセルにドラッグ&ドロップします。影を消す: 視覚的ノイズを排すために、カプセルをクリックし、InspectorのMesh Renderer > Lighting > Cast Shadows を Offにすると、足元の影が消えてよりワイヤーフレームらしい抽象的な見た目になります。
1m間隔の「グリッド」を敷く
Day 38の計画にある「環境の変数化」において、距離感(1.2mや2.5m)を直感的に把握するために、床に1m間隔のグリッド線を引きます。
手順:グリッド用マテリアルの作成
Projectウィンドウで右クリック > Create > Material を作成。
名前を
Mat_Gridにします。Inspector で色(Base Map)を薄いグレーにします。
Surface Inputs セクションにある Tiling の数値を調整します。
Floor(Plane)のScaleが
(5, 1, 5)の場合、Tiling をX: 5, Y: 5に設定します。これで、床に1m単位の区切りが見えるようになります。
[!TIP] もし線が見えにくい場合は、グリッド用のテクスチャを割り当てるか、単純に細長いCubeを1mおきに配置して「目盛り」にしてもワイヤーフレームらしさが出ます。
パーソナルスペースの可視化
デザイナーとして最も見せたい「心理的境界線」をカプセルの足元に表示しましょう。
Hierarchy で
Hakobu_kunを選択します。右クリック > 3D Object > Cylinder を作成し、名前を
PersonalSpaceにします。Transform を設定します:
Scale:
(2.4, 0.01, 2.4)(半径1.2mの円になります)Position:
(0, -0.95, 0)(カプセルの足元に配置)
新しく半透明のマテリアル(Surface Typeを Transparent に変更)を作成して適用し、薄い青にすると「侵入してはいけないゾーン」が視覚化されます。
マテリアルの基本設定

Projectウィンドウで右クリック > Create > Material を作成し、名前を
Mat_Spaceにします。Mat_Spaceを選択した状態で、右側の Inspectorウィンドウ を見ます。Surface Options セクションにある Surface Type を
Opaque(不透明)からTransparent(透明) に変更します。※これで「透ける」準備ができました。
色と「透明度」の調整
Surface Inputs セクションにある Base Map の横のカラーピッカー(色のついた四角)をクリックします。
好きな色(例:ハコブくん用なら薄い青、看護師用なら薄い赤)を選びます。
同じウィンドウの一番下にある 「A」(Alpha:アルファ値) のスライダーを動かします。
数値を 50〜100 くらいに下げてみてください。Sceneビュー上の円が透けてくるはずです。
検証画面っぽくするためのコツ
より「ワイヤーフレーム図解」に近づけるための設定です。
影を消す: Inspectorの Mesh Renderer > Lighting > Cast Shadows を Off にしてください。地面に余計な影が落ちなくなります。
重なりを綺麗にする: 複数のカプセルの円が重なった時に「色が濃くなる」のが嫌な場合は、Blending Mode を
Alpha(標準)のままにするか、Additive(加算:より光って見える)にして調整してください。
カプセル本体の「高さ」を直す
カプセル(Hakobu_kun)自体の Position Y が 0 になっているようです。カプセルの高さは標準で 2m なので、Y=0 だと下半分が地面に埋まっています。
Hierarchy で
Hakobu_kunとNurseを選択します。Inspector の Transform > Position Y を
1に変更してください。これで地面の上にカプセルが正しく立ちます。
PersonalSpace の位置を微調整する
カプセルを上に動かした分、子要素である PersonalSpace も一緒に上がります。円を地面の「スレスレ」に配置するために数値を合わせます。
Hierarchy で
PersonalSpaceを選択します。Transform > Position Y を
-0.99に設定します。
なぜ -1 ではないのか?: ぴったり
0(地面と同じ高さ)にすると、「Zファイティング」という現象で表示がチラついたり、地面に隠れたりすることがあります。-0.99(世界座標で地上 0.01m)にすることで、きれいに表示されます。
看護師(Nurse)のサイズ適正化
一般的な日本人の肩幅や身長に合わせます。
Hierarchy で
Nurseを選択します。Transform > Scale を以下に変更してください。
X:
0.5/ Y:0.85/ Z:0.5(これで肩幅50cm、身長1.7mのリアルなサイズになります)
Transform > Position Y を
0.85に設定します。
(地面の上にぴったり立ちます)
ハコブくん(Hakobu_kun)のサイズ適正化
設計図の比率に基づき、コンパクトな搬送ロボットのサイズにします。
Hierarchy で
Hakobu_kunを選択します。Transform > Scale を以下に変更してください。
X:
0.5/ Y:0.5/ Z:0.5(これで直径50cm、高さ1mの、小回りの効くサイズになります)
Transform > Position Y を
0.5に設定します。
【重要】パーソナルスペース(子要素)の修正
親(カプセル)のスケールを小さくしたため、その中に入っている PersonalSpace も一緒に小さくなってしまっています。半径1.2m(直径2.4m)を維持するために数値を再調整します。
Nurse の下の
PersonalSpace_Nurseを選択:
Scale:
(4.8, 0.01, 4.8)に変更(親のScale 0.5 × 4.8 = 2.4m となり、正しいサイズに戻ります)
Position Y:
-0.99(地面スレスレ)
Hakobu_kun の下の
PersonalSpaceを選択:
Scale:
(4.8, 0.01, 4.8)に変更Position Y:
-0.99
検証の確認
薬剤搬送ロボットハコブくんの寸法要件を深掘りすると、ロボットが周囲に忖度(そんたく)することの投資対効果(ROI)が明確になります。
物理的な計算では、ロボット(520mm)と人間(約500mm)がすれ違う際の占有幅は合計約1.1m。2.0m幅の廊下なら90cmもの余裕があるはずです。しかし、心理的な境界線である「パーソナルスペース(半径1.2m=幅2.4m)」を考慮すると、2.0m幅の廊下ではどうしても互いの領域が侵食されます。
「物理的には通れるのに、なぜ現場はストレスを感じるのか?」――この問いの答えは、この2.0mのシミュレーション環境で証明できます。ハコブくんが「壁際から400mm以上のクリアランス」を維持して走行するという要件は、現場の心理的安全性を守るための極めて妥当な設計なのです。
