動画編集ソフト VegasPro モーショントラッキングデータを「パン/クロップ」で利用する

VegasPro

最近のGoProやスマホカメラであっても、動画撮影時の手振れ補正機能は驚くほどの効果を発揮してくれますが、あまり効果が得られないカメラや補正機能をONにし忘れた場合など、後から動画編集ソフトの機能で手振れ補正を掛ける事があります。ただし動画編集ソフトで手振れ補正を掛けると非常に時間が掛かったり、その割にあまり期待した結果になっていない場合があります。

スポンサーリンク

モーショントラッキング

現在(2022年4月)のVegasPro19では、「モーショントラッカー」機能で動画内の任意範囲を自動追跡し、モーションデータを作成してくれます。VegasPro18からは、このモーションデータを他のビデオトラックに転送して「PinP(ピクチャー・イン・ピクチャー)」のイベントFXで利用出来ます。またテキストの場合は「位置」にも利用可能です。

上記はベースとなる動画上でモーショントラッカーによる自動追跡を行う様子です。

上記ではモーショントラッカーから別のビデオトラック(画像)にモーションデータを転送して「PinP」のFXイベントを追加した結果です。画像はモーショントラッカーによる自動追跡と同じ動きをします。

さらに上記は、ビデオトラックとしてテキストを置いた場合で、モーションデータを「位置」として転送すると、テキストの「アニメーション位置」に反映されます。文字はこの場合もモーショントラッカーによる自動追跡と同じ動きをします。

あくまで私の環境でVegasProの場合ですが、モーショントラッカーによる自動追跡(検出)は、手振れ補正ほど時間は掛かりません。ここではモーショントラッカーについての詳しい説明はしませんので、下記記事を見て下さい。

手振れ補正とパン/クロップ

手振れ補正は「パン/クロップ」の機能と似ていると思います。パン/クロップはビデオの表示範囲を変更し、また移動も任意に可能です。キーフレームで時間によっても変更出来るので、モーショントラッカーによる自動追跡結果をパン/クロップのキーフレーム位置データとして転送出来れば、手振れ補正機能の代用となり、時間も本来の手振れ補正機能よりは節約出来るのでは?と考えられます。しかし残念ながら、今のところモーショントラッカーの自動追跡結果をパン/クロップの位置データに転送する事は出来ません。

スクリプトを利用する

MAGIXのVEGASコミュニティで、同様に考えている方がいました。そしてその機能を実現するスクリプトを「klt」さんがGoogle Driveで公開して下さっていますが、このスクリプトを利用する事でモーショントラッカーによる自動追跡結果をパン/クロップの位置データに転送する事が出来ました。※Google Driveのアドレスはこちらの別スレッドにて。

コミュニティで記載されているGoogle Driveからダウンロードしたファイル(pancrop.zip)を解凍すると、2つのスクリプトファイルがあるので、VegasProの「Script Menu」フォルダーにコピーします。2つのファイルの違いは単に「X」と付くスクリプトは横方向(X)のみの位置データの転送の様です。

※Google Driveでのファイル公開が終了してしまった場合は、「klt」さんがスクリプト内容もスレッドに記載して下さっているので、コピーしてスクリプトファイルにして下さい。

スクリプトの利用方法

まずは元となる動画と、その動画の複製を用意します。複製した動画側は一旦ミュートにしておき、元の動画側でモーショントラッカーによる自動追跡を行います。検出範囲は出来るだけ認識しやすそうな範囲にしておきます。

自動追跡が完了したら、さらに元の動画で追跡結果を「ベジェマスク」に適用します。

次にCtrlキーを押しながら、元の動画と複製した動画をクリックして、両方を選択した状態にします。

メニューから「ツール-スクリプトの作成」と進み、コピーしたスクリプトを選択します。

成功すると、上記の様なウィンドウが出ます。

複製した動画側のミュートを解除してパン/クロップを見てみると、上記の様に位置のキーフレームに自動追跡の結果が反映されています。またモーショントラッカーとベジェマスクは複数作成出来ますが、その場合はスクリプトでも転送する位置データを選択出来る様です(未確認)。

注意点

注意点としては最終的に使用する動画は複製した動画側となり、また先に複製側で基本となるパン/クロップの位置と範囲を決めておく事(0:00の位置で)です。自動追跡の結果を転送すると、その位置と範囲を基準としてモーショントラッカーの位置データが反映されます。また先の別スレッドでも注意点が幾つか挙げられています。

まず、スクリプトファイル内の記述で40~45行目付近にある「{Svfx:com.sonycreativesoftware:bzmasking}」を「{Svfx:com.vegascreativesoftware:bzmasking}」に変更する必要があります(「Zayo21」さんによる書き込み)。これは元のスクリプトがまだSONY時代のVegasPro用に作成された為だと思われます。

次にこのスクリプトはフルHD(1920*1080)用で固定されているので、他の解像度では以下の様に「klt」さんが書き込んでいます。私はフルHDで動画を作成しているので、以下の内容は未確認です。

申し訳ありませんが、スクリプトからイベントのビデオプロパティにアクセスする方法が見つかりません。 したがって、解像度はハードコーディングされたままですが、いくつかの定数を宣言してスクリプトの先頭に移動しました。

float Horizpixels = 1920;
float Vertpixels = 1080;
bool MoveOnlyHorizo​​ntal = false;

必要に応じて変更してください。

MoveOnlyHorizo​​ntalは、パンクロップはモーションの水平(X軸)の動きのみに従う必要があることを示しています。

「false」に設定されている場合、XモーションとYモーションの両方が実行されます。 「true」に設定されている場合、Xに沿ったモーションのみが追跡されます。

「klt」さんの書き込みをGoogle翻訳にて翻訳語、引用

これで手振れ補正機能の代用として「パン/クロップ」が利用出来る他に、人物の顔に中心を置いたままにするなどの応用が可能ですが、モーショントラッカーによる自動追跡時の検出範囲の指定が、いかに認識しやすい範囲に出来るかがポイントです。また自動追跡後の「ベジェマスク」への適用を忘れずに。

VEGASコミュニティの方には書き込んでいませんが、この場にて「klt」さんを初めとする方々に御礼を申し上げます。

注記(スクリーンショットについて)

掲載しているVEGAS Proの製品画面:©2003-2021 MAGIX Software GmbH.

その他の各ブランドやロゴ・製品名等は各製造者の登録商標です。