見出し画像

InstaMAT備忘録


InstaMATアドオンが動作するblenderのVersion

公式ドキュメンテーションには、blender最新Verでの動作を常にサポートするとあり、明確にどのVerであるかは表記されていない。blender 3.6 LTSで試すと、Create Instanceで動作が完了しなかった。blender4.1で試すと正常に完了したので、ここで言う最新VerとはVer4以降のことだ。
※大抵のユーザーはVer3系のLTSをまだ使っていると思うから、動作保証が4系か3系かは教えてくれないと困るのだ。

公式ドキュメンテーションにはパスを各自で設定するようにとの記述があるが、blenderにInstaMATアドオンをインストールしただけで、パス欄はデフォルトで埋まった。

Project、Canvas

Substance 3D Painterの置き換えとして活用できそうなInstaMAT。しかし、説明がいちいち専門的且つ顕微鏡的で大局がつかめないでいる。

Materialize Imageは、写真からマテリアルを作るProject。Substance 3D Samplerみたいなものだろう。

Layeringは、テクスチャ作成用のProjectのこと。Substance 3D Designerみたいなものだろうか。アーティストフレンドリーで文字通りレイヤー(階層)を使っている。手続き型(プロシージャル)で非破壊。アセットを変更してもテクスチャが壊れない。

Canvasとは、InstaMATのノード画面のことだ。blenderでいうShader Editorに当たる。InstaMATには、画像処理のためのプログラミング可能な専用ノードがあって、それがAtom Graph。プログラミング可能だから、なんでもできるという謳い文句になる。さらに小さいFunctionノード(Function Graph)を含むことができ、これにはイメージがなく、出力パラメータのみ。

Canvasのコンセプトは左から右への流れ作業で、各ステップをノード構成しつつ非破壊・ノンリニア。最終的に一番右端のgraph出力で完結する。graph出力には、画像、メッシュ、数学的な値、point clouds(点群)などが含まれる。リニア処理ではないため、随時変更(削除や置き換え)可能。

graphとノード

InstaMATの用語の使われ方を知らないと、一概にノードと言われてもよくわからない。Package ManagementパネルにあるgraphをCanvas内にドラッグ&ドロップすることでノードになる。このとき、オリジナルのgraphは何ら変更されない。つまり、部品に相当するものがgraphで、graphをいくつも使ってノードの集まりを作っていく、ということだ。ある意味「graph=ノード」であり、ノードとは特定のProject向けに「インスタンス化されたgraph」のこと。オリジナルのgraphは何度も使える雛形として、材料置き場であるPackage Managementパネルの中に残る。

InstaMATではProjectのタイプによって、取り扱える範囲が定まっているようだ。こうした一連の類型(tools?)を示す用語がGraph。Atom GraphやElement Graphもそのひとつ。

nPass Element Graphとは、反復系の処理をするためのノードのひとつらしい。Mesh Drop On TopologyやMesh Arrayなど、メッシュを調整する機能が盛り込まれているように読める。生憎とまだ詳しいドキュメンテーションが提供されていない。Element Graphがそれらの元締めである親機能(tools?)で、Atomではない部分を広く指して言うProjectタイプということだろう。

LayeringやMaterialize ImageはそれぞれProjectであり、Canvasにドラッグ&ドロップすることで単一のノードとして使える。

ノード(インスタンス化されたgraph)の集まりはsub-graphにできる。ノードのセットをパッケージ化したものをsub-graphと呼び、同一sub-graphを何度でも使い回すことができる。

ノードはProjectタイプと同一のtoolsで構成される。たとえば、[Blend]ノードはAtom Graph。[Mesh Scatter on Topology]ノードはnPass Element Graph。ノードをダブルクリックすれば、その内容が分かる。

いくつかのノードのプロパティを選び出して、ひとつにまとめてexposing graph inputを作ることが出来る。これにより、graph外からの制御がやりやすくなる。こうしたプロパティには、他のグラフでインスタンス化されたもの、Layeringのような他Projectのもの、InstaMATの統合機能で制御されたもの、などがあげられる。exposing graph inputによって作成済マテリアルを再利用しやすくなる。詳しくはGraph Object Editorの専門記事を参照。

InstaMATのgraphには固有のseed番号が付いている。ノードで乱数による生成をするときには、このseedが使われる。同一のノードに属するseedにはLocal Seedがあり、これを使うことで、他のノードの結果を変更することなく、属するノードの乱数生成にのみ影響を及ぼすことができる。

ノードは親graphやinput提供元から、属性(Format Type、Width、Height)を継承できる。したがって、親側を変更すると継承先も同じように変更される。

graphインスタンスの特別なタイプにテンプレートがある。ノードのパラメータをプリセットとして保存することで、他のgraphでも使えるようになる。MAT Libraryでマテリアルをダブルクリックすれば、それがテンプレートで出来ている場合には特別なgraphがビューに表示される。インスタンスからテンプレートを作成するショートカットはCtrl+T。

※書き手より 以上は公式ドキュメンテーション(英語)を斜め読みしてまとめたものですが、正確であることは保証できません。私自身、InstaMATを弄り始めたところなので。誤読やよく分かっていない状態で書かれていることにご注意ください。

この記事が気に入ったらサポートをしてみませんか?