[Nuke] NukeXをboujou代わりに使ってみる
NukeXは3Dカメラトラッキングができ、作成したカメラをalembicもしくはfbxを介して他のDCCツールに持っていくことができます。
ただカメラとロケーターがバラバラのノードで出力されるのでこのままMayaなんかに持ってきても使いづらいです。イメージプレーンも設定しないといけません。面倒なのでboujouにならった設定でMayaへ出力してみることにします。
大きな流れは次の感じになりやす。
正確に言うとfbxで出すんですが、その時ついでにMayaで使いやすいようにma変換しちゃうってことです。
解説していきます。
mayabatchで実行するMELファイルを作成します。
記事の最後に公開している(adjustNkTrackingCam.zip)解凍されたMELファイルをすべてmayaのスクリプトファイルが読み込まれるフォルダに入れてください。
次にmayabatchを走らせるpythonスクリプトを作成します。
これも記事の最後に用意したので(convertFBXtoMA.py).nukeフォルダにでも入れといてください。
mayabatch???な人はこちらを参考に
さー スクリプトは用意できたので仕込んでいきましょう。
Nukeでカメラトラッキングを出力するときはこんな感じのノードになってるかと思います。
WriteGeoノードのframe rangeに連番の開始と終了フレームを指定してください。
Pythonタブに移動してafter renderに「import convertFBXtoMA;convertFBXtoMA.main()」と入力します。
Nodeタブのlabelに、Readノードのパスのリンクをtclで記述します。ここで指定した連番がイメージプレーンで読み込まれます。
できたらWriteGeoのExecuteコマンドで出力してみちゃってください。
成功したらfbxが出力された後、mayabatchが走って処理が終わるとfbxと同じ場所に.maファイルができているはずです。
Mayaで開いてみましょう。
見事にboujouヨロシクな状態に。カメラはスケール値が1.0以外になるのを防ぐためにgroupノードに親子化はせず、コンストレインで調整できるようにしています。
NukeでオブジェクトトラッキングといえばKeenToolsのGeoTrackerが有名ですが、ノードを組めばプラグイン無しでも可能です。
ざっくり言うとAxisノードを使って親子関係を作り、オブジェクトトラッキング用にトラッキングしたカメラのアニメーションの逆数をAxisに与え、、
詳しくはCGWORLD 2015年11月号 vol.207のtsumiki Technical Blocks 第2回をご覧ください笑 詳しい説明が載っています。
最後に記事内で使用したスクリプトを配布します。
ここから先は
¥ 300
この記事が気に入ったらサポートをしてみませんか?