【UE4】実行中のレベルを動画撮影する方法

UE4で製作しているゲームのプレイ動画を撮影してTwitterにあげたいなーといった時に、フリーのデスクトップレコーダーアプリで動画をキャプチャしていましたが、UE4自体が動画撮影の機能を備えており大変便利でした。
※画像はクリックで拡大できます
コンソールコマンドによる動画撮影の開始と終了
UE4のコンソールコマンドで「StartMovieCapture」と入力すると動画撮影を開始し、「StopMovieCapture」と入力で動画撮影を終了します。
通常、コンソールコマンドを入力するにはUE4エディタのメニューから「ウィンドウ」→「デベロッパーツール」→「アウトプットログ」を選択し、アウトプットログの下の方にあるCmd欄にコマンドを入力して実行します。


これでも動画の撮影は行えるのですが、ちょっと手間ですしゲーム中の任意のタイミングから動画撮影を開始終了したい場合には、折角のタイミングを逃してしまうかもしれません。
コンソールコマンドは、ブループリントからも実行を呼び出す事ができるので、例えばキーボードのCキーを押したら撮影開始、撮影終了といった風にすると「ここだ!」というタイミングで動画撮影を行う事ができるので大変重宝します。
コンソールコマンドは、ブループリントの「ExecuteConsoleCommand」で呼び出す事ができます。

これで任意のタイミングで動画撮影を行う事ができます!
一応連打とかは動作的に負担がかかりそうなのでやめた方が良いと思います(汗
コンソールコマンドのStartMovieCaptureで撮影した動画は、プロジェクトフォルダの「Saved\VideoCaptures」フォルダ内に保存されます。
これでデバック用の動画や、ちょっとしたプレイ動画なら撮影する事ができます。
しかしこの便利なStartMovieCaptureですが、動画形式は無圧縮のAVI形式で24フレームレート、解像度は1280×720という設定を変える方法が見つかりませんでした(涙
動画形式に関してはAviUtl等を使ってmp4など好きな形式にエンコードすれば良いとして、解像度の変更とTwitterのサポートしている40フレームレートの動画が撮影できれば良いなぁと思ったりもしました。
シーケンサーによる動画撮影
コンソールコマンドのStartMovieCaptureではフレームレートの設定ができませんでしたが、シーケンサーを用いた動画撮影では好きなフレームレートの動画を撮影する事ができます。
エディタの「シネマティクス」より、「Add Level Sequence」を選択してシーケンサーを作成します。

作成したシーケンサーを開き、シーケンサーのタイムライン上で右クリックして「終了時間を設定」を選択します。これが撮影する動画の長さになります。

シーケンサー上にカメラを作成しない事で、動画撮影中のカメラがゲーム中のカメラになるようです。
そのまま「ムービーレンダリング」のアイコンを選択し、設定ウィンドウを表示します。
この設定ウィンドウに、動画の解像度やフレームレートの設定項目があります。
設定項目中の「Cinematic Mode」が有効になっている場合、プレイヤーの表示、移動、回転の許可を個別に設定しなければならないため、そのままだとプレイヤーが表示されず動かないといった事になるので、Cinematic Modeは無効にします。
「ムービーキャプチャ」ボタンを押す事でプロジェクトのゲームが開始されると同時に、動画の撮影が開始されます。

撮影した動画はコンソールコマンドのStartMovieCaptureと同様に、プロジェクトフォルダ内の「\Saved\VideoCaptures」に保存されます。
まとめ
コンソールコマンドの「StartMovieCapture」による動画撮影は、ブループリントから呼び出す事で好きなタイミングで気軽に動画撮影が行えますが、解像度とフレームレートの設定がわかりません。
対するシーケンサーによる動画撮影は解像度とフレームレートの設定は可能ですが、こちらの動画撮影機能はゲーム中の一連の演出を、動画として作成する機能かと思いますので、気軽にゲームプレイをキャプチャする目的での使用はちょっと違うのかもしれません。
また、シーケンサーによる動画撮影は自分の貧弱PCでは凄く重かったです・・・・(涙
よって、StartMovieCaptureで解像度とフレームレートが設定できたら最高だなぁという結論に至りました!
ディスカッション
コメント一覧
まだ、コメントがありません