Composite

2010年08月24日

Compositeのトラッカーを調べてみた その7 Composite 2011

トラッカーの最後にスタビライズもやってみた。これまでやって来たトラッカーの使い方は物体の動きをトラッキングして、それにあわせて貼り付けた画像を移動変形させる方法だった。スタビライズも基本的にトラッキングしたモーション情報から画像を移動変形させるのは同じだけど、それを適用するのがトラッキングした画像そのもので、かつ動きが逆になるのが違いだ。トラッキングした動きと逆方向に画像を動かせば動きが打ち消されて静止して見えるってのが原理なわけだ。

fig01

スタビライズは上下方向とか左右方向とかの移動を止める1Pスタビライズとロール回転まで止める2Pスタビライズが出来る。

例えば下の画像のようにロール回転はしていない場合は1Pスタビライズで足りる。

fig02

ムービーにトラッカーを繋いで、

fig03

静止させたい部分に近いなるべく高コントラストな部分を探してトラッキングをする。今回は窓の右下の壁と屋根の境目を指定してみた。

fig04

そして2D Transformを繋いで

fig05

Transform Typeを1Pointにする。

fig06

そしてSourceの座標を0,0にする。これはトラッカーからスタビライズ用に得られる値がトラッキングの時のようにオフセット値を加算した形で取得できず、移動の相対量になるための補正だ。これをしないでDestinationにスタビライズの値を入れるとSourceの座標値ぶんだけ逆方向のオフセットが発生してしまう。

fig07

次にDestination 1を右クリックしてStabilizePositionを選ぶ。

fig08

TrackerSelectorパネルで先に作成したトラッカーを選択してLinkボタンを押す。

fig09

これでトラッキングポイントにした窓の右下の位置が静止するようにフッテージが運動するようになる。下はレンダリング結果。ふちをよく見ると、フッテージが移動して、レンダリングフレームの内側に入り込み、フッテージの下の背景がチラチラ現れたりしているのがわかる。

fig09

これは鬱陶しいのでトリミングする。Transformsにレイヤーを1つ追加して、

fig10

スケールをちょっと大きくして移動してもフッテージの縁がフレーム内に食い込まないようにする。またはレンダリングのサイズを落としてもいいわけだ。

fig11

これがその結果。多少の歪み変動が残るけど、画面の移動は抑えられた。

fig12

パンとかティルトなどの場合はDestinationのX座標値だけとかY座標値だけにトラッカーのモーションを読み込んでもいい。

次にロールも抑えたい場合。

fig01

これは2箇所のポイントをトラッキングしてTransformTypeを2Pointにするわけだけど、

fig13

1Pointの時のようにSourceを0,0にしてDestinationを変化させようとしても2つの基準点共に0,0にしてしまうと基準となる対角方向も距離も無くなってしまい、スタビライズどころじゃなくなってしまう。

そこで、発想を変えてStabilize Positionの替わりにTrak Positionを使う事でポイントのオフセットを使えるようにし、Destinationの方を基準にSourceの方をアニメーションさせることで反対の動きを付けて静止させる。

まずTransformTypeを2Pointにして、Destination1と2をそれぞれ右クリックしてTrackPositionを選び、それぞれ対応するトラッカーを選択してSingleFrameとUseOffsetをONにしてCopyボタンを押す。これで1フレームのトラッカーの位置が定数としてコピーされる。これを基準にSourceの方にアニメーションをつける。

fig14

Source1と2を右クリックしてTrackPositionを選び、TrackerSelectorで対応するトラッカーを選んだらUseOffsetだけONにしてLinkを押す。

fig15

これでさらにTransformにレイヤーを1つ追加してスケールを調整してレンダーフレームでトリミングしてレンダリングしたのがこれだ。ロール回転も抑えられているのがわかる。

fig16

以上スタビライズをやってみたけど現実にはこれにブラーが加わったり、CMOSセンサー使うと動体歪みがあったりするからいろいろ難しくなるね。

それではまた次回。

maxまとめページ 



take_z_ultima at 12:17|この記事のURLComments(2)TrackBack(0)

2010年08月18日

Compositeのトラッカーを調べてみた その6 Composite 2011

今日は大阪と名古屋の最高気温の予想が37度らしいな・・・。

