[English](README.md) | **日本語** | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [한국어](README.ko.md)

VRChat SDK UdonSharp Agent Skills License

npm version npm downloads CI

Agent Skills for VRChat UdonSharp

AIコーディングエージェントが正しいUdonSharpコードを生成できるようにするスキル・ルール・バリデーションフック集

概要インストール構成スキルルールフックコントリビュート免責事項

---

概要

**UdonSharp**(C# → Udon Assembly)を使ったVRChatワールド開発には、通常のC#とは大きく異なる厳格なコンパイル制約があります。`List`、`async/await`、`try/catch`、LINQ、ラムダ式などは**コンパイルエラー**になります。 このリポジトリは、AIコーディングエージェントが最初から正しいUdonSharpコードを生成できるよう、必要な知識を提供します。 | 問題 | 解決策 | |---------|----------| | AIが `List`、`async/await` 等を生成してしまう | ルール + フックによる自動検出と警告 | | 同期変数の肥大化 | デシジョンツリー + データバジェット | | 誤ったネットワーキングパターン | パターンライブラリ + アンチパターン集 | | SDKバージョンごとの機能差異 | バージョンテーブルと機能マッピング | | 遅延参加者への状態不整合 | 同期パターン選択フレームワーク | **このリポジトリは以下ではありません:** - VRChat SDK または UdonSharp の配布物 - Unityプロジェクト(実行可能なコードは含みません) - [VRChat公式ドキュメント](https://creators.vrchat.com/) の代替 - AIの全動作を保証するもの > **Issues**: バグ報告や知識リクエストは [GitHub Issues](https://github.com/niaka3dayo/agent-skills-vrc-udon/issues) からお気軽にどうぞ。 > **PR**: Pull Requestは受け付けていません。詳細は [CONTRIBUTING.md](CONTRIBUTING.md) をご覧ください。 ---

インストール

> **フォーク・クローンからの移行をお考えの方へ** — v1.0.0 以降、このプロジェクトは **npm パッケージ** として配布されています。リポジトリをフォークやクローンする必要はなくなりました。VRChat の Unity プロジェクト内で、以下のいずれかのインストールコマンドを実行するだけで使用できます。以前にこのリポジトリをクローンしていた場合は、クローンしたディレクトリを削除して npm ベースのインストールに切り替えていただけます。 ### 方法 1: skills CLI(推奨) ```bash npx skills add niaka3dayo/agent-skills-vrc-udon ``` [skills.sh](https://skills.sh) エコシステムを使用して、プロジェクトにスキルをインストールします。 ### 方法 2: Claude Code プラグイン ```bash claude plugin add niaka3dayo/agent-skills-vrc-udon ``` ### 方法 3: git clone ```bash git clone https://github.com/niaka3dayo/agent-skills-vrc-udon.git ``` ---

構成

``` skills/ # すべてのスキル unity-vrc-udon-sharp/ # UdonSharpコアスキル SKILL.md # スキル定義 + フロントマター LICENSE.txt # MITライセンス CHEATSHEET.md # クイックリファレンス(1ページ) rules/ # 制約ルール udonsharp-constraints.md udonsharp-networking.md udonsharp-sync-selection.md hooks/ # PostToolUseバリデーション validate-udonsharp.sh validate-udonsharp.ps1 assets/templates/ # コードテンプレート(17ファイル) references/ # 詳細ドキュメント(25ファイル) unity-vrc-world-sdk-3/ # VRC World SDKスキル SKILL.md, LICENSE.txt, CHEATSHEET.md, references/(8ファイル) templates/ # AIツール設定テンプレート CLAUDE.md AGENTS.md GEMINI.md # インストーラー経由でユーザーに配布 .claude-plugin/marketplace.json # Claude Codeプラグイン登録 CLAUDE.md # 開発ガイド(このリポジトリ専用) ``` ---

スキル

### unity-vrc-udon-sharp UdonSharpスクリプティングのコアスキルです。コンパイル制約、ネットワーキング、イベント、テンプレートをカバーします。 | 分野 | 内容 | |------|---------| | **制約** | 使用不可なC#機能と代替手段(`List` → `DataList`、`async` → `SendCustomEventDelayedSeconds`) | | **ネットワーキング** | オーナーシップモデル、Manual/Continuousシンク、FieldChangeCallback、アンチパターン | | **NetworkCallable** | SDK 3.8.1以降のパラメータ付きネットワークイベント(最大8引数) | | **パーシスタンス** | SDK 3.7.4以降のPlayerData/PlayerObject API | | **ダイナミクス** | SDK 3.10.0以降のPhysBones、Contacts、ワールド向けVRC Constraints | | **Webローディング** | 文字列・画像ダウンロード、VRCJson、VRCUrlの制約 | | **テンプレート** | 17種のテンプレート(インタラクション、同期パターン、永続化、エディタユーティリティなど) | ### unity-vrc-world-sdk-3 ワールドレベルのシーン設定、コンポーネント配置、最適化を扱うスキルです。 | 分野 | 内容 | |------|---------| | **シーン設定** | VRC_SceneDescriptor、スポーンポイント、Reference Camera | | **コンポーネント** | VRC_Pickup、Station、ObjectSync、Mirror、Portal、CameraDolly | | **レイヤー** | VRChat予約レイヤーとコリジョンマトリクス | | **パフォーマンス** | FPS目標値、Quest/Android制限、最適化チェックリスト | | **ライティング** | ベイクドライティングのベストプラクティス | | **オーディオ/ビデオ** | 空間オーディオ、ビデオプレイヤー選択(AVPro vs Unity) | | **アップロード** | ビルドとアップロードのワークフロー、アップロード前チェックリスト | ---

ルール

ルールは、AIエージェントがコードを生成する前に参照する制約ファイルです。 | ルールファイル | 内容 | |-----------|---------| | `udonsharp-constraints` | 使用不可なC#機能、コード生成ルール、属性、同期可能な型 | | `udonsharp-networking` | オーナーシップモデル、シンクモード、アンチパターン、NetworkCallableの制約 | | `udonsharp-sync-selection` | 同期デシジョンツリー、データバジェット目標値、6つの最小化原則 | ### 同期デシジョンツリー ``` Q1: 他プレイヤーから見える必要がありますか? No --> 同期不要(0バイト) Yes --> Q2 Q2: 遅延参加者が現在の状態を知る必要がありますか? No --> イベントのみ(0バイト) Yes --> Q3 Q3: 継続的に変化しますか?(位置・回転など) Yes --> Continuous同期 No --> Manual同期(最小限の [UdonSynced]) ``` **目標値**: ビヘイビアあたり50バイト未満。小〜中規模のワールド全体では100バイト未満。 ---

バリデーションフック

`.cs` ファイルを編集した際に自動実行される PostToolUse フックです。 | カテゴリ | チェック内容 | 重大度 | |----------|-------|----------| | 使用禁止機能 | `List`、`async/await`、`try/catch`、LINQ、コルーチン、ラムダ式 | ERROR | | 使用禁止パターン | `AddListener()`、`StartCoroutine()` | ERROR | | ネットワーキング | `RequestSerialization()` なしの `[UdonSynced]` | WARNING | | ネットワーキング | `Networking.SetOwner()` なしの `[UdonSynced]` | WARNING | | 同期の肥大化 | ビヘイビアあたり6つ以上の同期変数 | WARNING | | 同期の肥大化 | `int[]`/`float[]` 同期(より小さい型を推奨) | WARNING | | 設定の不整合 | `NoVariableSync` モードと `[UdonSynced]` フィールドの併用 | ERROR | **Bash**(`validate-udonsharp.sh`)と **PowerShell**(`validate-udonsharp.ps1`)の両方に対応しています。 --- ## SDKバージョン | SDKバージョン | 主な機能 | ステータス | |:-----------:|:-------------|:------:| | **3.7.1** | `StringBuilder`、`Regex`、`System.Random` | サポート済み | | **3.7.4** | Persistence API(PlayerData / PlayerObject) | サポート済み | | **3.7.6** | マルチプラットフォームビルド&パブリッシュ(PC + Android) | サポート済み | | **3.8.0** | PhysBone依存関係ソート、Force Kinematic On Remote | サポート済み | | **3.8.1** | `[NetworkCallable]` パラメータ付きイベント、`Others`/`Self` ターゲット | サポート済み | | **3.9.0** | Camera Dolly API、Auto Hold Pickup | サポート済み | | **3.10.0** | ワールド向けVRChat Dynamics(PhysBones、Contacts、VRC Constraints) | サポート済み | | **3.10.1** | バグ修正、安定性の向上 | サポート済み | | **3.10.2** | EventTiming.PostLateUpdate/FixedUpdate、PhysBones修正、シェーダー時間グローバル | サポート済み | | **3.10.3** | `VRCPlayerApi.isVRCPlus`、VRCRaycast(アバター)、Mirror 描画タイミング修正 | サポート済み | | **3.10.4** | VRCTween、Box形状のContacts、Global Avatar PhysBone Colliders、ワールドの`VRCPhysBoneCollider` Udonアクセス、DataList/DataDictionary容量API | 最新安定版 | > **注意**: SDK 3.9.0未満は2025年12月2日に非推奨となりました。新規ワールドのアップロードには3.9.0以上が必要です。 --- ## 公式リソース | リソース | URL | |----------|-----| | VRChat クリエイターズドキュメント | https://creators.vrchat.com/ | | UdonSharp APIリファレンス | https://udonsharp.docs.vrchat.com/ | | VRChatフォーラム(Q&A) | https://ask.vrchat.com/ | | VRChat Canny(バグ・機能要望) | https://feedback.vrchat.com/ | | VRChat コミュニティGitHub | https://github.com/vrchat-community | ---

コントリビュート

**Issuesは歓迎します** -- バグ報告や知識リクエストはプロジェクトの改善に役立ちます。 **Pull Requestは受け付けていません** -- すべての修正と更新はメンテナーが行います。 詳細は [CONTRIBUTING.md](CONTRIBUTING.md) をご覧ください。 ---

免責事項

> **このプロジェクトはVRChat Inc.とは一切関係なく、公式の推薦・パートナーシップ・関連性を示すものではありません。** > > 「VRChat」「UdonSharp」「Udon」および関連する名称・ロゴはVRChat Inc.の商標です。すべての商標はそれぞれの権利者に帰属します。 > > このリポジトリは、AIコーディングエージェントが正しいUdonSharpコードを生成するための**個人的なナレッジベース**です。VRChat SDKやUdonSharpコンパイラのいかなる部分も配布しません。 ### 正確性について - コンテンツは**「現状のまま」**提供されており、いかなる保証もありません。[LICENSE](LICENSE) をご確認ください。 - これは個人プロジェクトです。**誤り、古くなった情報、または不完全な内容が含まれる可能性があります。** 常に[VRChat公式ドキュメント](https://creators.vrchat.com/)で確認してください。 - このリポジトリが原因で生じた問題(ビルドエラー、アップロード拒否、予期しないワールドの動作など)について、作者は一切責任を負いません。 - SDKカバレッジ(3.7.1〜3.10.4)は最終更新時点のものです。新しいVRChatリリースで動作が変わる可能性があります。 ### AI支援による作成 このナレッジベースはAIツール(Claude、Gemini、Codex)の支援を受けて作成・メンテナンスされています。すべてのコンテンツはレビュー済みですが、AI生成部分に微妙な誤りが含まれる可能性があります。自己責任でご利用ください。 --- ## ライセンス このプロジェクトは **MIT ライセンス** の下で提供されています。詳細は [LICENSE](LICENSE) をご覧ください。 MIT ライセンスの条件のもとで、自由にフォーク・改変・再配布していただけます。このライセンスはリポジトリ内のドキュメント、ルール、テンプレート、フックに適用されます。VRChat の SDK、UdonSharp コンパイラ、またはその他の VRChat 知的財産に対するいかなる権利も付与しません。