開発入門 > Unity > Unityから1フレームごと出力し高画質動画を作成する方法

Unityから1フレームごと出力し高画質動画を作成する方法

こんばんはfrom2001vrです。

UnityのGameViewをオフライン(リアルタイム描画ではない)にて画面をキャプチャして動画を作成する方法です。遅いPCにて高画質の動画を作成することも可能です。

ユニティちゃんライブCandy Rock Starを4K解像度で録画してみました。

uRecord

2014-12-23 03.31.11 pm

いくつかのアッセとを試してみて今回一番使いやすかったuRecordを利用して説明します。

AssetStoreでuRecordを購入しインポートします。メニューにuRecordが現れますので選択してuRecordを開きます。

1

まずはuRecordのオプションを設定します。

2

 

Capture Path: キャプチャした画像が1フレームごとに保存されるフォルダを設定します。
Upscale Amount: ここで指定した倍率で画像が引き伸ばされて保存されます。引き伸ばされた分画質が荒くなるだけですので1を指定しておきます。
Capture FrameRate: 1秒辺りにキャプチャする枚数を指定します。ここで大きな値を指定した場合、画面の描画が追いつかない場合がありますが、そういった場合でもコンピューターの速度に依存せず1フレーム1フレーム録画してくれます。

設定を行うと、下記のメッセージが表示されます。

3

書いてあるインストラクションに従います。

・録画したい画面サイズを /Project Settings/ Playerで設定する

3.5

・Game Viewの左上のドロップダウンメニューで画角を選択

5

 

・Resize the windows so that there is a border around the rendering area, as shown bellow, it must be fully sorounded.

とありますが、これは、Game View画面をキャプチャしたいサイズより大きく表示しなさいということなんです。
実はここで問題があります。Unityの実行時、GmeViewを最大化しても、Unityアプリ自体の枠などがあり、モニタの解像度をフルで利用することができないんです。。。つまり4K解像度でキャプチャしようとすると、Unityアプリの枠も考慮して4Kより大きなモニタが必要なんです。。。そんな。。。

そこで、Unityを下記のブログページを参考に4K強の解像度で実行します。私の場合は4000×2500の解像度でMacからWindowsへ接続し、Unityを実行しました。

 接続モニタより高解像度でPCを利用する – VRラボの殴り書き

キャプチャしたいシーンを読み込んで、Game Viewの「Maximize on Play」をチェックしておきます。7

これで準備は完了です。uRecordの画面で「Play And Auto Record」を押してキャプチャを開始します。

4

キャプチャを開始すると、uRecordの画面が下記のように切り替わりますので、
・ビデオの作成
・キャプチャ画像の削除
のチェックを外しておきます。
この作業は後で音声の追加時に手動で行います。

6

あとはキャプチャ終了までまちます。
私の環境では4分のユニティちゃんライブを4K解像度でキャプチャ完了するのに約2時間かかりました。
気長に待ちましょう。出力フォルダにキャプチャ画像が連番ファイルとして生成されます。

8

 

FFMpegで連番画像ファイルと音声ファイルを動画ファイルへ結合する

次に作成された連番ファイルを動画ファイルへ変換します。この際、Candy Rock Starのmp3ファイルから音楽も一緒に結合させましょう。

FFMpegをダウンロードし、任意のフォルダに解凍しておきます。(Windows版ビルドはこちらから)

Unite In The Sky (full).mp3
をUnityのプロジェクトから連番画像と同じフォルダにコピーしておきましょう。

下記のコマンドを用い、動画ファイルを生成します。
連番画像保存フォルダ:C:\temp\video
FFMpeg解凍フォルダ:C:\ffmpeg-20141224-git-3a2bed1-win32-static
の場合です。フォルダ名は適宜環境に合わせて変更してください。

C:\temp\video>C:\ffmpeg-20141224-git-3a2bed1-win32-static\bin\ffmpeg.exe -r 30 -start_number 60 -i %08dImage.png -i “Unite In The Sky (full).mp3” -q:a 0 -q:v 0 c:\temp\out.avi

オプションの説明
-r 30
フレームレートを30に設定します。

-start_number 60
連番ファイルを60から利用します。これは、Candy Rock Starシーンでは開始2秒後から曲の再生が始まるためです。

-q:a 0 -q:v 0
オーディオ、画質ともに最高画質で変換する設定です。

 

完成した動画ファイルは下記からダウンロード可能です。

4k30fps動画(ユニティちゃん Candy Rock Star ライブステージ) – VRラボの殴り書き

 

 

その他のキャプチャアセット

AVPro Movie Capture

2014-12-23 03.29.44 pm

スクリプトから呼び出して利用することが可能

Capture Monster

2014-12-23 03.30.33 pm

カテゴリー: Unity
0 comments on “Unityから1フレームごと出力し高画質動画を作成する方法
"Unityから1フレームごと出力し高画質動画を作成する方法" に 2 トラックバック・ピンバック
  1. […] この動画の作成方法はこちら Unityから1フレームごと出力し高画質動画を作成する方法 – VRラボの殴… […]

  2. […] この動画の作成方法はこちら Unityから1フレームごと出力し高画質動画を作成する方法 – VRラボの殴り書き […]

コメントを残す

メールアドレスが公開されることはありません。