今回は、Nukeの AxisノードにFBX経由で、位置情報等を読み込む方法についてご説明をします。
[概要]
Nukeの3D空間を使用する際には、AxisノードをNullとして使うと便利です。Axisノードとオブジェクトを、エクスプレッションでリンクさせることで、元の位置情報等を変更せずに操作することができます。
また、Axisノードには FBXを読み込む機能があります。Maya等から位置情報やアニメーションデータをAxisノードを使って取得します。取得したデータは、Nukeの3D空間にて使用することができます。
それでは、順を追ってご説明いたします。
[MayaでのFBXの書き出し]
今回は、MayaでFBXを書き出しました。Mayaからのおおまかな流れを
以下に記載します。
- MayaにてNuke上で必要な情報をLocator(Null)に移す。(例、位置情報や回転やスケール)
- Mayaのメニューから ”File / Export Serection /” を選び、FBXで書き出す
以下のようなアニメーションをするLocator(Null)をMayaからFBXで書き出し、Nukeにて位置情報とアニメーションを取得しました。
それでは、MayaでのFBXの書き出し方法についてご説明します。
[Mayaでの操作]
まずは、MayaにてLocator(Null)を作成します。Locator(Null)の位置情報等が必要な場合は、そのままFBXに書き出します。また、オブジェクトの位置情報等が必要な場合は、Nullに欲しい位置情報やアニメーション値等をコピー&ペースト等で移します。
メニューから / Create / Locator
locatorができました。
必要なアニメーションデータや位置情報等をlocatorに設定します。GraphEditor / アニメーションのカーブが設定されています。
ChannelBox / 数値が設定されています。
今回は、このような単純なアニメーションになるよう設定しました。
Locatorの設定が終わったらFBXへ書き出します。
[FBXへの書き出し]
MayaからFBXを書き出すには、書き出したいオブジェクトを選択し、メニューから ”File / Export Serection /” を選択します。
そうすると、書き出し用のダイアログが立ち上がるので設定を行います。アニメーションを取得したい場合は ”Animation”を選択、NukeでFBXから取得したアニメーションを変更したい場合は、MayaでFBXを書き出す際に ”Bake Animation” の項目を選択しておくと、アニメーションの全ての キーフレーム がFBXにベイクされて格納されます。ファイルタイプは “FBX”を選択して下さい。
指定した保存先にFBXが書き出されます。
Mayaの作業はこれで終了です。
[Nuke / AxisノードでのFBXの読み込み]
ここからは、Nukeでの作業となります。まず、Axisノードを作成します。
Viewer表示を ” 3D_View ” に切り替えると、Nullのようなオブジェクトが表示されます。このオブジェクトは最終描画には影響がありません。3DView上のみの表示となります。現時点ではまだFBXの読み込みをしていないので、表示オブジェクトは原点に配置されていてアニメーションもありません。
では、AxisノードにFBXを読み込みます。Propertiesで “File”タブを選択、”read from files”にチェックを入れます。 そうすると、参照ファイルが選択できるようになるので、使用するFBXを選択します。
ちなみに、 “read from file” にチェックを入れないと、参照ファイル選択の部分がグレーアウトして 何も選択ができません。一度、FBXを読み込んでしまえば “read from file” のチェックを外してもFBXは読み込まれたままの状態となっています。
AxisノードにてFBXを読み込むことで、FBXに格納されている位置情報やキーフレーム情報が取得できました。
また、アニメーションデータも、取得されているのが分ります。
値もMayaとNukeで同じ値が取得できています。
[Nukeでの値の再編集]
この取得した値を基に、さらに値を編集したり、他のオブジェクトの配置の参照用に使用したりすることができます。再編集したい場合は、”read from file”のチェックを外してください。チェックが入っていると項目がグレーアウトされます。チェックを外すと、値の編集ができるようになります。このチェックを外しても既に読み込まれているFBXの値には影響はありません。
チェックがあると値の編集ができない。
チェックを外すと値が編集可能になります。
[Axisノードにて問題なくFBXの値を取得できました]
このように、AxisノードでFBXの値を取得すると、Maya等の3Dソフトから位置情報等の正確な数値を取得することができます。さらにその数値を流用することで、効率良く、正確に、数値をNukeでの3D空間上で調整をすることができます。また、エクスプレッション等を使って他のノードに関連付けすることもできます。
下の動画は、Nukeの3D_Viewer上での再生をキャプチャした動画です。再生すると FBX に格納されている位置情報やアニメーション等が問題なくAxisノードに読み込まれているのがわかります。
いかがでしたでしょうか、Axisノードは、3D空間の位置情報等をFBXから読み込むことができます。さらに、それを修正することもできます。また、3Dオブジェクトと位置を合わせたい時等にも大変便利です。機会がありましたら是非、お試しください。
ご一読いただきましてありがとうございました。