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” を出力側に暴露します。ここまででグラフは以下のようになっているでしょう:
../_images/12_maya_tut_00.png
  • Mayaのノードエディタ上で、動いている2つのロケータの translateアトリビュートを canvasNodeの Vec3入力ポートにそれぞれ接続します。
  • canvasNodeのresult アトリビュートを第三のロケータのtranslateアトリビュートに接続します。ここまでの操作で以下の図のようになっているはずです。
../_images/12_maya_tut_01.png
  • canvasNode の 『t』アトリビュートの値により、第三ロケータの位置が他ロケータの2点間を取ることがわかります。
  • それでは “locator1” をビューポート上で移動させてみましょう。

プロシージャルメッシュ

このチュートリアルでは、Mayaを用いてプロシージャルメッシュを生成する手法を学びます。これは非常に強力な概念であり、再利用性の高い、またAlembicや、Bulletのソフトボディシミュレーションを組み合わせたようなアセットの作成を可能とします。まずはこのチュートリアルでそれらの基本からはじめましょう。

  • 新規シーンを開きます。
  • Mayaノードエディタ上に、新規メッシュノードと canvasNodeを呼び出します。
  • 作成されたcanvasNode を選択、Mayaのアトリビュートエディタにある Open Canvas ボタンをクリックし、Canvas UIを表示します。
  • 右サイドパネルを右クリックし、『outMesh』という名のPolygonMesh型の出力ポートを作成します。
  • ノードエディタ上で、canvasNodeの『outMesh』アトリビュートとMayaのmeshノードの『inMesh』アトリビュートを接続します。図のようになります。
../_images/13_maya_tut_01.png
  • CanvasのUIより、『GetSphere』ノードを挿入し、メッシュノードのmesh出力ポートに接続します。
  • GetSphere ノードにある他のパラメータを Maya のアトリビュートエディタから変更し設定をためせるように外部公開(Expose)します。
../_images/13_maya_tut_02.png

リアルタイムレンダリングを用いたデバッグ

このチュートリアルでは、 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に設定します。ここまでの操作で以下のようになっているはずです。
../_images/14_maya_tut_02.png
  • Mayaのアトリビュートエディタより “from” と “to” の値を変更してみましょう。赤い点線が2点間に描画されます。
../_images/14_maya_tut_03.png