【VRChat】初めてのVRChatワールド:床・スポーン・落下復帰を作って歩く

作成: 2026-09-08最終更新: 2026-09-09

6m四方の床、VRCWorld、スポーン地点、Respawn Heightを置いて、ClientSimで歩き、Build & Testで実際のVRChatに入るまで。数値と結果を対応させながら、最初の歩ける場所を作ります。

Unityは開いたけれど、何を置けばVRChatのワールドになるのか分かりません。最初から部屋を完成させようとすると、モデルの用意や照明で手が止まります。

まずは 6m四方の床に出現して、歩いて、落ちたら戻ってくる ところまでを作ります。見た目は簡素ですが、この土台がないと椅子もボタンも置けません。

この記事では、床・スポーン地点・落下復帰の3つを設定して、実際のVRChatで自分のワールドに入るまでを解説します。コードは書きません。

何もない空間に浮かぶ薄い床の上に立ち、端を見下ろしている様子

この記事でわかること

  • 床の「見た目」と「当たり判定」が別物である理由
  • VRCWorld・Scene Descriptor・スポーン地点の関係
  • 落ちたときに戻ってくる高さの決め方
  • ClientSimとBuild & Testの使い分け

環境構築 を終えて、Worldsプロジェクトを開いた状態から始めます。

Sponsored


作るのは、床とスポーンと戻る高さ

最初のワールドで必要なのは3つだけです。

床は見た目とColliderの2つ、スポーンは出現する位置と向き、落下からの復帰はRespawn Heightで決まる
  • : 立てる場所。見た目のかたちと、ぶつかる判定の両方が必要です
  • スポーン地点: 入ったときに現れる位置と向き
  • 戻る高さ: 落ちたときにスポーン地点へ戻される高さ

この3つは別々の設定に見えますが、実際にはつながっています。床の高さがずれればスポーン位置がずれ、スポーン位置がずれると戻る高さの意味も変わります。順番に作って、最後にまとめて確かめます。

Unityの画面は、当面4つだけ覚えれば足ります(詳しくは Unityの画面と操作 にまとめています)。Hierarchy が置いたものの一覧、Scene が制作者の視点で見る作業画面、Inspector が選んだものの設定欄、Console がエラーの表示欄です。Sceneでカメラを動かしても、プレイヤーの出現位置は変わりません。それは後でスポーン地点に設定します。

ワールドに必要な3つの部品

VRChatは、Unityのシーンをそのままワールドとして扱いません。「これはワールドです」「入口はここです」と書いた設定が必要です。

その役割を、受付にたとえると分かりやすくなります。

VRCWorldがワールドの受付、Scene Descriptorが受付に置く書類、Spawnが入口のマット
  • VRCWorld は、ワールドの受付です。シーンに1つ置きます。これがないとVRChatは「ただのUnityシーン」としか見ません
  • VRC Scene Descriptor は、受付に置く書類です。VRCWorldに付いているコンポーネントで、「入口はここ」「何メートル落ちたら戻す」を書き込みます
  • スポーン地点 は、入口のマットです。空のオブジェクトを床の上に置いて作ります

大事なのは、マットを床に置いただけでは入口にならない ことです。書類のほうに「このマットを入口とする」と登録して、はじめて出現位置になります。ここを飛ばすと、原点に出現して床にめり込みます。

VRCWorldとスポーン地点は、親子にする必要はありません。並べて置いて、書類から参照させるだけです。

Sponsored

実践:6mの床を作って、歩いて、落ちて、戻る

ここから手を動かします。完成すると、床の端に出現し、中央を向いて立ち、端から歩いて落ちると、すぐスポーン地点へ戻ってきます。

新しいシーンを用意します。「File → New Scene」で基本のシーンを作り、「File → Save As」で Assets/Scenes/WorldLab.unity として保存してください。Directional Lightは残します。Main Cameraは、この作例のプレイヤー視点には使わないので削除します。

最終的なHierarchyはこうなります。

WorldLab
├─ Directional Light
├─ Floor
├─ VRCWorld
└─ SpawnPoint

1. 床を作る

Hierarchyの空いている場所で右クリックし、「3D Object → Cube」を選びます。名前を Floor にして、Inspectorの Transform に次の値を入れます。

