タグ機能とVR自動判定処理
ここではアマレコVRの強力なタグ機能について説明します。

アマレコVRには アマレコVR専用のタグ が用意されています。
タグは主にVRフォーマットの指定(180度のVR動画とか 3D動画など)に使います。
また、ファイル名へ既に含まれている他のアプリケーション用のタグを アマレコVR専用タグとして解釈する タグ置換機能や、VRフォーマットの自動判定 の設定を行うためのタグリスト (TagList.txt)があります。

1.タグリスト TagList.txt

アマレコVRサーバーのフォルダに TagList.txt があります。



メモ帳で開いて 内容を編集できます。





タグリスト コマンド 内容
#tag
タグ置換コマンド
【書式】
 #tag "文字列A" "文字列B"

【説明】
ファイル名に文字列Aが含まれていたら 文字列Bへ置換します。
他のアプリケーション用のタグを アマレコVR専用タグとして解釈したり 複数のアマレコVR専用タグを短い文字列 (自作タグ)で管理するのに使います。

【使用例】
 #tag "_sbs" "-layout[sbs] -screen[FishEye]"

ファイル名に "_sbs" が含まれていたら 左右に画像が並んだ円周魚眼のVR動画として扱うVRフォーマットタグへ置換します。
#vrf_size
VR自動判定 サイズコマンド
【書式】
 #vrf_size "画像サイズ" "VRフォーマット"

【説明】
ファイル名にVRフォーマットタグがなかった場合に 画像サイズ毎にVRフォーマットを指定します。

【使用例】
#vrf_size "3840x1920" "-layout[sbs] -screen[180]"

自動判定処理で 画像サイズが 3840x1920 の場合の設定 サイドバイサイド 180とします。
#vrf_ratio
VR自動判定 比率コマンド
【書式】
 #vrf_ratio "比率" "VRフォーマット"

【説明】
ファイル名にVRフォーマットタグがなく、且つ、画像サイズにも該当しない場合に 画像サイズの横縦の比率で VRフォーマットを指定します。

【使用例】
#vrf_ratio "2x1" "-layout[sbs] -screen[FishEye]"

自動判定処理で 画像サイズが 横2x縦1 の比率の場合の設定 円周魚眼とします。



【VR動画の画像サイズの規則性】