さて、1ポイント、2ポイントのトラッキングをしたから4ポイントのトラッキングもやっておこう。

fig01

トラッキングポイントを4点とれると、擬似的にパースのかかった感じの変形が可能になるので、このように動いている平面に対して他の画像を貼り付けることが出来るようになる。

トラッキングするところまでは前回やったので割愛して、

fig16

そのトラッキングしたコンポジションをこのように組みなおす。

fig02

走ってるトラックのムービーと、そのコンテナの側面に貼り付けるムービーをBlend&CompのBackとFrontに繋いで、前回コンテナ側面だけくり貫いて表示するために使ったKeyerをMaskingに繋ぐ。そしてMaskingタブでInvertをONにしてマスクを反転させる。これで前回作ったキーでコンテナがくり貫かれて、その中に合成したムービーが見える状態になる。こうしないとタイヤの部分までムービーがかぶっちゃうからね。あとはそのムービーをトラッカーにあわせて変形させるだけだ。

fig07

そこで次に2DTransformのTransformTypeを4Pointにする。

fig03

4Pointを使った変形はSourceとDestinationに設定するそれぞれ4つのXY座標値を対応させて変形させる。特に形状は長方形じゃなくて構わないけど、変換後の四角形がねじれちゃったりするとうまく表示されなくなるから注意が必要だ。それからSourcePointは単なる座標値でしかないので、そのポイントがソース画像の内側にある場合、ポイントより外側にある画像部分は内側の画像の変形にあわせて線形に変形される。

fig08

で、まずはSource側を設定するんだけど、こっちは貼り付ける画像の4すみを設定すればいいので、下にある「Fit To Source」を押して貼り付ける画像のサイズから自動的に取得する。下の画像はソースが300X240の画像だったので、その中心を原点とした時の4すみの位置がそれぞれの座標値になっている。

fig04

この時に気をつけなくちゃならないのはポイントの並び順だ。FitToSourceを使うとフッテージの左下から反時計回りに右下、右上、左上の順のならびになる。
だからトラッカーを設定するDestinationの方はそれを考えて割り当てないとだめだ。一括で指定するなら、Destinationのラベルを右クリックして、「SetTrakers」を選択する。個別にするならDestination1〜Destination4までのラベルを右クリックして「TrackPosition」を選択してひとつずつ割り当ててもいい。

fig05

一括でやる場合は、TrackerSelectorパネルでTrackerAnalyzerをCTRLを押しながらクリックして選択する時に、Analyzerが左下から反時計回りになる順序で選択する。そして忘れずに「UseOffset」をONにして「Copy」または「Link」のボタンを押す。

fig06

これで貼り付ける画像の4すみの位置が4つのトラッキングポイントの位置にくるように変形されて擬似的なパースがかかった状態で貼り付けられる。

Fit To Sourceを使ってSourceの4すみの位置を決めなければ左下から反時計回りでポイントを決めるという決まりごとは発生しないので、4つのポイントの対応さえちゃんとしていれば問題ないけど、めんどうが増えるだけだからトラッカーを設定する時にこの事を意識してポイントを決めた方がいいだろうね。

それではまた次回。

 maxまとめページ 



take_z_ultima at 13:47|この記事のURLComments(0)TrackBack(0)

2010年07月30日

Compositeのトラッカーを調べてみた その5 Composite 2011

日々更新の時間が遅れております・・・。

さて、トラッカーを使ってもなかなかうまくトラッキング出来なくてキレながら1フレームずつ手動トラッキングするのは良くある事・・・orz

そこで改善出来る道は無いかと思って以下のことをやってみたのでご報告。とは言えテストに使ったのは下のようなCG画像なのであまり役に立つかはわからない(汗)

fig01

この側面に画像を貼り付けたいので、側面の4点をトラッキングしようと思ったんだけど、動く物体の縁の場合、背景の画像が大きく変化するためにトラッキングがうまく働かない。

そこでToolsメニューからKeyerカテゴリのKeyerをトラッキングしたいフッテージに接続した。プレイヤーの表示はToolOutputにしておいてね(プレイヤー上のゲートメニューを下に抜けるとToolUIに出てくるよ)

fig02

Keyerのサンプルカラーをクリックして、

fig03

カラーを抜きたい部分をクリックする。

fig04

このままだとアバウトに抜けるだけなので、抜きたくないのに抜けかけている部分をクリックする。

fig05

するとキーのリファインスライダが出てくるので、これを調整して抜きたくない部分が抜けないようにする。

fig06

こんな感じ。

fig07

さらに場面を変えながら抜けを確認してみたらさらにコンテナの上が抜けていたので修正

fig08

こんな感じ。

fig09

アルファがどんな感じになってるかを確認するためにCleanupAlphaに切り替えてみると、

fig10

まあまあ抜けたかな。Cleanupの画面ではグラフでアルファのコントラスト調整が出来るので、エッジがうまく出るように調整する。

fig11

このほかエッジ調整やパスアニメーションを使ったガベッジマスクなんかも使える。

これで目的の部分を残して全部消せたんだけど、どうもトラッカーはアルファチャンネルにうまく反応してくれないようなので、ToolsのImageGenerationのColorSourceと、CompositionのBlend&Compをコンポジットに追加して、下のように組み立てて、アルファで抜けた部分に白いプレーンを表示させることにした。Keyerはアルファチャンネルのみ出力している真ん中の部分をBlend&CompのMaskingにつなぎ、ColorSourceはBlend&CompのFrontに繋いでいるよ。たぶんKeyerだけで同じ事が出来る気がするんだけど調べ切れなかった。おそらくKeyerのグループを開けば・・・なんじゃこりゃ!

fig12

そしてColorSourceの方のサイズをキーイングしたフッテージと同じサイズにして、色を白にした。

fig13

そしてBlend&CompのMaskingタブでInvertをONにして、キーングしてアルファになっている部分を反転して、白い画像をキーでくり貫いた。

fig14

これがその結果。

fig15

ここまでくればトラッキングは自動でもかなり楽勝で追従してくれる。この出力をTrackerに繋いでコーナー4つをトラッキングしてみた。

fig16

ノイズの少ないCGがソースってこともあるけど、とにかくトラッカーの気持ちになってトラッキングしやすい画像を作ってやるのは結構効果的かも。

今回はサンプルデータがでかすぎてアップできないので、5コマだけアップしておいたよ。これでも試すことは出来るはず・・・。

それではまた来週。

maxまとめページ 



take_z_ultima at 13:58|この記事のURLComments(0)TrackBack(0)

2010年07月28日

Compositeのトラッカーを調べてみた その4 Composite 2011

暑くてパソコンの電源を入れるのも辛くなってきた・・・。

さて、前回は2D Transform toolを使って2Pointトラッキングをやってみた。今回はReaction Toolを使ってみたい。

まずは前提として前回同様Trackerがハートとクラウドのマークをトラッキングしている状態にしといてね。アナライザにはそれぞれHeart、Cloudと名前を付けるのも前回同様だ。

fig04

そして中ボタンを押してゲートメニューを出して、これを右に抜けてToolsメニューを出し、そこからReactionを選んで、下のToolメニューからReactionをスケマティックビューにドラッグ&ドロップして、このように接続した。

fig01

次にTool UIのReactionタブで、タイプメニューから「Plane」を選んで「Create」ボタンを押してレイヤーをひとつ作る。

fig02

Reactionツールにレイヤー1の入力ポイントが現れるので、これにArrowを接続する。

fig03

これで背景にfig01_のハートとクラウドのムビーフッテージが表示され、その上に平面(Plane)に貼り付けられたArrowフッテージが現れ、それがカメラで撮影されたものがOutputに出力される。

fig04

次にプレイヤービューで中ボタンを押してゲートメニューを出して下に抜けて、

fig05

ToolUIのDisplayタブで「Tool Output」を選ぶ。これで選択中のツールの出力がプレイヤーに表示されるようになる。こうしておかないと、リアクションツールの移動や回転の時に表示されるギズモがプレイヤーに表示されないので注意が必要だ。

fig06

これでスケマティックビューでReactionツールを選んでToolUIで先に追加したレイヤーを選択すると、レイヤーのPosition・Rotation・Scale・Pivotの欄が出てくる。そしてレイヤーの右側に縦に並ぶ移動・回転・スケールの3つのボタンによってプレイヤービューにそれに対応するギズモが表示されて、そのギズモを操作する事によって3次元的にレイヤーを操作できるようになる。下の画像は移動ツールがONになっている。

