0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenVRでオーバーレイを作る際のメモ(チュートリアルではない)

Posted at

はじめに

 バージョンは現状最新のOpenVR SDK 2.5.1を前提にします!
 今回使う言語はC++です!
 筆者はOpenVRとSteamVRの違いがよく分かりません!(OpenVRでVR_Initしたら、自動でSteamVRに繋がる...?)

SteamVRに接続

vr::EVRInitError error;
vr::VR_Init(&error, applicationType);

 第一引数でエラーを受け取って、第二引数でアプリの種類を指定します!
 applicationTypeオーバーレイを作る時に使う2つだけを紹介します!この2つ以外知らないので!!

  • VRApplication_Overlay オーバーレイを起動する際はこれで起動すれば良いはず!
  • VRApplication_Utility SteamVRにvrmanifestを登録する際はこれで良いみたい!多分!

SteamVRに登録

 実行ファイルと、vrmanifestというファイルがあれば登録が出来るようです!

vrmanifest

 vrmanifestは、拡張子が.vrmanifestならファイル名はなんでも良いのかな!多分!
 中身はこんな感じに書きましょう!

{
    "source": "builtin",
    "applications": [
        {
            "app_key": "<アプリキー>",
            "launch_type": "binary",
            "binary_path_windows": "<実行ファイルのパス>",
            "is_dashboard_overlay": true,
            "strings": {
                "en_us": {
                    "name": "<アプリ名>",
                    "description": "<アプリ説明>"
                }
            }
        }
    ]
}
  • アプリキー
     例:openvr.overlay.test
     アルファベット、数字とかをドットで区切ってる?
     他のアプリと被らなければなんでも良さそうです!多分!よくわからん!
     Steamからのアプリはsteam.overlay.<アプリID>のように書かれるようです!
  • 実行ファイルのパス
     相対パス可!
  • アプリ名
     SteamVRで表示されるアプリ名です!
  • アプリ説明
     どこに表示されるのか分かりません!
     VRオーバーレイでは使われてないのかも?

登録!

 vrmanifestファイルを用意出来たら登録してみましょう!

vr::EVRInitError error;
vr::VR_Init(&error, vr::VRApplication_Utility);

vr::VRApplications()->AddApplicationManifest(manifestFilePath);

 こんな感じ!ファイルパスは絶対パスじゃないと動かないようです!
 AddApplicationManifestの返り値としてエラーが取得出来ます!

登録を確認

 登録されたことを確認するには、筆者の知る限り2つ方法があります!

SteamVR内

 SteamVRを起動し、設定、スタートアップ/シャットダウンの一番上にあるスタートアップオーバーレイアプリを選択を押すと、登録されているVRオーバーレイ一覧を見られます!
 自動起動するかの設定もここで出来ます!
image.png

ファイルを直接確認

 appconfig.jsonを見れば、登録されているマニフェストファイルの一覧を確認出来ます!
 デフォルトのパスはC:\Program Files (x86)\Steam\config\appconfig.jsonです!

自動起動の設定

 SteamVRの起動と同時に自動で起動するように設定できます!

vr::EVRInitError error;
vr::VR_Init(&error, vr::VRApplication_Utility);

vr::VRApplications()->SetApplicationAutoLaunch(appKey, true);

 これで自動起動の設定が出来ます!
 第一引数は、型はchar*で、vrmanifestファイルに書いたapp_keyと同じ物を書きましょう!
 第二引数は、自動起動するかどうかなので、falseにすれば自動起動を解除出来ます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?