【VRChat】当たり判定の基礎:歩ける床・すり抜ける飾り・落ちる箱

作成: 2026-09-09

同じCube3つを、壁・くぐれる飾り・落ちる箱に作り分けます。Collider・Is Trigger・Rigidbodyの役割を1つずつ切り替えて確かめ、VRChatで「歩いて押す」が安定しない理由も解説します。

床は置いたのに、なぜか通り抜けてしまう。飾りに引っかかって歩きにくい。置いた箱が触っても動かない。

当たり判定まわりの困りごとは、ほとんどが3つの部品の組み合わせで説明できます。Collider・Is Trigger・Rigidbody です。

この記事では、同じCubeを3つ並べて、設定を1つずつ変えながら 壁・くぐれる飾り・落ちる箱 に作り分けます。

同じCubeが3つ並び、それぞれ振る舞いが違う

この記事でわかること

  • Collider・Is Trigger・Rigidbodyの役割の違い
  • 見た目の形と、ぶつかる形が別物であること
  • VRChatで「歩いて押す」が安定しない理由
  • レイヤーで触っていい範囲

床のあるシーンから始めます。まだなければ 最初のワールド で作れます。

Sponsored


3つの部品は、3つの質問に答えている

覚え方はシンプルです。3つの部品が、それぞれ別の質問に答えています。

3つの部品が答えている、3つの質問
部品答えている質問たとえると
Collider形があるか?展示物にかぶせたアクリルケース
Is Triggerその形は壁か、センサーか?自動ドアの赤外線。体は止まらないが、通ったことは分かる
Rigidbody固定か、物理で動くか?床にボルトで留めた棚から、ボルトを外して荷物にする

Colliderがなければ、どんな形でもすり抜けます。Colliderがあって Is Trigger がオフなら、壁として止まります。Is Trigger をオンにすると、通り抜けられるけれど「通ったこと」は検知できるセンサーになります。

Rigidbodyは別の軸です。付けると、その物体は物理エンジンの管理下に入り、重力で落ちたり、ぶつかって転がったりするようになります。付けなければ、その場に固定されたままです。

床や壁に必要なのは Colliderだけ です。これまで置いてきた床や壁には、Rigidbodyは要りません。

見た目の形と、ぶつかる形は別物

もう1つ、先に押さえておくことがあります。

見た目は複雑な植物でも、ぶつかる形は箱1つでよい

見た目を描くのは Mesh Renderer、ぶつかる形を決めるのは Collider です。この2つは別のもので、形が違っていて構いません

葉が細かく広がった観葉植物に、葉一枚ずつの当たり判定は要りません。鉢のあたりを箱1つで囲めば、実用上は十分です。むしろ、見た目どおりの複雑な判定を作ると、そのぶん処理が重くなります。

基本の方針はこうなります。

  • 箱や円柱で大まかに囲む(Box Collider・Capsule Collider)
  • 階段や柱のような形は、箱をいくつか組み合わせる
  • 地形のように箱では表せない形だけ、Mesh Colliderを使う
Sponsored

実践:同じCubeを3つに作り分ける

床の上に同じCubeを3つ並べて、1つずつ設定を変えます。完成すると、左は止まり、真ん中はすり抜け、右は落ちてきます。

壁・くぐれる飾り・落ちる箱の3つの違い

変えるのは1つずつ にしてください。同時に2つ変えると、どちらが効いたのか分からなくなります。

1. Cubeを3つ並べる

「3D Object → Cube」で3つ作り、名前と位置を設定します。

名前Position (X, Y, Z)Scale
WallCube(-1.5, 0.5, 2)(1, 1, 1)
PassCube(0, 0.5, 2)(1, 1, 1)
FallCube(1.5, 2, 2)(1, 1, 1)

FallCube だけYを 2 にして、床から浮かせておきます。あとで落とすためです。

この時点では3つとも同じです。Box Colliderが付いていて、Is Triggerはオフ、Rigidbodyはありません。

Playして歩いてみてください。3つとも壁として止まります。FallCube は空中に浮いたまま止まっています。

2. 真ん中をすり抜けさせる

PassCube を選び、Inspectorの右上にある LayerWalkthrough に変えます。

Playして歩くと、真ん中のCubeだけすり抜けられます。見た目はそのままです。

Walkthrough は、VRChatが用意しているレイヤーの1つで、プレイヤーと衝突しない という意味です。のれん、木の葉、細い柵、天井から下がった看板など、「見せたいが通りたい」ものに使います。

Colliderを外してしまうと、置いた小物も落ちていきます。Walkthroughなら、プレイヤーだけが通り抜けて、物はぶつかったまま にできます。

3. 右を落とす

FallCube を選び、「Add Component」で Rigidbody を追加します。

Playすると、浮いていたCubeが床まで落ちてきます。

Rigidbodyの設定で押さえるのは2つです。

