AMVにおけるフレーム補間について

Column

初めまして。YuKiMuMa(読み方はゆうきみゅうま)です。よくみゅーまさんとかみゅーま君とか呼ばれてます。1年ほど前からAMVを作っております。自己紹介と言ってはなんですが一番最近作ったAMVを一つ貼らせていただきます。

 

■初めに

さて早速本題ですが、AMVを作る者にとっては憧れの編集の一つでもあり、先ほど貼らせていただいた私の動画でも多用されているフレーム補間。今回はアニメの素材を用いた綺麗なフレーム補間について■AfterEffectsのみを用いる方法■AviUtlを用いる方法の二通り解説したいと思います。

フレーム補間とは?

そもそもフレーム補間ってなんやねんって話ですが、百聞は一見に如かずということで以下の3つの動画をご覧ください。 上から順に・元の動画・何もしないでスローにした場合・フレーム補間を用いてスローにした場合、となっております。

 

違いは明らかですよね。このようにフレーム補間はコマとコマの間の動きを予測してコマを補完してくます。たまこちゃん可愛い。

シーン選び

フレーム補間がとてもすごいことはお分かり頂けたかと思いますが、実は万能というわけでもないんですね。綺麗にフレーム補完できるシーンとそうでないシーンというものが存在します。綺麗にフレーム補完できるシーン選びの最大のポイントはもとの動きがゆっくりであることです。

動きが早いとコマ数は必然的に少なくなります。元のコマ数が少ないとコマとコマの間の動きが予測しにくくなるのでフレーム補間をすると以下のように「ぐちゃっ」とした映像になってしまいます。たまこちゃんの綺麗なお顔が!

自分でもいろいろ試してみてください。やってるうちにシーン選びのコツがつかめると思います。

コマ寄せ

ここの作業がアニメのフレーム補間において最も大切だと言っても過言ではありません。アニメのFPS(1秒間のコマ数のこと)が23.976であることは有名な話ですが実はキャラクターは1コマ1コマ動いてるわけではないんです。キャラクターの動きに限定すれば、多分FPSは10~12になるのではないでしょうか。これが何を意味しているかと言うと3コマくらい一切キャラが動いていない箇所が所々に存在するということです。するとフレーム補間さん(いきなり擬人化)は「コマ1とコマ2の間は一切動いてないからその間にも全く同じコマを補完してあげよう」となりコマ数は増えてるのに全然滑らかになってない!という事態に陥ります。以下にコマ寄せをしないでフレーム補間をするとどんな感じになるのか試しに作ってみたのでご覧ください。

確かに■フレーム補間とはの項目に載せた動画と比較すると明らかに滑らかさが足りていないのが分かりますね。そこで必要になあるのがコマ寄せと私が勝手に呼んでいる作業になります。簡単に言葉で説明すると、動いていないコマを排除し一コマ一コマ常に動く状態の動画を作る作業になります。何言ってるか分かりませんよね。具体的なやり方は以下の■AfterEffectsのみを用いる方法 ■AviUtlを用いる方法で説明します。

■AfterEffectsのみを用いる方法

AfterEffects(以下AE)を用いたフレーム補間のチュートリアル動画は結構あるんですけど、どれもTwixtorっていうお高いプラグインを使った方法で、AEのみを使ったフレーム補間のチュートリアルって全然ないんですよ。なので今回はAEのみを使ったフレーム補間のやり方を解説していきたいと思います。

  1. フレーム補間をしたいシーンを選んで適当なコンポジションにぶち込みます。
  2. キャラクターが動いたタイミングで動画を切っていきます。
  3. 毎コマ動くように先ほど切った動画を寄せて、一度書き出します。

  4. 3で書き出した動画を先ほどとはまた別の適当なコンポジションにぶち込みます。
  5. あとはぶち込んだ動画にフレームブレンドを適用し、タイムリマップを用いてスローにさせれば完成です。

