床に立てるようになったら、次は壁を置いて部屋にします。ただし、現実の部屋と同じ寸法で作ると、VRで入ったときに驚くほど狭く感じます。
天井が低くて頭に迫り、ドアの枠に肩が当たり、階段で足が引っかかる。見た目は正しいのに、居心地が悪い部屋になります。
この記事では、6m四方の床に壁と幅1.6mの入口と3段の階段を作り、VRで歩いて気持ちよい寸法 に整えるところまでを解説します。
この記事でわかること
- VRで狭く感じない、通路・入口・天井の寸法
- Cubeの中心から壁の位置を決める計算
- 見た目と当たり判定が別物であることの確かめ方
- 階段で引っかからないようにする2つの方法
6m四方(上面がY=0)の床から始めます。まだなければ 最初のワールド で作れます。
色を塗る前に、段ボールで部屋を作る
いきなり家具やテクスチャを置きたくなりますが、先にやることがあります。
色も壁紙もまだ貼らず、灰色の箱だけで部屋の大きさを作って、中を歩いてみる。 これを ブロックアウト と呼びます。料理でいえば、盛り付けの前に器の大きさを決める作業です。
この順番には理由があります。壁を1枚動かすのは、灰色の箱のうちなら10秒です。壁にテクスチャを貼り、照明を焼き込み、家具を並べたあとでは、同じ作業が数時間になります。
このあと確かめるのは、きれいさではありません。自分の体でその空間を通れるか です。
VRで気持ちよく感じる寸法
VRでは、デスクトップの画面で見るより狭く、低く、近く感じます。現実の日本の部屋をそのまま置くと、ほとんどの人が「天井が落ちてくる」と言います。

出発点にする数字はこれです。
| 場所 | 現実の寸法 | VRChatで使う寸法 |
|---|---|---|
| 目線の高さ | 約1.6m | 同じ(スイッチや看板の基準) |
| ドア・入口の幅 | 約0.8m | 1.4〜1.6m |
| 入口の高さ | 2.0m | 2.2m以上 |
| 通路の幅 | 約0.9m | 1.5〜1.8m |
| 天井の高さ | 約2.4m | 3.0m |
現実の1.3倍から1.5倍、と覚えておくとだいたい合います。特に天井は盛ります。
理由は、アバターの体格差と、頭の動きです。VRでは前かがみになったり首を振ったりするので、壁や枠が近いとすぐ視界に入り込みます。背の高いアバターや、髪や耳の大きいアバターもいます。現実のドア幅では、毎回どこかにぶつかります。
段差にも基準があります。1段は0.15〜0.20mまで、踏み込む奥行き(踏面)は 0.35m以上 です。0.3mを超える段は、歩いて上がれずにジャンプが必要になることがあります。VRのスムーズ移動ではジャンプしにくいので、歩いて上がれる高さにしておきます。
実践:壁と入口と階段を置く
ここから手を動かします。完成すると、入口から入って部屋を一周でき、右奥の階段を歩いて上り下りできます。
置くCubeはすべて、Hierarchyの最上位に、Rotationを (0, 0, 0) で作ります。親を付けると、親のScaleが子の大きさにも掛かって計算が合わなくなります。
座標は、中心から半分ずつ数える
UnityのCubeのPositionは、箱の 中心 を指します。ここを押さえると、以降の数字が自分で出せます。
上端 = 中心Y + 高さ / 2
下端 = 中心Y - 高さ / 2
右端 = 中心X + 幅 / 2
左端 = 中心X - 幅 / 2
高さ3mの壁を床(上面Y=0)に立てるなら、中心のYは 1.5 です。Yを0にすると、壁の下半分が床に埋まります。
1. 奥と左右の壁を立てる
「3D Object → Cube」で3つ作り、次の値を入れます。
| 名前 | Position (X, Y, Z) | Scale (X, Y, Z) |
|---|---|---|
BackWall | (0, 1.5, 2.9) | (6, 3, 0.2) |
LeftWall | (-2.9, 1.5, 0) | (0.2, 3, 6) |
RightWall | (2.9, 1.5, 0) | (0.2, 3, 6) |
厚さは0.2mにします。VRで顔を壁に近づけたとき、薄すぎる壁は頭が突き抜けて反対側が見えます。0.15m以上あれば安心です。
中心を2.9に置くのは、厚さ0.2の半分を足した外側の端が3になるからです。床の外周とそろいます。ここで注意したいのは、部屋の内側の幅は6mではなく5.6m になることです。壁の内側の面はX=-2.8と2.8にあります。
角では壁どうしが重なりますが、そのままにします。ぴったり突き合わせると数cmの隙間ができて、そこから外が見えたり、すり抜けたりします。
2. 3枚に分けて入口を作る
手前の壁は、1枚に穴を開けるのではなく、左右と上の3枚に分けます。中央の空いた部分が入口になります。

