【Blender2.8】モーショントラッキング【公式ドキュメント意訳】

Blender2.8公式ドキュメントの目次から「Motion Tracking」の項目について意訳 & 図解してみた。

>参考文献
>[Motion Tracking - Blender公式ドキュメント](https://docs.blender.org/manual/ja/latest/movie_clip/tracking/index.html)

##Introduction（序論）

モーショントラッキングとは、オブジェクトやムービークリップの動きを解析して特徴的な点を検出し、そのトラッキングデータを他のオブジェクトに適用することで座標を一致させる機能のこと。

モーショントラックエディタは**エディタタイプ**のドロップダウン メニューから**動画クリップエディタ**を選択して開く。

<img width="841" alt="スクリーンショット 2020-01-25 23.09.36.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/d6be54da-51d2-1142-252d-d5afa26cec56.png">

次に**モード**のドロップダウンメニューから**トラッキング**を選択する。

<img width="366" alt="スクリーンショット 2020-01-25 23.10.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/7839dcbe-ac75-4ec3-765c-66d166b470a5.png">

###Views

トラッキングモードには3つの**ビュー**がある。トラッキングの状態をモニタリングするために使い分けることになる。

|ビュー|用途|
|:-:|---|
|クリップ|ムービークリップ編集|
|グラフ|トラックマーカーの移動速度を視覚化|
|ドープシート|トラックマーカーのキーフレームを視覚化|

<img width="437" alt="スクリーンショット 2020-01-25 23.10.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/0fe9f31d-242e-8ca1-f1f8-94405017efd0.png">

基本的には**クリップ**ビューで作業するが、詳細情報をモニターしながら作業するならエディタ領域を分割して同時に視認できるように環境構築する。

![1 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/87506927-e6f3-d504-46fe-5aa43b689193.png)

画面分割した上で**グラフ**ビューなどをモニタリングすると便利。

![2 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/900a33c3-b8ca-f158-8d7b-fc06040dc113.png)

###Manual Lens Calibration（手動レンズ校正）

カメラで撮影された映像はレンズを通して投影されているため、必ず光学的に歪んだ像として記録されている。これは撮影時点で物理的に決まることなので、これについて後から変更を加えることはできない。しかし、映像をトラッキングするにはレンズの焦点距離などから歪みの強度を読み取る必要がある。

デジカメで撮影したデータであれば[EXIF情報](https://maiuma.com/exif/)から焦点距離などを自動で検出できる。[ポリライン](http://ds-cad.com/?p=176)ブラシでフッテージ（素材）上で直線になるラインを描画し、歪みの強度を調整してフッテージの立体感に一致させる（らしい）。より正確に調整するには[OpenCV](https://www.atmarkit.co.jp/ait/articles/1507/27/news154.html)のグリッド調整ツールを使用する。

###Camera and Object Motion Solving（カメラとオブジェクトの動きの解決）

トラッキングデータを解析する目的は、後ほど合成する3Dモデルの座標を一致させてあたかも同じ空間に存在するかのように仕上げるため。トラッキングは3D空間上の座標で行うが、撮影時のカメラ設定のメタ情報のないムービークリップなどでは画面上の映像の動きから空間を推測する必要がある。空間を推測するにはムービークリップを平面上の動き

###Tools for Scene Orientation and Stabilization（シーンの向きと安定化のためのツール）

解析したトラッキングデータは、合成するために3D空間上での座標を定義しなくてはならない。また、トラッキングにより座標をコントロールできるようになったため、必要なら手ブレ補正のために2Dスタビライゼーションを適用したりできる。

##Clip View（クリップビュー）

###Introduction（クリップビューの序論）

![スクリーンショット 2020-01-26 0.32.27 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/5f5d39c1-4e22-d84d-0e72-50c7379ffd83.png)

モーショントラッキングのほとんどの機能はクリップビューに集中している。

###Marker Display（マーカー表示）

###Pattern

###Serch

###Path

###Show Disabled（無効を表示）`alt + d`

###Info

###3Dマーカー

###薄いディスプレイ

##Graph View（グラフビュー）

>参考文献
>[Master Blender Camera Tracking in 6 Minutes! - Youtube](https://www.youtube.com/watch?v=kzym73lhmD4)

###Introduction（グラフビューの序論）

グラフビューは各フレームでのトラッカーの移動速度を示す。垢のグラフは水平方向、緑のグラフは垂直方向を示す。

トラッキング解析の実行手順は、まずムービークリップを読み込んだクリップビューで解析開始フレームに移動した状態にする。

1. `シーンフレームを設定`を押して現在フレームを解析開始フレームに設定
<img width="197" alt="スクリーンショット 2020-01-26 1.11.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/d6d3eada-b4b6-a42f-a40d-2e7ec30000a1.png">

2. `プリフェッチ`を押してムービークリップをRAMに読み込む
3. `トラック`のうち現在フレーム以降を解析するアイコン<img width="21" alt="スクリーンショット 2020-01-26 1.12.11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/03de3444-89f3-9c67-3bc1-f9bb29625572.png">またはショートカットキー（`cmd + t`）を選ぶ。このときクリップビューのトップバーに表示される`Solve error`の数値が低いほど精度が高く、大体`3`以下程度であれば十分と言える（限りなく0に近づけるよう手間をかけていく）。
<img width="199" alt="スクリーンショット 2020-01-26 1.11.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/89e3e95e-6274-3606-f5c4-8ce5eee0f7c9.png">
4. するとグラフビューに解析結果のグラフが描画される
![スクリーンショット 2020-01-26 12.28.21 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/d3f3d512-e957-0218-5f50-b1de84273f4b.png)
5. 解析タブの`カメラモーションの解析`を実行すると青いグラフが現れ、これはフレームごとの平均誤差を示す。青いグラフはCamera Solveの完了後のみ表示され、グラフを直接編集することはできない。グラフの振れ幅が大きい点は不正確なトラッキングを行っている可能性が高い。
![スクリーンショット 2020-01-26 12.28.31 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/b8f6b55b-93bb-ca96-9a6f-4b3156ee385f.png)
6. グラフビューを見ながら振れ幅の大きいトラックマーカーはノイズになる可能性があるので、不要と判断できればそのトラックマーカーを削除しておいた方がいい。マーカーの削除はクリップビューで行う。
<img width="580" alt="スクリーンショット 2020-01-26 13.20.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/8843f3e4-96f7-b679-d545-540304bcbf95.png">

大体この流れがグラフビューの活用法。

###選択項目を表示（マウスカーソルアイコン）

###非表示（ゴーストアイコン）

###フィルタ

- フレーム
- モーション
- エラー

###Usage（使い方）

グラフは、特定フレームのトラッカーが平均値からどれだけ外れているかを確認するのに役立つ。曲線が急上昇する場合、通常はトラッキングエラーを意味する。不要なトラックマーカーはこのときに編集しておく。

これでグラフビューでトラックマーカーの調整まで終わった段階となっているはず。次はこのトラッキングデータを他のオブジェクトに適用する準備をする必要がある。

1. クリップビューなどで`a`を押して全てのトラックマーカーを選択
2. タイムラインで、トラッキングするムービークリップの最終フレームに移動
3. `ctl + l`を押してマーカーろロックすることで他のフッテージにも同じトラックが適用できる（ということだと思う）
4. `背景として設定`と`トラッキングシーン設定`を押すと**3Dエディタ**のBGにトラッキングしたムービークリップを投影できるようになる。
<img width="198" alt="スクリーンショット 2020-01-26 14.09.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/c7c418ac-825b-d33a-a04e-06055bfd4a53.png">
5. 3Dエディタで`ビュー/視点/カメラ`を表示するとBGに映るようになる。
![スクリーンショット 2020-01-26 14.17.50 copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/fa63ac9d-06b9-4fe2-05fe-927e333f2c3b.png)
6. クリップビュー上で被写体の床に該当するトラックマーカーを3つ以上選択して`座標系/床`を押して登録するとトラックマーカーに意味付けされ、3Dオブジェクトとムービークリップのトラックマーカーの座標を自動で一致してくれる。
<img width="200" alt="スクリーンショット 2020-01-26 14.22.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/9f4eff93-2778-13c0-519c-94aa7bed4b58.png">

7. 3Dオブジェクトのライティングやシェーディングなどを仕上げて実写映像に馴染ませれば完成。

##Dope Sheet View（ドープシートビュー）

ドープシートとは、モーショントラッキングデータのキーフレームを視覚化して把握しやすくるするもの。クリップビュー上のトラックマーカーの数だけ、ドープシーとビューの項目が表示される。

<img width="517" alt="スクリーンショット 2020-01-26 1.30.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/45c5906d-81f3-a942-c268-1c3862b30cbc.png">

シート上のキーフレームを編集するには、ドープシートビューのトップバーにあるアイコンを選択する。ただし、本来ドープシートとは視覚化のためのもので、編集する目的のものではないので注意。使いにくいのであまり意味がないと思う。

<img width="199" alt="スクリーンショット 2020-01-26 1.35.45.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278293/cba0667b-deee-1ad2-9037-734b0ae733f3.png">

###Header

###使い方