アマレコVR gQuest Pico Ver1.40 ベータ版公開 90Hz対応 ボタンのカスタマイズなど
また、不具合修正多数を含んでいます。特にアマレコVR サーバーは長いファイル名やフォルダ名で生じる致命的な不具合を修正(Ver1.32aと同じ内容)していますので、Ver1.30以下を使っている場合は今回のVer1.40を使うようにしてください。
1.更新内容
・Oculus Quest 2の90Hzへ対応しました
・メイン画面設定を追加しました
・ボタン設定を追加しました
・正面ロック機能を追加しました
・左右の画像を入れ替えるEye設定を追加しました
・クロップ機能を追加しました
・デバイス音量設定を追加しました
・サブ画面表示/非表示を追加しました
・サブカメラの映像ソースを左右選べるようになりました
・180度,360度スクリーンのポリゴン分割数を4倍に増やしました
・フォルダの並びをWindowsの名前順でソートするように変更しました
・ファイル名のグループ化機能を追加しました
・VRコントローラーの操作性を改善しました(ポインターのブレ、スクリーンの移動操作でガクガクする、正面へ向けて操作する必要があった等改善)
・ダブルクリック判定の仕様変更と、トリガー2回でファイル画面を表示するようになりました
・ホームボタンの長押しで正面リセットするようになりました
・バッテリー低下警告、効果音の設定、UI画面表示位置の設定を追加しました
・ファイル再生時に ファイル名を5秒間表示するオプションを追加しました
・PCマウスのホイール回転方向を逆にするを追加しました
・VRFormat.txtを廃止しTagList.txtへ変更、VRフォーマット判定処理の設定を追加しました
・アマレコVR専用タグを追加しました
・お気に入りリストに登録されているファイルと同じファイル名のファイルを変更した際に、パスが異なる場合も、お気に入りリストのファイル名を変更するようになりました
・タイムスタンプ揃えを廃止(ファイル名のグループ化で代用)
・90度以上横を向いて PCマウスで操作すると 操作不能に陥る不具合を修正しました
・フォルダ移動のメモリ機能が保存されない不具合を修正しました
・ファイル名のタグ挿入を大量に行っている最中に ファイル画面を閉じると処理が止まり通信できなくなる不具合を修正しました
・ワードリストを一度使うと タグ挿入やフォルダ作成をキャンセルした場合に 最後に使ったワードでタグの挿入やフォルダ作成がされてしまう不具合を修正しました
・ファイル名編集の「前後にスペースを挿入する」がOnの場合に 挿入する文字列の最後が半角スペースだと スペースが2重に挿入されてしまうのを修正しました
【アマレコVR Pico】
・リモコンの音量ボタン、本体にある音量ボタン、OKボタン、Returnボタンへ任意の機能を割り当てられるようになりました
・60fps動画再生時の欠落フレームを改善しました
・サブプレイヤーで3D動画の立体視ができないのを修正しました
【アマレコVR サーバー】
・通信プロトコル更新(140) 通信プロトコル130と互換性あり(上位互換)
・長いファイル名やパス(全角80文字程度)を再生するとサーバーが落ちる不具合を修正(Ver1.32aと同じ)
・サーバーのドライブ情報取得処理でエラーが発生すると残りの正常なドライブの情報を取得できなくなっていたのを修正
・サーバー 接続時にキーボードフォーカスを得るを追加
・ファイル名のグループ化の設定を追加
2.関連記事
アマレコVR Ver1.40 その2 ボタン設定
アマレコVR Ver1.40 その3 ボタン機能一覧
アマレコVR Ver1.40 その5 ボタン機能 プレイヤー切替
アマレコVR Ver1.40 その6 TagList.txt
3.主な説明

「再生時ロード」を追加しました。
メイン画面設定詳細
■コンソール画面

正面ロック機能
チェックボックスをOnにするとメイン画面で2D、3D動画(スクリーン形状がFlatのもの)視聴時にどこを向いても正面へスクリーンが移動するようになります。
サブカメラの映像ソース
CLで左目用の映像をサブカメラで映します。CRで右目用の映像をサブカメラで映します。
クロップ機能
画像の上下左右をそれぞれカットして黒帯やアナログ映像の乱れなどを見えなくします。
「タグ挿入」でクロップタグをファイル名へ追加します。
「確認」ボタンを押すと、押している間クロップが一回り大きくなります。ギリギリのところでクロップ出来ているかの確認に使います。
■フォルダの並びをWindowsの名前順でソート