| 名前 | Position (X, Y, Z) | Scale (X, Y, Z) |
|---|---|---|
FrontLeft | (-1.9, 1.5, -2.9) | (2.2, 3, 0.2) |
FrontRight | (1.9, 1.5, -2.9) | (2.2, 3, 0.2) |
Lintel | (0, 2.6, -2.9) | (1.6, 0.8, 0.2) |
FrontLeftの右端は -1.9 + 2.2 / 2 = -0.8、FrontRightの左端は 1.9 - 2.2 / 2 = 0.8 です。あいだの1.6mが通り道になります。
Lintel(リンテル)は入口の上に渡す横木のことです。下端が 2.6 - 0.8 / 2 = 2.2 なので、入口の高さは2.2mになります。これがないと、入口の上から外の空が見えてしまいます。
入口の外はまだ床がないので、出た瞬間に落 ちます。前庭を1枚足しておきます。
| 名前 | Position (X, Y, Z) | Scale (X, Y, Z) |
|---|---|---|
EntranceFloor | (0, -0.1, -4) | (3, 0.2, 2) |
天井はまだ置きません。暗くなって中の作業が見えなくなるので、照明を整える段階で足します。
3. 3段の階段と踊り場を作る
部屋の右側に段差を作ります。段は空中に浮かべず、床から生やして上面の高さを変える 形にします。段どうしの隙間ができにくく、当たり判定が安定します。
| 名前 | Position (X, Y, Z) | Scale (X, Y, Z) | 上面の高さ |
|---|---|---|---|
Step1 | (1.6, 0.075, 0) | (1.2, 0.15, 0.35) | 0.15m |
Step2 | (1.6, 0.15, 0.35) | (1.2, 0.3, 0.35) | 0.30m |
Step3 | (1.6, 0.225, 0.7) | (1.2, 0.45, 0.35) | 0.45m |
Platform | (1.6, 0.225, 1.275) | (1.2, 0.45, 0.8) | 0.45m |
1段0.15m、踏面0.35mです。歩いて上がれる範囲に収まっています。
奥行きも確かめます。Step3の後端は 0.7 + 0.35 / 2 = 0.875、Platformの前端は 1.275 - 0.8 / 2 = 0.875 で、ぴったり接します。
Platform(踊り場) を忘れないでください。3段だけ置いて上に床がないと、登りきった先で裏側に落ちます。
4. 歩いて確かめる
シーンを保存してPlayします。次の順に歩いてみてください。
| 経路 | 見るところ |
|---|---|
| スポーンから部屋の中央へ | 壁や階段に埋まって出現していないか |
| 入口を通って前庭へ出る | しゃがまずに、まっすぐ通り抜けられるか |
| 部屋の四隅へ回る | 壁をすり抜けないか、角で引っかからないか |
| 階段を正面から上る | ジャンプなしで上がれるか |
| 階段を斜めから上る | 段の角で止まらないか |
| 踊り場から降りる | 裏側に落ちないか |
全部通れたら、この記事の目標は達成です。
5. 階段で引っかかるときは、坂を重ねる
階段を上るとき、視点が細かく上下したり、段の角で足が止まったりすることがあります。段の上面と隣の段の側面の境目を、足が行ったり来たりするために起こります。
そのときは、見た目は段のまま、足が乗る判定だけを1枚の坂にします。

