【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