2018年2月16日金曜日

快適動画編集 Motion5で動く部分を切り取るマスクの作り方


 動画の編集に少し慣れてくると、カット編集ばかりでなくマスクを使った画像の合成などにも挑戦したくなります。クロマキーやマスクを使った画像の合成が出来るのは、ある程度高機能な編集ソフトに限られるようですが、作品の幅がぐっと広がります。利用している動画編集ソフトはプロも使用しているFinal Cut Pro X(FCPX)のため、機能的には問題ありませんが、使う側の技術と経験がついて行きません。FCPXとMotion5のマニュアルと格闘しながら試行錯誤する日々が続いています。


最初に挑戦した動画の合成は実に単純だった


 マスクを利用して動画の合成を試してみたのは二年ほど前のことになります。Motion5を購入して3ヶ月程度が経過した頃でした。オートバイで山道を走っているシーンを撮影した動画素材が手元にありましたので、何か作れないか考えてみました。山道で競争しているような映像にするために、時間をずらして同じ動画を複数重ねてみることにしました。

 まず最初に行った作業は、切り抜く部分を囲むベジェ曲線を描くことです。作図自体は簡単なのですが、動画の中のオートバイは動いていますので、映像の初めから終わりまで位置と大きさをオートバイに合わせて変えてやらなければなりません。Motion5には動くものの軌跡を自動的に追いかける「モーショントラッキング」ビヘイビアを持っていますが、対象が画面奥から手前に移動するような場合、サイズや見え方がかなり変わってしまうため途中で追跡不能になるようです。この処理をキーフレームを使用した手動で行いましたが、かなり苦労しました。プロの世界では一フレーム毎にマスクを手動調整することも行われているようですが、とてもそこまでやる根気はありません。

描いたマスクをキーフレームでオートバイに追随させる

オートバイの影も含めた全体が入るようにマスクを描画し、何点かのキーフレームでコントロールします。大きさや向きが時事刻々と変わる動画では、どうしても対象に比べて大き目のマスクとなってしまいます。

 マスクで切り取られた動画は、下図のようにマスクの内側だけ映像が残り、外側は真っ黒になります。この黒い部分がアルファで透過するため、他の映像に重ねると下にある映像が透けて見える部分になります。

マスクを使用して切り取られた映像

本当に必要な範囲よりだいぶ外側にはみ出していることがわかります。この映像を複数並べていくと、一つの画面上に複数のオートバイが走っているように見えます。ただし、それぞれの映像を近づけすぎると一部が不自然な場所で隠れてしまいます。

下の映像が何もない部分で隠されてしまい、とっても不自然

それぞれのオートバイの間を開けなければなりませんので、追い越しやすれ違いなどの合成は不可能です。そんな制限のある中で、やっとの思いで出来上がったのが下の作品です。実に単純な作品ですが、たった一本の動画素材を時間をずらして並べるだけでレース気分が出るのは不思議でした。




After Effectsの「異なるマットエフェクト」が欲しい


 その後、色々な作品を作りながら勉強を続けてきましたので、Motion5やFCPXにもだいぶ慣れてきました。動いているものを切り取るマスクを、手動で作成するなんてとんでもないということもだんだんと分かってきました。AdobeのAfter Effectsには「異なるマットエフェクト」という機能があり、動かない背景画像とその中で動いている部分を切り分けられるそうです。「これだ〜」と思いましたが、残念ながらAfter Effectsは持っていません。Motion5にはいくら探しても同じ機能は見つかりませんでした(泣)。同じ事が出来ないかMotion5のマニュアルをもう一度読み直しです。

・動かない背景と動いている前景の差分を取ればいいのでは?


 After Effectsが行ってくれるのは、動きのない背景画像と一部が動いている動画を比較し、動いている部分だけをマスクとして抽出してくれるというものです。であれば、Motion5でも同様の機能を組み合わせてみればできるはずです。考えてみたのは次のようなワークフローでした。

AEの「異なるマットエフェクト」と同じ事をMotion5でやるにはこのフローかな

背景が動いている動画には向きませんので、三脚を利用して撮影した映像を使います。その中で、オートバイが写っていないフレームを静止画として書き出し、背景画像として利用しました。前景は使用予定の動画クリップそのものです。

1. レイヤーのブレンドモードを「差分」に


 グラフィック系の編集ソフトでは、レイヤーを重ねる際に上にくる映像の重ね合わせオプションを変えてやる事が出来ます。Motion5でもブレンドモードで色々な重ね合わせオプションが選べます。数が多すぎてとても全てを理解できていませんが、動いていない背景と動きのある前景を重ねる際に「差分」を選んでやれば、違う部分だけを抽出できるはずです。

上にくるレイヤー(画像)のブレンドモードを「差分」にする

