Unityレコーダーでゲームシーン録画をできる限り高画質に行いたい
結論
録画したいUnityプロジェクトにUnity Recorderをインポートして、連番静止画録画をしたあと、何かしらの動画ソフトで高画質でエンコードする。
背景
Unity Recorder(2.5.5現在)の標準の設定(Movie:FHD-1080p)でも
薄暗い場所など、ゲームシーンによっては画質に満足しないことがあった。なのでもっと高画質に撮れる方法はないか調べた。
環境 Win10 / Unity Editor 2019.4.11f1
手順
1,録画
UnityプロジェクトのPackage Managerを起動
Unity Registry->Unity Recorder を選択しImportする
インポート後
メニュー "Window - General - Recorder - Recorder Window" を選択でUnityレコーダーの設定パネルが開く。
設定パネルの中のAdd Recorderを選択する。
とりあえず撮れりゃいいよって人ならMovieを追加して画質はお好みで設定。最高で4Kとかまである。
Source: Game View
Output Resolution: FHD-1080p
Aspect Ratio 16:9
Format: H.264 MP4
Quality: High
OutputFileで保存先を指定する
超高画質に撮りたい人はimage sequenceを追加する。
これを選択するとOutputFileで指定したフォルダに連番の静止画が保存される。
Source: Game View
Output Resolution: FHD-1080p
Aspect Ratio 16:9
Media File Format: PNG
設定が終わったら"START RECORDING" ボタンを押してゲーム録画開始されゲームシーンの実行も開始される。"STOP RECORDING" を押すかゲーム終了するとキャプチャーも停止する。
連番静止画で録画するとゲーム動作が超重たくなるので覚悟すること。
スローモーションのようになるけどちゃんと記録されているので、我慢してプレイ。保存先をHDD->SSDに変えても体感変わらず、あまり動作軽減には効果はないもよう。
※注意
ゲーム録画の解像度を1080pにしたら、GameViewの解像度も16:9にする
2,エンコード
連番静止画の動画に変換するツールはいろいろあるので、自身に都合のよいツールを選択する。"連番静止画 動画変換"とかでググるとFFmpegとかAviUtlとかTMPGEncとかフリーでできるものが結構でてくる。
今回紹介するのは自分が使ってるAdobe Premiere Pro CS6.0 (CCの人も可能)
超簡単。
・ファイル->読み込み でUnityで録画したフォルダの中の画像ファイル
image_001_0000.pngを選択する(保存名によって異なるので末尾が0000のものを探す)
・ダイアログの左下にある、画像シーケンスのチェックボックスにチェックを入れる。(★重要)これで動画クリップとして読み込まれる状態になる。
※PremiereProが *-0000.png *-0001.png *-0002.png *-0003.png~ と自動で読み込んでくれている。(ファイル名の連番が崩れていると正常に読み込めないので注意)
読み込んだ後は高画質のエンコード設定して任意のフォーマットで動画書き出しをする。以上。満足のいく画質になった。