ニコニコ動画に投稿された「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
解説
ドラクエIの戦闘エフェクトから違う部分だけ。シーンチェンジの背景が黒になるのがドラクエIの戦闘エフェクトと違う
- 入力順に、エフェクト画像、エフェクト画像を映像にするテストソース、シーンチェンジ前の映像、シーンチェンジ背景の黒映像、シーンチェンジ後の映像
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
解説
ドラクエⅡの戦闘エフェクトに加えて黒映像からのフェードアウトが追加される
白と黒を使ったフェード効果を参照
入力順に、エフェクト画像、エフェクト画像を映像にするテストソース、シーンチェンジ前の映像、シーンチェンジ後の映像
パスワードが検索してもでてこないのですが、わかりますか?
https://www.google.com/search?q=axfc.net%2Fu%2F3772575 これで検索するとわかります。
ありがとうございます。