アマレコVR ベータ版 公開
Windows10 64bit用のフリーウエアとなります。
今回のバージョンはSteamVR用で、Oculus Rift および WindowsMRでの動作を確認しています。
SteamVRが一通り使える環境をそろえてから「AmaRecVR.exe」を実行してください。
各種動画の再生にはDirectShow 64bit版のフィルターが必要です。
アマレコVR その2 DirectShow準備編
ドキュメントが揃っていないので、しばらくは推理しながらご利用頂くことになります。
なお、操作はマウス専用です。モーションコントローラーは使えません。
1.マウス操作について
アマレコVRはマウスの操作を独占する(マウスフックする)ようになっています。
アマレコVRの動作中は他のアプリケーションやOSのマウス操作ができなくなります。
他のアプリケーションを操作する場合はアマレコVRを終了してください。
アマレコVRの終了は左ダブルクリックしてファイル選択画面を表示し「アプリ終了」を選択します。
何らかの理由によりアマレコVRの画面を見ることができなかったり「アプリ終了」が画面からはみ出して選択できないときは、左ボタンと右ボタンを10秒間押し続けてアマレコVRを終了してください。
ユーティリティソフトの設定でマウスフックを無効にできますが、その場合はアマレコVRを操作しているつもりが、デスクトップ上の他のアプリをクリックしてしまう事故のリスクがありますのでご注意ください。
■基本操作
機能 | 操作 |
コンソール画面を表示 | 左クリック |
ファイル選択画面を表示 | 左ダブルクリック |
操作画面を消す | 右クリックまたは何もないところで左クリック |
操作画面の位置を調整 | 右ボタンを押しながら左クリック |
アマレコVR終了 | 左ボタンと右ボタンを10秒以上押し続ける |
■動画視聴中の操作
アマレコVR その3 機能・操作編
■コンソール画面の操作
アマレコVR その4 コンソール画面
2.初期設定
初期状態ではOSのビデオフォルダ内にあるmp4ファイルのみが選択できます。
他のフォルダやmp4以外のファイルを扱う場合はユーティリティソフトで設定してください。

2.1.フォルダ設定
チャンネル設定のコンボボックスから「フォルダ」を選択して、右にある「・・・」ボタンから目的のフォルダを選択します。
また、プレイリストを使うと一つのチャンネルに複数のフォルダを設定することができますが、プレイリストの説明は後日になります。
2.2.オーディオデバイスの設定
WindowsMRの場合はアマレコVR上は「既定のデバイス」を選択し、WindowsMR側の設定でオーディオデバイスを切り替えるようにしてください。
Oculus Riftの場合はアマレコVR上で「Rift Audio」を選択すると、Oculus Riftのヘッドフォンから音を出すことができます。
3.対応できないビデオファイル
場合によってはアマレコVRがエラー落ちしたり、フリーズする可能性があります。
ヘッドマウントディスプレイを装着したままこの状態に陥るととても困りますので、事前にアマレコVRユーティリティに再生したいビデオファイルをドラッグ&ドロップして簡易再生できるか確認することをお勧めします。
4.未実装等
・ファイル選択画面の下部にある画像サイズ等の情報は今回のバージョンでは表示されません。
・検索リストおよびお気に入りリストが100件を超えると、並べ替え等の処理に時間がかかります。
当面は100件程度を目安に使ってください。
・動画ファイルの再生開始時や検索中にアマレコVRの画面が消えてSteamVR?の画面が見えてしまいます。
・アマレコVR実行中はデスクトップにもアマレコVRの画面が表示されます。非表示にはできません。
5.ダウンロード
・アマレコVR Ver1.00ベータ版
何かありましたらこの記事のコメント欄へご連絡ください。
アマレコVR その4 コンソール画面
【コンソール画面】