項目XYZ
Position0-0.10
Rotation000
Scale60.26

UnityのCubeは1辺が1単位で、この作例では1単位を1mとして扱います。Scaleを (6, 0.2, 6) にすると、6m四方で厚さ20cmの板になります。

PositionのYを -0.1 にする理由があります。Cubeの位置は 中心 を指すので、厚さ0.2の板の中心を-0.1に置くと、上面がちょうど Y = 0 にそろいます。以降の数値がすべて「床の表面からの高さ」で考えられるので、後が楽になります。

厚さ0.2の床は中心をY=-0.1にすると表面がY=0になり、スポーン地点は表面より上のY=0.1に置く

床にはCubeを使います。Planeでも床は作れますが、Planeは元の大きさが約10m四方で、当たり判定もMesh Colliderになるため、初めての1枚としては手間が増えます。Cubeなら最初からBox Colliderが付いていて、押しつぶすだけで床になります。

そのBox Colliderを確認します。見えている床と、ぶつかる床は別物 です。Colliderがなければ、床のかたちがあってもすり抜けて落ちていきます。

  1. FloorのInspectorで Box Collider が有効になっていること
  2. Is Trigger がオフ であること(オンにすると通り抜ける検知用の領域になります)
  3. Layerは Default のまま触らないこと

VRChatはいくつかのレイヤーを特別に扱っていて、床を Walkthrough にすると「見えるのにすり抜ける」状態になります。この段階でレイヤーを変える必要はありません。

2. VRCWorldとスポーン地点を置く

受付を置きます。

  1. 「VRChat SDK → Show Control Panel」を開く
  2. Builderで「Add a VRCSceneDescriptor」を選ぶ
  3. Hierarchyに VRCWorld が追加される

すでにDescriptorがあるシーンでは、重ねて追加しません。今回は新しいシーンから始めているので、ここで1つ追加します。

次に入口のマットを作ります。Hierarchyで右クリックして「Create Empty」を選び、名前を SpawnPoint にします。

項目XYZ
Position00.1-2
Rotation000
Scale111

床はZ方向に-3から3まで広がっているので、Z=-2は床の内側の手前寄りです。Yの0.1は、床の表面(Y=0)より10cm上という意味です。目の高さに合わせる必要はありません。

最後に、書類へ登録します。VRCWorldを選び、Inspectorの VRC Scene Descriptor にある Spawns の要素数を1にして、Element 0 へHierarchyの SpawnPoint をドラッグしてください。

VRCWorld
  VRC Scene Descriptor
    Spawns[0] ──参照──▶ SpawnPoint の Transform

ここで入れるのは名前の文字列ではなく、作ったオブジェクトそのものへの参照 です。名前が似ていても、ドラッグして入っていなければ効きません。

出現時の向きは、SpawnPointのRotationで決まります。Rotationが (0, 0, 0) なら、青いZ軸の方向が正面です。Sceneビューを回しても向きは変わらないので、変えたいときはRotationのYを変更します。

3. 落ちたら戻る高さを決める

床の外へ歩けば落下します。戻ってこられるように、Scene Descriptorの Respawn Height Y-5 にします。

既定値は -100 です。広い地形のワールドでは誤って戻されないための値ですが、6m四方の床では 端から落ちて100m落下するまで戻ってきません。数秒間ただ落ち続けるので、初めて試したときは「壊れた」と感じます。

Respawn Heightが-100だと100m落ちてから戻るが、-5にすればすぐ戻る比較

逆に、床より 高い 値にすると事故ります。床がY=0のときにRespawn Heightを0や1にすると、立っているだけで「線より下」と判定され、出現とリスポーンを延々と繰り返します。

いまの位置関係を整理すると、こうなります。

Y =  0.1   SpawnPoint(出現位置)
Y =  0     床の上面
           ↓ 床の外へ落下
Y = -5     この高さを下回ると、スポーン地点へ戻される

Respawn Heightは、特定の箱に入ったことを検知する仕組みではなく、ワールド全体にかかる水平の線 です。後で地下室を作るなら、地下室の床よりさらに低くします。「地下に降りた瞬間に戻される」ときは、まずこの値を疑ってください。

エリアごとに別の場所へ戻したくなったら、落下復帰とチェックポイント でコードを使う方法に進みます。

