【Blender】ソリッド化してもテクスチャを裏表で(ついでにフチも)変える方法
- 投稿日/更新日
一つのオブジェクトの裏表でテクスチャを変えたいときがありますよね。よくある方法としてはジオメトリノード
の後ろ向きの面
を使う方法が散見されるのですが、この手法はソリッドモディファイアを使用したい場合には適していません。ではどうすればいいのかを解説します。
基本のおさらい。メッシュの表裏を確認するには?
メッシュに角丸を付けたトランプみたいなオブジェクトを用意しました。左が表側のビュー、右が裏側のビューにしています。まず表裏をどう判断するかですが、おもに2つの手法があります。1つ目は、上記画像のように水色の線が面から飛び出しているのを確認する方法。
メッシュの編集状態の時に、メッシュ編集モードオーバーレイオプション
から、ノーマルの所のアイコンをクリックして法線を表示させます。面から水色の線が飛び出している方が表で、そうではないほうが裏になります。
もう一つは青または赤で確認する方法。メッシュを編集状態にして、ビューポートオーバーレイオプション
から面の向き
を選択すると視覚化されます。
青が表、赤が裏で表示されます。
マテリアルの後ろ向きの面を使う方法
適当にマテリアルを当てました。上図の場合、当然両面が黄色になります。
ここにジオメトリ
(geometory nodeではなく、マテリアルのジオメトリです。ややこしい)の後ろ向きの面
を使用し、ミックスを用いて表側と裏側を組み合わせます。Aが表側、Bが裏側になります。
上図のように、ひとつのマテリアル内で2つのマテリアルが設定できました。
ちなみにカラーランプを使っても同じようなことができます。
ではこのメッシュにソリッドモディファイア
を適用するとどうなるでしょうか。
無効化されて両方とも赤になってしまいました。そこで別の対策が必要です。
ソリッドモディファイアのオプションを使用した裏面の設定
真四角の平面を作り、ソリッドモディファイアで厚みを付けています。普通に厚みを付けてUV展開したほうが早い気もしますが、場合によってはなるべく非破壊で作りたいこともありますよね
適当にマテリアルを1つ当ててみました。まだこの状態では裏表は一緒です。側面も線が流れてるような感じで変になっています。
ソリッドモディファイアのマテリアル項目
にマテリアルインデックスオフセット
というオプションが用意されています。初期値はどちらも0になっているはずです。ただこれだけではよくわかりませんね。
マテリアルスロットの順番が関連してきます。オブジェクトにあてているマテリアルのインデックス番号を0とし、そこから数えて何番目のマテリアルをあてたいかを番号で指定するわけです(やや回りくどい言い方をしているのは後で説明します)。いわゆる相対指定ですね。
「plane_front」を表に割り当てていてる場合、「plane_back」を裏に指定した場合は、次の番号である「1」を入力します。
こう変わります。ふち
という項目もあります。もうおわかりですね。2番めに「plane_rim」のマテリアルがあるので、「2」を入力します。
表と裏、そしてふちもマテリアルを変えることが出来ました。つまり3つのマテリアルが1セットで変更可能なのです。
複数ある場合はどうする?
ひとつのオブジェクトでテクスチャが複数ある場合はどうなるのか? 考え方は同じです。
「オブジェクトに割り当てているマテリアルのインデックス番号が0」と書いたのはそのためです。plane_front2を適用したマテリアルの次(下)に、マテリアルを追加するだけで可能です。
少し厚みあるカードのデザインや服の裏表などに便利な方法だと思います。
備忘録として残しておきます。