Unreal Engine 5でのレンダリングで直接.mp4で書き出す方法のメモ。
シーケンサーからのレンダリング方法学習をしていた際に、
いちいち動画編集ソフトを介するの面倒くさいな…
直接mp4出力出来ないものか…
とぼやいていた所、Minomaru-GT氏(@mino1106tasu)より素敵な情報を頂きましたので、実際にやってみることにした記録。結果的に色々失敗を経て何とか出力に至りました。
この記事では
fa-check-circle-o参考記事と動画
fa-check-circle-o実際にやってみた手順
fa-check-circle-o失敗の記録
をまとめています。
関連記事mp4出力ないのかや…というボヤキ
コンテンツ
参考情報
Minomaru-GT氏のQiita。感謝感謝です!
UE5のMovie Render Queueで直接mp4を書き出す方法を試してみた
初投稿です!#UE4 #ue5https://t.co/LuaqPua6I9 #Qiita @mino1106tasuより— Minomaru-GT (@mino1106tasu) April 14, 2023
参考動画 『How To Export as MP4 and MOV Video Files - Unreal Engine 5』
Minomaru氏が参考にされた動画
実際にやってみた
大きな流れとしては
- FFmpegのDL
- ムービーレンダーキューにコマンドラインエンコーダを追加する
- プロジェクト設定の編集
- レンダリング
1.FFmpegのDL
事前準備として、オープンソースのソフトウェアFFmpegをDLします。
これは動画と音声を記録・変換・再生するためのソフトで、UE5からこのソフトを介してmp4に出力ため、必須のソフトウェアです。
-
- 上記リンクからwindows アイコン下のwindows build from gyan.dev にアクセスします
- その先でrelease builds からffmpeg-release-full.7zをDLします。動画によってはその上のffmpeg-release-essentials.7zをしようしていたのでどちらでも良いのかもしれません
.7zは7-zipのフォーマットです。解凍する際には7-zipをご利用ください - 解凍したフォルダごと任意の場所に移動します。
私のフォルダ移動先
C:\Users\ユーザー名\Documents\ffmpeg-6.0-full_build
- 上記リンクからwindows アイコン下のwindows build from gyan.dev にアクセスします
2.ムービーレンダーキューにコマンドラインエンコーダを追加する
ムービーレンダーキュー>設定>コマンドラインエンコーダを追加します。
ムービーレンダーキューにアクセスするためには
■シーケンサーのカチンコマーク
■ウィンドウ>シネマティクス>ムービーレンダーキュー
コマンドラインエンコーダについて公式ドキュメントを確認すると
コマンドライン エンコーダを使用すると、FFmpeg などのサードパーティ製ソフトウェアで独自の出力形式を作成できます。この設定には、エンコーダの実行可能ファイルが必要です。また、[Project Settings (プロジェクト設定)] でいくつかの設定を有効にする必要があります。
ということで、外部のソフトを使用する際にはこちらを使用します。
追加すると警告のビックリマークが表示されます。
要はエンコーダの実行可能ファイルが設定されていないよ。ということでプロジェクト設定から実行ファイル(FFmpeg)の設定を行います。
3.プロジェクト設定の編集
プロジェクト設定でFFmpegの設定を行います。
設定>プロジェクト設定を開き
プラグイン>Movie Pipeline CLI Encoderにアクセス
以下4カ所にこのように入力します
- 実行ファイルパス:ffmpeg.exeまでのパス
※私の場合→C:\Users\ユーザー名\Documents\ffmpeg-6.0-full_build\bin\ffmeg.exe
- 映像コーデック:libx264
- オーディオコーデック:aac
- 出力ファイル拡張子:mp4
libx264はH.264を示すFFmpedのコマンドで、ほかのコーデックで出力したい場合には下記サイトが参考になりそうです。
参考
FFmpegでよく使う例、コーデックをまとめてみた(2023年版)@Qiita
私はいつもH.264を利用しているのでこのまま利用させて頂きます。
4.レンダリング
出力設定を行ってレンダリング
必要に応じて
Delete Source Files:ソースファイル(mp4を生成するための連番)を削除する
のチェックを入れて(任意)レンダリングします。
出力設定で指定したパスに動画出力されます。
本来であればこれでレンダリング出来ます。
失敗の記録
実は今回順当に出力に至らず、当初mp4で出力自体は出来たものの動画の中は真っ黒でした。
その時出ていたエラーログ
Shot/Camera "no shot" starts on a sub-frame. Rendered range has been rounded to the previous frame to match Sequencer.
参考フォーラムでも同じ質問が投げられていましたが、解決に至らず。未だ原因がわかっておりません。
Shot/Camera “no shot” When Rendering Level Sequence in Movie Render Queue
chatGPTさんに投げたらこんな回答が来ましたが、真偽不明なので鵜呑みには出来ませんよね…。
模索
- 「【Windows】Windows10にffmpegをインストールする」というこちらの記事を参考に、FFmpegの位置を変えて、環境変数を設定したり
- フォーラムを探し回ったり
- ファイル名から2バイト文字を排除したり(※普段は使いませんが、受講講座に倣い2バイト文字使っていた)
- まっさらなシーンでは出力可能であることを確認したり
結果シーケンサーを新規で作り直すことで出力に至りました。
何故か新規シーケンサーで出力した後は、出力出来なかったはずの元のシーケンサーも出力できるように。。
何故かさっぱりわかりません。。。
根本的な解決策がわかり次第追記したいと思います。
何ともモヤモヤする結果でしたが、とりあえず出力自体はできたのでファンタジー背景作成の学習に戻ります。
Unreal Engineアイテム
関連記事学び方
関連記事動画で学びたいならこちら
書籍