4. ClientSimで歩く

シーンを保存して、Unity上部のPlayボタンを押します。Worlds SDKに含まれる ClientSim が動いて、Unityの中でVRChatと同じように歩けます。

Gameビューをクリックして操作を移し、WASD で移動、マウスで視点を動かします。確かめるのは3つです。

操作期待する結果
Playを始める床の手前寄りに出現し、床の中央を向いている
前後左右へ歩く床をすり抜けずに歩ける
床の外へ歩く落下し、1秒ほどでスポーン地点へ戻る

3つとも通れば、この記事の目標は達成です。ジャンプの高さや歩く速さは別の設定なので、ここでは成功条件に入れません。

Play中に変えた値は、停止すると元に戻るものがあります。試した値が良ければ、停止してから同じ値を入力し直して保存してください。

5. Build & TestでVRChatに入る

ClientSimで歩けたら、実際のVRChatでも同じことをします。先にClientSimで通しておく のが大事です。Unityの中で落ちるなら、VRChatでも落ちます。順番を逆にすると、ビルドの待ち時間のあとに同じ失敗を見ることになります。

Unityでの編集、ClientSimでの操作確認、実際のVRChatでの動作確認の役割の違い
  1. Playを停止して、シーンを保存する
  2. SDKのControl Panelを開き、Builderの検査結果を読む
  3. 修正が必要な項目が出たら、内容を読んでからSDKの自動修正を使う
  4. ビルド対象をPC(Windows)にして、「Build & Test」を選ぶ
  5. Clientsは1にする。デスクトップで確認するなら「Force Non-VR」を有効にする
  6. VRChatが起動したら、出現・歩行・落下復帰をもう一度確かめる

自分のワールドに自分で入れた時点で、最初のワールドは完成です。

なお、Build & Testは自分のPCで動かすローカルのテストです。他の人が訪問できるようにする アップロードは別の操作 で、VRChatアカウント側の条件も関わります。ここは アップロードと更新 で扱います。

Sponsored

うまくいかないときは

症状から見る場所を絞ります。一度に複数の値を変えず、1か所ずつ確かめてください。

  • 床が見えているのに落ちる → FloorのBox Colliderが有効か、Is Triggerがオフか、Layerが Default
  • 床の下や外に出現する → Spawnsに SpawnPoint がドラッグで入っているか。入っていないと原点に出現します。次にSpawnPointのYが床の表面より上か
  • 出現とリスポーンを繰り返す → Respawn Heightが床より高くなっています。床の下の値にします
  • VRChatで開くと前の状態のまま → 保存してから再ビルドしたか。前回のビルドを起動していないか

おまけ:先に知っておくと良いこと

  • Staticとライトベイクはまだ不要: 床を焼き込んで軽くする話は、壁や照明を置いてからで間に合います。照明とベイク で扱います
  • 床のマテリアルは後で変えられる: 白いままでも動作は同じです。木目やタイルにするのは マテリアルとテクスチャ から
  • レイヤーは基本的に触らない: VRChatはいくつかのレイヤーを予約していて、勝手に名前を変えるとアップロード時に上書きされます。自由に使えるのは番号の大きいUser Layerです
  • 複雑な形の当たり判定は、箱の組み合わせで作る: Mesh Colliderは見た目どおりの判定を作れますが重くなります。階段や柱は、Box Colliderをいくつか置くほうが軽くて安定します。当たり判定の仕組みは 当たり判定の基礎 で扱います

まとめ

最初のワールドは、3つの設定でできています。

  • 床は「見た目」と「Collider」の2つがそろって初めて立てる
  • スポーン地点は、置くだけでなくScene Descriptorへ登録して初めて入口になる
  • Respawn Heightは床より下、スポーン地点より下に置く
  • ClientSimで通してから、Build & Testで実際のVRChatに入る

うまくいかないときの問いかけは、「見た目の設定と、動きの設定を混ぜていないか?」 です。床が見えることと歩けること、マットを置くことと入口として登録することは、それぞれ別の作業です。

次は Cubeで部屋と階段を作る で壁と入口を足すか、マテリアルとテクスチャ で床の見た目を整えます。触って反応する物を置きたくなったら、最初のUdonSharp へ進んでください。

VRChat このセクションのノート63