Amazon 初売り

« HDMI 入力を Nreal Light や Nreal Air に出力するよう変換するコネクタ Wacom Link Plus ACK42819 について(まとめ) | トップページ | 接続されている Nreal グラスが Nreal Light か Nreal Air かを判定する »

2022.08.12

NRSDK 1.9.3 で実行中プログラムの見た目を録画ができた! ユニティちゃんが動いてます!(まとめ)

| |コメント (0)

 このエントリーをはてなブックマークに追加

どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)

中々うまく動かなかった Nreal Light で実行中のプログラムの録画ができました!

結論から言うと、NRSDK 1.9.3 にしたらできたので NRSDK 側の問題であったっぽい。

NRSDK 1.80、1.9.1 でビルドすると、キャプチャした動画ファイルが 0 バイトで出力されて長いこと困っていました。

NRSDK 1.9.1 と 1.9.3 の比較」記事を書くためにNRSDKのソースを調べていたところ、動画キャプチャに関する修正が入っているのを発見。

NRSDK 1.9.3 でビルドしたところ録画できるようになりました。

 

この記事は、NRSDK の動画キャプチャ関連記事をまとめたものになります。

関連記事は、ちょっとずつ書いていたので4つの記事に分割されていました。

うまく動かん!という記事も複数書いていました。

そこで、うまくいった手順の記事へリンクしようと思ったんだけど、関連する全記事にリンクを張るより、まとめた1記事にリンクを張りたかったのよね(;^_^A

ようやく録画できた

なお、録画ができるようにはなったものの動きは不安定である。

不安定なのは録画機能だけじゃなく、通常の動きも何か怪しげ…

表示位置がちょっとずつズレていくのよね…

もしかしたら長い時間の録画が失敗するのかもしれないが、なーんか動きが不安定なのだ。

まぁ、何にせよ、録画が動くようになったから、今後はこんなのを作っているよ、という記事を書きやすくなると思う。

NRSDK の RGBCameraRecord というサンプルを少し変更して録画しています。

Nreal グラスの動画キャプチャサンプルを変更

1.シーン「Assets/NRSDK/Demos/RGBCamera-Record」を開く。

動かすと NReal のロゴがクルクル回転している後ろで動画が再生されて、手前に録画操作をするパネルがある感じです。

2.本来は、これをビルドして実行すると動作を確認できるのですが、スクリプトの動画出力先を修正します。

修正対象のスクリプトの場所「Assets/NRSDK/Demos/Record/VideoCapture2LocalExsample」を開く。

        public string VideoSavePath
{
get
{
string timeStamp = Time.time.ToString().Replace(".", "").Replace(":", "");
string filename = string.Format("Nreal_Record_{0}.mp4", timeStamp);
return Path.Combine(Application.persistentDataPath, filename);
}
}

7行目:returnの行を下記のように変更します。

                return Path.Combine("/sdcard/Movies", filename);

ここでいう /sdcard は、Files アプリでいうところの「 SD カード」ではなく「内部ストレージ」のことです。つまり、/sdcard/Movies は、内部ストレージ直下にある Movies ディレクトリで、ここに録画したファイルが保存されます。

変更前の Application.persistentDataPath だと Android 環境では永続的なデータディレクトリのパスとして、 /storage/emulated/0/Android/data/<packagename>/files となるんですが、ファイルを探しづらいので、階層が浅い「内部ストレージのMovies」に録画ファイルが保存されるようにしています。(内部ストレージには最初から Movies ディレクトリがあるので)

3.メニュー「NRSDK」-「InitVideoPlayerDemoEnv」を選択します。

4.メニュー「File」-「BuildSetting」で「Player Setting」にある「Other Setting」グループの「Write Permission」を「External(SDCard)」にします。

5.シーン「Assets/NRSDK/Demos/RGBCamera-Record の Hierarchy ビューにある VideoCaptureExample をプロジェクトビューにドラッグ&ドロップしてプレハブ化

6.動画キャプチャを実装したいシーンを開いた後、プレハブ化したVideoCaptureExample をシーンの Hierarchy ビューにドラッグ&ドロップする。

7.Build Setting 画面で動画キャプチャしたいシーンを取り込んで Build する。

ビルドできたら早速、動かしてみましょう!

うまく動きましたか?

さて、このプログラムで録画した時の動作ですが、Nreal Light と Nreal Air では少し違いがあります。

Nreal Light と Nreal Air の RGBCameraRecord の動作の違い

20220617_235820

上の写真の2つは、上が Nreal Light、下が Nreal Air です。

サンプル名の RGBCamera (RGBカメラ)というのは、上の Nreal Light の上半分の中央の左側(向かって右側)の丸い部分です。

この RGB カメラは、Nreal Air にはありません。

では、Nreal Air で同じプログラムを動かすとどうなるのでしょう?

Nreal Light での RGB カメラの動き

比較するため、先に Nreal Light の RGB カメラを使った動きを見てみます。

かげさんが作ったシーンは、Nreal Light だとこんな感じの動画になりました。

RGB カメラに写った部分が背景として写っています。(暑くてカーテンを締め切っていた日に録画したため、背景がかなり暗めです)

動画サイズを拡大してみた方が背景が映っているのが分かるかも?

Nreal Air での RGB カメラの動き

かげさんが作ったシーンは、Nreal Air だとこんな感じの動画になりました。

RGB カメラが無いため、背景が黒です。

このように同じプログラムを使っていても Nreal Air では、Nreal Light にしかないカメラの部分の動きが異なります。

NRSDK 内部は、極力、互換性を保つ動きをするようになっているみたいですね、

また、同じプログラムなのに SD ユニティちゃんが近くにいることから距離感も違います。

画質は Nreal Air の方が良いですね!

Neal Light の方は、録画のパネルの設定は何もいじっていないので、設定を変更するともうちょっと良くなるのかもしれません。

そのうち設定変更したらどうなるかも試したいところですね。

▼2022/08/15 追記 ここから

確認したところ、録画パネルの設定オプションには画質はありませんでした。

録画パネルの設定オプションについては「RGBCameraRecord で指定できるオプションを調べてみた」を参照。

▲2022/08/15 追記 ここまで

ここまではOKだ



最大201インチのシアター級巨大スクリーン(ARグラス越しに4mで130インチ、6mで201インチに相当)で映像をお楽しみいただくことができます。
TUVが認めた目に優しいARグラス:国際的な独立第三者検査・認証機関であるテュフラインランド(TUV Rheinland)からハードウェアレベルの「低ブルーライト・フリッカーフリー」認証を取得しました。


Nreal Streaming Box(エンリアル ストリーミングボックス) NR-7101AGL - ARグラス/スマートグラス Nreal Air 専用/Android・iOS 両対応/Nreal Airにケーブルで接続するボックス

 このエントリーをはてなブックマークに追加

| |コメント (0)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。