![キャプチャComp](https://assets.st-note.com/production/uploads/images/18764230/rectangle_large_type_2_b664bbfbca402f1dffc57d1f44fd54e9.jpeg?width=1200)
[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](https://assets.st-note.com/production/uploads/images/18759865/picture_pc_7fdaa89989f3c06990bf7c8f3d06ac64.jpg)
WriteGeoノードのframe rangeに連番の開始と終了フレームを指定してください。
Pythonタブに移動してafter renderに「import convertFBXtoMA;convertFBXtoMA.main()」と入力します。
Nodeタブのlabelに、Readノードのパスのリンクをtclで記述します。ここで指定した連番がイメージプレーンで読み込まれます。
![画像2](https://assets.st-note.com/production/uploads/images/18761801/picture_pc_2334b4b721022425666b231483b86726.jpg?width=1200)
![画像4](https://assets.st-note.com/production/uploads/images/18761815/picture_pc_865480ea15117f1dcd87c1e43f981316.jpg?width=1200)
![画像6](https://assets.st-note.com/production/uploads/images/18763676/picture_pc_2c541f494d42d19905caf3bdaf853f04.jpg?width=1200)
できたらWriteGeoのExecuteコマンドで出力してみちゃってください。
成功したらfbxが出力された後、mayabatchが走って処理が終わるとfbxと同じ場所に.maファイルができているはずです。
ちょっとした注意点
・MayaのプラグインマネージャーでFBXを読み込めるようにしておいてください
・WriteGeoノードのafter renderで指定してもpythonがうまく走らない場合があります。そのときはNuke Script Editorで「import convertFBXtoMA;convertFBXtoMA.main()」を手動実行してみてください。
![キャプチャ](https://assets.st-note.com/production/uploads/images/18762760/picture_pc_0056d5378964ceddf5628ce837844301.jpg?width=1200)
Mayaで開いてみましょう。
![キャプチャ2](https://assets.st-note.com/production/uploads/images/18763203/picture_pc_7414ea1a405880837a3ec02f5377309d.jpg?width=1200)
見事にboujouヨロシクな状態に。カメラはスケール値が1.0以外になるのを防ぐためにgroupノードに親子化はせず、コンストレインで調整できるようにしています。
おまけ
オブジェクトトラッキングはどうやる?
NukeでオブジェクトトラッキングといえばKeenToolsのGeoTrackerが有名ですが、ノードを組めばプラグイン無しでも可能です。
ざっくり言うとAxisノードを使って親子関係を作り、オブジェクトトラッキング用にトラッキングしたカメラのアニメーションの逆数をAxisに与え、、
詳しくはCGWORLD 2015年11月号 vol.207のtsumiki Technical Blocks 第2回をご覧ください笑 詳しい説明が載っています。
最後に記事内で使用したスクリプトを配布します。
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?