CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Blender2.9】実写合成(VFX)で使える!トラッキングの方法・コツ
Blenderで実写合成(VFX)のトラッキングをしよう!
こんにちは!
今回は、無料の3DCGソフト「Blender」の実写合成(VFX)で使用する「トラッキング」の方法について紹介します。
私自身、最近VFXを始めたばかりでまだまだ知らないことばかりですが、学んだことをアウトプットしていきたいと思いますので、読んでいただけると嬉しいです!!
Blenderを使った簡単な実写合成の方法についてはこちらの記事で紹介していますので、ぜひ合わせてご覧ください!
トラッキングの種類
「トラッキング(Tracking)」は日本語に直すと「追跡」という意味です。
あとで説明しますが、実写映像の特徴点(マーカー)を追跡(トラッキング)し、カメラなどの動きを実写映像に合わせることができます。
こうした一連の作業を「モーショントラッキング」または「マッチムーブ」と呼ぶそうですが、本記事の中ではすべて「トラッキング」という名称で統一したいと思います。
Blenderでは、トラッキング対象別にこちらの3種類のトラッキングができます!
- カメラトラッキング…カメラの動きを実写映像に合わせる
- 平面トラッキング…平面の動き・変形を実写映像に合わせる
- オブジェクトトラッキング…CGオブジェクトの動きを実写映像に合わせる
それぞれどんなことができるのか具体例を交えて説明します。
カメラトラッキング
実写映像全体にマーカーを配置しトラッキングすることによって、3DCG空間上のカメラを実写に合うように動かします。
まず、実写映像にマーカーを配置し「トラッキング」を行います。
トラッキング実行後、「カメラモーションの解析」によってカメラの動きを計算します。
詳しい手順については「実写合成しよう!」の記事で説明していますので、合わせてご覧ください!
床のトラッキング設定について
カメラトラッキングでは静止した床(地面)を作って、3Dオブジェクトを配置することができます。
こちらのように、「カメラモーションの解析」を実行したあと、マーカーを3点選択して床を生成します。
生成した床(地面)はこちらのようにCGオブジェクトの影が映るので、あたかも実写風景の中にCGオブジェクトが存在しているように見えます。
床の作り方についても「実写合成しよう!」の記事で手順を説明していますので、合わせてご覧ください!
平面トラッキング
実写映像の4点をトラックして、追従する平面を生成することができます。
必要なマーカーが4点だけなので、8点以上必要なカメラトラッキングやオブジェクトトラッキングと比べて非常にシンプルです。
生成した平面に画像を貼り付けることで、このように壁や床に看板やポスターなどを設置することができます!
↑の動画の作成手順を簡単に説明します!
1. マーカーの配置と平面トラックの作成
まず、平面を設置したい箇所の4隅を狙って、マーカーを4点配置します。
このとき、ショートカットキー「Ctrl+左クリック」を使うと便利です!
マーカーを設置したら、トラッキングを実行します。
トラッキングが完了したら、「解析→平面トラックを作成」を選択します。
2. 平面トラックのサイズ調整と画像の読み込み
「平面トラックを作成」を選択すると、白い四角形(平面トラック)が現れます。
左クリックドラッグで平面トラックの4隅の位置を調節します。
「N」キーで右側に表示されるメニューから、「平面トラック→開く」で画像を読み込みます。
3. コンポジットの設定
コンポジットという作業はワークスペースの〔Compsiting〕で行います。
全く知らないという方はまず以下の記事を読むことをオススメします。
▼【コンポジット初級編】はコチラ!
「Compositing」のタブに切り替えて、「ノードを使う」にチェックを入れた後、「Shift+A」で以下のノードを追加します。
- 入力→動画クリップ
- 入力→画像
- 変形→平面トラック変形
- カラー→アルファオーバー
- 出力→ビューアー
コンポジットノードはこのように接続します。
タイムラインを再生し、追加した画像が壁に張り付いているように見えていればOKです。
平面トラッキングの手順は以上です!
平面トラッキングの詳しい手順はこちらのチュートリアル動画(英語ですが)を参照ください。
上記の手順に加えて、コンポジットノードを使った看板の汚し方なども説明しているので、ぜひ参考にしてみてください!
オブジェクトトラッキング
対象物の上にマーカーを配置して、3DCGオブジェクトを追従させることができます。
たとえば、こちらのように、人物が持っているボールをモンキーに置き換えることができます。
↑の動画の作成手順を簡単に説明します!
1. トラッキング対象の設定とマーカーの配置
まずはトラッキング対象のオブジェクトを選択します。
「N」キーでメニュー表示される画面右側のメニューの「トラック→オブジェクト」で、「+」ボタンから「Object」を追加・選択します。
つぎに、トラッキング対象物上にマーカーを配置するために「アノテーション領域」を設定します。
トラッキング画面上で、「アノテーション」でトラッキングしたい対象物を囲むように線を引きます。
「D」キーを押しながら左クリックドラッグで線を追加、「D」+右クリックで線を削除できます。
「Detect feature」を選択し、左下のメニューで「アノテーション領域内」を選択します。
できるだけ多くのマーカーを配置するために、「しきい値:0.01」「端からの距離:0」「間隔:10」に設定します。
2. トラッキングの実行とマーカーの整理
「マーカーをトラック」を選択してトラッキングを実行します。
その後、「解析→オブジェクトモーションの解析」を選択します。
エラーが大きいマーカーや途中で追跡できなくなるマーカーを削除したら、「オブジェクトモーションの解析」を繰り返します。
「Solve error」が1以下になればOKです!
3. オブジェクトの生成とコンストレイントの設定
「解析」→「ジオメトリ」→「3Dマーカーをメッシュに」を選択します。
すると、3Dビューポート上にオブジェクト(マーカー上の点)が追加されるので、そちらを選択します。
Tabキーで編集モードに切り替え、左上のメニュー「メッシュ→凸包」を選択します。
オブジェクトモードに切り替えた後、「オブジェクトコンストレイントプロパティ」から「オブジェクトソルバー」を追加します。
このとき、オブジェクト:「Object」、カメラ:「Camera」、「逆補正を設定」を選択します。
4. ペアレントとコンポジットノードの設定
「Shift+A」でモンキーを追加し、先ほど生成したオブジェクトをペアレントに設定します。
「Compositing」のタブに切り替えて、「ノードを使う」にチェックを入れた後、「Shift+A」で以下のノードを追加します。
- 入力→動画クリップ
- 入力→レンダーレイヤー
- カラー→アルファオーバー
- 出力→ビューアー
コンポジットノードはこのように接続します。
タイムラインを再生し、モンキーが手の動きに追従していればOKです。
オブジェクトトラッキングの手順は以上です!
オブジェクトトラッキングの詳しい手順は、こちらのチュートリアル動画(英語ですが)を参照ください。
ペアレント設定については、こちらの記事を参照ください。
慣れてくれば、人物の顔や体の動きなどをトラッキングして、3Dモデルに置き換えたりできる(…はず)なので、ぜひ試してみてください!
トラッキングの設定方法・コツ
Blender VFXプロジェクト上でのトラッキングの設定項目とおススメの設定について説明します。
VFXプロジェクトの立ち上げ方・動画の読み込み方は「実写合成しよう!」の記事で手順を説明していますので、合わせてご覧ください!
クリップ
読み込んだ動画のフレーム設定をします。トラッキング画面の左側メニューの一番上の項目です(↓の図の赤枠で囲ったところ)。
動画を読み込んだら、まずはこちらの2項目を選択しておくと良いと思います。
- シーンフレームを設定:タイムラインの長さを読み込んだ動画に合わせます。
- プリフェッチ:読み込んだ動画をメモリに格納することで、タイムラインと動画のフレームを同期させます。
マーカー
トラッキングを行うマーカーの追加・削除をします。
左側メニューの「追加」「削除」を選択することでマーカーを1つ1つ追加・削除できますが、↓の動画のようにこちらのショートカットキーを使った方がラクです。
- マーカーの追加:「Ctrl」+左クリック
- マーカーの削除:マーカーを選択して「X」
「特徴点を選択」を選択すると自動でマーカーを追加してくれます。
この後の「解析」でエラーが大きいマーカーを大量に削除するので、「しきい値」は0.01、「距離」は40程度にしてあらかじめマーカーの数を多めにしておくのがおすすめです。
また、「オブジェクトトラッキング」の項目で説明したように、「D」+左クリックで追加したアノテーション領域内(or除外して)にマーカーを追加することもできます。
トラッキング設定
トラッキングの方法を指定します。
まず、こちらの選択メニューでマーカーサイズと追跡範囲の設定ができます。
- パターンサイズ: 新しく追加するマーカーのサイズを指定します。
- 検索サイズ:マーカーの追跡範囲を指定します。
こちらの動画のように、パターンサイズと検索サイズを大きくすると新規追加するマーカーが大きくなります。
検索サイズはショートカットキー「Alt+S」で表示できます。
なお、マーカーを選択して「S」で拡大・縮小できます(検索サイズも同時に拡大・縮小される)。
こちらのメニューでマーカーのトラッキング方法を設定できます。
- モーションモデル:マーカーの動きを設定します。
- マーカーの動きに合わせて、「位置」「位置・回転」「位置・スケール」「位置・回転・スケール」「透視投影」「Affine(アフィン変形:せん断・引張・圧縮変形)」を選択します。
- 動きの小さいシーンでは「位置」、動きの大きいシーンでは「位置・回転」、奥行き方向に動くシーンでは「位置・スケール」などと使い分けると良いと思います。
- マッチ:前のフレームから次のフレームへのトラッキングパターンを設定します。
- キーフレーム:「解析」の項目で設定するキーフレームから次のフレームへのパターンを検出します。
- 前のフレーム:前のフレームから次のフレームへのパターンを検出します。
- 基本的には「キーフレーム」のままでよいですが、トラッキングが途中で止まってしまう場合は「前のフレーム」を選ぶとうまくいく可能性があります。
以下の項目は基本的に触らなくてよいと思いますが、一応ご参考までに載せておきます(詳しくは「Blender Manual」を参照)。
- プレパス(初期設定はON):2点トラッキングを有効にします。
- 正規化(初期設定はOFF):マーカーの明るさを正規化(平均値が一定になるように換算)します。マーカーが影を移動する場合などはONにすると良いそうです。
- RGB(初期設定は全てON):R(赤)G(緑)B(青)のうち特定の色を有効/無効にします。
- トラッキング詳細設定
- ウエイト(初期設定は1.0):トラッキングする際に特定のマーカーの重みを減らします。
- 相関関係(初期設定は0.75):追跡が成功したとみなす、相関係数のしきい値です。
- 余白(初期設定は0px):マーカーが映像の境界に近づいたときに無効化する位置を設定します。
- マスクを使用(初期設定はOFF):指定した範囲のパターンを使用するよう、アノテーションツールを使用してマスクします。
トラック
トラッキングを実行します。
こちらのようにマーカーを選択し、「マーカーをトラック(順方向:右矢印/逆方向:左矢印)」を行えばOKです。
途中で有効なマーカーが少なくなりすぎた場合は、こちらのように途中のフレームからマーカーを再度追加してトラッキングしましょう。
その他の設定項目については以下です(詳しくは「Blender Manual」を参照)。
- クリア:トラッキングを解除します。
- 絞り込み:マーカーの位置を調節するときに使用します。
- 対象物が途中で消えて再度現れた場合に手動でマーカー位置を調節し、「マーカーをリファイン」を選択すると修正した位置で再トラッキングできるようになります
- 使用例は下の動画を参照ください。
- マージ:複数のトラッキングを統合、または平均した新しいトラックを追加できます。
「絞り込み」の使用例
トラッキングできない場合の対処方法
「解析→カメラ(オブジェクト)モーションの解析」を実行すると、こちらのように「再構築には少なくとも両キーフレームに8つの共通するトラックが必要です」というエラーが出ることがあります。
これはキーフレーム上(↑の場合は1と30フレーム)のマーカーの個数が少なすぎることが原因なので、以下の方法で解決できます。
先ほど「マーカー」の項目で述べたように、「特徴点を検出」の際のしきい値を0.01、間隔を40程度まで少なくすることで初期のマーカーを増やしエラーを回避できます。
マーカーがトラッキングできずに途中に消えてしまう場合は、以下の「トラッキング設定」の項目を見直すか、途中のフレームでマーカーを追加すると良いです。
- モーションモデルを「位置」から「位置・回転」「位置・スケール」などに変更する。
- マッチを「キーフレーム」から「前のフレーム」に変更する。
トラッキングデータの書き出し方法(MAYAなどへのエクスポート用)
Blenderをトラッキングツールとして使い、MAYAなど他の3DCGソフトへトラッキングデータをエクスポートする使い方もできます。
こちらのように、カメラを選択し「オブジェクトコンストレイントプロパティ」から「コンストレイントをFカーブに」でカメラモーションを確定させた後、カメラをFBX形式でエクスポートします。
こちらのように、Blenderの新規ファイルを立ち上げてFBXをインポートすると、無事カメラモーションを読み込むことができました。
少し前のバージョンですが、k.naoki氏のブログでBlenderからの詳細なエクスポートが説明されていますので、こちらもあわせて参照ください。
まとめ
今回は、実写合成で使用するトラッキング方法にフォーカスして紹介させていただきました!
Blenderは、無料ソフトとは思えないくらいトラッキングの機能が充実しており、プロクリエーターの方も使用されているので、ぜひ試してみてください!
こちらは今回のまとめです。
- Blenderでは「カメラトラッキング」「平面トラッキング」「オブジェクトトラッキング」ができる
- トラッキングできない場合は、マーカーを増やすorトラッキング設定を変更する
- トラッキングしたモーションデータは、他の3DCGにエクスポートできる