この記事執筆時点でVRChatのWorldやAvatarはWindowsで作成することが前提になっています。しかしながら僕は普段WindowsではなくUbuntuを使っているので、できればUbuntuを使って作業したいところです。
今のところ完全にWindowsから脱却することはできていませんが、ある程度UbuntuでWorldの作成ができるレベルになったのでその方法を書いておきます。多分Avatarも同じやり方でできると思います。
そもそもWorldの作成にはUnityを使いますが、Unity自体はWindowsだけでなくUbuntuで動かすことができます。VRChat SDKも問題なくUbuntu上で起動したUnity Editor でimportできます。問題はVRChat SDKのControl PanelからBuild & TestをしようとしてもVRChatが起動しないことです。Worldを作っている間は何度もVRChatを起動して作っているWorldを確認したいのでこれは困ります。
そもそもUbuntuでVRChatを起動できるんでしょうか? できます。
UbuntuにSteamをインストールしてVRChatをインストールします。このままだと起動できないので、SteamのsettingsからSteam Playをenableにします。
このSteam Playの機能を使うとWindows用のアプリがLinuxで実行できるようになります(もちろん全てのWindows用アプリが動くわけではないですが、結構動きます)。内部ではwineからforkしたprotonというソフトウェアが使われています。
以下の内容のvrchat.exe
というスクリプトを用意します。これはWindowsのexeファイルではなくただのシェルスクリプトですが、拡張子をexeにしておくことで、後でVRChat SDKのControl PanelのSettingsでVRChat ClientとしてPathを指定できるようになります。
#!/usr/bin/bash STEAM_COMPAT_DATA_PATH=~/.proton/ ~/.steam/steam/steamapps/common/Proton\ 5.0/proton run /home/$USER/.steam/debian-installation/steamapps/common/VRChat/VRChat.exe "$@"
実行権限をつけておきます。
chmod +x vrchat.exe
この状態で普通にVRChatが起動できます。
./vrchat.exe
こうして起動したVRChat Clientは僕の環境ではなぜかWindowsで起動したときよりも妙に動きがいいです。たまにAvatarが見れなかったりWorldの機能(VideoPlayerとか)が使えなかったりすることがありますが、概ね普通に使えます。
後はVRChat SDKのControl PanelのSettingsでVRChat ClientとしてPathを指定してやればBuild & Testが普通に実行できます。ここまでくればWorld開発のサイクルを問題なく回せると思います。
もうひとつの問題がBuild & Publish for Windowsができないことです。これは解決方法を見つけることができませんでした。途中までは動きますがUnity Editorが強制終了します(これで強制終了するとUnity Hubからプロジェクトを起動できなくなるので、Unityのプロセスを全て終了するか、そのプロジェクト内にあるTemp/UnityLockfile
を削除してください)。なのでアップロードするときだけはWindowsを使わざるをえません。VirttualboxなんかにWindowsを入れて使えばいいでしょう。
もしBuild & Publish for WindowsもUbuntuから実行する方法を見つけた方がいたらぜひ教えてください。