Unityでのスクリーンショット、連続撮り、動画の撮り方

ゲーム画面を撮って保存し、様々な場所に流用したいと考える事があると思います。

筆者もよく高解像度ハイポリゴンのモデルを動かしてムービーを撮ったりします。高解像度ハイポリンゴンのモデルをそのままゲームに入れてしまうと重いですからね。ムービーにして圧縮すると容量を軽くできます。

ただし、今回紹介する方法はエディタ上で動く物です。ゲーム中にスクリーンショットや動画を取ってハイライトなどをする方法とはまた違った方法なので注意してください。

<Unity Recorder>

Unity Recorderを導入しよう

Unityはこれらスクリーンショットやgif、動画を制作するにあたってとても便利な機能を用意してくれています。それがUnity Recorderです。

まずは、このUnity Recorderの機能をUnity内に入れましょう。Package Managerを開いてください。

package manager

Package ManagerからUnity Recorderを導入します。

2019/7/6現在、Unity RecorderはPreview版になっています。まだ正式版ではないのですが、十分使える上に、そもそもエディタ上でしか動作しないのでゲームに含める事ができない為、Preview版でも特に問題はないです。

Preview版を加えるにはPackage Managerの上の方にあるAdvancedをクリックし、Show preview packagesをクリックする必要があります。

package manager show preview

通信が入る為、ちょっと待たなくてはいけませんが、しばらく待つとPreview版の機能が一覧に載ってきます。

unity recorder package

そこにあるUnity Recorderをクリックして、右下にあるInstallを押しましょう。

Unity Recorderの使い方

Installが完了したら上部メニューのWindow>General>Recorder>Recorder WindowでUnity Recorderを開く事ができます。

open unity recorder

すると↓のようなウィンドウが開くと思います。左側にあるAdd New Recordersをクリックしましょう。

unity recorder window

すると↓のようなメニューが表示されます。

add new recorder

ここで、何を記録するのかを選択します。Animation Clipならアニメーションを、Movieなら動画を、Image SequenceがスクリーンショットでGIF AnimationはGIF動画で、なんとAudioで音を記録する事もできます。

凄すぎUnity!

この中で目的の機能を選択してください。

画像系の機能はカメラを使う

さて、では動画、スクリーンショット、GIFの記録方法を解説していきます。何故この3つかと言うと、画像系の記録方法はほとんど変わらない為、ひとまとめにしている感じです。

ではこれら画像系はどのように記録していくかと言うと、Unity Recorderは主にカメラを使います。(使わないパターンもあります)

初期設定の状態ではGame Viewに表示されているものを記録していく感じになります。

例えば、このホームページの看板娘の↓の画像もUnity Recorderで撮っているのですが、

riri

これはこういう感じで撮っています。

take screen shot

カメラの設定をSolid Colorで背景を白色にしているので↑のような感じになります。

camera solid color

まぁ、ぶっちゃけ↑のような感じならPCの機能のスクショをとればいい話なんですが、Unity Recorderは透明でスクショを撮る事も可能なので、キャラ以外の部分を透明にしたい時などに便利です。

というわけで、動画やスクリーンショットを撮りたい場合は、カメラを撮りたい物に合わせて、ゲームビューに映るようにしましょう。

Unity Recorderはゲームの再生中の画面を記録する

さて、カメラを設定できたらゲームを再生して、記録したい画面になるかどうかを見ましょう。

Unity Recorderはゲームの再生中の画面を記録します。

動画やGIFであれば再生中のものを記録して動画にしますし、スクリーンショットであれば再生中で表示されたフレーム全てを連続撮りしてくれます。

とりあえず試しに撮ってみましょう。START RECORDINGボタンを押します。

unity recorder image sequence

するとシーンが再生され、記録が始まります。するとSTART RECORDINGがSTOP RECORDINGに変わります。

stop unity recorder

記録を終わりたいところでSTOP RECORDINGを押せばOKです。

記録結果はPathの項目の右側にあるボタンを押せば確認できます。

Unity Recorder Take File

例えばImage Sequenceであればゲームビューに映った画像をフレームごとに↓のような感じで保存してくれます。

unity recorder take image

今の状態だとjpgで保存しているのでカメラの白色背景が入っている感じですが、pngで保存すればカメラのアルファ値を加味してくれるので背景を透明にできます。

動画の場合は、カメラの背景をクロマキーの色に設定すれば編集がしやすいのではないでしょうか。

再生の途中から記録したい場合は、最初から再生しておいて記録したい場面になったらSTART RECORDINGを押せばOKです。

では、大まかな使い方はわかったと思うので細かい設定について解説していきます。

記録方法の設定

unity record setting

さて、先ほどはSTART RECORDINGを押したら勝手にシーンが再生されて、STOP RECORDINGを押したら勝手にシーンが止まったと思います。

Exit PlayModeのチェックを外せば記録を止めてもシーンは再生されたままになります。再生中に分けて記録したい時は外しておくと便利です。

また、先ほどは自分で記録をスタートして自分でストップしていましたが、色々な指定をする事もできます。特に1枚だけスクショを撮りたい場合は何フレームも映されても困ります。そういった時はRecord Modeの設定を変えましょう

Record Mode

Manual・・・手動でスタートして手動でストップします
Single Frame・・・記録するフレーム数を指定してその1フレームのみ記録します。
Frame Interval・・・記録する開始フレームと終了フレームを指定して、その間のフレームを記録します。
Time Interval(sec)・・・記録を開始する秒数と終了の秒数を指定してその秒数間のフレームを記録します。

記録のフレームレートを変えたい場合はFrame Rateの設定を変更します。

Playback

Constant・・・ゲームのフレームレートと関係なくレコーダー固定のフレームレートで記録します。
Variable・・・ゲームのフレームレートを使用します。ただし、ゲームが指定しているフレームレートを使用するだけで可変フレームレートにはなりません。(ゲーム中処理落ちしても記録される映像は処理落ちしていないものになる)

Target/Max

PlaybackがConstantならTarget。VariableならMaxになります。

Target・・・レコーダーのフレームレートを選択します。
Variable・・・レコーダーのフレームレートの上限となるフレームレートを設定します。

Cap

PlaybackがConstantだった場合に出てくる項目です。

ゲームのフレームレートがターゲットのフレームレートより早い場合チェックを入れておくといいらしいです。

すいません。ちょっとどういった効果があるのかよくわかりませんでした。とりあえずチェックを入れておくといいと思います。

Image Sequenceの設定

スクリーンショットを撮る機能です。

クリックすると展開します
Format

保存する形式を選択できます。png,jpeg,exrから選べます。

Capture Alpha

保存形式をpngかexrにした場合に出てきます。Captureの項目をGame View以外にすることによってチェックを入れる事ができるようになります。

これにチェックを入れる事により透明度を加味してキャプチャできるようになります、

File Name

保存する名前を指定します。

右にある+Wildcardsで名前に追加する文字列を選択できます。複数入れる事も可能です。

例えば<Frame>だったら名前に記録したフレーム数がつきます。

同じ名前で記録すると上書きされるので、この特性をうまく利用しましょう。<Take>を追加して、うまく利用すると上書きを防げます。

Path

保存する場所を指定します。

「…」となっているボタンで保存するフォルダの参照を指定でき、右上へ矢印が出ているボタンで保存しているフォルダを開きます

Take Number

主にファイル名を指定したい時に使用します。+Wildcardsで<Take>を指定していた場合、ファイル名にこの名前が追加されます。

記録を実行するたびに自動で1ずつ増えていってくれます。

Capture

キャプチャーする場所を指定します。

Game View・・・ゲームビュー
Targeted Camera・・・指定したカメラ
360 View・・・指定したカメラから360度
Render Texture Asset・・・指定したレンダーテクスチャ
Texture Sampling・・・指定したカメラの位置から指定した解像度

Movie

動画を撮る機能です。

unity recorder movie
クリックすると展開します
Format

保存する形式を選択できます。mp4,webmから選べます。

Capture Alpha

保存形式をwebmにした場合に出てきます。Captureの項目をGame View以外にすることによってチェックを入れる事ができるようになります。

これにチェックを入れる事により透明度を加味してキャプチャできるようになります、

File Name

保存する名前を指定します。

右にある+Wildcardsで名前に追加する文字列を選択できます。複数入れる事も可能です。

例えば<Frame>だったら名前に記録したフレーム数がつきます。

同じ名前で記録すると上書きされるので、この特性をうまく利用しましょう。<Take>を追加して、うまく利用すると上書きを防げます。

Path

保存する場所を指定します。

「…」となっているボタンで保存するフォルダの参照を指定でき、右上へ矢印が出ているボタンで保存しているフォルダを開きます

Take Number

主にファイル名を指定したい時に使用します。+Wildcardsで<Take>を指定していた場合、ファイル名にこの名前が追加されます。

記録を実行するたびに自動で1ずつ増えていってくれます。

Capture

キャプチャーする場所を指定します。

Game View・・・ゲームビュー
Targeted Camera・・・指定したカメラ
360 View・・・指定したカメラから360度
Render Texture Asset・・・指定したレンダーテクスチャ
Texture Sampling・・・指定したカメラの位置から指定した解像度

Capture audio

チェックを入れるとゲーム内のBGM・SEも録音します。

Quality

キャプチャする動画の画質を選択できます。

GIF Animation

クリックすると展開します
File Name

保存する名前を指定します。

右にある+Wildcardsで名前に追加する文字列を選択できます。複数入れる事も可能です。

例えば<Frame>だったら名前に記録したフレーム数がつきます。

同じ名前で記録すると上書きされるので、この特性をうまく利用しましょう。<Take>を追加して、うまく利用すると上書きを防げます。

Path

保存する場所を指定します。

「…」となっているボタンで保存するフォルダの参照を指定でき、右上へ矢印が出ているボタンで保存しているフォルダを開きます

Take Number

主にファイル名を指定したい時に使用します。+Wildcardsで<Take>を指定していた場合、ファイル名にこの名前が追加されます。

記録を実行するたびに自動で1ずつ増えていってくれます。

Capture

キャプチャーする場所を指定します。


Targeted Camera・・・指定したカメラ
Render Texture Asset・・・指定したレンダーテクスチャ
Texture Sampling・・・指定したカメラの位置から指定した解像度

Encoding

GIFの品質とサイズを指定します

Num Colors・・・色数を指定します。

Keyframe Interval・・・同じカラーパレットを共有するフレームの数です。この数を増やすとファイルサイズが小さくなり画質が低下します。

Max Tasks・・・並行してエンコードするフレーム数です。この数を増やすとGIFをエンコードする時間を短縮できます。



タイトルとURLをコピーしました