忘却まとめ

Blenderの中級者・上級者向けの踏み込んだ情報や、アドオン・3DCGに関する情報を記事にします

【Tx Layer】レイヤー構造でテクスチャペイントできるアドオン【Blenderアドオン】

Blenderアドオン

更新日:

レイヤーを使ったテクスチャペイントができるアドオンを紹介します。
追加・削除・並び替え・不透明度・ブレンドモード・表示切り替えなど、基本的なレイヤー操作ができます。

まえがき

"Tx Layer"アドオンは、"Cycles Texture Paint Layers"アドオンを元に派生したアドオンです。
元アドオンがしばらくアップデートされていなかったようなので、自分が更新して機能追加しました。

このアドオンはBlender3.0でも動作します。

メニュー

  • 3Dビュー > テクスチャペイントモード > Tool > Layers

(アドオン設定から他のモードでもパネルメニューを表示するようにできます)

基本機能

ノードによりレイヤー構造を再現しています。
レイヤーを新規追加や並び替えするたびに自動でノード構成が調整されます。

(自分が追加した新機能はnew!のもの)

  • レイヤーの追加・削除・並び替え
  • ブレンドモード・不透明度
  • 表示レイヤーの結合(ベイク)
  • ノードグループ内のレイヤーのサポート (new!)
  • レイヤーの複製・既存/外部画像の読み込み (new!)
  • 塗りつぶしレイヤー (new!)
  • 色調補正レイヤー (new!)
  • プロシージャルテクスチャレイヤー (new!)
  • レイヤー内の分類フォルダー (new!)
  • クリッピングマスク (new!)
  • レイヤーのソロ表示 (new!)
  • 放射シェーダー/プリンシプルBSDFの切り替え (new!)

使い方

テクスチャペイントモードにし、サイドメニューのTool > Layersのメニューを表示します。

レイヤーを作るマテリアルを作成する

アクティブオブジェクトにマテリアルがない場合は、上画像のようなメニューになります。
まず、[空のマテリアルを追加]をボタンで、レイヤーを作るためのマテリアルを作成します。
(もしくは既存のマテリアルをオブジェクトに割り当てます)

ノードグループ/レイヤーを作成する

レイヤー作成設定・マテリアル設定を確認して、最初のレイヤーを作成します。

  • [ノードグループとレイヤーを作成]
    • ノードグループは質感や種類ごとにレイヤーをまとめて管理できるのでおすすめです。
  • [新規レイヤー作成]
    • マテリアルのノードツリーに直接レイヤーノードを作成します。
    • ベースカラーのみをサポートしています。
    • シンプルなテクスチャを作る際はこちらでもよいです。

接続先ソケットを選ぶ

[ノードグループの作成]ボタンを押すと、質感を選ぶポップアップメニューが表示されます。
実行すると、対応したプリンシプルBSDFにレイヤーのノードグループが接続されます。

(ノードグループ名を設定しない場合は、自動で質感の名前になります)

テクスチャを描く

作成すると、自動で背景用塗りつぶしレイヤーと書き込む用の通常のレイヤーの2つが作成されます。
あとは好きにテクスチャを描き始めることができます。

頻繁に画像を保存すること

Blenderでは、テクスチャペイントした情報がアンドゥなどの一部操作によって失われてしまう場合があります。
画像が失われないように、Alt + Sで頻繁に画像を保存するようにしてください。

テクスチャの正しい色を確認する

テクスチャの色のみを確認したい場合は、赤枠の放射シェーダー切り替えで陰影や光沢を一時的になくす事ができます。

完全に補正のない元の色を確認したい場合は、右上のその他のメニュー > ビュー変換 設定を、Filmicから[標準]に変更します。
(デフォルト設定では色に補正がかかっているので、標準にすることで補正のない色を確認できます)

これは、プロパティ > レンダー > カラーマネジメント > ビュー変換と同じ設定です。

1つの画像として書き出す(ベイクする)

複数レイヤーで完成したテクスチャを、他のアプリでも使えるようにしたり軽量化するには、ベイクして1つの画像にします。

Blenderの基本機能のベイクでもできますが、[表示レイヤーの結合(ベイク)]機能からも簡単に実行できます。

ノードの仕組み

以下は把握しなくてもいいですが、レイヤー構造はノード上では下記のように構築されています。

  • [乗算]数式ノードで不透明度調整
  • Maskノード( [乗算]数式ノード )につなげたテクスチャ画像のアルファを利用してクリッピングマスク
  • ミックスRGBノードで後ろのレイヤー結果と合成・ブレンドモードの設定
  • [追加]数式ノードで全体の透過度を合成

レイヤータイプ

塗りつぶしレイヤー

ペイントソフトの塗りつぶしレイヤーと同じように、特定の色で塗りつぶしたレイヤーを白黒画像でマスクします。

色とストロークを別々に管理でき、後で色調整することができます。

仕様

マスクは色の明度で判別されるので、マスクを描くときのブラシの色は、白か黒にしてください。
色付きでペイントすることもできますが、明度を把握しにくくなります。

  • 色は現在のカラーピッカーの色になります。
  • ノードグループで最初に追加するレイヤーの場合は白のテクスチャになり、それ以降は黒のテクスチャになります。
  • (プロパティ > レンダー > カラーマネジメント > 表示デバイスが[sRGB]の場合は、カラーピッカーの色は自動で補正されます)

プロシージャルテクスチャレイヤー

シェーダーエディターの各種プロシージャルテクスチャを利用できます。
クリッピングマスクや色調補正と併用すると便利です。


塗りつぶしレイヤーと同じように、リストアイテム左色アイコンから、色を調整することができます。

(テクスチャノードのため、このレイヤーに直接ペイントできるようにするには、[表示レイヤーを結合(ベイク)]で画像化する必要があります)

利用できるテクスチャノード

  • ノイズ
  • ボロノイ
  • ウェーブ
  • マジック
  • マスグレイブ
  • レンガ
  • グラデーション
  • チェッカー

調整メニュー

リストの下にノードパラメーターの調整メニューが表示されます。

  • レイヤー名の右のアイコンから、テクスチャ座標を変更できます。
    • デフォルトでは[生成]です。

色調補正レイヤー

シェーダーエディターの各種色調補正ノードを利用できます。

色調補正レイヤーより下のレイヤーの合成結果を、色調補正のノードにつなげます。

リストの下にノードパラメーターの調整メニューが表示されます。

利用できる色調補正ノード

  • トーンカーブ
  • カラーランプ
  • 色相/彩度
  • 輝度/コントラスト
  • RGBからBWへ
  • 反転

ノードグループ

ノードグループ内でのレイヤー管理をサポートしました。
複数のノードグループを使い分けてより複雑なレイヤー構造を管理したり、質感ごとに使うレイヤーを使いやすくなります。

使い方

ノードグループの追加

左上のグループ追加アイコンから[ノードグループを作成]を実行すると、マテリアルのノードツリー内にノードグループが作成され、選択したリンク先ソケットに接続されます。
また、ノードグループ内に背景レイヤー・通常レイヤーを作成されます。

アクティブなノードグループ

上に表示されているノードグループ名が、アクティブなノードグループです。
これに新規レイヤーが追加されるノードグループを選択します。

横のアイコンからノードグループを変更できます。
マテリアルのノードツリーにしたい場合は、リスト内の[Root]を選択します。

接続先ソケットを選択

新規ノードグループ作成の際に、プリンシプルBSDFに接続するソケットを選べます。
ベースカラー・メタリック・粗さ・ノーマル・アルファ・その他などを選択できます。

ノードグループ名を手動で設定しない場合は、自動で質感の名前(ソケット名)がノードグループ名となります。

アルファ

