見出し画像

Mac環境でUnity for VRChatする

VRChatユーザーの多くはPCVRでプレイしています。つまりWindowsの(すくなくともそれなりに)ハイスペックなマシンを持っているはずなので、アバター改変なども同じWindows上で作業することでしょう。
そんな環境であえて非Windows環境でVRChatのためのUnity作業をする人は稀だと思いますが、そんな数少ない人のために多少のノウハウを書き残しておきます。
結論として、Macでも作業はできます(一部制限あり)。ただしワールドについては私は触っていないのでよくわかっていません。

更新日: 2024.04.23
大幅に加筆修正しました


Mac環境で困ることとその対策

Mac環境で困ることはだいたい以下の3つです。

  1. VCC(VRChat Creator Companion)が使えない

  2. Metalではジオメトリーシェーダー、 テッセレーションなど一部のシェーダー機能が使えない

  3. オフラインテストができない

1. VCCが使えない

VCCの代わりに「ALCOM」を使いましょう。
ALCOMはanatawa12さんによって作成されたVCC代替アプリです。
VCCと同じことが出来、macOSやLinuxでも動きます。 
VCCよりも圧倒的に高速で、バグが少なく、オープンソースです。
もちろん日本語表記もあります。
現在はまだ開発中ですが、基本的な機能は一通り使えます。
というかWindowsユーザーもみんなこっち使ったほうがいいですよ。

公式のリンクはこちら↓

ALCOMのインストールや使い方は後でまた説明します。

2. Metalではジオメトリーシェーダー、 テッセレーションなど一部のシェーダー機能が使えない

仕様です。
Mac標準のグラフィックAPI、Metalではジオメトリーシェーダーやテッセレーションなどの一部のシェーダーの機能が使えません。
もちろんVRChatにアップロードすれば正常に動きますが、Unity上では動作を確認できなくなります。
ジオメトリーシェーダーが使われている例はあんまり知りませんが、テッセレーションは一部のファーシェーダーやもっちりシェーダーなどで使われているので困る人も出てくるかもしれません。
一応対処法として、APIをOpenGLにすれば動くらしいです。試したことはありません。
https://kiliware.hateblo.jp/entry/2018/04/02/222116
使えないのはMetalの仕様なので、これらの機能を頻繁に使うなら、Windows機を用意した方がいいかもしれません。

3. オフラインテストができない

仕様です。
VRChat SDKにはアバターなどをアップロードせずにローカル環境だけで確認するオフラインテスト機能がありますが、Macでは当然VRChat本体が動かないため、この機能が使えません。残念ながらこれはどうしようもありません。アップロードして確認しましょう。

ワールドでは、デバッグ用に Client Simを使用して確認することもあるかと思いますが、これも同様に利用できません。Unity自体の動作には問題ありませんが、ワールド制作では Windows機の方が便利な場面が多い気がします。

環境構築手順

実際にMacでUnity環境を構築する手順を説明します。

  1. Unity Hubをインストール

  2. Unuty Hub経由でUnityをインストール

  3. ALCOMをインストール

下記リンクからUnity Hubをインストールしてください。

このとき最新バージョンのUnityをインストールするよう促されますが、インストールせずにHubのみをインストールします。
VRChat用のUnityバージョンは2024年4月現在2022.3.6f1です。下記のアーカイブから該当バージョンをUnity Hub経由でダウンロードしてください。

UntiyをUnity Hubからダウンロード

インストール時にIntel用とApple Silicon用を選ぶことが出来ますが、Apple Silicon版はHarmonyが対応していないためVRChat World SDKが動きません。また、Modular Avatarの一部機能も正常動作しません。
(MA Parameters Infoが動かない、MA Scale Adjusterで隠しGame Objectが見えてしまう)
よってApple Silicon搭載MacでもIntel版を選んだ方が無難です。
もちろんApple Silicon版の方が軽く動くため、これらの点を理解して問題ない方はApple Silicon用を使っても問題ありません。ちなみに私はApple Silicon用を使っています。

intel用のUnity Editor

Unityのインストールが完了したら、下記リンクからALCOMをダウンロードしてください。