文字コード順ではなく数値の大小でソートするようになりました。
■ファイル名のグループ化
ファイル名の中に'#(数値)'が含まれていた場合に、#までの文字列が一致するファイルをグループ化し数値の順番でソートします。
タイムスタンプや日付でソートした場合に同じ番組名や 複数のチャプターに分かれたファイルが タイムスタンプが異なりバラバラになるのを防ぐための機能です。
ファイル名でソートする場合は無効です。
サーバー側でグループ化を行うかどうかと、ファイル名に含まれるグループ化タグの設定ができます。

■設定画面:デバイス

デイスプレイ周波数
currentは現在の設定値、APPはアプリケーションのメイン処理のfps(1秒間の実行回数)
Oculus系ではcurrentの値がおそらく現在のディスプレイ周波数を示しています。
Pico系はおそらく72Hz(か75Hz)固定で、この設定に特に意味はなさそうです。61Hzを選択するとAppが61Hzになりますが、おそらくディスプレイ周波数は72Hz(か75Hz)のまま、欠落フレームが増えるだけなので基本72Hzを選択してください。
・Oculus Quest 2では90Hzを選択する
・Oculus GO、Oculus Quest 1、Pico G2では72Hzを選択する
■設定画面:プレイヤー

■アマレコVRサーバー Ver1.40 設定画面