接続先ソケットが[アルファ]の場合は、 マテリアル設定をアルファブレンドにして、裏面の表示を無効化します。

バンプマップ

接続先ソケットが[ノーマル]の場合は、バンプマップが作成・接続され、すぐさま書き込めるように3つのレイヤーが自動作成されます。

Upに書き込むと盛り上がり、Downに書き込むと溝になります。

  • Up 凸用の白 [塗りつぶしレイヤー]
  • Down 凹用の黒 [塗りつぶしレイヤー]
  • BG グレーの中間色 [塗りつぶしレイヤー]

仕様・その他

  • ノードグループ外でも特定のレイヤーを使えるように、出力ソケットを作成することができます。
    • メニュー右上のその他のメニュー > [ノードグループにアクティブレイヤーの出力ソケットを作成する]
  • レイヤーを別のグループに移動することはできません。
  • ノードグループを複製することはできません。
  • 既存のレイヤーをノードエディターにて手動でグループ化(Ctrl + G)したり、ノードグループ名を変更した場合、アドオンはレイヤーのノードを参照できなくなります(後述にて修正可能)。

レイヤーのノード参照を修正する方法

各レイヤーに設定されているノードツリー名を手動で変更することで修正できます。

  • オプション > [属するグループ名を表示]オプションを有効化
  • 各レイヤーのノードグループ名を対象のノードグループ名に変更することで修正できます。

表示レイヤーの結合(ベイク)

現在表示中のレイヤーをベイクすることで、レイヤーを結合します。
複数レイヤーで作った結果を、1つの画像にしたいときに便利です。

ベイク後にレイヤーとしてすぐ使えるようにしました。
簡易的なベイク機能としても使えるようにしました。

  • ベイク後にベイク画像をレイヤーとして追加するようにしました。
  • ベイクタイプを追加しました。
    • 放射シェーダーの場合は、ベイクタイプのデフォルトは放射になります。
  • サンプル数を追加しました。
    • ライティングを使用しないベイクタイプでは、サンプル数は1で構いません。

[一時的な平面メッシュを使用]オプション

一時的に平面メッシュを作成し、それにベイクすることで、マテリアルの全てのエリアをベイクします。

シンプルなメッシュでベイクするので、ベイク時間が少し早くなります。
通常のベイクでは選択オブジェクトのエリア以外がベイクされない問題を回避できます。

  • テクスチャ座標[生成]などを利用している場合はオフにしてください(特にプロシージャルテクスチャなどを利用している場合)。
  • 結合・AO・影などのベイクタイプでは、このオプションは利用されません。
    • (メッシュの凹凸情報が必要なため)
  • 必要なオブジェクトをすべて選択済みだったり、元から単純なメッシュの場合は不要です。

補助ツール

シェーダータイプの切り替え

プリンシプルBSDFから、ディフューズBSDF・放射シェーダーに切り替えができます。

ディフューズBSDFシェーダーにすることで、光沢のない質感でペイントできます。
放射シェーダーを選択することで、陰影のないシェーダーでペイントすることができます。

一時的なビューアーノードに接続されるだけなので、再度元の状態のプリンシプルBSDFシェーダーに戻すことができます。

レイヤーのロックオプション

錠前アイコンを有効化することで、テクスチャペイントからレイヤーを保護することができます。

仕様

Blenderのテクスチャペイントでは編集をロックすることはできないため、擬似的な方法を使っています。

選択時にダミー画像(4x4の小さなもの)を作って、それをアクティブペイントスロットに毎回選択することで、本来の画像を選択しないようにします。

プロシージャルテクスチャをアクティブ選択した場合も、同様に処理されます。

レイヤーのソロ表示切り替え

アクティブレイヤーをソロ表示します。
同じレイヤーで再度実行すると、保存しておいた不透明度の値に戻します。

各レイヤーの小さな◯アイコンのある列の空白からも切り替えできます。

  • (ノードのミュート(目アイコン)を利用するとシェーダーコンパイルが発生してしまうので、不透明度(乗算数式ノードの値)の方を調整しています)