多くのVR動画では 画像サイズの比率(#vrf_ratio)と VRフォーマットの関係に 規則性があります。

例えば180度のVR動画であれば 横1 x 縦1 の正方画像が 左右に2枚並び 横2 x 縦1となります。


360度のVR動画であれば 横2 x 縦1 の横長画像が 上下に並び 2x2 (比率としては横1 x 縦1と同じ) となります。


ですので 多くのVR動画については 比率に対して VRフォーマットを定義すれば自動判定で適切な設定が可能です。


ただし、180度VR動画と円周魚眼VR動画の場合は どちらも同じ比率になるため 比率による区別ができません。
  (どちらも 正方画像が2枚並び 2x1となる)

この場合は、画像サイズ(#vrf_size)で区別しますが、同じ画像サイズで180度と円周魚眼の動画が存在する場合は やはり正しい判定ができませんので、最終的にはVRフォーマットタグで個別に指定することになります。

  • 多くの場合 画像サイズの比率(#vrf_ratio)で指定すればいい
  • 比率で誤判定されるものは 画像サイズ(#vrf_size)で個別に指定する
  • 同じ画像サイズで 異なるVRフォーマットが存在する場合は VRフォーマットタグ で個別に指定する(ファイル名へタグを入れる)しかない




【自動判定の戦略】

(1) 多く使うVRフォーマットの#vrf_ratioを定義する
【例】 円周魚眼を多く扱う場合
#vrf_ratio "1x1" "-layout[ou] -screen[360]"
#vrf_ratio "2x1" "-layout[sbs] -screen[FishEye]"

【例】 180度VR動画を多く扱う場合
#vrf_ratio "1x1" "-layout[ou] -screen[360]"
#vrf_ratio "2x1" "-layout[sbs] -screen[180]"

(2) 比率の定義に対し例外のものを #vrf_sizeで定義する
【例】 比率で円周魚眼を定義した場合は 例外となる180度VR動画の画像サイズを定義する
【例】 比率で 180度VR動画を定義した場合は 例外となる円周魚眼の画像サイズを定義する

(3) 1、2で定義しきれないものは ファイル名へ VRフォーマットタグ を入れて管理する



2.VRフォーマットの自動設定 (自動判定処理)

コンソール画面にある [自動]チェックボックスがONの場合は 動画ファイル再生時にVRフォーマットを自動設定(自動判定処理)します。
OFFの場合は動画ファイルを再生したときにスクリーン形状とレイアウトを変更しません。



ファイル名にVRフォーマットタグが含まれている場合は そのタグでスクリーン形状とレイアウトが設定されます。
VRフォーマットタグが含まれていない場合は自動判定処理となります。

自動判定処理では#vrf_sizeで定義した画像サイズと一致する場合 そのVRフォーマットとなります。
一致する画像サイズが定義されていない場合は#vrf_ratioで定義した画像比率のVRフォーマットとなります。
比率も一致しない場合はデフォルトの比率設定で判定し、それも該当しなかったら 最終的に形状:Flat、レイアウト:2Dとなります。



【動画再生時の VRフォーマット 決定 フロー】

 [自動] チェックボックスが OFF
YES
形状とレイアウトの設定を変更しない
NO    
ファイル名にVRフォーマットタグが含まれる 
YES
VRフォーマットタグの指定 
NO    
#vrf_sizeで定義した画像サイズと一致する 
YES
該当する #vrf_size の指定 
NO    
#vrf_ratioで定義した画像比率と一致する
YES
該当する #vrf_ratio の指定  
NO     
デフォルトの画像比率と一致する
YES
デフォルトの画像比率 の指定 
NO     
形状:Flat
レイアウト:2D
   





3.アマレコVR専用タグ 一覧

主にVRフォーマットを指定するのに使われるタグですが、VRフォーマット以外にも メインスクリーンの位置や 2D動画のアスペクト比、色調整などアマレコVRの様々な機能を動画ファイルごとに管理することができます。

【共通書式】
 -コマンド[パラメータ]



タグリスト コマンド 内容
-layout[ou]
VRフォーマットタグ
画像レイアウト
画像レイアウトを指定します。省略された場合は2d
2d : 通常の2D動画、または360パノラマ動画、立体視でない動画
sbs: 左右に画像が並んだサイド・バイ・サイド3D動画、VR動画
ou : 上下に画像が並んだオーバー・アンド・アンダー3D動画、VR動画
-screen[360]
VRフォーマットタグ
スクリーン形状
スクリーン形状を指定します。省略された場合はFlat
Flat : 平面のスクリーン
180 : 180度 半球状スクリーン
360 : 360度 全球状スクリーン
FishEye: 円周魚眼スクリーン
-aspect[w16h9]
アスペクト比
Flatスクリーンの場合の横縦の比率を指定します
w(数値) : 横のサイズ
h(数値) : 縦のサイズ
-yuv[limited]
YUVレンジ
YUV・RGB変換時のレンジを指定します。 省略した場合は アプリ側の設定値
limited: リミテッドレンジとして扱う
full: フルレンジとして扱う
※ Ver2.0.0 現在 このタグのあるファイルを再生すると アプリ側の設定が変更されてしまうので注意
-cr[l0r0t0b0]
画像のクロッピング
 画像のクロッピングを指定します。黒帯や画像端の乱れた映像部分をカットする場合に使います。
l(数値) : 画像の左端をカットする(%)
r(数値) : 画像の右端をカットする(%)
t(数値) : 画像の上側をカットする(%)
b(数値) : 画像の下側をカットする(%)
-eye[swap]
立体視設定
立体視の画像を指定します
swap : 左右の画像を入れ替える
left : 左目用の画像を両目に表示する (立体視になりません)
right : 右目用の画像を両目に表示する (立体視になりません)
normal : 左目用の画像を左、右目用の画像を右へ表示する
-mspos[x0y0z0]
メインスクリーン位置
メインスクリーンの位置を指定します。
x(数値) : X座標
y(数値) : Y座標
z(数値) : Z座標
-msstereo[0]
ステレオ調整
メインスクリーンのステレオ調整を指定します。
(数値) : ステレオ調整値
-color[gr0gg0gb0gx0or0og0ob0ox0]
カラー調整 
画質調整のカラーを指定します。
ゲインは0から200、100が標準
オフセットは-100から+100、0が標準

gr(数値) : 赤のゲイン
gg(数値) : 緑のゲイン
gb(数値) : 青のゲイン
gx(数値) : RGBのゲイン
or(数値) : 赤のオフセット
og(数値) : 緑のオフセット
ob(数値) : 青のオフセット
ox(数値) : RGBのオフセット