ALCOMのダウンロード

インストールしたら起動するだけで使えます。新規にプロジェクトを作るなら右上から「プロジェクトを作成」、既存のプロジェクトを追加するならその横の▽から「既存のプロジェクトを追加」を押してください。

ALCOMの画面

水色の「管理」を押すとそのプロジェクトに対してSDKや各種ツール(パッケージ)の管理ができます。

ALCOM プロジェクトの管理画面

2024年4月23日現在、vcc://リンクを開く機能はまだないため、リポジトリを追加したいときは手動で「VPMリポジトリ」→「VPMリポジトリを追加」から行ってください。

VPMリポジトリを追加

vcc://リンクとは何かというと、たとえばlilToonのサイトにあるような、押すだけでVCCが自動で開いてリポジトリを追加できるリンクです。

lilToonのvcc://リンク

現状はlilToonなら

https://lilxyzw.github.io/vpm-repos/vpm.json

のような、「~.vpm.json」で終わるアドレスを自分でALCOMに追加する必要があります。

AlCOMは本家VCCと似たUIになっているので、本家VCCを触ったことがある人なら、すんなり使えるはずです。そうでない人も、本家VCCの操作説明が大体適用できます。

すでにあるALCOM紹介記事としては、この辺りも参考になると思います。

(補足)現在のVRChat向け Unity環境

2024年4月現在のUnity環境について確認しておきます。

VRChatにアバター/ワールドをアップロードするのに最低限必要なものは以下の二つです。

  • 対応バージョンのUnity Editor

  • VRChat SDK

さらに、実際にSDKをUnityにインストールする際には

  • VCC(VRChat Creator Companion)

が必要です。一応、今でもVCCを経由せずSDKを入手することは可能ですが、ユーザーコミュニティによるツール群もVCC経由でインストールする必要があるため、実質的にVCCの機能は必須です。やんごとなき事情で非VCC環境で作業する場合は、下記リンクからSDKをダウンロード出来ます。(要ログイン)

https://vrchat.com/home/download

ここで問題になるのは、公式にサポートされている開発環境はWindowsのみで、VCCもWindows専用アプリであることです。

しかし、安心してください。Mac(非Windows)環境でも使える代替策が公式、非公式ともに存在します。

Unityバージョンについて

現在、VRChat SDK対応のUnityバージョンは2022.3.6f1です。以前のバージョンは2019.4.31f1です。どちらもアバターやワールドのアップロードに使用することができますが、2024年4月現在は、基本的に2022を推奨します。

参考(公式情報):
https://creators.vrchat.com/sdk/upgrade/current-unity-version/

衣装やギミックの制作者も2022環境が増えており、2022で制作されたものを2019で読み込むと正常に読み込めないものがあります。

すでに2019のプロジェクトが手元にある場合は、ALCOMまたはvrc-getで2022に移行できます。

まとめ

ALCOMの登場により、Macユーザーでも基本的にWindowsと同じようにUnityが使えるようになりました。いい時代になりましたね〜〜
レアな環境でUnityしたい人に少しでも参考になれば幸いです。なにかあればTwitterMisskeyで聞いてください。
それでは〜

参考になったら「スキ❤️」してくださると私が喜びます。
「フォロー」すると新しい記事の通知が受け取れます。
「気に入ったらサポート」すると私がとても喜びます。ありがとうございます。

----- 以下、過去記事 -----

一部古い情報になっていますが、vrc-getの使い方などに触れた過去記事もほぼそのままここに残しておきます。

Mac環境で困ること

  1. VCC(VRChat Creator Companion)が使えない

  2. Metalではジオメトリーシェーダー、 テッセレーションなど一部のシェーダー機能が使えない

  3. オフラインテストができない

1. VCCが使えない

MacでUnity作業をするにあたって一番の課題はこれだと思います。

2023年9月現在、VRChatのAvatar, World用SDKはVCC経由でのみ配布されています。VCCはWindows版のみ提供されているので、Macでは動きません。つまりSDKが入手できないので詰み…ではありません。
(10月1日追記:どうやら今もunityapckage版のSDKは配布されているようです。なので従来のようにunitypackageでSDKをインストールする運用も可能なようですが、ユーザーリポジトリも含めて使えないのは非常に不便なため、非推奨です。)

