Fabric for Maya チュートリアル¶
ロケータを線形補完で動かす¶
このチュートリアルでは、Canvasを使用してのロケータ位置の動かし方を学びます。RiggingへCanvasを利用する最初の一歩となるでしょう。 Fabric Engine ではMayaで利用可能なカスタムノードを移植可能性の高いポータブルなソリューションとして提供しているので、アプリケーションをまたいでの柔軟なアニメーションシステムを作成できます。
- 新規シーンを開きます。
- 3つロケータを作成します。うち2つはどこか重ならないよう架空の直線を引くように作ります。
- Fabric のトップメニュー「Fabric -> Create Graph」 よりcanvasNode を作成します。
- 作成されたcanvasNode を選択、Mayaのアトリビュートエディタにある Open Canvas ボタンをクリックし、Canvas UIを表示します。
- “Func.LinearInterpolate”(“Exts.Math.Func.LinearInterpolate”) ノードを挿入します。
- “this”ポートを入力側に暴露し外部公開(Expose)します。
- 暴露したポートを右クリックし、”Edit”を選びます。
- データ型を”Vec3”に変更しOKを押します。先ほど黒であったポートが黄色に変わります。これはポートのデータ型が”Vec3”に変わったことを示しています。
- “other” と “t” ポートを入力側, “result” を出力側に暴露します。ここまででグラフは以下のようになっているでしょう:
- Mayaのノードエディタ上で、動いている2つのロケータの translateアトリビュートを canvasNodeの Vec3入力ポートにそれぞれ接続します。
- canvasNodeのresult アトリビュートを第三のロケータのtranslateアトリビュートに接続します。ここまでの操作で以下の図のようになっているはずです。
- canvasNode の 『t』アトリビュートの値により、第三ロケータの位置が他ロケータの2点間を取ることがわかります。
- それでは “locator1” をビューポート上で移動させてみましょう。
プロシージャルメッシュ¶
このチュートリアルでは、Mayaを用いてプロシージャルメッシュを生成する手法を学びます。これは非常に強力な概念であり、再利用性の高い、またAlembicや、Bulletのソフトボディシミュレーションを組み合わせたようなアセットの作成を可能とします。まずはこのチュートリアルでそれらの基本からはじめましょう。
- 新規シーンを開きます。
- Mayaノードエディタ上に、新規メッシュノードと canvasNodeを呼び出します。
- 作成されたcanvasNode を選択、Mayaのアトリビュートエディタにある Open Canvas ボタンをクリックし、Canvas UIを表示します。
- 右サイドパネルを右クリックし、『outMesh』という名のPolygonMesh型の出力ポートを作成します。
- ノードエディタ上で、canvasNodeの『outMesh』アトリビュートとMayaのmeshノードの『inMesh』アトリビュートを接続します。図のようになります。
- CanvasのUIより、『GetSphere』ノードを挿入し、メッシュノードのmesh出力ポートに接続します。
- GetSphere ノードにある他のパラメータを Maya のアトリビュートエディタから変更し設定をためせるように外部公開(Expose)します。
リアルタイムレンダリングを用いたデバッグ¶
このチュートリアルでは、 Fabric Engine の レンダリングシステムの InlineDrawing を活用法を学びます。Maya のビューポートへ直接描画することができ、デバッグに必要な軸や線、点といった補助情報を付加する場合非常に便利です。
- 新規シーンを開きます。
- Mayaのノードエディタを開き、ロケータとcanvasNode を挿入します。
- 作成されたcanvasNode を選択、Mayaのアトリビュートエディタにある Open Canvas ボタンをクリックし、Canvas UIを表示します。
- 右サイドパネルを右クリックし、名前を『evaluateMe』型を『Vec3』の出力ポートを作成します。
- ノードエディタ上で、canvasNodeの『evaluateMe』アトリビュートと、ロケータの『translate』アトリビュートを接続します。この接続はMayaにロケータの描画毎にCanvasグラフの評価を強制させるためです。
- Canvas UIに戻り、EmptyDrawingHandle ノードを作成します。
- GetEmptyDebugShape を追加し、 DrawingHandle と接続します。
- DrawSegmentedLine ノードを追加し、DebugShape に接続します。
- result ポートをグラフの出力に外部公開(Expose)します。
- DrawSegmentedLine ノードの “from”と”to” の入力ポートをグラフの入力として外部公開します。
- DrawSegmentedLine ノードをダブルクリックし、セグメントを12に設定します。ここまでの操作で以下のようになっているはずです。
- Mayaのアトリビュートエディタより “from” と “to” の値を変更してみましょう。赤い点線が2点間に描画されます。