すると動いていない背景部分はほとんど真っ黒になり、動いているオートバイ部分が見事に抽出されています。ただし、だいぶ色の薄い状態で、このままマスクとして利用すると、合成された映像も幽霊のようにうっすらとしてしまいます。バイク動画で幽霊出現では縁起でもありませんので、対策が必要です。

2. 「しきい値」フィルタを適用して無理やり白黒に


 マスクとして利用しますので色の情報や明るさの情報は必要ありません。背景と少しでも違う部分は真っ白になって欲しいのですから、差分に対してしきい値以上の部分は100%の白色にしてしまいます。それ以外の部分は真っ黒になってもらいます。そのためには「しきい値」フィルタを使います。背景と前景の「差分」が反映されているグループレイヤーに対して「しきい値」フィルタを適用し、パラメータを調整して理想の形に近付けます。すると薄くなっていたオートバイの形のマスクが、白と黒のはっきりとしたイメージとなりました。

差分が得られたグループレイヤーに「しきい値」フィルタを適用

内側が全て真っ白になっているのがマスクとしては理想的ですが、効果的なフィルタが見つかりませんでした。

3. 自動作成したイメージマスクで映像をくり抜き


 自動で作成できたイメージマスクを、使用する動画クリップのマスクとして指定します。すると下のようなイメージが現れました。オートバイやライダー、影の部分がちゃんと切り取られていますが、タイヤ・カウル・ライダーなどの一部分に小さな穴が空いてしまいました。どうしても差分からだけでは埋められない穴が残るようです。

自動作成のマスクで切り抜かれた映像

背景の部分にも、風で揺れる木の枝や草などが差分として小さく現れています。少し気になる映像ですが、最後に元の背景画像をこの下に置いてみると嘘のように目立たなくなりますので安心してください。動画から自動生成されたマスクで切り出していますので、オートバイが動いてもちゃんとそこだけ切り取られて表示されます。

4. 切り取られた映像を自由に配置して作品にする


 ここまでで、必要な部分が切り取られた動画クリップが出来上がります。一つのクリップを時間をずらして配置するも良し、別のクリップをシナリオに沿って重ねるも良し、編集者の思いのままです。作品として不自然にならないようにする必要はありますが、おかしな重なり方で悩む必要はありません。二年前の習作では一方向に間隔を開けてオートバイが走るだけでしたが、今回は反対方向に走るオートバイとのすれ違いもあります。不自然さもありません。

切り取られた複数の動画クリップを重ねて作品にする

最後に、背景となるクリップか静止画を置きます。すると、マスクに残るゴミのように気になっていた部分が見事に分からなくなりました。差分を取る際にできてしまった穴なども、元々背景にあった映像が透けて見えるだけですから、不自然ではない訳ですね。逆に言えば、元々の背景とは全く異なるものを持ってきて合成する場合は、仕上がりにかなり粗が目立つことになります。

背景を置くとマスクの不具合もカモフラージュされる

拡大してじっくり観察すると、見えてはいけない後ろのものが見えているのですが、高速で移動しているバイクの映像ですからほとんど気付きません。動く部分のイメージマスクをなんとか自動で作成できました。メデタシ、メデタシ。


新たな手法でマスクを用意した合成動画作品


 動く映像のイメージマスクが手間をかけずに作成できました。必要な部分のみを正確に切り出してくれますから、合成時の自由度が格段に向上します。映像作品を編集する際に次元の違う合成ができますので、作品のレベルが格段に向上....するはずなんですが....


あとはセンスの問題ですね.... そこが一番問題だったりしてσ(^_^;)



「しきい値」の前に「ブラー」を適用すればさらに良好


 YouTubeに習作をアップした後も、もっと良いマスクが自動的にできないか試していました。イメージの輪郭をぼかしてくれる「ブラー(ガウス)」フィルタを使ってみたところ良好な結果が得られました。左が「しきい値」のみで作成したもの、右が「しきい値」を適用する前に「ブラー(ガウス)」を適用したものです。バイクの中の細かな穴が少なくなっているばかりでなく、背景に現れていた小さな点も消えてくれています。画像の合成結果もさらに良好になりました(^ ^) 先に「しきい値」を適用したものに「ブラー」を使ってもそれほど効果はありません。二つのフィルタ適用の順序が大切です。

しきい値の前にブラー(ガウス)を適用したところさらに良いマスクが生成できた

考えてみればこの手法は理に適っていますね。AEが持っている「異なるマットエフェクト」機能もこの手法を使っているのかもしれません。Motion5でかなり強力な自動マスク生成の手順がわかりましたので、今後の作品作りに役立ててみようと思います。

(2018年2月17日追記)



0 件のコメント:

コメントを投稿