Unityでアルファ付き動画を作る

はじめに

Unityで背景が透明になる動画を作成し、VideoPlayerで再生できるようになるところまで記述します。

用意するもの

  • Unity 2018.1以降(Package Managerがあるバージョン以降)

アセットのインストール

今回インストールするのは、Unity Recorderです。
検索すると、AssetStoreのものが出ますが、こちらは古いです。
Package ManagerからインストールするUnity Recorderを使用しましょう。

Package Managerウィンドウを開く

Unityを立ち上げ、Window→Package Managerを選択してください。

大量にパッケージが出ますが、実はこの時点ではUnity Recorderは本日時点では出ません。
理由はpreviewパッケージのためです。まずはPackage Managerにpreviewパッケージも出すようにします。

Unity Recorderを見つけ、インストールします。今回は2.1.0preview.1をインストールしました

[install]ボタンを押下するとインストールされます

アセットのインストールは以上です。

カメラの設定を行う

ゲームビューをそのまま動画化してもアルファ情報はありません。
今回はアルファ有りムービーのため、ムービーを撮影するメインカメラの設定を行いましょう。

行う作業は二点です。
・Clear Flags を 「Solid Color」にする
・「Solid Color」の「Background」色のアルファ値を0にする

カメラの設定は以上です。

Unity Recorderの設定をする

Unity Recorderの設定をするために、Unity Recorderウィンドウを表示します。
Window→General→Recorder→Recorder Window を選択します。

以下のようなウィンドウがでます。

Record Modeがどのような撮影をするか(Time Interval は何秒目〜何秒目まで)
Playbackはフレームレート指定です。
Constant : Recorderを特定のフレームレートに制限
Variable : アプリケーションのフレームレートを使用
  (Movie Recorderは可変フレームレート非対応だそうです)

詳細のマニュアルはこちら。

ムービー設定追加

+ Add New Recorders から Movie を選択

以下のような設定に変更

各パラメータの詳細はマニュアルがあるため省きますが、ここで注意点:
Formatを「Web M」にしないと「Capture Alpha」を選択できません
しかし、デフォルトのCaptureのターゲットはGameViewになっており、
GameViewでは「Capture Alpha」のチェックボックスをTrueにすることができません。
そのため、以下のようにCapture を 「Targeted Camera」にしましょう。

Unity Recorderで撮影する

撮影自体は、Recorderウィンドウの「Start Recording」ボタンを押下すれば始まりますので、
難しいことはないですが、設定の「Output Resolution」が「Match Window Size」の場合、
自身が撮影したいGameViewサイズにしておきましょう。

上記のような割合だとわかりにくいので、固定サイズの選択をしましょう

以上で撮影は出来ます。
撮影後のデータは、Recorderウィンドウの「Path」ディレクトリに格納されています。

これで、Unityでアルファ付きムービーの撮影が出来ました!

動画の再生

動画の再生をするために、VideoPlayerを使用します。MovieTextureは過去の遺産です。

今回はuGUIで動画を表示します。そのため、レンダリング先としてRawImageを新規コンポーネントとして追加します。

更にVideoPlayerをアタッチします。VideoPlayerコンポーネントの設定は以下の通りです。

VideoClipには作成した動画を、RendererモードをRender Textureに、テクスチャは先ほど作成したものをアタッチします。

最後にPlayして確認しましょう。

以上で動画が再生されました。おめでとうございます。

コメントする

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください