Fabric for Softimage チュートリアル

プロシージャルメッシュ

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

  • 新規シーンを開きます。
  • Fabricメニューより『Create Polymesh with Graph』を選び、Canvasオペレータ適用済のポリゴンメッシュを作成します。しばらく待つと、PPGパネルが表示されます。
  • PPGパネルの『Open Canvas』ボタンをクリックしCanvas UIを表示します。
  • UIのメインエリア ―”Press Tab to insert nodes”と表示されている箇所― をクリックしてみましょう。TABキーを押し、tab検索をしてみましょう。”gettor” と入力しエンターを押します。”GetTorus” ノードがグラフに挿入されていることでしょう。
  • それでは “GetTorus” ノードの出力ポートを外部公開しましょう。シーン上のオブジェクトのジオメトリを乗っ取ります。”mesh” ポートを左クリックし、右サイドパネルの”Expose”ポートへドラッグします。ここまでの操作で以下のようになっているはずです。
../_images/21_softimage_tut_01.png
  • Canvasウィンドを閉じ、PPGパネルを”Ports and Tools” タブに切り替えます。ここに先ほど外部公開したポートが表示されています。: “mesh | PolygonMesh | Out | Internal”.
  • ポートの型は”internal”のままです。オブジェクトとの接続のため、型を変更しましょう。”Define Type/Target” ボタンをクリックします。型を”XSI Port”に変更しオーケイボタンを押し、PPGパネルを更新します。
  • 最後に、ポリゴンメッシュのポートとノードを接続しましょう。PPGパネルより、名前セル ―”mesh”と書かれている欄です― をクリックしポートを選択しましょう。選択した状態で “Connect with Self” ボタンを押します。
../_images/21_softimage_tut_02.png
  • ビューポートにトーラスが現れます。

メッシュデフォーマ

ここではメッシュデフォーマの作成を一歩ずつ解説していきます。

  • 新規シーンを開きます。
  • ポリゴンメッシュを作成します。メニューより『Get -> Primitive -> Polygon Mesh -> Torus』などで良いでしょう。UVサブディビジョンをそれぞれ、128、64に設定しておきます。後段でディテールを詰めます。
  • メッシュを選択しCanvasオペレータを追加します。メニューの『Fabric -> Create Graph』を押し、しばらく待つとPPGパネルが表示されます。
  • PPGパネルの『Open Canvas』ボタンをクリックしCanvas UIを表示します。
  • Canvas左パネルを右クリックし Create Portを選びます。タイトルを “inMesh”、データ型を”PolygonMesh” に設定しOKを押します。
  • 右サイドパネルについても同様に右クリックし、”Create port”を選び、タイトルを “outMesh” データ型を “PolygonMesh”に設定しOK。
  • “Turbulize” ノードを追加します。TABキーを押し”turbulize”と入力し、”...Deform.Turbulize”を選択します。
  • “inMesh” ポートを “Turbulize”ノードに繋ぎます: “inMesh” 上で左クリック(押下したまま)し”mesh”ポートまでドラッグし、指を離しましょう。
  • “outMesh” ポートと”Turbulize” を繋ぎます: “outMesh”を左クリックし”result”ポートまでドラッグし指を離しましょう。
  • “Turbulize”ノードの “time”ポートを外部公開します: “time”ポートをドラッグし 黒色の”Expose”ポートまでドラッグし指を離しましょう。ここまでの操作で以下のようになっているはずです。
../_images/22_softimage_tut_01.png
  • Canvasウィンドを閉じ、PPGパネルに戻ります。“Ports and Tools”タブに切り替えます。先ほど公開した“inMesh”、“outMesh”、“time”ポートが確認できます。
  • そのままではポートは”internal”のままなので、オブジェクトとの接続のため型を設定しましょう。”Define Type/Target”ボタンを押し、”inMesh” と”outMesh” を “XSI Port”に変更し、”time”は”XSI Parameter”に変更、OKを押します。PPGパネルが更新されます。
  • 最後に、これらCanvasオペレータのポートとポリゴンメッシュを接続します。PPGパネルより、名前セル ―”inMesh”と書かれている欄です― をクリックしinMeshポートを選択しましょう。選択した状態で “Connect with Self” ボタンを押します。”outMesh”についても同様に接続します。結果、以下のようになっているはずです。
../_images/22_softimage_tut_02.png
  • ついにデフォーマが完成しました!タービュライズかかったトーラスが表示されたはずです。パラメータの変更により形状がかわります。ためしにPPGパネルを “Main”タブに切り替え”time”パラメータに変化を与えてみましょう。もちろんトーラスの設定 ―径やサブディビジョン粒度など― に変更を加えても良いでしょう。

Nullを線形補間で動かす

ここでは null の kinematic の動かし方を説明します。Canvasを用いてのリギングの第一歩です!

  • 新規シーンを開きます。
  • まずはシーン上に nullを2つ準備します。
  • Fabricメニューの”Create Null with Graph” を選択します。3つ目のnull が作成され、Canvasオペレータが適用されます。しばらく後PPGパネルが表示されます。
  • PPGパネルの『Open Canvas』ボタンをクリックしCanvas UIを表示します。
  • “Func.LinearInterpolate”ノードを1つ挿入します。
  • “Xfo.SetFromMat44” ノードを2つ挿入します。
  • “Xfo.ToMat44” ノードを1つ挿入します。
  • ポートを接続しグラフを作りましょう。”m”、 “t”、”result”を外部公開(Expose)し、このようにします。
../_images/23_softimage_tut_01.png
  • Canvasを閉じ、PPGパネルに戻ります。”Ports and Tools” タブに切り替えます。
  • “Define Type/Target”ボタンをクリックし、”m”、”m_2”、”result” ポートの型を”XSI Port”にします。”t”は”XSI Parameter”です。変更できたらOKを押します。PPGパネルが更新されグラフは以下のようになっています:
../_images/23_softimage_tut_02.png
  • 一番初めに作成した2つのヌルを”m”と”m_2”ポートに接続、”result”ポートには現在のヌルを接続し、セットアップを完了しましょう。
    • “m”欄をクリックし “Connect (Pick)”ボタンを押し1個目のヌルをピックします。
    • “m_2”欄をクリックし “Connect (Pick)”ボタンを押し2個目のヌルをピックします。
    • “result” 欄をクリックし “Connect with Self”ボタンを押します。

    最終的なグラフは以下のうようになります:

../_images/23_softimage_tut_03.png
  • “Main” タブに切り替え、”t”パラメータを調整してみましょう。2つのヌルの間をターゲットとなるヌルが移動するはずです。位置や回転、スケールが反映されるさまを観察してみましょう。