Unityのゲームビュー内の動きを動画におさめたい!
どうも、Linです。枕最高。
Unityでゲームを作ったら、
ゲーム内の動きを動画におさめたくありませんか?
一旦動画に抑えめてしまえばこっちのもので、友達に自分が作ったゲームの様子を自慢できることはもちろん、いっときの思い出として一生保存することだってできます。
ぼくも、自作のUnityゲームである「VR English」を作成し、それを動画化することに成功してしまったのです。
今日は、その「Unityゲームビュー上の動画を保存する方法」を忘れないうちに書き留めておこうと思います。
なお、執筆にあたりこちらの2記事を参考にさせていただきました。
Unityのゲームビュー内の様子を動画に収める方法
Unityのゲームの様子を動画に収めたいときは次の3ステップを踏むといいですよ。
例として、ボールが枠の中を動く、という単純なゲームの様子を撮影してみました。
Step1. スクリプトをカメラにアタッチ
まず、メインカメラに「とあるスクリプト」をアタッチします。
とあるスクリプトとは、簡単にいうと、ゲームプレイの様子を細かい静止画で保存してくれるものでして、Githubでkenjiroさんという方が公開しています。

using UnityEngine; using System.Collections; public class ScreenRecorder : MonoBehaviour { public int framerate = 30; public int superSize; public bool autoRecord; int frameCount; bool recording; void Start () { if (autoRecord) StartRecording (); } void StartRecording () { System.IO.Directory.CreateDirectory ("Capture"); Time.captureFramerate = framerate; frameCount = -1; recording = true; } void Update () { if (recording) { if (Input.GetMouseButtonDown (0)) { recording = false; enabled = false; } else { if (frameCount > 0) { var name = "Capture/frame" + frameCount.ToString ("0000") + ".png"; Application.CaptureScreenshot (name, superSize); } frameCount++; if (frameCount > 0 && frameCount % 60 == 0) { Debug.Log ((frameCount / 60).ToString() + " seconds elapsed."); } } } } void OnGUI () { if (!recording && GUI.Button (new Rect (0, 0, 200, 50), "Start Recording")) { StartRecording (); Debug.Log ("Click Game View to stop recording."); } } }
こちらのスクリプトをまずはメインカメラにアタッチしてしまいましょう。
Step2. AutoRecordにチェックを入れる
次は、メインカメラのインスペクタービューから、先ほどアタッチしたスクリプトのコンポーネントを探します。
コンポーネント内の「AutoRecord」にチェックを入れましょう。

この欄にチェックを入れておけば、Unityのゲームが再生されると同時に、動画の撮影が開始されます。
と言っても、この時点でゲットできるのは、
大量のフレームごとの静止画。
ゲームフォルダの中の「Capture」というフォルダに数え切れぬほどの静止画が保存されているはずです。

厳密に言えば、動画というわけではありません。
Step3. 大量の静止画フレーム画像から動画を作る
続いては、先ほど生成した大量の静止画からゲーム動画を作ります。
参考にさせていただいたブログではffmpgというソフトを使って動画を作成しているようでしたが、何度読んでもよくわからなかったので、
動画制作の王道Adobe Premiereを使わせていただきました。
作成方法についてはこちらのAdobe公式サイトを参考にしました。
新規プロジェクトを作成して、ファイルから「読み込み」を選択します。

ここでは、大量のフレーム画像を一挙に読み込みたい気持ちをぐっとこらえて、
1番最初のフレーム画像だけ読み取りましょう。
ポイントは、
「画像シーケンス」
にチェックを入れることです。

画像の読み込みが完了したら、シーケンスに先ほど読み込んだ1つの画像ファイルをぶち込みます。

すると、これだけで連番の画像を読み取ってくれるので、動画が完成しちゃってるのです!

これで、あとはお好きな形の動画で出力すればオッケーです。
やりましたね!
Unityのゲームビューの動画保存方法もマスター
これでUnityのゲームビューの様子を動画に収めることに成功しましたね。
- スクリプットをカメラにアタッチ
- Auto Recordにチェック
- 静止画フレームから動画作成
の3ステップを踏んでみましょう。
きっと、イカしたUnityのゲーム動画ができるはずです笑
Unityをもっと勉強したい方にはTECHACADEMYのオンラインブートキャンプ Unityコースがおすすめです。
よかったら試してみてくださいね。
それでは!
Lin

おそらく、ブロガー。
今年でフリーランス 6年目。