【VRChat】困ったときの逆引き:症状から原因を探す

作成: 2026-09-09

掴めない、真っ暗、ピンク、同期しない、ビルドできない。よくある10の症状から、原因の候補と直し方の記事を引けるようにまとめました。切り分けの3つの質問も紹介します。

作っている途中で、必ず何かが動かなくなります。掴めない、真っ暗、ピンク色、同期しない。

困ったときに時間を食うのは、直す作業ではありません。どこを見ればいいか分からない時間 です。

この記事は、症状から原因を引くための一覧です。直し方は各記事に渡します。 ここは入口として使ってください。

症状から原因の候補をたどる

この記事でわかること

  • よくある10の症状と、その原因の候補
  • 切り分けのための3つの質問
  • 原因が絞れたあと、読むべき記事
Sponsored


実践:3つの質問で切り分ける

一覧を引く前に、3つの質問 に答えてください。ここで探す範囲が半分以下になります。

3つの質問で、探す範囲を絞る
質問イエスならノーなら
1. 自分の画面でも起きているか設定かコードの問題同期の問題
2. UnityのPlayモードでも起きているかシーンかコードの問題ビルドか端末の問題
3. 前は動いていたか直前に変えた場所が原因最初から間違っている

実際にやってみます。「押しても扉が開かない」 という症状で追ってみましょう。

質問1:自分の画面でも開かないか

友達の画面だけ開かないなら、扉の作り自体は動いています。 見るのは同期の側です。

自分の画面でも開かないなら、同期は関係ありません。同期のコードを読むのは、ここでは時間の無駄です。

質問2:Playモードでも開かないか

UnityのPlayモードで押してみます。ここでも開かないなら、シーンかコードの問題です。

Playモードでは開くのに、VRChatの中では開かない。 この場合は、ビルドの設定か、そのプラットフォームでの制限を疑います。

質問3:前は開いていたか

昨日まで開いていたなら、そのあとに変えたところが原因です。 心当たりを逆順にたどります。

一度も開いたことがないなら、割り当てや設定が最初から抜けている可能性が高くなります。

答え合わせをする

3つの答えが「自分の画面でも開かない・Playモードでも開かない・一度も開いたことがない」なら、同期の問題ではなく、設定の抜けです。

ここまで絞れたら、次の ボタンを押しても何も起きない を上から見ていけば、たいてい当たります。

質問に答えるだけで、読むべき節が決まります。 これがこの記事の使い方です。

Sponsored

作っているときの症状

症状から原因の候補、そして読む記事へ

オブジェクトを掴めない

  1. Colliderがない、または小さすぎる。VRC Pickupがあっても、手が当たる形がないと掴めません
  2. VRC Pickupがない、またはPickupableがオフ。Rigidbodyだけでは掴めません
  3. Is Triggerがオンになっている。すり抜ける判定になっています

→ Pickupで持てる物を作る

部屋が真っ暗、または焼いても暗い

  1. ライトそのものが効いていない。Directional Lightがない、Intensityが 0、色が黒
  2. 焼く対象になっていない。床や壁が Contribute GI になっていないか、一度も焼いていない
  3. 環境光が足りない。Skyboxが暗い、Intensity Multiplierが低い

→ ライトを焼く / 空と霧で雰囲気を決める

マテリアルがピンク色になる

  1. シェーダーが入っていない。使っているシェーダーのパッケージが未導入
  2. 描画の仕組みが違う。URPやHDRP向けのシェーダーを使っている
  3. その端末で使えない。PC用シェーダーをAndroid版で開いている

→ マテリアルとテクスチャ / Quest・スマホにも対応する

床をすり抜けて落ちる

  1. 床にColliderがない。Planeを削って自作したときに起きがちです
  2. Is Triggerがオンになっている。当たらない判定になっています
  3. スポーン地点が床にめり込んでいる。少し上に置き直します

→ 当たり判定の基本 / 落下したら復帰させる

動きが重い、カクつく

  1. どこが重いかを測っていない。描画・処理・容量・同期のどれかで直し方が違います
  2. 半透明が画面を覆っている。パーティクルや大きな透明の板
  3. 物理が眠っていない。置いた小物が震え続けています

