動作環境
対応 Unity バージョン
| Unity | 動作確認したバージョン | VRChat SDK | 対応状況 |
|---|---|---|---|
| 2022.3 LTS (推奨) | 2022.3.22f1 | com.vrchat.base 3.10.x | ✅ 全機能 (VRChat の推奨環境) |
| Unity 6 (6000.0 LTS) | 6000.0.60f1 | com.vrchat.base 3.10.x | ✅ 全機能 |
| 2021.3 LTS | 2021.3.45f2 | なし (2021 向けの VRChat SDK は存在しません) | ✅ SDK なしの構成で動作確認。Harmony を別パッケージで導入すれば全機能、入れなければ Harmony 依存の機能は無効 (下記「VRChat SDK が無いプロジェクト」) |
| 2019.4 | 2019.4.31f1 | com.vrchat.base 3.4.0〜3.4.2 | ✅ 一部機能を除いて対応 (下記「Unity 2019.4 での制限」) |
| 上記以外 (2020.x、2022.1〜2022.2、6000.1 以降など) | — | — | 未確認 |
依存パッケージ
| 項目 | バージョン |
|---|---|
| VRChat SDK Base (VPM では必須) | com.vrchat.base 3.4.0 以上 (2022.3 / Unity 6 では 3.10.x、2019.4 では 3.4.0〜3.4.2。Harmony が同梱されるのが 3.4.0 から) |
| VRChat SDK Avatars (任意) | 3.x — アバター専用機能を有効化 |
| VRChat SDK Worlds (任意) | 3.x — ワールド専用機能を有効化 |
| Modular Avatar (任意) | 1.16 以上 (MA 関連ツール用) |
必須依存は com.vrchat.base のみ
Base 同梱の Harmony を大半の機能が利用するため必須です。Avatars / Worlds / Modular Avatar は、該当機能を使うときだけあれば OK です。
VRChat SDK が無いプロジェクト (Unity 2021 など)
Base が無いプロジェクトでもコンパイルエラーにはならず、そのままでは Harmony に依存しない機能だけが有効になります (Unity 2021.3.45f2 で動作確認)。 VPM の依存解決で SDK が入ってしまうので、導入は .unitypackage のインポートか、パッケージフォルダを Packages/net.satania.customeditors へコピー (Embedded) してください。
Harmony だけを別パッケージで導入すると全機能が使えます。 SCE が「SDK も Harmony も無い」のを検知すると起動時に案内を出し、Editor Setting の先頭にも導入ボタンが出ます (本家 Lib.Harmony の 0Harmony.dll をそのまま net.satania.harmony パッケージにしたもの。MIT、Editor 専用。Packages/net.satania.harmony に Embedded で入ります)。導入経路は 2 つ:
- ダウンロードして導入 (推奨): SCE の配布サイト (Cloudflare Pages、VPM リストと同じ場所) から最新版を取得し、SHA256 を照合して展開します
- 同梱コピーで導入: SCE に同梱した Harmony 2.4.2 を書き出します。ネットワーク不要
後から VRChat SDK (3.4.0 以降) を入れると SDK 同梱の Harmony と重複するため、SCE が起動時に net.satania.harmony を自動で外します (SDK と同時に入れた新規プロジェクトだけは手で Packages/net.satania.harmony を消してください)。
- 無効になる機能 (Harmony を導入しない場合): Animator ウィンドウ拡張 (パラメータの色分け、Condition オーバーレイ、Transition のコピー & ペースト、ノードスタイル など) / Inspector 拡張 (コンポーネントヘッダーのボタン、Debug 切替、Transform の対称編集 など) / SkinnedMeshRenderer の BlendShape 拡張 / ウィンドウ背景 (Console・Project・Hierarchy) / エディタテーマ / DockArea 拡張 / GameView スクリーンショット / VRCExpressionsMenu の値表示。Editor Setting の該当ページも表示されません
- 使える機能: Hierarchy 拡張 (コンポーネントアイコン、色マーキング、EditorOnly の可視化と切替) / Project のフォルダアイコン / さたにあ便利ツール / AnimationClip 系ツール (Binding Checker、Loop Maker、Path Editor、Splitter、Breath Animation Builder) / RichText Builder / 表情アイコン撮影 / AnimatorController DSL / ギミックバンドル (Avatars 依存の Menu・Parameters を除く) / Texture2DArray / Light Probe Generator / その他の単体ツール。Unity 2022.1 以降ならさらに New Hierarchy・Asset Reference Tree・Package Manager のお気に入り・SceneView MSAA / 選択アウトライン、2022.2 以降なら Inspector 背景も使えます
macOS (Apple Silicon) では追加のパッケージが必要です
Apple Silicon の Mac では、VRChat SDK 同梱の Harmony (0Harmony 2.0.5) が macOS のメモリ保護 (W^X) に対応しておらず、SCE / Modular Avatar / NDMF の Harmony パッチが mprotect returned EACCES で全て失敗します。anatawa12 さんの Harmony Patches for Apple Silicon (native & Rosetta) (com.anatawa12.apple-silicon-harmony、VPM リポジトリ https://vpm.anatawa12.com/vpm.json) を入れると解決します。SCE はこの失敗を検知すると、起動時にインストールを提案するダイアログを出します (Editor Setting の BugFix 項目 からもインストールできます)。
Unity 2019.4 での制限
Unity 2019.4 (2019.4.31f1 で確認) でも導入できますが、Unity 側の API が無いため次の機能は使えません (メニューや設定にも出ません): New Hierarchy ウィンドウ / Asset Reference Tree / SceneView MSAA / SceneView の選択アウトライン (Custom) / Package Manager のお気に入りタブ / Properties ウィンドウを開くボタン類 (2019 に Properties ウィンドウが無いため) / VRCExpressionsMenu の値表示 (SDK 3.7.0 以降の型に依存)。RichText Builder のグラデーションのコピー & ペーストも使えません。 VRChat SDK は 2019.4 向けの最終版 3.4.0〜3.4.2 を使ってください (3.2 / 3.3 には Harmony が無いので、Harmony パッチ系の機能が無効になります)。
機能ゲート (#define) について
依存パッケージの有無に応じて、asmdef の versionDefines で自動的に機能が切り替わります:
| シンボル | 条件 | 有効になる機能 |
|---|---|---|
SCE_SDK_BASE_AND_HARMONY | com.vrchat.base 3.4.0 以上 (0Harmony 同梱版) | ほぼ全ての Harmony パッチ系機能 (必須) |
SCE_SDK_AVATARS | com.vrchat.avatars 3.x | Int 圧縮レイヤー / VRC テンプレート など |
SCE_SDK_AVATARS_3_6_OR_NEWER | com.vrchat.avatars 3.6.0 以上 | パラメータ使用箇所の検索での VRC_AnimatorPlayAudio 対応 |
SCE_SDK_AVATARS_3_7_OR_NEWER | com.vrchat.avatars 3.7.0 以上 | VRCExpressionsMenu の値表示 (ExpressionsControlField に依存)、ギミックバンドルのメニュー Parameters 出力 |
SCE_SDK_BASE_3_10_OR_NEWER | com.vrchat.base 3.10.2 以上 | AnimDsl の Parameter Driver preventRepeats |
SCE_SDK_WORLDS | com.vrchat.worlds 3.x | SerializedUdonPrograms 整理 など |
SCE_MODULAR_AVATAR | Modular Avatar 1.16+ | MA Parameters のビット数分類 など |
SCE_NEWTONSOFT_JSON | com.unity.nuget.newtonsoft-json | AnimatorController DSL の Import |