ドラクエの戦闘シーンチェンジエフェクトを作る
ニコニコ動画に投稿された「DQエンカウント風AviUtlシーンチェンジ用素材 sm30578410」を元に ffmpeg でも同じことを実装する。配布されたファイルは 8bit PNG なのでそれを使い、グラデーションマスクを作成し2入力を合わせる方法をとる。
ニコニコ動画に投稿された「DQエンカウント風AviUtlシーンチェンジ用素材 sm30578410 (自主削除)」を元に ffmpeg でも同じことを実装する。配布されたファイルは 8bit PNG なのでそれを使い、グラデーションマスクを作成し2入力を合わせる方法をとる。サンプルコマンドの出力コーデックは適宜変える。input1.mp4 と input2.mp4 は 640X360 30000/1001 fps の動画である。それに伴って。color ソースもそれに統一する。シーンチェンジは input1.mp4 から input2.mp4 の順番に切り替わるのがドラクエの戦闘シーンチェンジエフェクトになる。
ドラクエIの戦闘エフェクトffmpeg -loop 1 -i "DQ1エンカウント風.png" -f lavfi -i color=s=640x360:r=30000/1001,format=yuva420p -i input1.mp4 -i input2.mp4 -filter_complex fps=30000/1001,scale=640:360:flags=neighbor,setsar=1/1,format=yuva420p,shuffleplanes=0:1:2:0[0a];[2]lut=val:128:128:enable='st(0,between((mod(n,4)),0,1));ld(0)*between(t,1.5,2)',format=yuva420p[2a];[0a][1]blend=c3_expr='gt(A,(T-2)*255)*255',[2a]lut2=x:x:x:y,[3]overlay[v];[2:a]atrim=duration=2,asetpts=PTS-STARTPTS[a2];[3:a]atrim=2,asetpts=PTS-STARTPTS[a3];[a2][a3]concat=v=0:a=1[a] -map [v] -map [a] -t 6 -vcodec ffv1 -acodec aac dq1.mkv
解説- 入力順に、エフェクト画像、エフェクト画像を映像にするテストソース、シーンチェンジ前の映像、シーンチェンジ後の映像
- color=s=640x360:r=30000/1001,format=yuva420p テストソースの解像度とフレームレートの指定。アルファチャンネルを追加する
- scale=640:360:flags=neighbor,setsar=1/1,format=yuva420p,shuffleplanes=0:1:2:0 エフェクト画像をneighborで補間なしのリサイズし、画像の sar を揃えアルファチャンネルを追加し、輝度チャンネルをアルファチャンネルにコピーする
- lut=val:128:128:enable='st(0,between((mod(n,4)),0,1));ld(0)*between(t,1.5,2)',format=yuva420p グレーに色を点滅し、タイムライン編集でシーンチェンジ前の点滅を 1.5秒から2秒の間に作り、アルファチャンネルを追加する
- blend=c3_expr='gt(A,(T-2)*255)*255' アルファチャンネルに開始2秒から1秒間で徐々に255(透過しない)にする
- lut2=x:x:x:y 2入力のアルファチャンネルを1入力のと入れ換える
ffmpeg -loop 1 -i "DQ2エンカウント風.png" -f lavfi -i color=s=640x360:r=30000/1001,format=yuva420p -i input1.mp4 -f lavfi -i color=s=640x360:r=30000/1001 -i input2.mp4 -filter_complex fps=30000/1001,scale=640:360:flags=neighbor,setsar=1/1,format=yuva420p,shuffleplanes=0:1:2:0[0a];[2]lut=val:128:128:enable='st(0,between((mod(n,4)),0,1));ld(0)*between(t,1.5,2)',format=yuva420p[2a];[0a][1]blend=c3_expr='gt(A,(T-2)*255)*255',[2a]lut2=x:x:x:y,[3]overlay,trim=duration=3,setpts=PTS-STARTPTS[23];[4]trim=3,setpts=PTS-STARTPTS,[23]concat[v];[2:a]atrim=duration=2,asetpts=PTS-STARTPTS[a2];[4:a]atrim=2,asetpts=PTS-STARTPTS,[a2]concat=v=0:a=1[a] -map [v] -map [a] -t 6 -vcodec ffv1 -acodec aac dq2.mkv
解説- 入力順に、エフェクト画像、エフェクト画像を映像にするテストソース、シーンチェンジ前の映像、シーンチェンジ背景の黒映像、シーンチェンジ後の映像
- overlay,trim=duration=3,setpts=PTS-STARTPTS シーンチェンジ背景が黒映像なので背景を透過させて黒映像を映す。あとで concat するので trim する
- trim=3,setpts=PTS-STARTPTS シーンチェンジ後の映像をつなげるために trim で開始時間をずらす
上2つのエフェクト以外はこのコマンド例を使う ffmpeg -loop 1 -i "DQ3エンカウント風.png" -f lavfi -i color=s=640x360:r=30000/1001 -i input1.mp4 -i input2.mp4 -filter_complex fps=30000/1001,scale=640:360:flags=neighbor,setsar=1/1,format=yuva420p,shuffleplanes=0:1:2:0[0a];[2]lut=val:128:128:enable='st(0,between((mod(n,4)),0,1));ld(0)*between(t,1.5,2)',format=yuva420p[2a];[0a][1]blend=c3_expr='gt(A,(T-2)*255)*255',[2a]lut2=x:x:x:y,[1]overlay,trim=duration=3[23];[3]trim=3:4,setpts=PTS-STARTPTS,geq='p(X,Y)*clip(T,0,1)':'clip(p(X,Y),128-clip(T*128,0,128),128+clip(T*128,0,128))'[3a];[3]trim=4,setpts=PTS-STARTPTS,[23][3a]concat=3[v];[2:a]atrim=duration=2,asetpts=PTS-STARTPTS[a2];[3:a]atrim=2,asetpts=PTS-STARTPTS,[a2]concat=v=0:a=1[a] -map [v] -map [a] -t 6 -vcodec ffv1 -acodec aac dq3.mkv
解説ドラクエⅡの戦闘エフェクトに加えて黒映像からのフェードアウトが追加される 白と黒を使ったフェード効果を参照 入力順に、エフェクト画像、エフェクト画像を映像にするテストソース、シーンチェンジ前の映像、シーンチェンジ後の映像
個別フィルタの解説- モノクロで点滅する効果を作る
- ffmpeg で使える映像のテストソース
- リサイズする scale
- plane を入れ替え、コピーする shuffleplanes
- Windows の ffmpeg で生放送する方法 : LUT(ルックアップテーブル)
- YUV RGB を比較計算する blend
- LUTを手軽に入れ替えられるlut2、tlut2、swapuv
- 映像の上に映像をのせる overlay
- trim フィルタの使い方
- 動画・音声を連結する concat の使い方
- 数式で線や円、模様が描ける geq
- 特定の時間だけフィルタを当てるタイムライン編集について
3 thoughts on “ ドラクエの戦闘シーンチェンジエフェクトを作る ”
パスワードが検索してもでてこないのですが、わかりますか? https://www.google.com/search?q=axfc.net%2Fu%2F3772575 これで検索するとわかります。 ありがとうございます。 コメントを残す コメントをキャンセルカテゴリー
最近の投稿
- FFmpeg 8.1リリース 2026年3月18日
- SSIMULACRA2, Butteraugli, CVVDPを調べるFFVship 2025年9月22日
- Vulkanエンコーダのまとめ 2025年9月19日
- FFmpeg 8.0リリース 2025年8月23日
- 彩度を考慮してグレースケールにするmonochromeフィルタの使い方 2025年5月2日
- 任意に時間や、効果を変えられるsendcmd、asendcmdフィルタの使い方 2025年4月8日
- FFmpeg 7.1リリース 2024年10月1日
- 視覚評価に重きを置いたxpsnr 2024年9月9日
- ブロックノイズを数値化するblockdetect 2024年6月15日
- FFmpeg 7.0リリース 2024年4月12日