mcpField
V
vrc-worlds

vrc-worlds

github.com/alexanderstephenthompsonクリエイティブ・メディア36 回インストール
リポジトリ

vrc-worlds について

VRChat SDK と Unity を使った VRChat ワールドの構築・最適化を支援するスキルです。Quest 互換性、性能上限、ベイク済みライティング、スポーン設定、実機テストを扱います。

主な機能

  1. 01Quest優先のワールド設計
  2. 02性能上限のガイド
  3. 03ベイク済みライティング設定
  4. 04スポーンとリスポーンの構成
  5. 05オクルージョンカリングとLODの確認
  6. 06実機テスト用チェックリスト

活用シーン

  1. 01VRChatワールドのシーン設計
  2. 02Quest向けのワールド最適化
  3. 03スポーンとリスポーン領域の設定
  4. 04アップロード前の性能確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alexanderstephenthompson/claude-hub --skill vrc-worlds

インストール後、Claude Code で/vrc-worldsを入力して読み込まれたか確認します。

同梱ファイルassets/world-upload-checklist.mdreferences/lighting-baking.md

詳細

VRChat ワールドスキル

バージョン: 1.0 スタック: VRChat SDK、Unity

PC で 30fps で動作する VRChat ワールドでも、Quest では 5fps になることがあります。エディターでは見栄えのよいリアルタイムライトも、ルーム内のすべてのプレイヤーのパフォーマンスを大きく低下させます。Unity エディター上ではパフォーマンスが実際よりよく見え、実機と実際のプレイヤーでテストするまではすべてが滑らかに動作しているように感じられます。また、VRChat のパフォーマンスランク制度では、最適化が不十分なワールドは体験が悪くなるだけでなく、訪問者も減ります。

ベイク済みライティング、適切なスポーン設定、オクルージョンカリングを取り入れて Quest を優先して制作すれば、ワールドはあらゆる環境で快適に動作し、ランク制度によるプロモーションも受けやすくなります。


対象範囲と境界

このスキルで扱う内容:

  • ワールドのセットアップとシーン階層
  • VRChat のパフォーマンス上限
  • ライティングとベイク
  • スポーンとリスポーンの設定
  • ワールドの最適化
  • SDK コンポーネント

以下はほかのスキルに委ねます:

  • vrc-udon:スクリプティングとネットワーク
  • unity-csharp:C# のパターンとパフォーマンス最適化

このスキルを使用する場面: VRChat ワールドの制作または最適化。


基本原則

  1. Quest との互換性 — まず Quest 向けに制作し、PC 向けに機能を強化します。
  2. 可能な限りすべてベイクする — リアルタイムライティングはパフォーマンスを著しく低下させます。
  3. 上限を守る — パフォーマンスランクの基準内に収めます。
  4. 実機でテストする — エディター上のパフォーマンスは実際とは異なります。
  5. スポーンは重要 — 最初の印象はスポーン地点で決まります。

パフォーマンス上限

Quest(目標:Excellent/Good)
指標ExcellentGoodMedium
三角形数50,000100,000200,000
バッチ数50100200
マテリアル数255075
ライト(リアルタイム)012
PC(目標:Excellent/Good)
指標ExcellentGoodMedium
三角形数500,0001,000,0002,000,000
バッチ数100200400
マテリアル数50100200
ライト(リアルタイム)248

パターン

シーン階層
World
├── Environment
│   ├── Static (mark as static)
│   │   ├── Ground
│   │   ├── Buildings
│   │   └── Props
│   └── Dynamic
│       └── Interactive objects
├── Lighting
│   ├── Directional Light (baked or mixed)
│   ├── Light Probes
│   └── Reflection Probes
├── Audio
│   └── Audio sources
├── VRChat
│   ├── VRCWorld (descriptor)
│   ├── Spawn Points
│   └── Mirrors/Portals
└── Udon
    └── Scripts and behaviors
スポーンエリアの設定
Spawn Checklist:
- Multiple spawn points (avoid stacking)
- Clear floor (no obstacles)
- Good lighting (players see themselves)
- Mirror nearby (avatar check)
- Safe area (no hazards)
- Interesting view (sets the mood)
ライティングの設定(Quest 対応)
1. Set all lights to "Baked"
2. Mark static geometry as "Contribute GI" + "Reflection Probe Static"
3. Place Light Probes for dynamic objects
4. Place Reflection Probes for shiny surfaces
5. Bake with GPU Lightmapper
6. Delete realtime lights or set to "Not Important"
オクルージョンカリングの設定
1. Mark large static objects as "Occluder Static"
2. Mark all static objects as "Occludee Static"
3. Window > Rendering > Occlusion Culling
4. Set appropriate cell sizes
5. Bake
6. Test with Occlusion visualization

アンチパターン

アンチパターン問題対処法
Quest でリアルタイムライトを使用するパフォーマンスが大幅に低下するすべてのライティングをベイクする
ライトプローブがない動的オブジェクトが黒くなるライトプローブグループを追加する
スポーン地点が1つだけプレイヤーが参加時に重なり合う間隔を空けて複数のスポーン地点を設置する
反射をベイクしていない処理負荷が高い、または正常に動作しないベイク済みのリフレクションプローブを使用する
小道具に LOD がない遠距離でも詳細な表示が続くLOD グループを追加する
Quest でポストプロセスを使用するサポートされておらず、無視されるPC 専用にするか、削除する

チェックリスト

セットアップ
  • VRCWorld ディスクリプターを設定した
  • 複数のスポーン地点を配置した
  • リスポーンの高さを適切に設定した
  • リファレンスカメラを設定した
パフォーマンス
  • すべての静的オブジェクトを Static に設定した
  • ライティングを完全にベイクした(Quest)
  • ライトプローブでプレイエリアをカバーした
  • オクルージョンカリングをベイクした
  • 重要なメッシュに LOD を設定した
  • Quest の実機でテストした
品質
  • スポーンエリアを居心地よくした
  • スポーン地点の近くにミラーを設置した
  • Z ファイティングや表示上の不具合がない
  • オーディオレベルを調整した
  • ワールドに内容がわかる名前を付けた

参考資料

  • references/lighting-baking.md — VRChat ワールド向けベイク済みライティングの設定

アセット

  • assets/world-upload-checklist.md — ワールドのアップロードに必要な項目を網羅したチェックリスト

コメント