RGBCamera-Record を読み解いてみる

概要

RGBCamera-Capture を読み解いてみる - NOSIX に引き続き、 RGB Camera の使い方を理解するために、 サンプルとして提供されている RGBCamera-Record (Scene) のソースコードを解読してみます。 個人的な読解結果であるため誤りが含まれている可能性があることをご了承ください。

目次

確認環境

  • NRSDK 1.2.1

解説

RGBCamera-Capture を読み解いてみる - NOSIX と重複している内容は省略しています。

Video Capture に関連するのは VideoCaptureExample (GameObject) の部分です。 PlaneDetector, Canvas は Video Capture には関係ありません。 そのため、これらの説明は省略します。

Video Capture を行うためには NRVideoCapture を使います。 録画した Video は StartRecordingAsync の引数で指定する Path に保存されます。 また、Previewer の Texture に NRVideoCapture の PreviewTexture を設定することでプレビューを行っています。

Hierarchy

Scripts

VideoCaptureExample の Scripts

  • VideoCapture2LocalExample (in Demos/Record/Scripts/VideoCapture2LocalExample)
    • Inspector での設定項目
      • Previewer
    • 起動時に NRVideoCapture インスタンスを生成する
      • NRVideoCapture.CreateAsync を使う
    • startBtn 押下時に NRVideoCapture.StartVideoModeAsync を行う
      • Previewer.SetData で NRVideoCapture.PreviewTexture と再生中を設定する
      • CameraParameters で Camera 設定を行う
        • NRVideoCapture.SupportedResolutions で有効な resolution を取得して CameraParameters に使う
        • NRVideoCapture.GetSupportedFrameRatesForResolution で有効な frame rate を取得して CameraParameters に使う
      • NRVideoCapture.AudioState.ApplicationAndMicAudio を設定する
      • Start に成功した時、NRVideoCapture.StartRecordingAsync を行う
        • 保存先の Path を指定する
    • stopBtn 押下時に NRVideoCapture.StopRecordingAsync を行う
      • Previewer.SetData で NRVideoCapture.PreviewTexture と停止中を設定する
      • Stop に成功した時、NRVideoCapture.StopVideoModeAsync を行う

PlaneDetector の Scripts

  • PlaneDetector (in Demos/HelloMR/Scripts)
    • 主題から逸れるため省略
  • HelloMRController (in Demos/HelloMR/Scripts)
    • 主題から逸れるため省略