“Pointsto3D”や”Reconcile3D”からTransformノードにアニメーションを追加し、
Reference Frameを指定します。
3Dのカメラがある状態で2Dのトラッキングをしたいときに”Reconcile3D”や”PointsTo3D”を使ってトラッキングをして、 その値を”Tracker”にリンクして”Transform_matchmove”を出していたのですが、 その際に”Transform_matchmove”に値が入らないという現象が起きました。(バグか自分のミスなのかはわからない)
今回はTrackerを介さずに”Tracker”ノードを使わずに、Transformノードで調整する方法を紹介します。
Expression
Tracker1.tracks.1.track_x(ref_frame) - Tracker1.tracks.1.track_x
Tracker1.tracks.1.track_y(ref_frame) - Tracker1.tracks.1.track_y
まずは2Dのトラッキングデータを作ります。
今回は“PointsTo3D”で2D pointのトラッキングをしました。
アニメーションを“transform”の“translate”“x”“y”に持ってくるためにxとyの値にそれぞれExpressionを書きます。(リンクやベイクでも大丈夫です。)
Expression (x)
Tracker17.trakcs.1.track_xy Tracker17.tracks.1.track_y
Tracker17 : ノードの名前 tracks.1 : トラッカーの番号 track_x : 数値
Reference Frameを定義するには、 トラッカーのリンクの後ろに”(ref_frame)”を記入し、 Transformノードに新しいタブ”User”を追加します。 ”User”の中にintegerのパラメーターを追加し、”Name”を”ref_frame”にします。
[xの値の場合]
Tracker1.tracks.1.track_x(ref_frame)
現時点ではReference Frameに指定したフレームでの値のみが入力されるので アニメーションされません。 ここからリンク元のアニメーションを適応させていきます。 やり方は簡単で、リンク元のアニメーションから、先ほどのReference Frameをマイナスすれば、 Reference Frameが “0”の状態でアニメーションが作られます。
[xの値の場合]
Tracker1.tracks.1.track_x - Tracker1.tracks.1.track_x(ref_frame)
これでTransformノードでアニメーションをし、Reference Frameを指定することができます。
Comments