VCCの機能は大きく2つあります。1つはUnity Hubのようなプロジェクトのランチャー機能。もう一つはパッケージ管理です。このうち1つ目に関しては、VCCからでもUnity Editorを起動してプロジェクトを開ける、というだけなので、Unity Hubと同じです。Unity Hubでできます。

2つ目のパッケージ管理こそVCCのメイン機能になります。バージョンを指定するだけでSDKやコミュニティによるツール(Modular Avatar, liltoonなど)がインストールされ、更新も簡単に行えます。

実はこれは正確にはVCCではなくVPM(VRChat Package Manager)の機能です。そして、このVPM自体はMacやLinuxでも使用可能です。
VRChat公式ドキュメントを見ると、VPMにはCLI版があります。いわゆるコマンドラインツールです。
https://vcc.docs.vrchat.com/vpm/cli
MacにはTerminalというアプリがインストールされているので、そこから上記リンクの通りに.NETのSDK、vpmの順にインストールしていくことで、Terminal上でVCCと同じパッケージ管理機能が使えます。
が、正直この公式のvpmコマンドはあまりにも機能が少なく実用的とは言えません。
というわけでその他の選択肢がこちらです。

VCC for mac

こちらは新野ユキさんが作成したアプリです。GUIでまさにMac版VCCという感じです。
公式のSDKもユーザーレポジトリもVCCと同じように管理できます。細かい機能の差はありますが、だいたいVCCと同じように使えます。
が、2024年4月現在Unity2022に対応しておらず、その他バグもあるため非推奨です。

VCC for mac の画面

ただし私はほぼ新規プロジェクトの作成とランチャー用途くらいにしか使っていません。(パッケージ管理は後述するvrc-getで行なっています。)
内部的には、公式のvpm cliを利用しています。そのため、これを使うにはまずvpm cliをインストールする必要があります。(インストール手順は後述。)
とりあえずこれがあればVCCでやることは基本的に問題なくできるはずです。

vrc-get

私がメインで使っている使っていた(GUI操作できるALCOMに移行しました)のがこれです。AvatarOptimizerを作成した、あのAnatawa12さんが製作しています。
これは要するにちゃんと使えるvpmです。つまりコマンドラインで操作する必要があります。なのでCLIに全く馴染みのない人にはちょっとつらいかもしれません。
しかし、公式のvpm cliよりちゃんと動いてバグも少ないため、VCCやvpm周りのトラブルの影響を受けづらいというメリットがあります。その意味ではコマンドラインに抵抗がない Windowsユーザーの方にもおすすめです。

インストールはMacユーザーならHomebrewからがおすすめです。
Homebrew自体使ったことがない場合は、下のリンクからインストールしてください。インストール用コマンドをTerminalにコピペするだけです。
https://brew.sh
Homebrewがインストールされている場合は、

brew install anatawa12/core/vrc-get

とするとインストールできます。インストールしたら vrc-get -V としてきちんとバージョンが表示されるか確認しておきましょう。

vrc-getの使い方

とりあえず困ったら --help コマンドを後ろにつけると、説明が出てきます。

  • リポジトリを追加する
    試しにAvatar Optimizer(を含むAnatawa12さんのリポジトリ)を追加してみます。

vrc-get repo add <vpm.jsonのURL>
# 例
vrc-get repo add https://vpm.anatawa12.com/vpm.json
  • 追加したリポジトリ一覧を確認する

vrc-get repo list

結果はこんな感じです。: の後ろがそのリポジトリの名前(表示名)になります。リポジトリを指定して何かをしたいときはこの表示名を使います。

