今回はUnityの画面をキャプチャーして保存するアセットについて
Unityの画面を動画としてキャプチャーするRecorder
最近、画面を動画としてキャプチャー出来る事は珍しくなくなりました。
以前はkamcordやLobi Rec、every play等のサービスを活用する必要がありましたが、最近ではAndroid(play game)でもiOSでも標準機能に近い形で画面をキャプチャーする事が可能になっています。
Recorderはアプリ側に組み込むアセットで、画面をキャプチャーします。
ただ、どちらかと言えばエディターの画面を撮影する為の物に見えます。
可変フレームではなく、固定フレームで撮影が可能
このアセットに最も期待している機能は、可変フレームではなく固定フレームで動画をキャプチャー出来る点です。
Unityは基本的に可変フレームで動いていた為、何も設定せず普通に画面をキャプチャーすると、激重のシーンではフレームスキップが発生し、モーションや動きが飛び飛びになります。
例えば、Fixed Timestepをとても小さくしてめり込みを0にしたコンテンツがあったとします。これを貧弱PCで再生してみると、下のようにガックガクになります。
このような状態でも、Recorderでは設定をConstantに設定しておくことで、激重でFPSがガタ落ちするような場合でも、割と綺麗に撮影してくれるみたいです。
使い方
実際の使い方を見てみます。
まずは下のURLからアセットを入手します。
https://www.assetstore.unity3d.com/jp/#!/content/94079
エディターの画面を動画としてキャプチャーする
単純に画面をキャプチャーする場合は、簡単です。
- Tools > Recorder > Video でウィンドウを開く
- (ゲームを再生中に)Start Recordingを押す
これだけです。
これで画面のレコードが始まります。
終了後はOutput Pathにファイルが出力されます。
初期設定の場合は、プロジェクトフォルダのRecordingsフォルダです。
細かい設定
撮影するフォーマットは、PNGやMP4やWebM、GIF、OpenEXR、そしてImage Sequenceといったフォーマットが選択可能です。
フレームレートは、コンスタント(固定)かフレキシブル(可変)か、そしてフレームレートは…といった部分が設定できます。
アルファ抜き
出力するフォーマットが対応しているならば、背景をアルファで抜く事も出来るみたいです。
- 対応してるものはCapture Alphaが表示されるので、チェック。
- ソースはメインカメラとし、カメラはアルファ0でクリア…
これでキャプチャー時、アルファの入った物が出力されます。
Timelineとの連携
Timelineと連携です。
Recorder trackをタイムラインに追加して、後はクリップ(Recorder clip)をRecorder trackに追加するだけです。
後はTimelineを再生(Timelineプレビューではなく、エディターの再生)すると、クリップ再生時に画面がキャプチャーされます。
Audio Recorder、GBuffer Recorder、Movie Recorder
内容を把握してません。
感想
cgworld.jpにあるような負荷の高そうな描画を撮影したり、下のようなプロシージャルな絵を作って撮影して素材にする…みたいなケースで便利かもしれません。