はじめに
この記事は、
Unreal Engine 4 (UE4) 其の弐 Advent Calendar 2015の8日目の記事です。
…アドベントカレンダーの担当日、もっとバラけさせれば良かった(;´∀`)qiita.com
今回は、↓の@junyashさんが紹介していたスレッドに載っている
HMDに関するコンソールコマンドについて書きます。
(いつもありがとうございます!)
How to build for Oculus Rift | Unreal | Oculus VR Forums
ちなみにOculus Rift向けのUE4のコンソールコマンドはこちらが詳しいです。
https://t.co/kFA14ATjDt https://t.co/jbkHpKyUGi
— シモダジュンヤ Jun Shimoda (@junyash) 2015, 11月 7
ついでに、公式ドキュメント・Wikiのリンクも載せときます
Unreal Engine | VR 虎の巻
Oculus Rift - Epic Wiki
※
今回載せている内容は、エディタでVR Previewを実行した状態での挙動です。
実行ファイルでは異なる挙動をする可能性があります。ご注意下さい。
hmd [enable|disable]
HMDデバイスの有効/無効を切り替えます(そのまま)。
無効状態にすると「stereo on」にしてもステレオ描画に切り替わらないので、
優先度はこちらの方が上。デバイスの無効化なので、当然といえば当然ですね…。
hmd qahead [on|off]
Oculus SDKの「Queue Ahead」機能の有効/無効を切り替えます。
「Queue Ahead」機能は、GPU処理と平行してCPUを動作させる機能です。
詳しくは↓の記事で。あと、公式ドキュメントも。
Oculus SDK最新版でCPUの先行並列処理に対応 〜CPUの処理開始が2.8msec早まる - PC Watch
Developer Center — Documentation and SDKs | Oculus
…(;´∀`)
(0.7, 0.8のリリース情報に対応した的な文章ないけど、どうなっているんだろう?)
↓
試しにOFFって見た所、頭を回した時にカクつきが生じたので、
少なくとも、「0.8では、Windows10 + nVidiaグラボでQueue Aheadは動いている」ようです。
hmd pd [0.01~1]
中心のピクセル描画密度を変更するコマンドのようです(デフォルト:1)。
試しに「hmd pd 0.1」を使ってみました。ボケボケです。
(コンソールコマンドの入力ウィンドウもボケて、地味に困りました)
高速化効果があります。
hmd sp [30~300]
皆大好きな「hmd sp」コマンドです。
描画解像度を変更します(デフォルト:135)。
手っ取り早く大幅に高速化できますが、
個人的には最後の手段にした方が良いと思います。
ついつい「hmd sp」コマンドで浮いた処理時間に別の処理を入れて、
実際にデモる時に処理に余裕がなくなって死ぬことがあるので…。
hmd mirror [on|off]
ウィンドウへのミラーリングの有効/無効を切り替えます。
無効にした場合、PCモニタ上でのウィンドウに表示が反映されなくなります。
(コマンド実行時の状態でフリーズしたような見え方)
高速化効果があります。
また、待機列で並んでいる人たちへのネタバレ防止に使えたりします。
(デジゲー博の展示では、最後のオチの部分で使ってました)
hmd mirror mode [0|1|2]
ミラーリングの形式を切り替えます。↓こんな感じ。
ステレオ表示ではない「2」がデモ展示と相性が良さそうですが、
横に引き伸ばされているので、かなり見栄えが悪くなります。
個人的には、「1」がデモ展示に適しているかと思います。
樽型歪みが入る前なので、綺麗に見えますし。
(非ステレオで引き伸ばされてない奴欲しい…Unityみ(禁則事項です))
hmd vsync [on|off|reset]
vsync設定の有効/無効、リセットを行います。
stereo e=[0~]
IPD(瞳孔間距離, 両目の間隔)を調整します。単位は、メートルです。
なので、日本人成人男性の平均であるIPD:64.1の場合だと「stereo e=0.0641」
ちなみに、「stereo e=0」を使うと視差がなくなります。
つまり、立体視がない表示になります。
目の疲れの軽減、ピントが上手く合わない方に適しているかもしれません。
stereo w2m=[]
World Settingsで設定可能な「World to Meters」を変更します(デフォルト:100)
つまり、現実空間とUE4上での距離の扱い方を調整できます。
高い値に設定した場合、UE4上での表示物が小さく見えます。
また、ポジショントラッキングによる移動量も大きくなったように感じます。
このパラメータを使うことで、ジオラマ的な見え方を演出することができます。
あと、World to Metersの変更用ノードが用意されていたりします。
コマンドよりもこっちを使ったほうがいいかも。
stereo ncp= fcp=
ステレオ描画時のnear clipとfar clip設定を上書きします。
単位は、センチメートルです。
near clipとfar clip設定により、カメラからの距離に応じた
描画する範囲を変更することができます。
高速化する上で有効な手法ではありますが、遠方にある背景が表示されなくなる等の
問題が発生する可能性があるので、調整は慎重に。
stereo reset
「stereo e」「stereo w2m」「stereo ncp」コマンドで
変更したパラメータをリセットします。
hmdpos reset []
HMDの位置をリセット、ヨー方向の向きを指定した値でリセットします。
「hmdpos reset」によるリセット処理は、専用のノードが用意されています。
コマンドよりもこっちを使ったほうがいいかも。
hmdmag [on|off]
HMDの磁気センサーの有効/無効を切り替えます。
無効にした直後は特に変化はありませんが、時間が経つに連れ、
誤差によるドリフトが生じてくる…と思います(未検証)。
offにすることは無いと思います。
hmdmag show
現在の磁気センサーの状態をログに出力します。
( ´∀`)
hmd grid
グリッド表示を有効にします。
表示中に同じコマンドを使用すると、表示が消えます。
グリッド表示にはベクション軽減効果があるので、
とても酔い易い人・場面には使ってもいいかもしれません。
hmddbg showcamera [on|off]
ポジショントラッキング範囲をデバッグ表示します。
範囲内にカメラがある時は緑色、範囲外の時は赤色の線で表示されます。
…少し線が細いので、線の太さを設定できるとありがたいかも
hmddbg cubes [on|off]
キューブを大量にデバッグ表示します。
これ、Unityで見たことあるやつだ!
hmd updateongt [on|off]
update-on-gamethread modeの有効/無効を切り替えます。デバッグ用(直訳)。
無効にすると、ヘッド・ポジショントラッキングが反映されなくなります。
HMD上での表示は更新されるので、コントローラなどを使ったカメラ操作は有効です。
hmd updateonrt [on|off]
update-on-renderthread modeの有効/無効を切り替えます。(直訳)
レイテンシ(遅延)を軽減させる為のモードなので、
無効にする必要はないかと思います。
hmdversion
使用しているUE4とOculusSDKのバージョンを表示します。
エディタ上で使うのではなく、実行ファイル上で使用することを
目的としたコマンドだと思います。
uncapfps
恐らくですが、
ProjectSettingsのSmoothFrameRateによるfps制限を解除するコマンドです。
(今回の検証環境はシンプルなので、効果が分からなかった)
スレッドで紹介されてたけど、動作しなかったコマンド
- stereo toggle
- hmd mirror toggle
- hmdpos enforce
- hmddbg showcamera toggle
- hmddbg cubes toggle
最後に
とりあえず、今の所確認できたHMD用コンソールコマンドについて
ざっくりと解説しました。
参考にしたスレッドが2014年のものなので、もしかすると
もっとコマンドが増えているかもしれません…(どこかで一覧確認できないかな…)
新しいコマンドを発見した際は、是非共有して頂けると助かります!
明日は、
@HogeTatuさんによる「UE4でお仕事がしたくて転職した話を書きます」です!
このタイミング、まさか狙って…!mogurapr.hatenablog.com