リスト内でのフォルダー機能

フォルダーで分類してレイヤーを整理する機能を追加しました。
目アイコンを切り替えることで、フォルダー以下のアイテムの表示を一括切り替えします。

フォルダー内のレイヤーの一括移動やブレンドモード・不透明度調整などはできません。

仕様

  • このフォルダーは、あくまでリストメニュー上のみのアイテムです。ノードに関与しません。
  • そのため、「フォルダーの中にレイヤーが入っている」というわけではなく、「フォルダーというセパレーターより下にあるものをまとめて操作する」という仕様です。
  • テクスチャペイントソフトにおけるグループ機能と似ていますが、ノードグループと呼び分けるため「フォルダー」という名前にしています。

その他

[既存の画像を読み込み]

プロジェクト内にある既存の画像をレイヤーとして読み込みます。

実行後に開かれる画像選択画面で、Ctrl + クリックで画像を追加した場合、現在のレイヤーで利用している画像を、選択した画像に置き換えます。

[外部の画像を読み込み]

ファイルエクスプローラーを開いて外部ファイルをレイヤーとして読み込みます。

[レイヤーの複製]

アクティブレイヤーを複製します。

レイヤーの削除

Ctrlキーを押しながら実行すると、アイテムのみを削除するようにしました。
レイヤーとノードの構成が破綻してしまった時、レイヤーアイテムを整理する際に便利です。

その他のメニュー

右上の小さな機能やオプションをまとめたメニューを追加しました。

  • [アクティブグループのみを表示]オプション
    • レイヤーリストにて、アクティブなノードグループのレイヤーのみを表示します。
    • デフォルトで有効です。
    • 他のノードグループ内の全レイヤーも同時に確認したい時はオフにしてください。
  • [属するノードグループを表示]オプション
    • レイヤーが属しているノードグループ名を表示します。
  • カラーマネジメントの[ビュー変換]オプション
    • プロパティ > レンダー > カラーマネジメント > ビュー変換オプションをアクセスしやすいように、メニュー追加されています。
    • デフォルトのFillmic設定では色が薄く表示されるため、[標準]に切り替えて正しいカラーを確認するのに便利です。
  • [ノードグループにアクティブレイヤーの出力ソケットを作成する]
    • ノードグループ外でもアクティブレイヤーを使えるように、出力ソケットを作成します。
  • [画像アイコンを更新]
    • アクティブマテリアルの全ペイントテクスチャのアイコンを更新します。
    • 描いたテクスチャがアイコンのプレビューに反映されていない問題に対処できます。
  • [色の反転]
    • アクティブなレイヤーの画像の色を反転します。塗りつぶしのマスク画像を反転したいときに便利です。

アドオン設定

  • テクスチャペイント以外のモードでもパネルメニューを表示するオプション
    • テクスチャペイント以外のモードでならやり直しも正常に行えるため、レイヤー構造の大幅な変更をしたい場合は、こちらのパネルで調整した方がいいです。
    • デフォルトでオフです。アドオン設定から変更できます。
  • デバッグモード
    • 有効にするとパネルメニュー > オプションに、シェーダーノード設定メニューが追加されます。
    • シェーダーノードの名前が参照できなくなったときにここから修正できます。
  • クリッピングマスクの色
    • メニューでのクリッピングマスクのバーの色をユーザーの好みに応じて変更できます。
  • その他関連リンク

その他

  • 消しゴムブラシを追加しました。
    • デフォルトでオフです。
    • 下記をキーマップに登録すると利用できます。
    • layer_list.brush_set_eraser
    • オペレーター設定の循環オプションが有効だと、キーを押すたびにDrawTexブラシと切り替えます。

経歴

"Tx Layer"は、"Cycles Texture Paint Layers"ver0.0.2 を元に派生したアドオンです。
ver0.0.3からBookyakunoがアップデートしています。

