見出し画像

YMM4に追加されたモーショントラッキングについて今さらの解説

正直使ったらわかるから書かなくてもいいかなーって思ってずっと放置してました。

そもそも6月のアップデートなのでもうふた月ほど前なんですけど……(ここ最近の記憶がない)。

YMM4のモーショントラッキングは実装当時かなり話題に上がっていたこともあり、使えば分かるほど精度も良く簡単なんですけど、こうしてネットのどこかに残さないとあとではじめる方が存在を認知できないかもしれないなぁ、ということに最近気付いたので簡単に書いてみます。

モーショントラッキングとは?

そもそも「モーショントラッキング」とはということについて。

動画を作る時に、動画の動いている物体に追従して画像を置きたい、という場面があると思います。たとえば、車のナンバープレートを隠す、動いている人物にぼかしを入れる、といった編集ですね。

そういう動いている特定の物体を「解析して追従してくれる動きを付ける」機能です。

使い方

今回はサンプルとしてこの車が迫ってくる動画を使ってみます。
追従対象は右の黄色い車に対し、図形を追従させてみます。

もっといいサンプルないのかよ、と思われるかもですが、あまりに実写素材の手持ちも探してもいいのがなくてこのためだけにこのレースゲームインストールしてきたので許してください。

ゲーム名は「アスファルト:Legends Unite」っていうそうです。無料でした。

モーショントラッキングのやり方

追従させたい図形アイテムや画像アイテムなどに映像エフェクトの「モーショントラッキング」を追加します。

四角形を追従させてみます

映像エフェクトのパラメータ欄にある「解析ツールを開く」からツールを開きます。

解析ツールでは以下の項目を設定できます。
基本的には

  • トラッキング対象:背景

  • アルゴリズム:CSRT

という指定のまま、追従する範囲を指定すれば問題なく使えるケースが多いです。

特筆するところがあまりない

今回の場合は中央の赤い四角を右の黄色い車にあわせて置きます。

赤い四角は位置や大きさの変更ができます

指定したら「再生位置から解析」を押せばシークバーの位置から解析がはじまります。

処理速度はPCのスペックに左右されます

解析が終わったらウィンドウを閉じます。

解析が終われば閉じるが押せるようになります

解析が終わると配置した図形が自動で追従して動くはずです。

パラメータの「なめらかさ」の数値を増やすと細かく振動するような動きを抑えられます。「サイズを固定」は動かし方に応じてお好みで。

枠が黄色い車を追従する

使い方はこれで終わりです。カンタンですね。わざわざ語るほどのものでもないくらい。

補足

そんなので終わったらつまらないので(私が)、もうちょっと突っ込んでみます。

トラッキング対象は「現在のアイテム」も指定することができますが、想像するシチュエーションはないかもしれません。要は動画に対して上から図形を追従させたいのですから、『動画アイテム自体を動かす』ことになります。

トラッキング対象の「現在のアイテム」を指定するときは、オプションの「軌道を反転」、「拡大率を反転」を同時にオンにするときに有効に働くそうです。
これらを同時に指定すると、追従する対象を同じ位置とサイズで表示させ続けることができます。

たとえば素材が透過GIFやWebPなら追従するキャラにあわせてエフェクトをつける…といったケースが……あるのかなぁ……。それでもあまり用途が思いつかなかったりします。

苦し紛れに思いつくのは、そのまま使うと動画アイテムが動きまくるので「画面内に収まるように拡大縮小」を入れる使い方。

青い車が画面の中央に来るようにモーショントラッキングを設定してみます。

元の動画

オプションの「軌道を反転」、「拡大率を反転」をオン。なめらかさは解析後に動きが気になるようなら入れましょう。

先述したようにトラッキング対象は「現在のアイテム」で指定します。そのまま「再生位置から解析」をし、完了後に閉じます。

モーショントラッキングの下に「画面内に収まるように拡大縮小」エフェクトを追加し、モードを「拡大のみ」対象を「縦方向のみ」にします。
余白の上下にマイナス値を入れて背景部分が見えないように調整します。

数字はこの動画に合わせて調整しているのであまり参考にしないように

それでも左端が暗くなるんですが、空いた左を余白として、なんらかの文字とかを置くとエンディング画面風に……なったりしませんか?

中間点を入れたりしてスッとアニメーションさせるようにしてみた版。

実写系の素材にしか使えないのでは?

特にそんなこともなく、こういった2Dゲームの動画でもモーショントラッキングは機能します。地味に動く敵キャラクターに矢印を出し続けたいときとかあるんですよね。

すこし試した限りですが、エフェクトや壁の後ろに隠れたりとかでトラッキングが途切れるときがあるので、途切れたときは「前のフレームを解析」「次のフレームを解析」などですこしずつ解析させると綺麗に動いてくれます。

結局指定できるアルゴリズムの差ってなに?

アルゴリズムの指定は「CSRT」でだいたい動く、と書いていました。

ただ、CSRT以外にも指定できるアルゴリズムが何個かあります。これらの違いとかをいろいろ調べてみたんですが、あまりいい説明が出てこなかったのでClaudeというAIに聞いてみました。

YMM4ではモーショントラッキング機能をOpenCVというライブラリを使って実現しているそうなので、それをもとにして訊いてみます。
(英語だとObject Trackingというらしい)

ちゃんと良さげな回答を得られましたね。まとめるとこんな感じです。

  • CSRTは高精度で比較的遮蔽物に隠れたり変形しても追従するが処理速度が遅め

  • DaSiamRPNは長期トラッキングと類似物体の区別に優れている

  • GOTURNは事前学習モデルを別に用意することで高速なトラッキングを実現する

  • Nanoは軽量で、リソースが制限された環境に適している

  • VITは複雑なシーンや長期トラッキングに強く、高い精度を持つ

処理速度についてはあまり考慮する必要はありません。YMM4上で使う場合は事前に解析してから使用するからですね。PCのスペックによって計算に時間がかかるかもしれませんが。

長期トラッキングについては適用したい動画の長さなどによって精度が変わるかもしれません。長尺のものに使おうとするときは気に留めていただくと役立つかもしれません。

まとめ

実写系の素材を使った動画を作る機会がないのであまり使わなかった機能ですが、試してみると2Dのゲームの動画に関しても気軽に使えるのでちょくちょく使用機会はありそうです。

今回は普段と比べて短めにしておきます。こういう短い記事を何個も作った方が見やすそうですが、いつも気付いたら長くなるんですよねぇ……。

ひとまずこういうくらいの記事はまた機会を持つとして、次はペン機能ですかね……。


サムネイルでお借りした立ち絵 : 空どうふ様

この記事が気に入ったらサポートをしてみませんか?