■共通操作
右クリックで画面を非表示にします。
右ボタンを押しながら左クリックで、今向いている方向にGUIを移動します。
余白を左ダブルクリックでファイル選択画面を表示します。
■File
ファイル選択画面を表示します。
余白を左ダブルクリックしてもファイル選択画面を表示することができます。
■Seekbar
再生位置を移動します。
ホイール操作で指定秒送り、戻しができます。
■Console
左から、「前のファイルを再生」、「再生停止」、「再生開始」、「一時停止」、「次のファイルを再生」。
右ボタンを押しながらホイール操作でも前のファイル、次のファイルを再生することができます。
■Screen
VR動画にとって重要なスクリーン形状とレイアウト(サイドバイサイドなど)の設定です。
ここではスクリーン形状とレイアウトをセットにした「プリセットアイコン」から選択します。
また、この設定は動画ファイルごとに保存されます。
プリセット | 説明 |
2D | 通常の動画用の設定です。フラットなスクリーンに左目と右目で同じ映像を投影します。 |
3D SbS | 3D動画用の設定です。フラットなスクリーンに左目用と右目用の映像を投影します。レイアウトはサイドバイサイドです。 OU(Top and Bottom)については拡張コンソール画面で設定します。 |
180 SbS | 180度VR動画用の設定です。180度の半球スクリーンに左目用と右目用の映像を投影します。レイアウトはサイドバイサイドです。 |
180 OU | 180度、OU(Top and Bottom)レイアウトです。 |
360 OU | 360度VR動画用の設定です。360度の全球スクリーンに左目用と右目用の映像を投影します。レイアウトはOUです。 |
F-Eye | 魚眼(Fish Eye)用のスクリーンに左目用と右目用の映像を投影します。レイアウトはサイドバイサイドです。 |
■More
拡張コンソール画面を表示します。
■Volume
音量を設定します。
■Camera Reset
カメラ位置の設定(ズームおよびカメラ位置上下左右)をリセットし、カメラ位置を球体の中心にします。
視聴中に左ボタンを押しながらホイールボタンをクリックするのと同じ働きです。
【拡張コンソール画面】

