拡張機能のしくみ
拡張機能は、必要なものだけを vrOS に要求します — オーディオ出力、自身のパネル、 ネットワークアクセス — そして、そのひとつひとつを許可するか拒否するかを決めるの は利用者です。vrOS は拡張機能を起動し、監視し、倒れたら再起動します。
サードパーティの拡張機能は独立したプログラムです。単体で動き、ローカルソケット経 由で vrOS と通信し、クラッシュしても vrOS を巻き添えにはできません。vrOS に付属す る 5 つの拡張機能はバンドル型です — アプリ内部の監視付きタスクで、同じ API と同じ 規律に従い、プロセス境界ではなくパニックからの隔離で守られています。2 つの階層を 分けているものについては拡張機能をつくるを参照してください。
このページは使う側の説明です。つくる側は拡張機能をつくるを参照してく ださい。
付属するもの
Section titled “付属するもの”5 つとも 2.0.0 に付属し、オフの状態で始まります。設定 → 拡張機能 でオンにすると、 そのタブがダッシュに加わります。
| 拡張機能 | 何をするか |
|---|---|
| VRChat OSC | チャットボックス、アバターのパラメーター、カメラ、OSC トラッカー、OSCQuery による検出。SteamVR を閉じていても動きます。 |
| サウンドボード | カテゴリー、ゲイン、ループと分割のパッドを備えたパッド。パッドごとにヘッドセットとマイクの片方または両方へルーティング |
| OBS Control | シーンの切り替え、配信と録画の状態、OBS Director パネル。最大 16 個の OBS インスタンスに対応 |
| Twitch | サインイン、7TV エモート対応のチャット、VR 内の広告 HUD 付き広告マネージャー、最大 4 つのライブ配信プレイヤー |
| Steam Link Face | Steam Link でストリーミングしている Quest Pro の顔トラッキングを、O·VR の顔トラッキングに取り込みます |
2.0.0 は vrOS 1 と機能が同等ではありません。クリエイター向けの機能は、これからも 拡張機能として 1 つずつ戻ってきます。手元のビルドに何が入ったかは リリースノートに書いてあります。
拡張機能がたずねるのは、インストールしたときではなく、初めて起動するときです。決 めるまでは停止したままです。動作もしませんし、レールのスロットも取りません。
画面には要求しているケーパビリティがすべて並び、それぞれにトグルと、実際には何を 意味するのかを平易な言葉で書いた 1 行が付きます。要求していないケーパビリティも 「要求なし」と記して並ぶので、その拡張機能が要求しうる範囲の全体が見えます。その うえで、すべて拒否するか、選んだものを許可します。
後のバージョンが新しいものを求めた場合は、差分だけをもう一度たずねられます。すで に許可したものは許可されたままです。
ケーパビリティが及ぶ範囲
Section titled “ケーパビリティが及ぶ範囲”| ケーパビリティ | 許可すると何ができるか |
|---|---|
| バス | 列挙した vrOS のイベント(VR の接続や切断など)を受け取ります。自身のイベントは常に自身のものです。 |
| オーバーレイ | 自身のパネルをスペースに描きます。他のオーバーレイを見ることも触ることもできません。 |
| キャプチャ | 特定のウィンドウのキャプチャオーバーレイを要求します。 |
| オーディオ | vrOS のオーディオエンジンと、その出力ルーティングを通して再生します。 |
| シークレット | パスワードやトークンを、自身の名前で OS の資格情報ストアに保存します。 |
| OSC | OSC ソケットを開きます。 |
| ネットワーク | ネットワークと通信します。 |
| 動画再生 | インターネット上の動画と音声を自身のパネルで再生します。パネルが隠れている間も、音声は再生を続けられます。 |
| 顔データ | 顔とアイトラッキングのデータを提供したり、読み取ったりします。 |
バス、オーバーレイ、キャプチャ、オーディオ、シークレットはホストが強制します。許 可されていないものを拡張機能が vrOS の API に要求すると、その呼び出しは通信の段階 で拒否されます。
ファーストパーティの拡張機能
Section titled “ファーストパーティの拡張機能”付属の 5 つの拡張機能は vrOS に同梱されており、設定 → 拡張機能 でオンにするまでは オフです。あらかじめ許可済みなので、初めて有効にするときにたずねられることは ありません — ただし動画再生と顔データは別で、あらかじめ許可されることはなく、 必ず自分で許可するのを待ちます。それ以外は本物の拡張機能です。マニフェストも、 ケーパビリティのチップも、設定にある取り消しのボタンも同じです。オフにすれば 停止します。
これらは、拡張機能 API を正直に保つための手段でもあります。サードパーティが使 うのと同じ API の上に、専用の裏口なしで作られています。ファーストパーティの機能が その API の上で作れないなら、間違っているのは API のほうです。
設定 → 拡張機能
Section titled “設定 → 拡張機能”インストール済みの拡張機能はすべて、作者、バージョン、ケーパビリティのチップとと もに並びます。チップは許可済み、要求中(まだ判断待ち)、拡張機能が無効なときは ニュートラルです。判断が保留のものはカテゴリの行とダッシュのヘッダーにバッジが付 くので、どこからでも見つかります。
行ごとに、同意画面をそのまま開く「確認」、拡張機能の有効化と無効化、そして先に許 可したケーパビリティの取り消しができます。取り消しは、許可に使ったのと同じスイッ チです。設定を参照してください。
レールのスロット
Section titled “レールのスロット”ダッシュのタブを持つ有効な拡張機能は、レールにスロットを 1 つ得ます。並びは、まず コアのタブ(パネル、パフォーマンス、プレイスペース)、次に区切り線、その次に自分 で決めた順の拡張機能スロットで、設定は一番下に固定です。コアのタブと設定は動きま せん。
拡張機能は既定で、デスクトップアプリにもレールのタブを持ちます。 デスクトップアプリを参照してください。
このリリースでは、拡張機能の短いラベルの横にプレースホルダーの輪郭グリフを描きま す。拡張機能ごとのカスタムアイコンは入っていません。
拡張機能は 2 種類のパネルを描けます。ダッシュの中のタブと、自分のスペースに置ける 生成可能なオーバーレイパネルです。オーバーレイパネルは、その拡張機能自身のダッ シュタブから生成します。
オーバーレイパネルは、ふつうの vrOS オーバーレイです。ワールド、頭、左右どちらか の手首にアンカーでき、つかめて、ロックでき、再起動しても置いた場所に戻ります。 パネルを参照してください。
VR が切断されると拡張機能のパネルは隠れますが、拡張機能そのものは動き続けます。 ヘッドセットを置いたからといって状態が破棄されることはありません。VR なしで動くと 宣言した拡張機能は、そもそも SteamVR があるかどうかを知りません。
コマンドとバインド
Section titled “コマンドとバインド”拡張機能は名前の付いたコマンドを登録し、そのパネルからもダッシュからも実行できま す。コントローラーから届かせるには、設定 → 拡張機能であらかじめ宣言された 8 つの アクションのいずれかに割り当て、そのアクションを SteamVR のコントローラー バインド で割り当てます。vrOS が公開する他のものとまったく同じ手順です。割り当てていないア クションは何もしません。vrOS がジェスチャーを勝手に作ることはありません。 入力を参照してください。
サードパーティの拡張機能をインストールする
Section titled “サードパーティの拡張機能をインストールする”拡張機能のフォルダーを次の場所に置きます。
- Windows:
%LOCALAPPDATA%\vrOS\extensions\<id>\ - Linux:
~/.local/share/vros/extensions/<id>/
フォルダーがあれば、それがインストール済みの拡張機能です。有効にして同意画面を通 すまでは、要求するケーパビリティをチップで示したまま、無効として並びます。ストア 経由の署名付き配布は先のマイルストーンで、このリリースはローカルフォルダーへのイ ンストールのみです。
うまく動かないとき
Section titled “うまく動かないとき”クラッシュした拡張機能は、自身のマニフェストにあるポリシーに従って、バックオフを はさみながら再起動します。保存されたデータは vrOS 側にあるので、再起動はリセット ではなく再開になります。
クラッシュを繰り返すものは再起動されなくなり、無効の状態に落ち着きます。理由はペ インに表示されます。vrOS がもうサポートしないプロトコルバージョン向けに作られた拡 張機能も、同じように並びます。一覧から黙って消えるものはありません。
今すぐ止めるには、設定で無効にしてください。それでも問題が続くなら トラブルシューティングを参照してください。