見出し画像

MetaQuestの自動スリープ・暗所トラッキング警告を無効化する方法(Quest版VRChat睡眠想定)

更新履歴
2024/11/05 - Quest単体でADBコマンドを実行する方法を追加


はじめに

 みなさんVR睡眠を満喫していますでしょうか?私は2022年くらいからほぼ毎日しています。
 さて、Quest版VRChatを使ったVR睡眠は仕様との闘いの連続です。特に警告やスリープ周りは誰しもが悩まされた部分だと思います。
 この記事は、現状の解決方法をまとめたものです。

問題点

おなじみの警告

 Questを使ってVRChatで寝るとき、必ずといって直面する問題が「部屋を真っ暗にする」ときに出る警告です。
 v34アップデート以降からトラッキングが失われると「部屋を明るくしてください」とデカデカに警告が出て、強制的にVRChatから締め出されてしまいます

 これは部屋が暗くなることでQuestが境界線を見失うことに原因があります。


赤外線ライトの導入

 Questは赤外線カメラが搭載されているため、赤外線ライトを使えば(人間の目には)真っ暗な部屋でもトラッキングできます。QuestでVR睡眠する人にとっては、よく知られている方法です。

 しかしながら、赤外線照射だけでは以下の課題が解決しないことが判明しました。

ライトの明かりが届かない角度になると、トラッキング喪失の警告が出る。
 寝返りを打ったりして微妙にライトの光が届かなくなると「トラッキング喪失」の警告が出て、場合によっては再度ガーディアンを設定する羽目になります。特に壁などといった凹凸や模様がない場所に頭を向けるとトラッキングが失われがちです。

Questが自動スリープするとネット接続が切れ、書き置きが見れない。
 VRChatの良い文化である書き置き。Quest単機ではスリープ状態が続くとネット接続が切れてしまうため、たとえば寝ている最中にHMDが外れてしまった場合、せっかく残してくれた書き置きが見れないという問題があります。


解決方法

そこで、以下の手順を使って、これらQuest睡眠の問題を解決させます。
①ガーディアンの停止
 ガーディアンの機能自体を切ることによって、暗所での警告を無効化します。
②自動スリープの停止
 近接センサーの機能自体を切ることによって、スリープを無効化します。

それぞれ「メリット・デメリット」「難易度」が異なる方法を載せているので、自分に合う方法でやってみてください。


①ガーディアンの停止

方法1. 開発者設定からのガーディアンOFF

 設定画面の「システム」→「開発者」から、境界線(ガーディアン)を切ることができます。これによって、単機だけでも暗所での警告が出なくなります。
 ただし、開発者タブを有効化するには以下の手順で開発者モードをオンにしなければいけません

方法2. MetaQuestDeveloperHub(旧:OculusDeveloperHub)

 このソフトを使うと「ガーディアンの無効化(Boundary)」「近接センサーの無効化(Proximity sensor)」を含めた細かい設定にアクセスすることができます。
 ※近接センサーについては、Questを再起動させると元に戻ります。

 MetaQuestDeveloperHub(MQDH)を使うには準備が必要なので、下記の記事を参考にするといいでしょう。


②スリープの停止

方法1. 標準機能(上限4時間)

 「システム」→「電源」から、スリープモードを最大4時間まで延長することができます。しかしながら、4時間しか睡眠する人はなかなかいないと思いますので、あまり効果的な方法とは言えないでしょう。

方法2. MetaQuestDeveloperHub(8時間の時間制限)

 前述の通り、MQDHでも近接センサー(Proximity sensor)を無効化することができます。かつては再起動までの無制限でしたが、現在では設定をオフにしてから8時間のみしか効果がありません。
 毎回無効化させるのは面倒ですが、一応平均的な睡眠時間をカバーできます。

方法3. ADBコマンド(再起動まで無制限)

 QuestはAndroidOSベースで開発されているため、ADB(Android Debug Bridge)コマンドを受け付けます。
 以下は、ざっくり言えば「近接センサーを無効化する」コマンドです。

adb shell am broadcast -a com.oculus.vrpowermanager.prox_close

https://communityforums.atmeta.com/t5/Get-Help/Proximity-Sensor-Issues/td-p/787353

 この方法を使えば、再起動までは近接センサーを無制限にオフにすることができ、自動スリープを回避することはできます。一方で、「adbコマンドを使える」ように色々と準備が必要です。

 コアなAndroidユーザーなら以下の「WindowsでADBコマンドを使えるようにする方法」で既に環境を整えている人がいると思いますが、初めてなら「SideQuest」を使ったりするのも良いでしょう。「MetaQuestDeveloperHub」にも同じくコマンドを送信する機能があります。
 また、後者2つにはコマンドを登録する機能があるので、adbコマンドを登録しておけばボタン1つで無効化することができます。

A. WindowsでADB環境を整え、コマンドプロンプトから入力した場合
B. SideQuestから入力した場合
C. MetaQuestDeveloperHubから入力した場合

また、これらPCを介さなくてもQuest単体でADBコマンドを実行する方法はありますが、ある程度のAndroidOSに関する知識が必要です。


まとめ

 以上の方法を用いることで、VR睡眠時の煩わしい警告が出なくなり、さらに睡眠中にQuestが顔から外れても一晩中起動状態にすることができます。
 MQDHもadbコマンドも一般的なノートパソコンで利用可能なので、パソコン版はプレイできないQuestユーザーでもこれらの方法を利用することができます。
 以上、Quest版VRChatでの睡眠方法の解説でした。

 ※調べたところ、ガーディアンにもadbコマンドによる停止方法はありますが、開発者設定を有効化する方が切り替えが楽だと思うので割愛しています。(「参考:https://communityforums.atmeta.com/t5/Quest-Development/Disable-Guardian-option-when-using-passthrough/td-p/1044260」)


注意点

・長時間起動状態にすることで、HMDのバッテリー劣化画面の焼付きなどの発生が考えられます。通常使用よりも寿命を削っていることは頭に入れておいてください。
・ガーディアンを切ると「立ち」「しゃがみ」の切り替えに用いる高さ情報を認識しなくなるのか、切り替えがおかしくなったり、「寝る体制」がしにくくなります。そのため、睡眠ギミックをアバターに導入することをおすすめします。
・Quest2では朝起きてHMDを確認してみると、VRCがフリーズしていることがあります。Quest3では起きないため、メモリ不足が原因かもしれません。
・Questを長時間起動状態にしていると発熱しますので、特に布団にQuest前面部を付けたままにするなど、放熱できないような状態にしないよう気をつけましょう。高温になるとアラートがピーピー鳴り、強制的にシャットダウンします。

睡眠ギミックの紹介など、詳しい睡眠方法については下の記事に書いてみました。

ととやま

いいなと思ったら応援しよう!