VRChatなどでのハンドトラッキング対応が大幅に改善された、ALVR v20.11.0時点での情報です。RadeonのAMF関連がメインでGeForce向けの情報はないので、あくまでも個人的な備忘録。
インストール
PCにインストールする
以降、Windowsで使用する前提で説明をします。
GitHubのReleasesページから最新のalvr_launcher_windows.zipをダウンロードして、管理者権限の必要が無い場所に展開してください。ユーザー名に日本語が含まれていなければ、ドキュメントフォルダで大丈夫です。
Add versionボタンから最新のバージョンをインストールします。
HMDが開発者モードになっていてadbコマンドが通る状態であれば、Install APKボタンからHMDへのインストールが行えます。ダッシュボードの起動はLaunchボタンを押します。
VB-Cableのインストール
「Download VB-Cable」をクリックして、公式サイトからダウンロードします。「VBCABLE_Setup_x64.exe」を管理者として実行してインストールしておいてください。インストール後はOSの再起動が必要です。
ファイアウォールの許可
HMDとの接続のためにファイアウォールに接続ルールを追加します。管理者権限が必要です。
HMDにインストールする
Meta Questシリーズ
現在はApp Labで公開されていますので、ストアでALVRを検索すれば出てきます。Side Questを使用する必要はありません。
PICO 4
まだストアに公開されていませんが、いずれリリースされる予定だそうです。ALVR LauncherのInstall APKボタンから入れましょう。
VIVE Focusシリーズ
手元にないので詳細は分かりませんが、開発者モードにしてあればInstall APKボタンからインストール可能なはずです。
併用するドライバーの設定
ALVRがややこしく感じるポイントのひとつです。SettingsタブのExtraに「Driver launch action」があるので、そこで設定する必要があります。
Unregister other drivers at startup SteamVR起動時に他のドライバーを無効にする | デフォルトの設定です。競合するドライバーによる干渉を防ぐため、SteamVR実行時にSteamVRに登録されている他のドライバーを無効にしてALVRだけが動作するようになります。 |
---|---|
Unregister ALVR at shutdown SteamVRを終了する際にALVRを無効にする | SteamVRを起動した際にALVRドライバーが登録され、終了時に無効になります。 Standable:Full Body EstimationやHaritora Configuratorのような、フルボディトラッキングに必要なドライバーを併用する際に選択します。但し、Virtual Desktopなどのストリーミングアプリは競合してしまうので、予め手動で無効にしておく必要があります。 |
No action なにもしない | ALVRを含むすべてのドライバーを手動で登録する必要があります。これにより、最初にALVRダッシュボードを起動せずにSteamVRを起動できます。 |
ドライバーを手動登録するには
Installationタブで「Register ALVR driver」を押します。
わからん、どうすればいい?
- ALVRだけが動いたら良い、フルトラしてない→Unregister other drivers at startup
- ALVRだけが動いたら良い、IMU方式のトラッカーでフルトラしている→Unregister ALVR at shutdown
- Virtual Desktopを使うときがある→No actionに設定し、その都度SteamVRの設定から必要なアドオンをオンオフして再起動する
HMDを登録する
同じネットワーク内でQusetやPICO側でALVRを起動しておき、ダッシュボードのDevicesタブで「Launch SteamVR」を押します。
Trustボタンが出てくるので、押すとHMDが登録されてSteamVRが再起動します。
詳細設定
Settingsから様々な設定が行えます。
Presets
プリセットによる簡易設定が行えます。
Resolution
両目での解像度です。
Very Low | 3072 x 1536px |
---|---|
Low | 3712 x 1856px |
Medium | 4288 x 2144px |
High | 5184 x 2592px |
Ultra | 5632 x 2816px |
Extreme | 6080 x 3040px |
Preferred framerate
フレームレートの設定をします。ヘッドセット側で設定されているリフレッシュレートが最大フレームレートとなります。
Encoder preset
エンコーダーの設定です。設定を上げすぎると、スタッタリングや表示の乱れが起こりやすくなります。初期設定ではSpeedが選択されています。
Headset speaker
ここで選択した音声デバイスの音がヘッドセットへ送られます。
Headset microphone
例えばQuestのマイクを使用したい場合は、VB Cableを選択します。(VB Cableは予めインストールし、一度OSの再起動をしてください。一度も再起動していない場合エラーが出ます。)
Hand tracking interaction
ハンドトラッキングの設定です。
Disabled | ハンドトラッキングを使用しません。 |
---|---|
SteamVR Input 2.0 | VRChat用にハンドトラッキングデバイスを別途生成します。 |
ALVR bindings | ALVR独自のバインドで、ハンドトラッキングにトリガーやスティックの操作が割り当てられます。 Hand tracking controller bindings Stream VR games from your PC to your headset via Wi-Fi - alvr-org/ALVR |
Eye and face tracking
アイトラッキング・フェイストラッキングの設定です。
Video
Bitrate
ビットレート設定です。詳細設定が行えるExpandボタンがあります。
- Mode
固定ビットレートのConstantと、通信状況に合わせて変動するAdaptiveが選択できます。
ビットレート設定は5~1000Mbpsまで選択できますが、800~1000Mbpsクラスは有線接続時に使用することをお勧めします。
Wi-Fi環境下ではH.264で300Mbps、HEVCで150Mbpsぐらいを最大値の目安として設定します。あまり高くし過ぎるとHMD側が処理しきれない可能性があります。
- Image corruption fix
ビットレートが変更されたときにIDRフレームを要求し、画像の破綻を修正します。Radeonのみ影響する設定です。
Preferred codec
H.264/HEVC/AV1の中からコーデックを選択します。
HEVCはエンコーダーのレイテンシーが上がりますが、効率が良いためビットレートが限られる場面でも良好な品質を得られます。ネットワーク側がボトルネックとなる場合に有用です。AV1は更に高効率なコーデックですが、Radeon 7000シリーズ以上かつQuest 3の組み合わせでないと利用できません。(※今のところ、ALVRのWindows版ではRadeonのみAV1を使用可能です。)
ドライバーのバージョンによると思われますが、RadeonでHEVCエンコーダーを使用すると何かしらのトラブルが起こることがありました。
Foveated encoding
フォービエイテッド(中心窩)レンダリングの動画バージョンです。フォービエイテッドエンコーディングという名前の通り、レンダリング済みのフレーム対して処理をするものなので、レンダリング負荷が下がるわけではありません。
中心部の画質を保ちながら周辺の解像度を落とす事で、映像のエンコード・デコード速度を短縮できるほか、同じビットレートならば低解像度時の品質が向上します。そのため、低速のネットワークでもビットレートを下げることで、Foveated encoding未使用時と同じ画質になります。
Color correction
色補正です。ブライトネス、コントラスト、彩度、ガンマ、シャープの6項目を調整出来ます。
Optimize game render latency
ゲーム側の処理優先度を変更する、Windows向けの設定です。
Encoder config
細かなエンコード設定が行えます。
- Rate control mode
CBRが推奨設定です。VBRはアダプティブビットレートのアルゴリズムを狂わせる可能性があります。
- Filler data
CBRモード使用時に、割り当てられたビットレートを下回らないようにします。主にデバッグで役立つ機能です。
- h264: Profile
High/Main/Baselineから選ぶことができます。
- Entropy coding
CAVLCが推奨設定です。CABACは圧縮率は向上しますが、非常に低速なのでレイテンシーが生じる可能性があります。
- 10 bit encoding
8bitではなく10bitでエンコードします。Radeonのドライバーバージョンによっては、色が緑色になったり赤みがかったりするなど、表示に異常が起こる場合がありました。
- Full renge color
フルレンジRGBでエンコードします。無効にすると、リミテッドレンジでエンコードするようになります。
- Encofing Gamma
エンコーダーに任せる場合は1.0にします。暗い部分を優先して2.2に設定する場合、色ズレやトーンジャンプが生じる可能性があります。
- Enable HDR/Force HDR sRGB Correction/Clamp HDR extended range
HDR関連ですが、手元では検証できないと思われるので割愛します。
- NVENC/AMF
ハードウェアエンコーダーの設定です。こちらは項目の最後に別記します。
- Software
ソフトウェアエンコードを使用する設定ですが、CPUでのエンコードは速度的に実用的ではないので使用しません。
Force software decoder
HMDやスマートフォン側でソフトウェアデコードを試みます。遅いですが、不具合を回避できる可能性があります。
Mediacodec extra options
MediaCodecの設定が行えます。Android向けのオプションだと思われますが、詳細はよく分かりませんでした。
Transcoding view resolution
エンコード・デコードで使用する片目あたりの解像度です。
Emulated headset view resolution
SteamVRで使用する片目あたりのレンダリング解像度です。
Preferred FPS
フレームレート設定です。
Adapter index
特別な理由がない限り、変更しないでください。
Clientside foveation
Video NVENC/AMF
NVENCはNVIDIA用の設定で、AMFがAMD用です。現在は手元にRadeonしかないのでAMFの説明のみ記載します。
Quality preset
Speed/Balanced/Qualityから選択できます。
Enable VBAQ/CAQ
視覚的な品質を向上させる機能です。高速な動きや、複雑なディテールがあるシーンのエンコードに効果的です。
Enable High-Motion Quality Boost
ハイモーションクオリティブーストを有効にします。
動きを事前分析してその情報を活用する(動きの激しいシーンのディテールレベルを調整する)ことで、エンコード品質を改善します。速い動きによって生じるモーションブラーやノイズに対処するために使用します。
Use preproc
AMF Pre-Processingを有効にします。これにはエッジ適応型のノイズ除去フィルターが含まれており、より多くのビットレートを必要とする高周波のディテールを除去する事を目的とした機能です。
Preproc sigma/Preproc tor
Preproc sigma(AMF_PP_ADAPTIVE_FILTER_STRENGTH)は前処理フィルターの強さで、値を上げるとフィルタリングが強くなります。
Preproc tor(AMF_PP_ADAPTIVE_FILTER_SENSITIVITY)はエッジ検出感度で、値が高いほどエッジが検出されやすくなり、フィルタリングされにくくなります。
Enable Pre-analysis
エンコード処理を行う前に、シーン検出・モーション解析・量子化パラメーターの決定などを含む映像解析を行います。これによってエンコード品質を向上させます。事前分析にはグラフィックス部分を使用するとのことで、これによってパフォーマンスが低下する可能性があります。
「Use preproc」を有効にする必要があり、「Reduce color banding(※多分10bitエンコードのこと)」は同時に使用できません。
Audio
スピーカーとマイクの設定です。
Headset
Position recentering mode
原点のセンタリングを調整する際の挙動を変更できます。
Disabled | プレイスペースの原点は、ルームスケールのガーディアン設定に基づきます。 |
---|---|
Local floor | 原点は床にあり、Oculusボタンを長押しでリセットできます。 |
Local | 原点はOculusボタンを長押ししてリセットする際に、現在の頭の位置からのオフセットとして設定されます。 |
Rotation recentering mode
回転リセットの挙動を変更できます。
Disabled | プレイスペースの向きは、ルームスケールのガーディアン設定に基づきます。 |
---|---|
Yaw | Oculusボタンを長押しすると、向いている方向にリセットできます。 |
Tilted | 横になりながらプレイするときに使用します。Oculusボタンを長押ししてリセットすると、プレイスペースごと傾きます。 |
Controllers
コントローラーの設定です。コントローラーの角度調整などの設定はここで行えます。
VRChat向けに新しいハンドトラッキング設定が増えているのと、Emulation modeはQuest 2 Touchのままで大丈夫みたいです。
- Hand skelton
SteamVRへ指のトラッキング状態が送られるようになります
- Steamvr input 2.0
SteamVR Input 2.0に対応したハンドトラッキングを行います。VRChatでハンドトラッキングを使用する場合は必要です。
- Multimodal tracking
コントローラーとハンドトラッキングの同時使用設定です。ハンドトラッキングの周波数は30Hzに低下します。ボディトラッキングと一緒に有効にすることはできないとのこと。
- Hand tracking interaction
ハンドトラッキングのジェスチャーでコントローラーのボタンなどをエミュレートします。
- Left controller position offset / rotation offset
- Left hand tracking position offset / rotation offset
コントローラーやハンドトラッキングの位置や回転具合を調整出来ます。
Connection
接続設定です。基本的に弄る必要はありませんが、USB接続でストリーミングを行いたい場合はUDPからTCPに変える必要があるとのこと。
Extra
ALVRの挙動を変更できます。SteamVR起動時の挙動(ドライバーの設定)やログなどに関する設定があります。