VisionOS 2.4bから導入されたiPhone/iPad でAppleVisionProのゲストモードを設定する手順

Graffity でUnity とVisionPro を使ってコンテンツ制作を主に行なっているエンジニアのcovaです。

今回は visionOS 2.4β と iOS18.4β/iPadOS18.4βから新たに追加された機能である iPhone/iPad でゲストユーザーモードを制御 & 画面ストリーミングの手順について解説します。
(意外と従来のゲストユーザーモードのやり方に慣れていると沼ったのでAVPをずっと使ってきたユーザーはご注意です）


# AppleVisionPro のGuestユーザーモードとは?
AppleVisionPro は `目の間隔` や `瞳孔の動き`, `手の形状` などを計測してパーソナライズ化した状態で使用するデバイスです。そのため他の人の設定で行うとうまく動かないので、ゲストユーザーに使ってもらうときは再計測をして使ってもらう形になります。

また、ゲストユーザーに間違って設定を変更されないように触ってもらうアプリを制限することも可能です。


# 従来のGuestユーザーモードのやりかた

1. 一度AppleVisionPro のオーナーがAVPを被ります
1. 手のひらを見つめる→手の甲を向けることでメニューを表示
1. メニューから 画面共有→Mac を指定
1. 再度メニューからゲストモードを指定
    1. 必要であれば選択可能アプリを設定
1. オーナーが一度AppleVisionPro を外す
1. ゲストにAppleVisionPro をかぶってもらう
1. ゲストのキャリブレーション

という手順でした。

上記のように `一度AVPをかぶって設定` しないといけないため、非常に面倒であるのが従来の方法でした。

# VisionOS2.4 からできる外部デバイスを用いたGuestユーザーモードのやりかた
:::note
今回からは従来の方法に加え `そもそもAVPをかぶらないでいきなりゲストさんにAVPを渡してもゲストモードで使用可能になる` 機能が追加されました。
:::



用意するもの
- AppleVisionPro 本体
- 外部操作用のiPhone または iPad
- AppleDeveloperProgram に登録済みのAppleID


## 前提環境の作成

ざっくりとして手順は以下の通りです

1. AppleVisionProのOSをベータ版にする
1. iPhone/iPad のOSもベータ版にする
1. AppleVisionPro側でPassCode や外部接続端末の設定をする

以下、それぞれについて詳細手順を説明します

### 1. AppleVisionProのOSをベータ版にする
1. まずはAppleVisionPro 側で設定画面から `AppleDeveloperProgram` に登録済みの `AppleID` でログインします
1. 設定アプリから `一般` → `ソフトウェアアップデート` → `ベータアップデート` → `visionOS 2 Developer` を選択<br>![IMG_0153.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/b2e8a826-e84b-4bf4-958d-3f9eca0f3090.png)
<br>![IMG_0154.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/2b021af7-55d9-4913-a871-35fd541680c3.png)
1. visionOS2.4ベータにアップデートできるのでアップデートを開始して待ちます(大体10~30分くらいでした)
1. OS更新後設定画面で `Wi-fi` と `Bluetooth` を `On` にしてください

### 2. iPhone/iPad のOSもベータ版にする
1. まず設定画面から `AppleDeveloperProgram` に登録済みの `AppleID` でログインします
1. 設定アプリから `一般` → `ソフトウェアアップデート` → `ベータアップデート` → `iOS 18 Developer` を選択 (iPadの場合は `iPadOS 18 Developer` )
1. OS18.4ベータにアップデートできるのでアップデートを開始して待ちます
1. OS更新後設定画面で `Wi-fi` と `Bluetooth` を `On` にしてください


### 3. AppleVisionPro側でPassCode や外部接続端末の設定をする
使用するデバイスをベータ版にしたらいよいよ外部操作端末の設定です。

1. AppleVisionPro を装着
1. 設定アプリを開く
1. 左側のメニューを下の方にスクロールして `Optic IDとパスコード` を選択<br>![IMG_0200.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/77b861ce-08b1-4577-947c-db1561ef03b4.png)
  - パスコードを設定している場合入力が必要です<br>![IMG_0155.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/30c059a5-b4f9-4cf7-92f2-c8386674be85.png)
  - パスコードを設定してない場合はパスコードを設定してください
1. OpticIDを使用の次の項目にある `OOO用にOptic IDを設定`という項目があるのでそれを選択します![IMG_0156.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/86d52f5d-ec87-4216-9f73-50db9839b362.png)
  - 今回は自分が使っているOpticalInsert (度入りレンズ) に有りでの設定でやっています
1. 何を設定できるか？の説明モーダルがでるので、そのまま青い設定ボタンを選択![IMG_0157.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/0a09b8ce-aba6-4719-b58b-45b907a59293.png)
1. こんな感じで画面を見つめるように言われるので数秒見つめます![IMG_0159.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/d94a95d2-f346-4119-935a-ed74b014e8ea.png)
1. 問題ないとスクショのような完了モーダルがでてくるので、これでOpticIDの設定はOKです![IMG_0160.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/bfba136d-4788-4c7a-8572-3321d4a72672.png)
1. 再度 `Optic IDとパスコード` の画面に戻り、先ほど項目の次にある `近くのデバイスでゲストユーザを有効にする` を選択します![IMG_0201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/150dea5b-0e95-4ce5-a46b-bd6454a0edb5.png)
1. このような形でデバイスリストが表示されるので使用したいデバイスを選択します ![IMG_0162.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/d3d3b55d-fe03-43be-a02b-82205147f43b.png)


## ゲストユーザー設定手順

1. 外部操作するデバイスのロックを解除してホーム画面で待機します
1. OpticalInsert を利用されている方はOpticalInsertを外した状態で、ゲストの方にAppleVisionProを渡します
    - このときAppleVisionProをかぶって予めゲストモードの設定などはしておかなくてOKです
1. ゲストの方にAppleVisionPro をかぶってもらいます
1. AppleVisionPro 側で新規ゲストか？と聞かれるのでDigitalCrown を押してゲストモードで開始します
    1. このタイミングで外部デバイスとして登録したiPhone/iPad 側にVisionPro のゲストモードを許可するかのポップアップメニューが画面下部から登場します![IMG_0001.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/ca21e1b9-2d1b-42a9-9ceb-e60a42dd5442.png)
    1. iPhone/iPad側で `続ける` を選択するとゲストユーザーが選択可能なアプリを設定できます![IMG_0002.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/739e18a3-1d4c-41f9-a576-21f1c176a6b0.png)
    1. 個別に設定する場合はAppleVisionPro のゲストモードで設定するのと同じUIです![IMG_0004.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/2f6f64ef-a7df-4e5b-a995-a2c8b2209d2d.png)
![IMG_0003.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65257/2ae7f151-d105-4ec5-b1b6-f28c675397ee.png)
1. 設定が完了すると画面上部にVisionPro のマークが表示されたUIが表示され、自動的にゲストユーザーの視点のStreaming画面に切り替わります![uploading...0]()


# FAQ
## デバイス設定したのにiPhone/iPad 側のモーダルが表示されない
https://developer.apple.com/documentation/visionos-release-notes/visionos-2_4-release-notes#Guest-User
Apple公式で `iOS/iPadOS 18.3以下` の通常OSでペアリング済みの状態で `iOS/iPadOS` を18.4bに更新した場合失敗するようです。
その場合は一旦AppleVisionPro 側でペアリングを解除して再度ペアリングすることで解消されるようです

## 接続がうまくいかない

前提条件の環境設定に問題がある可能性が高いので以下の項目の再チェックをしましょう
- AppleVisionPro側
   - iPhone/iPad と同じAppleIDでログインしているか?
   - iPhone/iPad と同じWi-fiに接続しているか?
   - BluetoothはOnにしているか?
   - OpticIDを有効化しているか？
   - パスコードを有効化しているか？
   - ゲストユーザーを有効にするデバイス設定が間違っていないか?
- iPhone/iPad側
   - AppleVisionPro と同じAppleIDでログインしているか?
   - AppleVisionPro と同じWi-fiに接続しているか?
   - BluetoothはOnにしているか?
   - 外部端末で使うときに端末のロックは解除済みか？（スクリーンモードになってないか？）


# 参考
- [reddit](https://www.reddit.com/r/VisionPro/comments/1ivyl3e/how_to_use_the_new_guest_mode_setup_in_visionos_24/?rdt=52643)
- https://redhologerbera.hatenablog.com/entry/2025/02/22/235159