■Player Information
スクリーン形状等、現在のプレイヤーの情報を表示します。
[スクリーン形状] - [レイアウト] / [ステレオモード] / [カラー] / [テロップ]
■Screen Type
スクリーン形状の設定です。
スクリーン 形状 | 説明 |
2D | フラットなスクリーンに映像を投影します。 |
180 | 180度の半球スクリーンに映像を投影します。 |
360 | 360度の全球スクリーンに映像を投影します。 |
F-Eye | 魚眼スクリーンに映像を投影します。 |
■Image Layout
3D映像の分割レイアウトの設定です。
レイアウト | 説明 |
2D | 映像は一つで左目と右目で同じ映像を投影します。(VR動画でもパノラマ系は2Dとなります) |
SbS | 左目用と右目用の映像が左右に配置されている場合に選択します。 |
OU | 左目用と右目用の映像が上下に配置されている場合に選択します。 |
■Stereo Mode
左目と右目に表示する映像を選択します。
通常は左目に左目用の映像、右目に右目用の映像を表示するので「L-R」を選択します。
左右が逆に配置されたコンテンツの場合は「R-L」を選択します。
3D映像の視差が合わず見難い場合や、人物が小さく見える場合は「L-L」または「R-R」を選択します。ただし、左目と右目で同じ映像を見ることになるので立体感は無くなります。
■Camera Pitch
通常は球体の中心に左目用と右目用のカメラを配置します(2台のカメラが同じ位置になります)が、3D映像の視差が合わない場合に意図的にカメラの位置をずらすのがカメラピッチです。
数値を大きくすると左目用のカメラが左へ、右目用のカメラは右へ移動します。
マイナスにすると左目用のカメラが右へ、右目用のカメラは左へ移動します。
四角をクリックすると初期値に戻ります。
■Color Conversion
YUVをRGBへ変換する方式の設定です。
通常は「BT.709 LM」を選択します。白飛びする場合は「BT.709 FL」にすると白飛びを軽減できます。
「LM」はリミテッド、「FL」はフルレンジとして処理します。
■Telop
ビデオファイルの再生開始時にファイル名等のテロップ画面を5秒間表示します。
OFFにすると何も表示しなくなります。
「Setting」をクリックするとテロップ画面の右端にGUI Positionが表示されますので、テロップ画面の表示調整ができます。
■GUI Position
コンソール画面の表示位置と大きさを調整します。
■Performance
HMD(ヘッドマウントディスプレイ)の処理の実リフレッシュレートと再生中の動画の実フレームレート、および表示処理が間に合わずに意図的に捨てた画像数を表示します。
HMDのリフレッシュレートは機種により変わる可能性がありますが、多くの場合90Hzのようです。
主に、ビデオカードの処理能力不足の場合にリフレッシュレートが低下します。
主に、CPUの処理能力不足の場合にフレームレートが低下します。
主に、シーク操作やビデオカードの処理能力不足の際にドロップが増えます。
アマレコVR その3 機能・操作編
なお、アマレコVRはマウスによる操作が基本となります。
これは、マウスのホイール機能やドラッグ操作がメディアプレイヤーの操作にマッチしている為です。
(最初のバージョンはマウス専用を予定、モーションコントローラーでは操作はできない)
機能 | 操作 |
指定秒送り、戻し | ホイール |
シーク操作 | 左ドラッグ |
次のファイル、前のファイルを再生 | 右ボタンを押しながらホイール |
今向いている方向を正面にする | 右ボタンを押しながら左クリック |
上下、左右にスクリーンを回転 | 右ドラッグ |
ズーム操作 | 左ボタンを押しながらホイール |
上下、左右にカメラを移動 | ホイールボタンを押しながらドラッグ |
カメラ位置のリセット | ホイールボタンを押しながら左クリック または、左ボタンを押しながらホイールをクリック |
コンソール画面を表示 | 左クリック |
ファイル選択画面を表示 | 左ダブルクリック |
【メディアプレイヤーとしての基本機能】
VR動画に限らず一般的なメディアプレイヤーとして重要な基本操作です。
■指定秒送り、戻し
初期状態で10秒送り、3秒戻しとなっています。環境設定用のユーティリティソフトで変更可能です。
■シーク操作
左ボタンを押したまま左右にマウスを一定量動かすとシークバーが表示されるので
目的の位置まで移動させて左ボタンを離すとシークします。
左ボタンを押している最中に右ボタンを押すとシーク操作をキャンセルします。
■次のファイルを再生
右ボタンを押しながらホイールで次のファイルや前のファイルを再生します。
【VRプレイヤーとしての基本機能】
VR動画を視聴するのに必須と思われる機能です。
■今向いている方向を正面にする(視点リセット)スクリーン回転
右ボタンを押しながら左クリックすると今、向いている方向(左右上下)を正面とします。
これがVRプレイヤーにとって最も重要な機能だと私は思います。
左右方向のみで上下の設定ができなかったり、コントローラーのボタンに機能が割り当てられてなく、GUI上のボタンを押す必要があるなどだと厳しいと感じました。
もっと言うと、その方向を向くことすら無理な体勢を強いられる場合がありますので、任意の方向へスクリーンを回転できると便利です。
アマレコVRでは右ボタンを押しながら左右上下にマウスをドラッグすることで、スクリーンをいつでも回転することができます。
ちょっと動かし過ぎて元に戻したくなったら、右ボタンを押したまま左クリックすればいつでも今向いている方向が正面になります。
これらにより、正面を向いたまま、真後ろや真上、真下の映像を無理な体勢をとらずに簡単に見ることができます。
■ズーム操作
カメラの位置を移動させてスクリーンに近づいたり、遠ざけることで、大きく迫力のある映像で視聴したり、引いて広い視野で見渡すことができます。
またVR(3D映像)固有の問題として視差が合わず二重に映像が見えてしまう場合にも、スクリーンから離れることで緩和することができます。
【VRプレイヤーとしての応用機能】
■カメラ移動
もうちょっと上とか、もうちょっと下を見たいけど角度は変えたくない場合にマウスのホイールを押しながらドラッグすることで
いつでもカメラを上下左右へ移動することができます。ただし、大きく移動すると画像が歪むため気休め程度の機能です。
動かしすぎて元に戻したいときは、ホイールを押したまま左クリックか、左ボタンを押しながらホイールをクリックします。
マウスに機能を詰め込んだため、操作は複雑ですが、簡単に言うと、右ボタンを押しながら〇〇でスクリーンの回転、左ボタンとホイールでカメラ位置の移動ができます。
使い方をマスターしてしまえば画面にGUIを表示せずVR映像を見ながらリアルタイムで操作できることから、快適性と没入感の両面で効果を発揮すると思います。
マウスを使ってアマレコVRを操作した瞬間、ほかのVRプレイヤーとは違うと感じて頂けるのではないでしょうか。
逆に、モーションコントローラーで操作したら、ほかのVRプレイヤーとあまり変わらないかもしれません。
アマレコVR その2 DirectShow準備編
そこで、今回はアマレコVRの開発で使ったフィルターとそのセットアップ方法を紹介します。
なお、アマレコVRは64bitアプリケーションとなるため、必要となるDirect Showフィルターも64bit版となります。
1.おすすめのフィルター
LAVFilters Ver 0.71
https://github.com/Nevcairiel/LAVFilters/releases
LAVFilters-0.71-Installer.exe をダウンロードしてインストールします。