リンク

過去バージョンはこちら。

Alex Bel / blender_paint_layers · GitLab

原作者の配布リンクと更に古いバージョンはこちらのスレ内のzipファイルから。

Cycles Texture Paint Layers - Coding / Released Scripts and Themes - Blender Artists Community

注意点

  • Eeveeレンダーでは、シェーダーコンパイルに時間がかかる。
    • Eeveeレンダーでは、レイヤーが複雑になるほど、レイヤーの追加・並び替えをするたびにノード結果の更新に時間がかかります。
    • レイヤー構造を大きく変更する際は、Cyclesレンダーにしたり、ビューポートシェーディングのソリッドモードで作業するといいかもです。
  • テクスチャペイント中は、正常にやり直しができない。
    • テクスチャペイント中は、ペイントする以外のオペレーター操作は正常にやり直しができません。
      これはアドオンに関わらないBlenderの仕様です。
      レイヤー関連の操作をやり直ししたときに、ペイントした操作までやり直してしまう場合があります。
      注意してください。
  • 頻繁に画像を保存すること。
    • 上記のやり直し問題でペイント情報が消えないように、Alt + Sで頻繁に画像を保存するようにしてください。
  • 単一レイヤーへの色調補正ができない
    • 全レイヤーに対しての色調補正やクリッピングマスクを利用した部分的な色調補正の適用できますが、レイヤーごとに色調補正をかけることができません。
  • その他
    • サブディビジョンサーフェスはオフの方が軽快にペイントできます。(Blenderの仕様)
      • プロパティ > レンダー > [簡略化]で、一時的に全てのサブディビジョンを0にできます。

ペイント関連アドオン

スタンプ用テクスチャの一括読み込み - vtools

スカルプトやバンプマップのペイントで使うアルファテクスチャを一括読み込みすることができるアドオン。

アップデート履歴

ver0.0.52 小さなバグ修正

2022-08-20

  • 作成レイヤーサイズのハーフボタン(↓アイコン)にて、Blenderのバージョンアップでの仕様変更が原因で動作が失敗する問題を修正しました。
  • 作成されるテクスチャの補間を選択するオプションを追加しました。
    • (バンプマップ用テクスチャの場合は、自動で常に[三次式]になります。)

ver0.0.51 小さなバグ修正

2022-07-21

レイヤー新規追加機能にて、テクスチャスロットモードが[単一画像]の場合にエラーが出る問題を修正しました。
F3での検索にて、コンソールにエラーが出力される問題を修正しました。

ver0.0.5 色調補正レイヤー・プロシージャルレイヤー・ノードグループの改善

2022-01-11

アドオン名を「Cycles Texture Paint Layers」から「Tx layer」に改名しました。

機能が多く実装され、元のアドオンの機能とのかけ離れてきたため。
その他の理由は、名前が長いことと、名前の「Cycles」はBlender2.8のEeveeの登場により、今ではあまり関連性がなくなっているため。

ver0.0.4 ノードグループのサポート・ソロ表示・塗りつぶしレイヤーなどの機能追加

2021-12-30

ver0.0.3 細かな改善・クリッピングマスク機能の追加

2021-12-25

追加・改善

メニューレイアウトをペイントソフトに近づけました。

クリッピングマスク

クリッピングマスク機能を追加しました。

その他

  • 不透明度スライダーを0~100の値で操作できるように修正しました。
    • 以前は0.0-1.0の範囲以上に操作できてドラックで操作しにくくなっていました。
  • レイヤー名をリストアイテムのダブルクリックで変更できるようにしました。
  • レイヤー名を変更した場合、画像名も変更するようにしました。

修正

  • Merge visible layers機能が動作しない問題を修正しました。

アドオンの制作依頼はこちら

-Blenderアドオン
-

Copyright© 忘却まとめ , 2023 All Rights Reserved Powered by STINGER.