1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Blender] GLTF/GLBマテリアルの裏技

Posted at

はじめに

GLTFやGLBを作る際、データ容量やリアルさとの戦いで日が暮れる日々かと思います。
本稿ではマテリアル設定に焦点を当てて、より良いデータの作成方法をご紹介いたします。
使えそうな裏技が見つかったら更新していく予定です。

前提

  • Blender 3.6以上(下位バージョンでは検証していないだけです。)
  • 基本的なマテリアル設定ができる

レンダラをEeveeに設定しておいてください。
他の3Dソフトをご使用の方にも役立つ内容かと思います。

アンビエントオクルージョン(AO)テクスチャの割り当て方法

プリンシプルBSDFではAOテクスチャの割り当て先が無いため、glTF Material Output という特殊なノードを使います。
よくチュートリアル等で既存のGLTFからコピーして、という方法が紹介されていますが、実はただのグループノードであり一から作ることが可能です。

AOテクスチャは本来グレースケールですが、Blenderマニュアルにある通り
(R)AO (G)ラフネス(粗さ) (B)メタリックを合体させたRGBテクスチャを使うことも可能です。

AO2.jpg
AO1.jpg

説明

適当なノードでグループを作り、グループ入力グループ出力のパラメータをすべて削除
グループ入力に以下を設定
Occlusion(Float)
Thickness(Float)
Specular(Float)
Specular Color(カラー)デフォルト白(#FFFFFF)

Tabキーで戻り、参照しているノードツリーの名前をNodeGroupからglTF Material Outputに改名
画像テクスチャ(カラー)→
(カラー)カラー分離(赤)→
(Occlusion)glTF Material Output で繋ぐ

テクスチャ画像をタイル状に並べる方法

生地や柄模様など、同じ模様が並んでいる場合に
全体的な1枚のテクスチャ画像にせず、部分的な小さな画像を並べて作る方法です。

縦横等サイズである必要はなく、縦だけ短くして並べるということも可能です。

tile1.jpg

説明

UVマップ(UV)→
(ベクトル)マッピング(ベクトル)→
(ベクトル)画像テクスチャ で繋ぐ

マッピングのスケールXYの値を変更
※位置や回転の変更も保持されます。

テクスチャに単色を上乗せしたベースカラー(アルベド)の設定方法

インテリアなどで、ベースの模様は同じであるもののパーツによって色味を変えたい時、1枚のテクスチャ画像を使いまわすことで色ごとに作らず済む方法です。

※テクスチャ画像にテクスチャ画像を上乗せすることはできません。単色のみ可能です。

※あくまでも単色が上乗せされるものであり、1枚のテクスチャ画像の中で複数個所の色を個々に変えることはできません。

color.jpg

説明

画像テクスチャ(カラー)→
(A)ミックス(結果)→
(ベースカラー)プリンシプルBSDF で繋ぐ

ミックスのFloatをカラー、ミックスを乗算、係数を1Bの色を上乗せしたい色に変更

※ミックスはエクスポート時にColor Factorに名前が変わりますが同じものです。

所感

記載の内容はAR等、WebXR環境 / 古いThree.jsが使われている / glTF 2.0 Extensionが組み込まれていないといった場合に反映されない可能性が無くもないので事前にテストをおすすめします。

GLTFはバンプマップが使えなかったり足りない要素もありますが、それでも汎用3Dデータとは思えないくらい多くの要素を保持できるので凄いですよね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?