言葉と画像だけじゃわっかんねぇよ!!という方のために作業動画も以下に用意しました。私の知ってる中で一番早いコマの寄せ方も一応解説してるのでよろしければご覧ください。

■AviUtlを用いる方法

みんな大好きAviUtlを用いてフレーム補間をする方法です。AfterEffectsを用いた方が圧倒的に少ない作業で簡単にフレーム補間ができるのは事実ですがAfterEffectsに払う金なんぞないわ!って方は是非こちらを試してみてください。とりあえずAviUtlでもここまでできるんだぞ!という証拠にAviUtlを用いたフレーム補間の動画をのせたいと思います。

AviUtlのみではフレーム補間はできないので他にも色々(すべてフリー)と導入し、環境を整えなければなりません。まあこの記事を読んでいるような方はスクリプト導入の事などは把握されていると思うし、ググればAviUtlを用いたフレーム補間のことは沢山出てくるので環境の整え方については大雑把に書かせていただきます。

環境を整える

  1. AviSynthをダウンロードし、インストールします。
    こちらのサイトから最新版のインストーラをダウンロードし、インストールしてください。
    また、AviSynthについて詳しく知りたい方はこちらをどうぞ。
  2. MvToolsをダウンロードします。
    こちらのサイトから.7zファイルをダウンロードして解凍し、AviSynthをインストールしたフォルダ内のpluginsフォルダにmvtools2.dlをコピペしてください。
  3. warpsharpをダウンロードします。
    こちらのサイトからwarpsharp(.cabファイル)をダウンロードし、その中にあるavsinp.auiをAviUtlと同じフォルダにコピペしてください。

これで環境を整えることができました。ではさっそくフレーム補間をしていきたいと思います。

フレーム補間をする

  1. フレーム補間をしたいシーンを選んでAviUtlにぶち込みます。
  2. キャラクターが動いたタイミングで動画を切っていきます。
  3. 毎コマ動くように先ほど切った動画を寄せて、一度AVI出力します。

  4. メモ帳を開いてスクリプトを記述し、.avs形式で保存します。
    スクリプトは以下のコードをコピペしてください。

    AVIsource(“") #""内は変換する動画のパスに
    ConvertToYUY2()
    AssumeFPS(23.976)
    super = MSuper(pel=2)
    backward_vec = MAnalyse(super, overlap=4, isb = true, search=3)
    forward_vec = MAnalyse(super, overlap=4, isb = false, search=3)
    MFlowFps(super, backward_vec, forward_vec, num=30*FramerateNumerator(last), den=FramerateDenominator(last))

    ここに何が書かれているかざっくり申し上げると、23.976fpsの動画をフレーム補完してフレームレートが元の30倍の動画にしてくれ~って感じです。ここは私もあまり詳しくないのでもっと詳しく知りたい方はググってください。

  5. 4で保存した○○.avsをAviUtlで開きます。
    (拡張編集ではなくAviUtlですよ!)
  6. 再び動画を書き出します。
    今回はAVI出力でもプラグイン出力でも大丈夫です。今回私はプラグイン出力したので出力された動画は.mp4になっています。
  7. 6で出力した動画をAviUtlの拡張編集にぶち込んで
    編集>再生速度の情報を変更
    より、フレームレートを23.976など任意の値に直します。
    何もしないと多分fps719.28とかになっていてまともに書き出せません。
  8. 最後に7で読み込んだ動画の再生速度を好きなように変えて書き出せば完成です。

言葉と画像だけじゃわっかんねぇよ!!という方のために作業動画も以下に用意しました。

 

■最後に

この記事を読んでもどうしてもここが分からん!!ということがあればコメント、若しくは私のツイッターのほうにリプなりDMなりしていただければわかる範囲でお答えさせていただきます。また、ここ間違ってるよ!とかこここうしたほうが良いのでは?といった意見もお待ちしております。

拙い文章でしたがここまで読んでいただきありがとうございました。

Column

Posted by YuKiMuMa