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”ポートへドラッグします。ここまでの操作で以下のようになっているはずです。
- Canvasウィンドを閉じ、PPGパネルを”Ports and Tools” タブに切り替えます。ここに先ほど外部公開したポートが表示されています。: “mesh | PolygonMesh | Out | Internal”.
- ポートの型は”internal”のままです。オブジェクトとの接続のため、型を変更しましょう。”Define Type/Target” ボタンをクリックします。型を”XSI Port”に変更しオーケイボタンを押し、PPGパネルを更新します。
- 最後に、ポリゴンメッシュのポートとノードを接続しましょう。PPGパネルより、名前セル ―”mesh”と書かれている欄です― をクリックしポートを選択しましょう。選択した状態で “Connect with Self” ボタンを押します。
- ビューポートにトーラスが現れます。
メッシュデフォーマ¶
ここではメッシュデフォーマの作成を一歩ずつ解説していきます。
- 新規シーンを開きます。
- ポリゴンメッシュを作成します。メニューより『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”ポートまでドラッグし指を離しましょう。ここまでの操作で以下のようになっているはずです。
- 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”についても同様に接続します。結果、以下のようになっているはずです。
- ついにデフォーマが完成しました!タービュライズかかったトーラスが表示されたはずです。パラメータの変更により形状がかわります。ためしに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)し、このようにします。
- Canvasを閉じ、PPGパネルに戻ります。”Ports and Tools” タブに切り替えます。
- “Define Type/Target”ボタンをクリックし、”m”、”m_2”、”result” ポートの型を”XSI Port”にします。”t”は”XSI Parameter”です。変更できたらOKを押します。PPGパネルが更新されグラフは以下のようになっています:
- 一番初めに作成した2つのヌルを”m”と”m_2”ポートに接続、”result”ポートには現在のヌルを接続し、セットアップを完了しましょう。
- “m”欄をクリックし “Connect (Pick)”ボタンを押し1個目のヌルをピックします。
- “m_2”欄をクリックし “Connect (Pick)”ボタンを押し2個目のヌルをピックします。
- “result” 欄をクリックし “Connect with Self”ボタンを押します。
最終的なグラフは以下のうようになります:
- “Main” タブに切り替え、”t”パラメータを調整してみましょう。2つのヌルの間をターゲットとなるヌルが移動するはずです。位置や回転、スケールが反映されるさまを観察してみましょう。