【Unity-iOS】Nativeで動画を撮影してRenderTextureに表示する

Unity-iOSでネイティブの機能を用いて動画を撮影して,撮影した動画をそのままUnity上のRenderTextureに表示するメモ.

Environment

  • Unity2019.1.12f1
  • iOS 13.1.2 (iPhone XR)
  • Xcode 11.1

Methods

1.UnityNativeCameraをインポート

githubより yasirkula/UnityNativeCamera をインポートする.

https://github.com/yasirkula/UnityNativeCamera/releases

このアセットを入れることで簡単にiOSネイティブのカメラ機能をUnityから利用することができる.

2.サンプルコンポーネントの作成

以下がサンプルソース.コピペする.

NativeRecMovieAndPlay.cs

3.VideoPlayerコンポーネントの配置とRenderTextureの作成

先に以下のようなRenderTextureを作成しておく.以下のサンプルは1920*1080に設定した図.

今回のRenderTextureの名前はVideoにした.

次にUnityのデフォルトの機能にあるVideoPlayerコンポーネントを空のGameObjectなどを作成してアタッチしておく.

コンポーネントの設定を以下のように設定しておく.

SourceはURLにし,PlayOnAwakeのチェックを外しておく.

Loopなどは適宜変更.

RenderModeRenderTextureにして,TargetTextureに作成したRenderTextureを設定する.

4.配置など

VideoPlayerコンポーネントをアタッチしたオブジェクトなどにNativeRecMovieAndPlayコンポーネントをアタッチして,インスペクター上でVideoPlayerコンポーネントと必要ならパス確認用のテキストコンポーネントをアタッチする.

RenderTextureはこれだけだと動画再生されていても見えないので,適宜RawImageなどに貼り付けて可視化しておく.

5.Build

通常通りUnityでビルド後Xcodeでビルドする.

上記サンプルソースを変更してなければ,画面をタップ → Nativeカメラ起動,動画撮影,撮影したものの確認 → Unity上のRenderTextureとして動画再生.となる.

Licence

以下のライセンスのソースを利用させて頂いてます.

MITライセンスの”UnityNativeCamera”.

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です