ビボロク。どこかで誰かのためになるWebのTIPS・ノウハウ。備忘録として残しておきます
   
           

【Blender】マテリアルの共通化とファイル間を横断するマテリアル管理Materials libraryについて

  • 投稿日/更新日
  1. home
  2. blender

Blenderでマテリアルを作ってると、「マテリアルが似てるのに、また別で作らないといけない」「他の部分は同じなんだけど色だけ変えたい」「ノードの一箇所変えたら他のマテリアルも全部変わるようにしたい」なんて悩みが出てくると思います。そこで、マテリアルの効率的な作り方と管理方法をまとめておきたいと思います。

グループを利用した共通モジュール化

例として水玉(白黒)のマテリアルを上記のようなノードで作ってみました。これを別のオブジェクトに、同じ水玉だけど赤白で作りたいとします。従来ならこの水玉(白黒)のマテリアル自体を複製し、RGBの色を赤白に変えることになるのですが、もし水玉の大きさを変えたい時はマテリアルを一つ一つ修正しないといけませんね。そこで利用するのがグループ化です。

まずはマテリアル出力RGB✕2つ以外のものを選択します。ctrl+gを押下、もしくはメニューノードグループ作成を選択します

すると、グループ入力グループ出力というノードが自動的に組み込まれ、マテリアル出力RGB✕2つがどこかに行ってしまいました。

じつはグループを作成した時点で、ひとつ下の階層画面が表示されています。現在がどこの階層にいるのかは、左上の階層メニュー(ウェブ屋が言うパンくずリスト)でわかります。いまはNodeGroupというグループ内にいることがわかりますね。右上に階層を上に登る矢印ボタンがあるので、クリックすることで階層を登ることができます。

すると、マテリアル出力RGB✕2つと、グループノードが接続された画面になりました。これで共通化するグループの用意は終わりです。

名前は直接ここで変えることができます。ここではGroupDottedBaseという名前にしておきました。

他のマテリアルでグループを呼び出す

別のキューブを作成し、新たにマテリアルを作成、上記のようなノードを配置しました。

メニューグループ>の中に、先ほど作成したグループGroupDottedBaseがありますね。

これを上記のようにつなげると、水玉(赤白)が出来ました。

グループ化の情報を変更すると?

ここがグループ化の真骨頂です。ボロノイテクスチャのスケールの値を「2」(もともとは3.2だった)に変えてみると、両方の水玉の大きさが変わりましたね。

つまり、両方のマテリアルから呼び出されたグループは共通モジュール、グローバル化されたノードとも言うべきものです。こうしておけば、余計なノードを組まなくて済みますし、グループ内を修正するだけですべてのマテリアルを一括で変更することができます。

この例ではわかりやすいように出力はグループの外に置きましたが、グループの中においても実は問題ありません。

Materials library vx の使い方

Materials Library VXはblender2.8系から入っている標準アドオンです(2.8からかどうかは若干あやふやな情報です)。

インストールはBlenderの設定画面から、「Materials Library」アドオンを検索してチェックを入れるだけ。

すると、マテリアルパネルの中にMaterials Library VXの項目が表示されます

使い方としては簡単。New Libraryを押して、好きなライブラリの名前を付けます。そうしたら、上のマテリアル(この画面だとDotted(white&black))を選択した後、Add To Libraryを押下すると、左のリストエリアにマテリアルが追加されます。このライブラリと追加したマテリアルは、他のBlenderから自由に呼び出し・保存が可能です。

仕組みとしてはシンプルで、%UserProfile%\AppData\Roaming\Blender Foundation\Blender\matlib にこのライブラリ名でBlenderファイルが作られて、そこに各マテリアルが保存されています。要はアペンドをマテリアルだけに絞ってここで管理しているようなものですね。

2つのBlenderファイルを立ち上げてマテリアルを共有したい場合も、ライブラリに登録されたマテリアルはReload Materialボタンを押下するとすぐにここに反映されます。

便利なアドオンですが、気をつけたいポイントがあります。ライブラリ内のマテリアルと、すでに使用しているマテリアルで名前の重複があった場合、一切処理されません。つまり上書き等はされません。例えばライブラリからマテリアルを呼び出し、そのマテリアルの一部を編集、さらにライブラリに上書き登録しようとしてもできないということです。こういった場合は違う名前でライブラリに追加する必要があります。このあたり、微妙にかゆいところに手が届かない感がありますが、マテリアルの管理の初手としては便利だと思います。

いままでちまちまとアペンドをしたり、各マテリアルを修正していた方はぜひとも試してみてください。

                   

備忘録として残しておきます。