→ 重さを測る / 物理の負荷を下げる

動かないときの症状

ボタンを押しても何も起きない

  1. Colliderがない。空のオブジェクトにスクリプトを付けたときに起きます
  2. Udon Behaviourが割り当たっていない。Program Sourceが空になっています
  3. 自分で書いた if で止まっている。条件を満たしていません

→ 動かないときの直し方

自分の画面では動くのに、相手の画面で動かない

  1. 所有権を取っていない。同期変数を書いても送られません。エラーは出ません
  2. 同期モードが None、または RequestSerialization() を呼んでいない
  3. ローカルの処理だけで動かしている。Animatorを直接触っているだけになっています

→ 所有権を理解する / ネットワーク同期入門

あとから入った人だけ状態が違う

  1. Start() で状態を反映していない。届いた値を見た目に出す処理が抜けています
  2. ネットワークイベントだけで伝えている。イベントはあとから来た人に届きません
  3. 値を持たずに、変化だけを送っている。いまの状態を変数で持つ必要があります

→ Network Events / 同期する扉を作る

人によって結果が違う

  1. 各自が乱数を引いている。振るのは1人にして、結果を配ります
  2. 各自の物理計算に頼っている。転がり方は端末ごとに違います
  3. 時刻を各自のパソコンで測っている。サーバー時刻を使います

→ 同期するサイコロ

音が聞こえない

  1. Play On Awakeがオフのまま、または再生する処理が呼ばれていない
  2. Spatial Blendが3Dで、距離が離れすぎている
  3. VRC Spatial Audio Sourceの設定で、届く距離が短すぎる

→ BGMと空間音響

Sponsored

公開まわりの症状

アップロードできない

  1. Consoleに赤いエラーが出ている。コンパイルが通っていないと上げられません
  2. 必要なものが足りない。VRCWorld がない、スポーン地点が設定されていない
  3. 容量が上限を超えている。テクスチャを小さくします

→ ワールドをアップロードする / 重さを測る

アップロードしたワールドに入れない、読み込みが終わらない

  1. 容量が大きすぎる。読み込みに時間がかかっています
  2. 前のビルドが残っている。アップロードし直します
  3. 端末に合ったビルドがない。Quest向けを上げていないと、Questからは入れません

→ Quest・スマホにも対応する

Questで見た目が違う、または入れない

  1. Android版を上げていない。同じBlueprint IDで、Android向けにも上げる必要があります
  2. リアルタイムライトが残っている。焼いていないと真っ暗になります
  3. 対応していないシェーダーを使っている。ピンクになるか、置き換えられます

→ Quest・スマホにも対応する

更新したのに反映されない

  1. いま入っている人には反映されません。入り直すと新しい版になります
  2. Blueprint IDが変わっている。別のワールドとして上がっています
  3. ビルドし忘れている。保存だけでは反映されません

→ 公開してからの育て方

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

  • 上から順に見る: 各症状の原因は、よくある順に並べてあります。多くの場合、最初の1つか2つで当たります
  • 1つずつ試す: 3か所まとめて直すと、どれが効いたか分かりません。1つ変えて、確かめて、次へ進みます
  • エラーが出るのはありがたい: 何も言わずに動かないほうが厄介です。Consoleに何か出ていれば、そこが手がかりです
  • 一覧にないときは入口を確かめる: 処理の先頭にログを1行置いて、そこまで届いているかを見ます。届いていないなら設定、届いているならコードです
  • 同じ症状を2回踏んだらメモする: 自分がよく踏むものは決まっています。3つほど書き留めておくと、次から早く直せます

まとめ

困ったときは、探す範囲を先に狭めます。

  • 自分の画面でも起きているか。ノーなら同期
  • Playモードでも起きているか。ノーならビルドか端末
  • 前は動いていたか。イエスなら直前に変えた場所
  • 絞れたら、この記事の該当する節を上から見る

最初の問いかけは、「これは同期の問題か、そうでないか」 です。ここを分けるだけで、読むコードの量が半分になります。

追い方そのものを身につけるなら 動かないときの直し方、重さの原因を探すなら 重さを測る へ進んでください。

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