fig07

このままこのレイヤーにトラッカーからの情報をインプットしたいところだけど、回転方向にオフセットを与えたりしたいので、ローカル座標系をひとつ追加して、レイヤーをそのローカル座標にペアレントする。

スケマティックビューのReactionツールを右クリックして、ポップアップメニューからEditを選択する(またはツールをダブルクリックすればいいんだけど、なかなかうまく反応してくれないので素直にメニューから選んだ方が早い)。

fig08

これでスケマティックビューはグループ編集モードに切り替わる。リアクション内部のスケマティックビューの表示だ。

fig09

ToolUIのAxesタブで、「Add」ボタンを押してローカル座標を1つ追加する(または、中ボタンを押してゲートメニューを出して右に抜けてToolsメニューからReactionを選ぶと、下のToolメニューの中にAxisが出てくるので、これをドラッグ&ドロップで挿入してもOK)。そしてLayer(1)からAxis(1)に接続する。

fig10

これでAxisのローカル座標の上にLayerが乗る形でペアレントされる。

fig11

このAxisを選択したままToolUIのPositionのラベルを右クリックし、TrackPositionを選択する。ToolUIにこの表示が出ない時はAxesタブの一番左にあるAxesリストに追加されたAxis(1)をクリックしてみてね。

fig12

TrackerSelectorパネルでHeartを選択し、UseOffsetをONにしてCopyボタンを押す。これでハートマークと矢印が重なって動くようになる。

fig13

同様にRotationのZの値を右クリックして「Track Rotation」を選択する。

fig15

Tracker SelectorパネルでHeart、CloudをCTRLを押しながらクリックし、2つを選択状態にしてCopyボタンを押す。これでビューポートに対して垂直な軸まわりの回転をトラッカーの2つの点から取得して、矢印が回転するようになる。

fig16

これを再生してみるとこんな感じ。ハートマークに重なって赤い矢印が回転しながらアニメーションしている。

fig14

今度はスケマティックビューでLayer(1)を選択してToolUIのReactionタブを表示させ、PivotのY座標を−50にして基点を下方向に50移動して矢印の下に基点が来るようにする。そしてPositionのYに50を入力して矢印を上に50移動して、基点がハートの中心に来るようにする。そしてScaleのY値を右クリックして、「Track Scale Y」を選択して、これもHeartとCloudの両方をCTRLを押しながら選択し、Copyを押してハートとクラウドのフレーム1での距離を基準としたスケーリング値をScale Yに割り当てる。

fig17

これでハートの中心を基点として、スケーリングと回転が行われるようになる。

次に回転ツールボタンをONにしてプレイヤー上の回転ギズモをドラッグするか、RotationのZ値を−44程度に設定して矢印をクラウドマーク方向に向ける。

fig18

再びスケマティックビューでAxisを選択して、Scaleの下のLinkをONにしてからScaleのXYZの値のうちのひとつを4にする。LinkがONになっているので3つの値ともに4になり、矢印の大きさが4倍になる。

fig19

今のところ矢印はハートとクラウドの距離によって伸びたり縮んだりするアニメーションが付いているけど幅方向のスケールはアニメーションしていない。そこで幅の方は長さ方向のスケールの変化を数式で変換して作ってやることにする。
再びスケマティックビューでLayer(1)を選択してLayer(1)に戻り、ScaleのX値を右クリックして「Set Expression」を選択する。

fig20

Expression Calculatorが出たら

0.7/

と入力する。

fig21

ScaleのYの値を右クリックし、「Copy Path」を選択する。こうするとExpressionに入力するパラメータのパス名をクリップボードに取得出来る。

fig22

先に入力した0.7/の後ろでクリックして挿入ポイントを一番後ろに持って来て、CTRL+Vを押して先にクリップボードに取得したLayer(1)のScale Yのパスを入力する。式が入力し終わったらApplyを押して適用する。

fig23

これで0.7をScaleYの値で割った数値がScaleXにセットされるようになり、ScaleYの値が大きくなればScaleXの値が小さくなり、ScaleYが小さくなればScaleXの値が小さくなるような関係がセットされた。0.7という値は初期状態の矢印の縦の長さに対する横の長さの比だ。だから数値を小さくするほど矢印は細くなるよ。

