Kurokomarioの日記

デジタルとリアルを旅する日々✈️

カテゴリー: VRChat

  • MacでVRChatを動かしたい!(失敗)

    MacでVRChatを動かしたい!(失敗)

    私はいつもWindows でVRChatをプレイしています。
    本当はすっかりメインPCになってしまった電力効率の良いMacでやりたいのですが、まあ、、、Mac版はありません。Windows版(Steam・Rift)かQuest版しかありません。

    先日、Apple WWDC2023で「Game Porting Toolkit」というものが発表されました。(略してGPTK)
    また開発中のツールなのですが、簡単に言うとMac上でWindowsゲームを動かせる!というものです。

    MacでWindows向けソフトを動かす手段はいくつかあるのですが、(Parallels Desktop, CrossOver, BootCamp(Intel Macのみ));

    2025/01/13追記
    現在では、「GeForce NOW」というクラウドゲーミングサービスがVRChatに対応しました。
    これにより、スマホでもPC(Windows / Mac)でもゲームできるようになりました。

    現時点では、VRモードは非対応とのこと。

    GeForce NOW
    日本ではnvidia公式版とau版を利用できます。
    どちらも有料です。(nvidia版で月額1,790円〜)
    au / UQユーザーだとau版で月額1,650円とちょっと安くなります。
    ※金額は変わるかもです
    無料プラン(au版だとPontaパス特典?)もありますが新規受付はしていないようです。
    無料版を前に試したことがありますが、順番待ちが凄くてまともに遊べませんでした。
    やっと遊べても制限時間があり、時間過ぎると再び順番待ちという。。。

    今回のツールはApple公式というのが最大の特徴で、
    Apple Siliconの性能を100%活かせる!
    とは変換処理があるため流石にいかないものの、最適化が進めばかなり安定して動くようになることは間違いないと思います。

    ターミナル.appを使用する方法が一般的ですが、Whisky.app(GitHub)を使った方法もあります。
    かなりお手軽にできるので、まずはWhiskyでやってみるのをお勧めします。

    今回はターミナルを使ったインストールを試してみました。

    私が試した中で動いたゲームは以下の通り。

    • Steam (steamwebhelperが応答しなくなることがある。)
    • 原神 (エラー出る時は修復&Persistentフォルダ削除で直る)
    • Only Up! (最低設定にすればそこそこ遊べる)
    • 黄昏ニ眠ル街
    • リトルウィッチノベタ

    動かなかったもの

    • VRChat (EAC-EOS関連でエラー?VRChat.exe本体の起動には成功)
      スクショはソフト終了させようとしたらフリーズしてUnityBugReporterが立ち上がったところです。
      Unity 2019.4.40f1というバージョンだということが判明。
      アバター・ワールド作成でのUnityは2019.4.31f1で本体も同じだろうと思っていたところ違かったのでビックリ。
    • Steam VR (VRChatと一緒に起動はしてくるが、アドオンエラー&Wine側で致命的エラーでまともに動かず)
    • リディー&スールのアトリエ (ランチャーは起動するがWine側で致命的エラー発生)
    • ヘブンバーンズレッド (全く起動せず)
    • ファイナルファンタジーXIV: 暁月のフィナーレ ベンチマーク
    • ファイナルファンタジーXVベンチマーク (本体exe直接起動で一応動いたが途中で落ちた)
    • BLUE PROTOCOLベンチマーク (エラー。本体exe起動でロード画面出たが進まず)

    2025/02/11追記:

    • 原神
      • HoYoPlayの表示がおかしい時は起動オプションlauncher.exe「-in-process-gpu」を使う
      • 通信エラー(デバイスの動作環境に異常が検出されました…エラーコード:10351-4001)が発生する場合はGenshinImpact.exe「-platform_type CLOUD_THIRD_PARTY_PC」でエラー出なくなった。

    目標としては、「VRChatをデスクトップモードで動かしたい」とします。
    本当はVRモードで動かしたいのですが、Meta QuestをMacにVRモードで接続するソフトやドライバーが無いためまず無理。

    WindowsではVirtual DesktopでVR可能ですが、Mac版ではデスクトップモードにのみ対応。
    Quest LinkはWindowsのみ。
    Virtual Desktop、Quest PC Appともにインストールを試みたが、途中でフリーズしインストールできず。(Quest PC Appは空き容量不足で検証できず)

    VRChatの実行を試みる

    まずは、以下のコマンドを使ってlaunch.exeを呼び出してみます。}
    私の環境でのコマンドと、実行ログを載せておきます。
    criticalそうな部分は太字にしています。

    MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0.2/bin/wine64 'C:\Program Files (x86)\Steam\steamapps\common\VRChat\launch.exe'
    esync: up and running.
    0024:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
    0048:fixme:service:svcctl_EnumServicesStatusExW resume handle not supported
    
    Unhandled Exception:
    System.ComponentModel.Win32Exception (0x80004005): mono-io-layer-error (54447680)
      at System.ServiceProcess.Win32ServiceController.GetServices (System.String machineName, System.ServiceProcess.Win32ServiceController+SERVICE_TYPE serviceType, System.String group) [0x00054] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
      at System.ServiceProcess.Win32ServiceController.GetServices () [0x0000b] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
      at System.ServiceProcess.ServiceController.GetServices (System.String machineName) [0x00018] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
      at System.ServiceProcess.ServiceController.GetServices () [0x00000] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
      at launch.Program.Main (System.String[] args) [0x00062] in <2d521fa917b2485c99ed4c814635b657>:0 
    [ERROR] FATAL UNHANDLED EXCEPTION: System.ComponentModel.Win32Exception (0x80004005): mono-io-layer-error (54447680)
      at System.ServiceProcess.Win32ServiceController.GetServices (System.String machineName, System.ServiceProcess.Win32ServiceController+SERVICE_TYPE serviceType, System.String group) [0x00054] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
      at System.ServiceProcess.Win32ServiceController.GetServices () [0x0000b] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
      at System.ServiceProcess.ServiceController.GetServices (System.String machineName) [0x00018] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
      at System.ServiceProcess.ServiceController.GetServices () [0x00000] in <aa1af3976ae1414a8ef735fc75da39e7>:0 
    

    MONO(.Net Framework関連)でエラーになってしまっているようです。

    続いて、start_protected_game.exe。(Windows実機でこちらでもVRCが起動することは確認済み)

    MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0.2/bin/wine64 'C:\Program Files (x86)\Steam\steamapps\common\VRChat\start_protected_game.exe'
    esync: up and running.
    0024:fixme:module:dlopen_32on64_opengl32 loaded "/usr/local/Cellar/game-porting-toolkit/1.0.2/lib/wine/x86_32on64-unix/opengl32.dll.so" early @ 0x68857000
    0024: thread_get_state failed on Apple Silicon - faking zero debug registers
    00bc: thread_get_state failed on Apple Silicon - faking zero debug registers
    00c0: thread_get_state failed on Apple Silicon - faking zero debug registers
    0024:fixme:win:RegisterTouchWindow (00010048 00000003): stub
    0024:fixme:d3d:wined3d_guess_card_vendor Received unrecognized GL_VENDOR "Apple". Returning HW_VENDOR_NVIDIA.
    0024:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
    0024:fixme:d3d:wined3d_guess_card_vendor Received unrecognized GL_VENDOR "Apple". Returning HW_VENDOR_NVIDIA.
    0100: thread_get_state failed on Apple Silicon - faking zero debug registers
    0100:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_FRAMEBUFFER_OPERATION (0x506) from glClear @ /private/tmp/game-porting-toolkit-20230701-6371-16sqo69/wine/dlls/wined3d/context_gl.c / 2330.
    00c8:fixme:imm:ImeSetActiveContext (0x37a3f0, 0): stub
    00c8:fixme:imm:ImmReleaseContext (0000000000010020, 000000000037A3F0): stub
    0024:fixme:imm:ImmReleaseContext (00010048, 034EAA18): stub
    0024:fixme:msctf:ThreadMgr_ActivateEx Unimplemented flags 0x4
    0024:fixme:imm:ImeSetCompositionString Reading string unimplemented
    0024:fixme:imm:NotifyIME NI_CLOSECANDIDATE
    0024:fixme:imm:ImeSetActiveContext (0x34eaa18, 1): stub
    0104: thread_get_state failed on Apple Silicon - faking zero debug registers
    0104:err:kerberos:kerberos_LsaApInitializePackage no Kerberos support, expect problems
    0100:fixme:d3d:state_linepattern_w Setting line patterns is not supported in OpenGL core contexts.
    0100:fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #5:
    0100:fixme:d3d_shader:print_glsl_info_log     WARNING: Output of vertex shader 'ffp_varying_texcoord' not read by fragment shader
    0108: thread_get_state failed on Apple Silicon - faking zero debug registers
    0108:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFA, 067EFEF8
    0104: thread_get_state failed on Apple Silicon - faking zero debug registers
    wine: Unhandled illegal instruction at address 00416CF7 (thread 0104), starting debugger...
    0104:err:seh:start_debugger Couldn't start debugger L"winedbg --auto 32 284" (2)
    Read the Wine Developers Guide on how to set up winedbg or another debugger

    一瞬、EACの起動画面が立ち上がるものの、すぐに落ちてしまいました。
    なぜか右下が日本語です(ロード中・・・59%)
    珍しい。

    errはd3d関連とkerberosというものをサポートしていないと書かれていますね・・・

    一番最後にはなぜかWineのデバッカーが開始できないというのも書かれています。

    EAC側のログファイルもあったため載せておきます。

    [14:44:05:224] [Windows] [EAC Launcher] [Info] Localization file loaded, using ja_ja.
    [14:44:05:225] [Windows] [EAC Launcher] [Info] Loading the following .json file: 'C:\Program Files (x86)\Steam\steamapps\common\VRChat\EasyAntiCheat\Settings.json'
    [14:44:05:227] [Windows] [EAC Launcher] [Info] ProductId: xxxxxxxxxxxxxxxxxx
    SandboxId: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx DeploymentId: xxxxxxxxxxxxxxxxxx
    [14:44:07:344] [Windows] [EAC Launcher] [Info] Will attempt to use the following system font: 'C:\windows\Fonts\Meiryo.ttc'.
    [14:44:07:401] [Windows] [EAC Launcher] [Info] Embedded resources successfully loaded.
    [14:44:07:414] [Windows] [EAC Launcher] [Info] Will use the custom icon loaded off the disk.
    [14:44:07:875] [Windows] [EAC Launcher] [Info] Current progress: 0 (0/0).
    [14:44:07:877] [Windows] [EAC Launcher] [Info] Current progress: 0 (0/0).

    最初、Meiryoフォントが見つからないエラーが出ていたため、インストールしています。(何故必要?)
    特に問題なく動いているように見えます・・・

    最後にVRChat.exeを直接起動。

    MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0.2/bin/wine64 'C:\Program Files (x86)\Steam\steamapps\common\VRChat\vrchat.exe'

    起動はしますが、アンチチートプログラムが動作していないため、オンラインに接続できません!惜しい・・・
    VRChat本体が起動できれば、あともう少しな感じがしますね!

    実際、アンチチートプログラムが実装される前は動いていたらしい。。。

    「M1macでも動きます」というような情報があるのはそのためです。
    (アンチチートプログラムは2022年7月に導入されました)

    続く・・・かも

    Macシステム・Wineに詳しい方がいらっしゃったら教えていただきたいです。。。

    VRC Macユーザー集会とかあってもいいかも?←どういう集会だよ

    今日の一曲