項目意味
Use Gravity重力を受けるか。オフにすると空中に浮いたまま
Is Kinematicオンにすると物理で動かなくなる。位置はスクリプトなどから決める

「浮かせた飾りを落としたくない」ときは Use Gravity をオフに、「その場から絶対に動かしたくない」ときは Is Kinematic をオンにします。

4. センサーにしてみる

最後に、WallCube の Box Collider にある Is Trigger をオンにしてみてください。

Playすると、壁だったはずのCubeをすり抜けます。Is Trigger をオンにすると、物理的にぶつからなくなる からです。

すり抜けるだけならWalkthroughと同じに見えますが、違いがあります。Is Triggerは 「誰かが入った・出た」をスクリプトで受け取れます。エリアに入ったら案内を出す、床下に落ちたら戻す、といった仕掛けの土台です。

この検知の使い方は トリガーでエリアを検知する で扱います。ここでは「Is Trigger をオンにすると通り抜ける」だけ覚えれば十分です。

確認したら、Is Trigger はオフに戻してください。

歩いて押すのは、VRChatでは向かない

Rigidbodyを付けた箱を見ると、「押して動かせるのでは」と思います。ここは先に知っておいてください。

歩いて押すのは安定しない。持って運ぶほうが確実

VRChatで、歩いて物を押すのは安定しません。

プレイヤーは普通の物理オブジェクトではなく、カプセルとして扱われています。Rigidbodyの箱に体当たりすると、押せることもあれば、壁のように止まることも、軽い箱が跳ね飛ぶこともあります。Unityの中では押せて見えても、実際のVRChatでは違う結果になることもあります。

だから、箱を押して運ぶパズル のようなものは、この形では作れません。

プレイヤーに物を動かしてほしいときは、掴む 形にします。

やりたいこと使うもの
重力で落ちる、ぶつかって転がるCollider + Rigidbody
プレイヤーが持ち運ぶVRC PickupPickupで持てる小物を作る
決まった動きをさせるUdonで位置を変える

もう1つ、Rigidbodyの物は そのままでは他の人と共有されません。自分の画面で転がった箱は、隣の人の画面では別の場所にあります。位置を共有するには VRC Object Sync が必要です。

Sponsored

レイヤーは選ぶだけ。変えない

VRChatは、いくつかのレイヤーを決まった用途で使っています。当たり判定に関わる主なものはこれです。

レイヤー意味
Defaultふつうの物。床・壁・家具はこれ
Walkthroughプレイヤーだけ通り抜ける。飾り向け
Pickup持てる物。プレイヤーとは衝突しない
Player / PlayerLocalプレイヤー本体。自分で設定するものではない
MirrorReflection鏡の表示用。壁として使わない

大事なのは、名前や衝突の設定を変えないこと です。変更してアップロードすると、VRChat側で元に戻されます。用意されているものから選ぶぶんには問題ありません。

自分で新しいレイヤーを足したいときは、番号の大きい User Layer を使います。ここは変更が保持されます。

床や壁は Default のままで構いません。当面、レイヤーを触るのは「すり抜けさせたいとき Walkthrough にする」だけです。

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

  • Mesh Colliderには制限がある: 見た目どおりの当たり判定を作れますが、Rigidbodyを付ける場合は Convex(凸形状)をオンにする必要があり、複雑な凹みは表現できません。動かない地形以外では箱の組み合わせが確実です
  • Colliderが重なっていると振動する: 2つの物体の判定がわずかに食い込むと、押し出し合ってガタガタします。階段などで起きやすい現象です。部屋と階段のブロックアウト で対処法を扱います
  • 速く動く物はすり抜けることがある: 高速で落ちる小さな物が、薄い床を通り抜けることがあります。床を厚くするか、Rigidbodyの衝突検出の設定を上げます
  • 物理の物を増やしすぎない: Rigidbodyの数が増えるほど計算が重くなります。転がる小物は数個までにして、飾りは固定にします
  • プレイヤー同士もColliderで当たる: ただし見た目のアバターではなく、人型のカプセルです。大きなアバターでも当たり判定の太さは変わりません

まとめ

当たり判定は、3つの質問に答えるだけで決まります。

  • 形があるか(Collider)、壁かセンサーか(Is Trigger)、固定か物理か(Rigidbody)
  • 見た目の形と、ぶつかる形は別でよい。箱で大まかに囲む
  • すり抜けさせたいなら Walkthrough。Colliderを外すと物まで落ちる
  • 歩いて押すのは安定しない。動かしてほしい物はPickupにする

設定に迷ったときの問いかけは、「これは、通したいのか、止めたいのか、落としたいのか」 です。3つのうちどれかが決まれば、触る場所も決まります。

次は、この判定を使って部屋を組み立てます。Cubeで部屋と階段を作る へ進むか、エリアの検知を作るなら トリガーでエリアを検知する が入口です。

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