com.anatawa12.main: anatawa12 (from https://vpm.anatawa12.com/vpm.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/com.anatawa12.main.json)
org.praecipua.vpm: Praecipua (from https://raw.githubusercontent.com/Cayahuanca/Unity/main/vpm-packages.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/org.praecipua.vpm.json)
io.github.poiyomi.vpm: Poiyomi's VPM Repo (from https://poiyomi.github.io/vpm/index.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/io.github.poiyomi.vpm.json)
jp.suzuryg.vpm: suzuryg (from https://suzuryg.github.io/vpm-repos/vpm.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/7e226146-e882-42c2-8ae2-76c07d90d3b4.json)
com.vrchat.repos.curated: Curated (from https://vrchat-community.github.io/vpm-listing-curated/index.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/vrc-curated.json)
com.vrchat.repos.official: Official (from https://vrchat.github.io/packages/index.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/vrc-official.json)
dev.nadena.vpm: bd_ (from https://vpm.nadena.dev/vpm.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/dev.nadena.vpm.json)
jp.whiteflare.vpm: whiteflare (from https://whiteflare.github.io/vpm-repos/vpm.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/jp.whiteflare.vpm.json)
io.github.lilxyzw.vpm: lilxyzw (from https://lilxyzw.github.io/vpm-repos/vpm.json at /Users/tetra/.local/share/VRChatCreatorCompanion/Repos/io.github.lilxyzw.vpm.json)
  • リポジトリの中身(パッケージの一覧)を見る
    追加したリポジトリに含まれるパッケージ一覧を確認してみましょう

vrc-get repo packages <リポジトリの表示名>
# 例
vrc-get repo packages bd_

結果

Modular Avatar | nadena.dev.modular-avatar
A suite of tools for assembling your avatar out of reusable components
1.0.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.0.0/nadena.dev.modular-avatar-1.0.0.zip?
1.0.1: https://github.com/bdunderscore/modular-avatar/releases/download/1.0.1/nadena.dev.modular-avatar-1.0.1.zip?
1.1.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.1.0/nadena.dev.modular-avatar-1.1.0.zip?
1.1.1: https://github.com/bdunderscore/modular-avatar/releases/download/1.1.1/nadena.dev.modular-avatar-1.1.1.zip?
1.1.2: https://github.com/bdunderscore/modular-avatar/releases/download/1.1.2/nadena.dev.modular-avatar-1.1.2.zip?
1.2.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.2.0/nadena.dev.modular-avatar-1.2.0.zip?
1.2.1: https://github.com/bdunderscore/modular-avatar/releases/download/1.2.1/nadena.dev.modular-avatar-1.2.1.zip?
1.3.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.3.0/nadena.dev.modular-avatar-1.3.0.zip?
1.4.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.4.0/nadena.dev.modular-avatar-1.4.0.zip?
1.4.1: https://github.com/bdunderscore/modular-avatar/releases/download/1.4.1/nadena.dev.modular-avatar-1.4.1.zip?
1.4.2: https://github.com/bdunderscore/modular-avatar/releases/download/1.4.2/nadena.dev.modular-avatar-1.4.2.zip?
1.4.3: https://github.com/bdunderscore/modular-avatar/releases/download/1.4.3/nadena.dev.modular-avatar-1.4.3.zip?
1.4.4: https://github.com/bdunderscore/modular-avatar/releases/download/1.4.4/nadena.dev.modular-avatar-1.4.4.zip?
1.4.5: https://github.com/bdunderscore/modular-avatar/releases/download/1.4.5/nadena.dev.modular-avatar-1.4.5.zip?
1.5.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.5.0/nadena.dev.modular-avatar-1.5.0.zip?
1.5.1: https://github.com/bdunderscore/modular-avatar/releases/download/1.5.1/nadena.dev.modular-avatar-1.5.1.zip?
1.6.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.6.0/nadena.dev.modular-avatar-1.6.0.zip?
1.7.0: https://github.com/bdunderscore/modular-avatar/releases/download/1.7.0/nadena.dev.modular-avatar-1.7.0.zip?
1.7.1: https://github.com/bdunderscore/modular-avatar/releases/download/1.7.1/nadena.dev.modular-avatar-1.7.1.zip?
1.7.2: https://github.com/bdunderscore/modular-avatar/releases/download/1.7.2/nadena.dev.modular-avatar-1.7.2.zip?
1.7.3: https://github.com/bdunderscore/modular-avatar/releases/download/1.7.3/nadena.dev.modular-avatar-1.7.3.zip?
1.7.4: https://github.com/bdunderscore/modular-avatar/releases/download/1.7.4/nadena.dev.modular-avatar-1.7.4.zip?
1.7.5: https://github.com/bdunderscore/modular-avatar/releases/download/1.7.5/nadena.dev.modular-avatar-1.7.5.zip?
1.7.6: https://github.com/bdunderscore/modular-avatar/releases/download/1.7.6/nadena.dev.modular-avatar-1.7.6.zip?
  • パッケージをインストールする
    Unityプロジェクトのディレクトリに移動して、

vrc-get install <package名>

とします。バージョン指定したい場合は

vrc-get install <package名> <Version名>

とします。例はこんな感じ。

# 例
vrc-get install com.anatawa12.avatar-optimizer
# バージョン指定
vrc-get install com.anatawa12.avatar-optimizer 1.4.3
# ベータ版のインストール(--prerelease が必要)
vrc-get install --prerelease com.anatawa12.avatar-optimizer 1.5.0-beta.14
  • プロジェクトに入っているパッケージ一覧を見る

vrc-get info project
warning: no --json-format is specified! using lastest version 1
{"versions":[{"version":"0.2.6-rc.4"},{"version":"1.1.2-beta.1"},{"version":"1.5.0-beta.2"},{"version":"1.1.0-rc.1"},{"version":"1.3.2-beta.1"},{"version":"0.1.0"},{"version":"0.2.8-rc.1"},{"version":"0.2.7"},{"version":"0.2.6-rc.3"},{"version":"0.2.2"},{"version":"0.2.6"},{"version":"1.5.0-beta.9"},{"version":"1.3.0-rc.1"},{"version":"1.5.0-beta.13"},{"version":"1.5.0-rc.2"},{"version":"1.4.2"},{"version":"0.0.1"},{"version":"1.0.0-beta.4"},{"version":"0.3.0-beta.3"},{"version":"0.2.5"},{"version":"0.3.0-rc.2"},{"version":"1.4.0-rc.3"},{"version":"0.3.2"},{"version":"1.5.0-beta.11"},{"version":"0.2.0"},{"version":"1.2.0-rc.1"},{"version":"1.5.0-beta.1"},{"version":"1.4.0-rc.4"},{"version":"1.0.0-beta.3"},{"version":"0.2.0-beta.2"},{"version":"0.3.1"},{"version":"1.0.0-beta.5"},{"version":"1.5.0-beta.7"},{"version":"0.3.0-beta.1"},{"version":"0.4.8"},{"version":"1.3.2"},{"version":"1.3.3"},{"version":"0.4.1-rc.1"},{"version":"1.4.3"},{"version":"1.3.0-rc.2"},{"version":"0.2.0-rc.2"},{"version":"0.2.4"},{"version":"1.5.0-beta.3"},{"version":"0.4.1-rc.2"},{"version":"1.3.1"},{"version":"0.3.0"},{"version":"1.4.1"},{"version":"0.0.2"},{"version":"1.5.0-beta.12"},{"version":"0.4.2"},{"version":"0.4.0-rc.2"},{"version":"0.3.0-rc.1"},{"version":"0.4.5-beta.1"},{"version":"0.2.6-rc.2"},{"version":"0.3.0-beta.2"},{"version":"1.0.0-beta.2"},{"version":"0.4.0-rc.1"},{"version":"0.2.0-beta.1"},{"version":"0.2.5-rc.1"},{"version":"1.1.0-beta.2"},{"version":"1.1.1"},{"version":"0.2.6-rc.1"},{"version":"1.2.0"},{"version":"1.5.0-beta.8"},{"version":"0.3.5"},{"version":"1.5.0-beta.10"},{"version":"0.4.4"},{"version":"1.0.0-beta.1"},{"version":"0.1.4"},{"version":"0.4.3"},{"version":"0.4.0-beta.1"},{"version":"0.4.7"},{"version":"0.4.1-beta.1"},{"version":"1.1.0"},{"version":"0.4.12"},{"version":"1.3.2-beta.2"},{"version":"1.4.0"},{"version":"0.1.2"},{"version":"0.4.1-rc.3"},{"version":"0.2.1-beta.1"},{"version":"1.3.0"},{"version":"1.1.0-beta.1"},{"version":"0.4.10"},{"version":"1.4.0-beta.1"},{"version":"1.5.0-rc.1"},{"version":"0.4.1"},{"version":"0.4.11"},{"version":"0.3.2-beta.2"},{"version":"0.4.0"},{"version":"1.4.0-rc.1"},{"version":"0.2.0-rc.1"},{"version":"1.5.0-beta.14"},{"version":"0.4.4-rc.1"},{"version":"0.3.4"},{"version":"0.4.10-beta.1"},{"version":"0.2.3"},{"version":"0.2.7-beta.1"},{"version":"0.1.3"},{"version":"1.0.0"},{"version":"1.5.0-beta.6"},{"version":"1.2.0-beta.1"},{"version":"1.3.2-beta.3"},{"version":"0.2.1"},{"version":"0.4.5"},{"version":"1.3.4"},{"version":"0.3.3"},{"version":"1.4.0-rc.2"},{"version":"0.2.8"},{"version":"0.4.6"},{"version":"0.3.2-beta.1"},{"version":"1.5.0-beta.4"},{"version":"0.4.9"},{"version":"1.5.0-beta.5"},{"version":"1.4.3-beta.1"}]}

これは1行のjson形式で表示されます。人が見やすい形とは言えないですね…
jsonを見やすくしてくれるjqというコマンドラインツールがあるので私はそれを使っています。

vrc-get info project | jq

結果

warning: no --json-format is specified! using lastest version 1
{
  "packages": [
    {
      "name": "com.vrchat.avatars",
      "installed": "3.3.0",
      "locked": "3.3.0",
      "requested": []
    },
    {
      "name": "jp.lilxyzw.liltoon",
      "installed": "1.4.1",
      "locked": "1.4.1",
      "requested": []
    },
    {
      "name": "com.anatawa12.avatar-optimizer",
      "installed": "1.5.0-rc.2",
      "locked": "1.5.0-rc.2",
      "requested": []
    },
    {
      "name": "com.anatawa12.custom-localization-for-editor-extension",
      "installed": "1.1.0",
      "locked": "1.1.0",
      "requested": []
    },
    {
      "name": "nadena.dev.modular-avatar",
      "installed": "1.7.6",
      "locked": "1.7.6",
      "requested": []
    },
    {
      "name": "vrchat.blackstartx.gesture-manager",
      "installed": "3.8.6",
      "locked": "3.8.6",
      "requested": []
    },
    {
      "name": "com.anatawa12.gists",
      "installed": "0.9.1",
      "locked": "0.9.1",
      "requested": []
    },
    {
      "name": "jp.whiteflare.avatartools",
      "installed": "1.4.2",
      "locked": "1.4.2",
      "requested": []
    },
    {
      "name": "com.vrchat.core.vpm-resolver",
      "installed": "0.1.21",
      "locked": "0.1.21",
      "requested": []
    },
    {
      "name": "jp.lilxyzw.avatar-utils",
      "installed": "1.0.3",
      "locked": "1.0.3",
      "requested": []
    },
    {
      "name": "com.anatawa12.continuous-avatar-uploader",
      "installed": "0.2.1",
      "locked": "0.2.1",
      "requested": []
    },
    {
      "name": "com.vrchat.base",
      "installed": "3.3.0",
      "locked": "3.3.0",
      "requested": []
    },
    {
      "name": "com.poiyomi.toon",
      "installed": "8.1.167",
      "locked": "8.1.167",
      "requested": []
    },
    {
      "name": "org.praecipua.ee",
      "installed": "6.1.0",
      "locked": "6.1.0",
      "requested": []
    },
    {
      "name": "jp.suzuryg.face-emo",
      "installed": "1.2.0",
      "locked": "1.2.0",
      "requested": []
    },
    {
      "name": "humr.outputlogloader",
      "installed": "1.0.0",
      "locked": null,
      "requested": []
    },
    {
      "name": "studio.raspberry.vrchat.ma-suimin-system",
      "installed": "0.3.1",
      "locked": null,
      "requested": []
    }
  ]
}

--json-format が指定されてないよ!というエラーが出ますが無視しています。 --json-format がなんなのかはよくわかってません。

  • パッケージを更新する
    プロジェクト内の更新が必要なパッケージ一覧を表示

# 例
vrc-get outdated
# beta版も含める
vrc-get outdated --prerelease

更新する

vrc-get upgrade <package名>
# 全部一気に更新
vrc-get upgrade
# 特定のパッケージを更新
vrc-get upgrade com.anatawa12.avatar-optimizer
# 特定のパッケージを更新(バージョン指定あり)
vrc-get upgrade com.anatawa12.avatar-optimizer 1.4.3

このときpackage名を指定しないと、更新がある全てのパッケージが一気に更新されます。楽です。
普段使う機能はだいたいこんな感じです。
困ったらTwitterかmisskeyで私あるいは作者のanatawa12に聞いてください。

2. Metalではジオメトリーシェーダー、 テッセレーションなど一部のシェーダー機能が使えない

Macでは標準のグラフィックAPIがMetalになっていますが、Metalではジオメトリーシェーダーやテッセレーションなどの一部のシェーダーの機能が使えません。
もちろんVRChatにアップロードすれば正常に動きますが、Unity上では動作を確認できなくなります。
ジオメトリーシェーダーが使われている例はあんまり知りませんが、テッセレーションは一部のファーシェーダーやもっちりシェーダーなどで使われているので困る人も出てくるかもしれません。
一応対処法として、APIをOpenGLにすれば動くらしいです。試したことはありません。
https://kiliware.hateblo.jp/entry/2018/04/02/222116
使えないのはMetalの仕様なので、これらの機能を頻繁に使うなら、Windows機を用意した方がいいかもしれません。

3. オフラインテストができない

VRChat SDKにはアバターなどをアップロードせずにローカル環境だけで確認するオフラインテスト機能がありますが、Macでは当然VRChat本体が動かないため、この機能が使えません。残念ながらこれはどうしようもありません。アップロードして確認しましょう。

ワールドでは、デバッグ用に Client Simを使用して確認することもあるかと思いますが、これも同様に利用できません。Unity自体の動作には問題ありませんが、ワールド制作では Windows機の方が便利な場面が多い気がします。

環境構築手順

実際にMacでUnity環境を構築する手順を説明します。

  1. Unity Hubをインストール

  2. Unuty HubにUnityをインストール

  3. vpm cli をインストール

  4. VCC for macあるいはvrc-getをインストール

下記リンクからUnity Hubをインストールしてください。

このとき最新バージョンのUnityをインストールするよう促されますが、インストールせずにHubのみをインストールします。VRChat用のUnityバージョンは2023年10月現在2019.4.31.f1です。下記のアーカイブから該当バージョンをUnity Hub経由でダウンロードしてください。

2019.4.31.f1を選択

Unityがインストールできたら、下記リンクにある公式の手順に従いvpm cliをインストールします。vpmを直接使わない場合でも、VCC for macを使用するためにはvpm cliのインストールが必要です。

公式ドキュメントの機械翻訳でも十分理解できるとは思いますが、日本語でのインストール手順を説明します。

下記リンクから.NET 6 SDKをインストールします。

.NET SDKのインストール

.NET SDKがインストール出来たら、Terminalで下記コマンドでvpmをインストールします。

dotnet tool install --global vrchat.vpm.cli

下記コマンドで公式のテンプレートをインストールします。

vcc install templates

これでインストールは完了です。
確認用に、

vpm check hub

とすると、Unity Hubがきちんとインストールできている(かつ、vpmに適切に認識されている)かをチェックできます。

vpm check unity

とすると、適切な Unityバージョンがインストールできている(かつ、vpmに適切に認識されている)かをチェックできます。

vpm cliをインストールしたら、VCC for macあるいはvrc-getをインストールします。
以上で環境構築は完了です。



VRChat関連の技術的な情報などを書いています。「スキ❤️」や「フォロー」していただくとモチベになります。「サポート」していただいたら私が美味しいものを食べます。