キャプチャComp

[Nuke] NukeXをboujou代わりに使ってみる

NukeXは3Dカメラトラッキングができ、作成したカメラをalembicもしくはfbxを介して他のDCCツールに持っていくことができます。

ただカメラとロケーターがバラバラのノードで出力されるのでこのままMayaなんかに持ってきても使いづらいです。イメージプレーンも設定しないといけません。面倒なのでboujouにならった設定でMayaへ出力してみることにします。

boujouではロケーターやカメラは然るべき階層にグループ化され、イメージプレーンも設定されて出力されます。

大きな流れは次の感じになりやす。

①「Nukeで3Dトラッキングしたカメラ(fbx)をMayaに読み込み、階層構造を整理してイメージプレーンを設定」というのをMELの自動処理でおこなう。mayabatchを使用
② Nukeからカメラ出力するタイミングで①を行うためのpythonスクリプトの用意。WriteGeoノードに仕込んで自動化

正確に言うとfbxで出すんですが、その時ついでにMayaで使いやすいようにma変換しちゃうってことです。
解説していきます。

mayabatchで実行するMELファイルを作成します。
記事の最後に公開している(adjustNkTrackingCam.zip)解凍されたMELファイルをすべてmayaのスクリプトファイルが読み込まれるフォルダに入れてください。

次にmayabatchを走らせるpythonスクリプトを作成します。
これも記事の最後に用意したので(convertFBXtoMA.py.nukeフォルダにでも入れといてください。

mayabatch???な人はこちらを参考に

さー スクリプトは用意できたので仕込んでいきましょう。
Nukeでカメラトラッキングを出力するときはこんな感じのノードになってるかと思います。

名称未設定 1

WriteGeoノードのframe rangeに連番の開始と終了フレームを指定してください。
Pythonタブに移動してafter renderに「import convertFBXtoMA;convertFBXtoMA.main()」と入力します。
Nodeタブのlabelに、Readノードのパスのリンクをtclで記述します。ここで指定した連番がイメージプレーンで読み込まれます。

画像2
画像4
画像6

できたらWriteGeoのExecuteコマンドで出力してみちゃってください。
成功したらfbxが出力された後、mayabatchが走って処理が終わるとfbxと同じ場所に.maファイルができているはずです。

ちょっとした注意点
・MayaのプラグインマネージャーでFBXを読み込めるようにしておいてください
・WriteGeoノードのafter renderで指定してもpythonがうまく走らない場合があります。そのときはNuke Script Editorで「import convertFBXtoMA;convertFBXtoMA.main()」を手動実行してみてください。

キャプチャ

Mayaで開いてみましょう。

キャプチャ2

見事にboujouヨロシクな状態に。カメラはスケール値が1.0以外になるのを防ぐためにgroupノードに親子化はせず、コンストレインで調整できるようにしています。

おまけ
オブジェクトトラッキングはどうやる?

NukeでオブジェクトトラッキングといえばKeenToolsのGeoTrackerが有名ですが、ノードを組めばプラグイン無しでも可能です。
ざっくり言うとAxisノードを使って親子関係を作り、オブジェクトトラッキング用にトラッキングしたカメラのアニメーションの逆数をAxisに与え、、
詳しくはCGWORLD 2015年11月号 vol.207のtsumiki Technical Blocks 第2回をご覧ください笑 詳しい説明が載っています。

https://amzn.to/3mYfgNR

最後に記事内で使用したスクリプトを配布します。

ここから先は

44字 / 1ファイル

¥ 300

この記事が気に入ったらサポートをしてみませんか?