これでセットアップは終了したので再生してみるとこのようになる。矢印が伸びると細くなり、縮むと太くなるのがわかる。

fig25


ちなみに先にグループ編集モードに切り替えたスケマティックビューを元に戻すには、スケマティックビューをダブルクリックするか、右クリックして「Exit Group」を選べばOKだ。

fig24

それではまた次回。

maxまとめページ 



take_z_ultima at 11:30|この記事のURLComments(0)TrackBack(0)

2010年07月26日

Compositeのトラッカーを調べてみた その3 Composite 2011

前回は1ポイントをトラッキングしたデータを使って他のフッテージをアニメーションさせるのをやってみた。今回は2ポイントを使ったものをやってみたい。2ポイントあれば位置だけじゃなくて方向やサイズなんかもアニメーションさせる事ができる。

fig01

今回は、前回使った2DTransformを使った方法を試してみたい。

まずは前回と同じようにスケマティックビューでこのようにコンポジションを構成した。

fig02

前回使ったフッテージはハートだけ動いていたけど今回は2つのマークが共に動いているものを使った。

fig06


そしてTrackerで前回同様ハートマークをトラッキングし、さらにAddボタンを押してTrackerAnalyzerをもう一つ追加して、

fig03

もうひとつのマークもトラッキングした。

fig04

トラッキングの項目が2つになったので、どっちがどれだかわからなくならないように、各アナライザをToolUIの左側のリストから選択して、ToolUIの右側のToolPresetのName欄に出てくる名前を入力しなおして、HeartとCloudという名前にしてみた。

fig05

次にスケマティックビューで2DTransformを選択し、ToolUIでTransformTypeを「2Point」に設定した。

fig07

このモードの場合、Sourceの2つのポイントを底辺とする長方形がDestinationの2つのポイントを底辺とする長方形に重なるようにソースフッテージのサイズと方向が変換される。この時長方形の縦横比は保たれたままスケーリングされる。

fig08

そこでまず、Sourceの下にある「Fit To Source」ボタンを押して、ソースフッテージである矢印の画像の左下の座標値と右下の座標値をSourceとして設定する。矢印のフッテージは100×100なので、中心点が(0,0)だとすると、左下の座標が(−50,−50)、右下の座標が(50,−50)になる。この時点でDestinationはコンポジションの底辺の左右の点の座標になっていたりするので矢印が大きくなる。

fig09

今度はDestinationを設定する。Destinationのラベルを右クリックして、出てきたポップアップメニューの「Set Trackers」をクリックする。

fig10

これでTracker Selectorパネルが出てくるので、Trackerを展開して、先に名前を付けた2つのアナライザをCTRLを押しながらクリックして2つ選択し、「UseOffset」をONにして「Copy」ボタンを押す。この時、クリックする順番でどっちのアナライザがどっちのDestinationに割り当てられるかが決まるからHeartをDestination1に、CloudをDestination2に割り当てたければHeart→Cloudの順に選択してね。

fig11

これでDestinationの方にトラッカーからキーポイントがコピーされる。再生してみると2つのマークを繋ぐ線を底辺として矢印がアニメーションしているのがわかる。

fig12

これをハートからクラウドへの矢印にしたければ、2DTransformでもうひとつTransformを追加して、

fig13

プレイヤーに出てくる2DTransformのギズモを操作したり

fig14

ToolUIのパラメータを入力したりして矢印の位置や方向、大きさを調整して矢印がハートからクラウドに向くようにする。

fig15

これでこのように矢印をハートからクラウドに向けてアニメーションさせることが出来た。

fig16

この方法を使った場合、角度とサイズの両方が一度に変換されてしまうので、回転だけとかサイズだけとか縦と横のサイズを別々に設定したい(伸びたら細くなって縮むと太くなるなど)とかいった容貌には応えられない。マニュアルによると、そんな場合はReactionToolを使うといいようで、最初に表示したGIFアニメはReactionToolとExpressionを組み合わせて組み立ててある。

次回はReactionToolを使った方法をやってみたい。

それではまた次回。

maxまとめページ 



take_z_ultima at 11:30|この記事のURLComments(0)TrackBack(0)
Archives