5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Nrealでの録画機能について

Last updated at Posted at 2022-06-22

動作環境

  • macOS version 12.3.1 Monterey Intel Core i9
  • Unity 2020.3.8f1
  • NRSDKForUnityAndroid_1.8.0.unitypackage
  • NrealLight モデル:NR-9101GGL
  • Xperia 5 Ⅱ SOG02SLA

元からある録画機能

NRSDKForUnityAndroid_1.8.0.unitypackageをUnityにインポートすると、Assets/NRSDK/Demosの中にRGBCamera-Recordが作られており、これをbuildするとNrealのカメラから動画が取れる。
アプリを実行すると、録画の設定に関するパネルが表示されるので好きな設定を選んで、赤い丸をコントローラーでクリックする。

録画している間は、赤い丸が緑の丸になる。録画をやめたいタイミングで緑の丸をコントローラーでクリックする。

QualityがMiddleの場合、(自分の環境だと)1分程度録画ができるが1分以上になると録画した動画が見れなくなるので注意。

他のシーンを録画したい場合

RGBCamera-Recordのシーンにある、VideoCaptureExampleオブジェクトを丸ごと録画したいシーンに配置すればOK。
今回はHelloMRにVideoCaptureExampleオブジェクトを置いた。
Screen Shot 2022-06-22 at 15.53.55.png
このシーンをbuildして録画するとこんな感じ。

自分がつまずいた所

RGBCamera-Recordを使って録画すると、動画の保存先がXperiaのどこなのかわからないという問題にぶつかった。
これはおそらく、VideoCapture2LocalExample.csのVideoSavePathが原因で、

VideoCapture2LocalExample.cs
        /// <summary> Save the video to Application.persistentDataPath. </summary>
        /// <value> The full pathname of the video save file. </value>
        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);
            }
        }

ここのreturn Path.Combine(Application.persistentDataPath, filename);return Path.Combine("/sdcard/Download/", filename);に変えるとXperia(SOG02)のDownloadに保存された。
XRecorder_22062022_184635.jpg
XRecorder_22062022_184842.jpg

Andoridの設定で内蔵ストレージのトップ(ルートディレクトリ)として見えているのが/sdcard/なので、保存先を変えたければ、/sdcard/好きな保存先としてやれば良さそう。

追記:Application.persistentDataPathの理解

return Path.Combine(Application.persistentDataPath, filename);のせいで動画の保存先がXperiaのどこなのかわからない問題が起こっていたが解決したので追記。
Application.persistentDataPathを使うと、android/data/<アプリの名前>/filesの下に動画が保存される。
例えば、UnityでアプリをBuildするときにパッケージ名をcom.DefaultKentoCompany.HelloMRRecとしていた場合
Screen Shot 2022-07-04 at 10.23.30.png
動画の保存先はandroid/data/com.DefaultKentoCompany.HelloMRRec/filesの下に動画が保存される。

参考文献

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?