接続時にキーボードフォーカスを得る
PCマウスのユーティリティソフトの設定でアプリケーションごとに機能を割り当てる場合に、アマレコVRサーバーへキーボードフォーカスないと困る場合にチェックボックスをOnとしてください。
通信プロトコルバージョン 1.40
プロトコルバージョン 1.30と上位互換(アマレコVR Ver1.30系とVer1.40で利用可)
アマレコVR Ver1.40はプロトコルバージョン 1.40以上のサーバーのみ利用可
4.ダウンロード
・アマレコVR gQuest Ver1.40
Oculus GO、Oculus Quest用
・アマレコVR for Pico Ver1.40
Pico G2 4K用
・アマレコVRサーバー Ver1.40
gQuest、Pico共通
アマレコVR Ver1.40 その6 TagList.txt
これに伴い、他のプレイヤーで既に使っているタグとアマレコVR専用タグの橋渡しを担うのがTagList.txtです。
また、従来VRFormat.txtで行っていたVR形式に関するタグもTagList.txtに統合されます(VRFormat.txtは廃止)。
加えて、VR形式が不明な動画ファイルに対しVRフォーマットを自動判定する処理もTagList.txtで設定することができます。
1.TagList.txtの役割
・VRフォーマットを定義する(※)
・VRフォーマットの自動判定処理の設定
※ VRFormat.txtとは書式が異なりますので、新しくTagList.txtの書式で定義しなおしてください(下記 #tagコマンドを使います)。
#tag [置換元文字列] [置換後文字列]
ファイル名に[置換元文字列]が含まれていた場合に、[置換後文字列]へ置換します。
他のプレイヤー用のタグをアマレコVR専用タグへ変換したり、VRフォーマットタグを定義します。
[例]
#tag "_sbs" "-layout[sbs] -screen[FishEye]"
ファイル名に "_sbs" が含まれていたら 左右に画像が並んだ円周魚眼のVR動画として扱うVRフォーマットタグへ置換します。
#vrf_size [画像サイズ] [VRフォーマット]
ファイル名にVRフォーマットタグがなかったり、VRフォーマットファイルによる指定がなかった場合に画像サイズ毎にVRフォーマットを指定します。
[例]
#vrf_size "3840x1920" "-layout[sbs] -screen[180]"
自動判定処理で 画像サイズが 3840x1920 の場合の設定 サイドバイサイド 180とします。
#vrf_ratio [比率] [VRフォーマット]
画像サイズにも該当しない場合に 画像の横縦の比率で VRフォーマットを指定します。
#vrf_sizeよりも広い範囲をカバーできますので、よく使うVRフォーマットを#vrf_ratioで定義し、同じ比率だけど異なるVRフォーマットの動画に対し#vrf_sizeで個別定義します。
[例]
#vrf_ratio "2x1" "-layout[sbs] -screen[FishEye]"
自動判定処理で 画像サイズが 横2x縦1 の比率の場合の設定 円周魚眼とします。
3.VRフォーマットの自動判定処理について
アマレコVR上でVRフォーマットを変更した場合はVRフォーマットファイルが作成されその内容が優先されます。
VRフォーマットファイルが無い場合は ファイル名に含まれるVRフォーマットタグとなります。
いずれにも該当しない場合はVRフォーマットの自動判定処理となります。
自動判定処理では#vrf_sizeで定義した画像サイズと一致する場合はそのVRフォーマットとなります。
一致する画像サイズが定義されていない場合は#vrf_ratioで定義した画像比率のVRフォーマットとなります。
比率も一致しない場合はデフォルトの比率設定で判定し、それも該当しなかったら最終的に2d、Flatとなります。
4.アマレコVR gQuest タグ一覧
;
; -layout[ou]
; VRフォーマットタグ 画像レイアウト ※ -layout[]と-screen[]は必ず一緒に記述してください。
; 2d : 通常の2D動画、または360パノラマ動画、立体視でない動画
; sbs: 左右に画像が並んだサイド・バイ・サイド3D動画、VR動画
; ou : 上下に画像が並んだオーバー・アンド・アンダー3D動画、VR動画
;
; -screen[360]
; VRフォーマットタグ スクリーン形状 ※ -layout[]と-screen[]は必ず一緒に記述してください。
; Flat : 平面のスクリーン
; 180 : 180度 半球状スクリーン
; 360 : 360度 全球状スクリーン
; FishEye: 円周魚眼スクリーン
;
; -aspect[w16h9]
; Flatスクリーンの場合の横縦の比率を指定する
; w(数値) : 横のサイズ
; h(数値) : 縦のサイズ
;
; -yuv[limited]
; YUV・RGB変換時のレンジを指定する 省略した場合は アプリ側の設定値
; limited: リミテッドレンジとして扱う
; full: フルレンジとして扱う
; ※ Ver1.40現在 このタグのあるファイルを再生すると アプリ側の設定が変更されてしまうので注意
;
; -cr[l0r0t0b0]
; 画像のクロップを指定する(黒帯や画像端の乱れた映像部分をカットします)
; l(数値) : 画像の左端をカットする(%)
; r(数値) : 画像の右端をカットする(%)
; t(数値) : 画像の上側をカットする(%)
; b(数値) : 画像の下側をカットする(%)
;
; -eye[swap]
; 立体視の画像を選択する
; swap : 左右の画像を入れ替える
; left : 左目用の画像を両目に表示する (立体視になりません)
; right : 右目用の画像を両目に表示する (立体視になりません)
; normal : 左目用の画像を左、右目用の画像を右へ表示する
;
; -mspos[x0y0z0]
; メインスクリーンの位置を指定する
; x(数値) : X座標
; y(数値) : Y座標
; z(数値) : Z座標
;
; -msstereo[0]
; メインスクリーンのステレオ調整を指定する
; (数値) : ステレオ調整値
;
以上
アマレコVR Ver1.40 その5 ボタン機能 プレイヤー切替

(1) プレイヤー切り替え(メイン・サブ)[効果音]
(2) [ダブクリ]プレイヤー切り替え[効果音]
(3) [長押]プレイヤー切り替え[効果音]
(4) [Drag]プレイヤー切り替え[効果音]
(5) プレイヤー選択(メイン)[効果音]
(6) プレイヤー選択(サブ)[効果音]
(5)と(6)の「プレイヤー選択」はそのボタンを押すことで確実にメインプレイヤーまたはサブプレイヤーを選択することができます。
ただし、ボタンを2つ必要とします。
(1)の「プレイヤー切り替え(メイン・サブ)」はボタンを押すたびにメインプレイヤーとサブプレイヤーが切り替わります(トグル動作)。
また、どちらに切り替わったかは効果音で識別できるようになっています。
1つのボタンで目的を達成できる点は優れていますが、今どちらのプレイヤーになっているかを把握していないと、
一度ボタンを押して、効果音を聞いて、目的のプレイヤーでなかったらもう一度ボタンを押す。といった煩わしさがあります。
(2)の「[ダブクリ]プレイヤー切り替え」はシングルクリックならメインプレイヤー。ダブルクリックならサブプレイヤーへ切り替えます。
1つのボタンで完結し、また、現在のプレイヤーを把握していなくても目的のプレイヤーを素早く選択できますので
ダブルクリックの操作に抵抗がなければお勧めです。
(3)の「[長押]プレイヤー切り替え」はボタンを押してすぐに離せばメインプレイヤー。0.5秒以上押し続けるとサブプレイヤーへ切り替えます。
一つのボタンで確実に切り替えることができますが、長押しの時間がやや煩わしいです。
(4)の「[Drag]プレイヤー切り替え」はボタンを押しながら右へドラッグする(ボタンを押してコントローラーを右へ振る)とメインプレイヤー。左へドラッグするとサブプレイヤーへ切り替えます。
どれくらい動かしたらいいか、ちゃんと切り替わったかどうかは効果音で判断できます。
VRコントローラーではお勧めです。
弱点はファイル画面やコンソール画面等ではドラッグ操作全般が無効なため、使えないことです。
※ Bluetoothのイヤフォンなどを使っていると、ボタンを押してから効果音が聞き取れるまでかなりの遅延が生じます。
とてもストレスになりますので、Bluetooth系のオーディオデバイスの場合は(1)の効果音を頼りに操作するのはお勧めできません。
アマレコVR Ver1.40 その4 変更
・メインスクリーン設定へ「Save」と「Load」を追加しました。
・「複数の動画ファイルへ同じスクリーン位置を設定する」を追記しました。

「その3 ボタン機能一覧」の変更
・機能を追加しました。
・シフト機能と「.X」付きの機能について変更しました。
シフト機能の仕様を変更したことで衝突しなくなりました。そのため「.X」の表記は廃止。
Oculus Quest 2が正式に90Hzに対応
今回のアップデートによりディスプレイのリフレッシュレート90Hzへ正式対応しています。
90Hzで動作するには各アプリケーションが個々に対応する必要があります。
android manifestへ下記を追加します
<meta-data android:name="com.oculus.supportedDevices" android:value="quest|delmar"/>
※ 最初の<を半角にしてください。
APIでリフレッシュレートを設定します
OVRManager.display.displayFrequency = 90.0f;
設定した後OVRManager.display.displayFrequencyの値が90になっていれば成功です
Debug.Log( OVRManager.display.displayFrequency );
詳しくはこちら
https://developer.oculus.com/blog/-oculus-quest-v23-how-to-update-your-app-for-90hz/
上記manifestの追加をしていないと(既存のアプリケーションだと)OVRManager.display.displayFrequencyを90にしても
OVRManager.display.displayFrequencyの値は元のままで変更されません。
アマレコVRではリフレッシュレートが上がるに連れ欠落フレームが軽減されるので今回のアップデートの効果が見て取れます。
アマレコVR Ver1.40もあと少しで完成、月末公開を予定しています。
アマレコVR Ver1.40 その3 ボタン機能一覧
先日紹介したメインスクリーン設定に関する機能もありますので、GUIを使わずコントローラーによる直接操作でズームなどが可能になります。
Oculus QuestであればZ座標の調整をコントローラーのポジショントラッキングで操作できますので、スクリーンを掴んで手前に引き寄せるといったことも可能です。

[2020.11.20更新]

[2020.11.30更新]

[ダブクリ]とついているものはボタンを一回押した場合と、二回押した場合とで異なる機能が割り当てられます。
[Drag]はボタンを押しながら上下左右へドラッグして位置などを調整します。
[Drag.X]はドラッグ操作中に他のボタンを押すとキャンセルやリセットなどができます。
[長押]はボタンを押して直ぐに離した場合と、0.5秒以上押し続けた場合とで異なる機能が割り当てられます。
[Quest]はOculus Quest専用の機能で、コントローラーのポジショントラッキングを使って3次元の位置を調整します。
■ダブルクリックについて
タッチパッド、およびスティックへ[ダブクリ] の機能を割り当てた場合、パット(スティック)を触ったままだと全てクリック扱いとなり、ダブルクリックとは判定されません。
ダブルクリックをするにはパッド(スティック)から指を離してから二回目のクリックをしてください。
これにより「[ダブクリ] 送り : 次再生」などで指定秒送りを頻繁にしていたら次のファイルが再生されてしまう誤操作を防ぐことができます。(クリックの連打とダブルクリックを使い分けることができる)
Oculus Questのグリップボタンを押しながら他のボタンを押すシフト機能で「.X」付きの機能を使うと、ドラッグ操作中に他のボタンを押す操作と衝突します。
使えないことはありませんが、使い難かったり、分かりにくいのでシフト機能へ「.X」の機能を割り当てるときは注意してください。
シフト機能の仕様を変更したことで衝突しなくなりました。そのため「.X」の表記を廃止しました。
各機能についてはツールチップが表示されますので、そちらを見てください。

アマレコVR Ver1.40 その2 ボタン設定
Ver1.40では使えるボタンの数が増え、ボタン毎に機能を割り当てることができるようになりますので、GUIを使わない直接操作が大幅に強化されます。
■ボタン設定
本体やPico G2のリモコンについている音量ボタンに関する設定です。

「音量ボタンへ機能を割り当てる」をOnにするとデバイスの音量調整の代わりに、様々な機能を割り当てることができます。
デバイスの音量調整はコンソール画面の下の方のボタンで代用してください。

■ボタン設定 VRコントローラー
各VRコントローラーのボタンに関する設定です。

基本的にはトリガーと戻るボタン、タッチパット(スティック)の上下左右で操作します。
トリガー以外の設定が可能です。
Oculus Questではさらに A/Xボタン、グリップボタン、スティックを押した場合の3つ、
Pico G2では本体についているReturnボタンとOKボタンへ機能を割り当てることができます。
また、Oculus Questではグリップボタンを押している間 他のボタンの機能を変える「シフト機能」が使えます。
■ボタン設定 PCマウス
PCマウスのボタンに関する設定です。

センターボタンの他に、A,B,CとX,Y,Zの6つオプションボタンを追加できます。
オプションボタンへはPCマウスのユーティリティソフトの設定の「キーストロークの割当」からキーボードのAキーやBキー、Cキー、Xキー、Yキー、Zキーを設定してください。

可能であればPCマウスのサイドボタンへAキーとBキーを設定してください。
オプションAとオプションBでは「シフト機能」を使って、左ボタン、右ボタン、ホイールの機能を変更できます。
サイドボタンの2つを追加するだけでも8つの機能を割り当てられますので、PCマウスを是非ご活用ください。
アマレコVR Ver1.40 その1 メインスクリーン設定
現在開発中のアマレコVR Ver1.40で追加されるメインスクリーン設定を紹介します。
VR動画や2D、3Dを表示する画面についての設定です。VR空間内のどこに表示するかの位置設定と、右目と左目用の画像の表示位置を調整できます。
位置設定のZをカメラへ近づけると画像が大きく見えます(ズームと呼ばれる効果)。「タグ挿入」でファイル名へ位置情報のタグを追加します。動画ファイルごとに異なる位置へ設定することができます。
タグが無い場合は原点へ戻ります。
通常は動画ファイルを再生した際にスクリーンの位置が原点へ戻りますが、原点以外のスクリーン位置を指定したい場合はその位置で「Save」してください。
セーブすると、動画ファイル再生時やボタン機能のキャンセル操作で原点ではなく最後にセーブした位置へ移動するようになります。やっぱり原点へ戻るようにしたい場合は、「リセット」してから「Save」します。
動画ファイル再生時に位置を維持したい場合は「再生時ロード」のチェックボックスをOffにしてください。
また、動画ファイルごとに位置を変えたい場合は「タグ挿入」で動画ファイル名へスクリーン位置のタグを埋め込むことができます。動画ファイル名にタグがあると再生時に指定した位置へ移動します。
タグ例 "-mspos[x0y0z100]" 動画ファイル再生時に スクリーンをカメラへ近づけます
複数の動画ファイルへ同じスクリーン位置を設定したい場合は、
(1) 一つ目の動画ファイルへタグを挿入
(2) アマレコVRのファイル画面を表示して (1)で挿入したタグ部分を選択
(3) タグを挿入したい動画ファイルを(複数)選択
(4) 右側にある「タグ挿入」ボタンから (2)で選択したタグをまとめて挿入
「Stereo調整」は立体視の際に人物が2重に見える場合や、大きく感じる、小さく感じる場合に調整します。
「タグ挿入」でファイル名へStereoタグを追加します。
タグが無い場合は最後にSaveした値を読み込みます。
「粗く調整する」をOnにすると10単位で調整します。