この中でアマレコVRが使うのは以下の2つです。
・LAV Video (x64)
・LAV Splitter (x64)
これらLAV Filtersをインストールすることでh.264やh.265と言った現在主流の動画ファイルを一通り再生できるようになると思います。
2.再生確認
アマレコVRには環境設定用のユーティリティソフトが同梱されています。
このユーティリティソフトに動画ファイルをドラッグ&ドロップすると、デスクトップ上で簡易再生が始まり、再生に使っているDirect Showフィルターの確認ができます。
もしLAV Filters以外のフィルターが使われていた場合はそのフィルターをそのまま使い続けてもいいですが、次の「デコードフィルタの優先権」の設定によりLAV Filtersにすることができます。
簡易再生

一番下のkrkr_60fps.mp4と表示されているのがLAV Splitterです。これは問題ありませんが、下から2番目のビデオデコーダーにFFDShowが使われています。
これをLAV Video Decoderになるように設定します。
なお、Graph Editで確認するとこうなっています。

3.デコードフィルタの優先権の設定
従来のDirect Showにおいて、どのフィルターを優先して使うかはDirectShowフィルターのメリット値で管理していましたが、
現在はOSの管理により特別に優先するフィルターを決められるようです。
なので、ここではPreferred Filter Tweaker v6.3を使ってLAV Filtersを優先的に使うように設定します。
https://www.codecguide.com/windows7_preferred_filter_tweaker.htm
「Preferred decoders」を選択します。

64bit デコーダーのH.264等、利用したいビデオデコーダーを一通り「LAV Video」に設定します。

最後に下部にある「Apply」ボタンを押して確定します。
もし、今まで再生できていた動画が再生できなくなったり画質が低下したなど、不都合が生じた場合は、「Reset」ボタンを押すか、デコーダーを「Microsoft」に設定すればPCの初期状態に戻ると思います。
これでアマレコVRユーティリティでの簡易再生もLAV Video Decoderが使われるようになります。

【注意】

アマレコVRは画像フォーマットとしてYUY2およびNV12を使います。
なので、LAV Video Settingsの出力フォーマットの「NV12」と「YUY2」は必ずONにしてください(初期状態でONなのでいじらない)。
アマレコVR その1 概要
先日Twitterで発表したアマレコVRの概要を紹介します。
アマレコVRはVR動画を快適に視聴することを目的とし現在開発しているアプリケーションで、2D、3D、180度、360度、およびFish Eye方式の動画に対応しています。
開発の中心はUnityでメディアプレイヤー部分はDirect Showとなります。
最初に公開するバージョンはSteamVR版となりますのでWindowsMR、Oculus Rift等で利用できます。
当面は実験的意味合いの強い内容となり、公開はこのブログにて4月下旬を予定しています。