- Cubeを1つ作り、名前を
StairRampにする - 階段の先端をつなぐように傾ける(今回の3段なら、X軸の回転で約23度)
- 幅は階段と同じ1.2m、長さは1段目の手前から踊り場の上面まで届かせる
StairRampの Mesh Renderer のチェックを外す(見えなくなり、判定だけ残る)Step1からStep3の Box Collider のチェックを外す
これで足は坂の上を滑らかに歩き、目には段が見えます。VRChatのワールドでは定番の作り方です。
坂の角度は45度を超えないようにしてください。それより急だと登れなくなります。今回の3段(高さ0.45m、奥行き1.05m)なら約23度なので、余裕があります。
3段くらいなら坂は必須ではありません。実際に歩いてみて、引っかかるようなら試してみてください。
見た目と当たり判定は別物
Cubeを作ると、形を描く Mesh Renderer と、ぶつかる形の Box Collider が同時に付きます。この2つは別々に切り替えられます。

Play中に BackWall を選び、Inspectorで片方ずつチェックを外してみてください。
| Mesh Renderer | Box Collider | 見え方と歩き心地 |
|---|---|---|
| 有効 | 無効 | 壁が見えるのに、歩いて通り抜ける |
| 無効 | 有効 | 何もないのに、そこで止まる |
| 有効 | 有効 | 見える壁の位置で止まる |
GameObject自体を無効にすると両方消えるので、この比較にはなりません。コンポーネントごとのチェック を切り替えてください。
この2つを分けて考えられると、トラブルの原因がすぐ絞れます。「見えるのに通れない」なら余計なColliderが残っていて、「見えないのに止まる」なら消し忘れたColliderがあります。すり抜ける飾りや落ちる箱の作り分けは、当たり判定の基礎 にまとめています。
壁にPlaneを使わないのも、同じ理由です。Planeは片面しか描かれないので、部屋の内側から見ると壁が消えます。Cubeなら6面あるので、どちらから見ても壁です。
うまくいかないときは
- 入口が見えるのに通れない → 分割前の大きな壁のColliderが残っていないか。または
Lintelが下がりすぎていないか - 壁の半分が床に埋まる → PositionのYを、壁の高さの半分(3mなら1.5)にします
- 階段の途中で落ちる → 段と踊り場のZ方向の端が接しているか。数値を計算し直します
- 数値は正しいのに位置がずれる → 親オブジェクトのScaleやRotationが掛かっていないか。CubeはHierarchyの最上位に置きます
おまけ:先に知っておくと良いこと
- Scaleをマイナスにしない: 大きさを反転させると法線が裏返り、壁が消えたように見えます。向きを変えたいときはRotationを使います
- 複雑な形の当たり判定は、箱の組み合わせで: Mesh Colliderは見た目どおりの判定を作れますが重くなります。壁・床・階段はBox Colliderの組み合わせが軽くて安定します
- グリッド吸着で正確に並べる:
Ctrlを押しながらドラッグすると、決めた間隔で動きます。細かい位置合わせはTransformに数値を直接入れるのが確実です - 座って遊ぶ人もいる: VRを座位で使う人の目線は1.1m前後まで下がります。重要な看板やボタンは、少し低めでも読める位置にすると親切です
- 床を広げすぎない: 何もない6mはまだ部屋に感じますが、何もない12mは空き地に見えます。広げるより、段差や仕切りで場所に意味を作るほうが効きます
まとめ
ブロックアウトは、灰色の箱で「通れるか」を確かめる作業です。
- VRでは現実の1.3〜1.5倍。天井3.0m、入口1.6m、通路1.5mから始める
- CubeのPositionは中心。端の位置は「中心 ± 半分」で計算する
- 見た目のMesh Rendererと、ぶつかるBox Colliderは別々に切り替えられる
- 階段で引っかかるなら、見た目は段のまま、判定だけ坂にする
歩き終えたときの問いかけは、「しゃがまずに、止まらずに一周できたか?」 です。ここが通れば、色を塗る段階へ進めます。
床や壁の見た目を整えるな ら マテリアルとテクスチャ へ、明るさを作るなら 照明とベイク へ進みます。人が自然に歩く配置を考えたくなったら、入口から席までの導線 が役に立ちます。