🔮

ResoniteのPBS_Metallicマテリアル

2023/12/24に公開

はじめに

これはResoniteで利用可能なPBS Metallicマテリアルの設定に関する簡潔な説明です。

PBS Metallicとは

PBS Metallicは物理ベースのマテリアルで簡単に言うと現実世界に近い見た目が作れるマテリアル。Resoniteでは特に多く使われている(と思うよ)

設定項目

persistent

このコンポーネント(今回の場合このマテリアル)をサーバーに保存するかどうか。
デフォルトはオン。

オフにするとこのコンポーネントがサーバーに保存されなくなるため、このアイテムを一度保存して取り出したときなどに消滅している。

UpdateOrder

このコンポーネントの更新順序を制御するためのもの。
通常は変更しなくて問題ない。

Enabled

このコンポーネントを有効にするかどうか。
通常これがオフの場合このコンポーネントは機能しなくなるがマテリアルの場合は影響しない。

HighPriorityIntegration

アセット最適化ウィザードのマテリアルの重複削除を使った時に、これをオンにしておくとこのマテリアルが削除されることもないし他のメッシュにこのマテリアルが適用されることもない。
(他の挙動もあるかもだけどわからない)

_shader

シェーダーが設定されているので変更する必要はない。

TextureScale

AlbedoTextureのUVスケール。
AlbedoTextureを拡縮したいときなどに使う。
DetailAlbedoTexture以外のテクスチャにも影響。

TextureOffset

AlbedoTextureのUVオフセット。
AlbedoTextureをスクロールさせるときなどに使う。
DetailAlbedoTexture以外のテクスチャにも影響。

DetailTextureScale

DetailAlbedoTextureのUVスケール。
DetailAlbedoTextureを拡縮したいときなどに使う。

DetailTextureOffse

DetailAlbedoTextureのUVオフセット。
DetailAlbedoTextureをスクロールさせるときなどに使う。

AlbedoColor

素材の基本色。

AlbedoTexture

素材に適用するテクスチャ。

AlbedoColorに乗算される。

EmissiveColor

発光の色。
発光しているように見せるために使う。

ライトと違い実際に発光するわけではないが加算されることで発光しているように見える。

EmissiveMap

発光に適用するテクスチャ。

EmissiveColorに対して乗算される。

NormalScale

ノーマルマップの強度。

上げることでノーマルマップの凹凸をよりはっきりとさせたり、下げることで凹凸を控えめに見せることができる。

NormalMap

ノーマルマップ用のテクスチャ。

光が当たった時の反射の角度を変えることで疑似的な凹凸を表現できる。

HeightMap

ハイトマップ用のテクスチャ。
疑似的に立体を表現することができる。

基準値は0.5。
つまりRGB(0.5,0.5,0.5)のテクスチャを設定すると変化なし。
0に近づくほど凹み。1に近づくほど盛り上がる。

HeightScale

ハイトマップの強度。

上げることで凹凸がより深くなり、下げることで平らになる。
デフォルトは0.02。

OcclusionMap

アンビエントオクリュージョンマップ用のテクスチャ。
アンビエントライトの影響範囲を制限できる。
0に近いほどアンビエントライトに影響されない。

ちなみにアンビエントライトとは世界全体を照らしている光のこと。
Resoniteのホームで影が青く見える(青く照らされている)のもこれ。
Resoniteでも奥まったところなどは自動でアンビエントオクリュージョンが働いているためわずかに暗く見える。
アンビエントライトの強度や色はSkyboxコンポーネントに設定されているマテリアルの設定によって決まる。

DetailAlbedoTexture

AlbedoTextureとは別に張り付けることができるテクスチャ。
AlbedoTextureとは別にUVスケールおよびオフセットが使用できるので、汚れや柄などに使用することでテクスチャのループ感を消したりテクスチャの節約などに使える。

テクスチャは二倍乗算されるのでRGB(0.5,0.5,0.5)のテクスチャを設定した時は変化なし。
例えばRGB(0.8,0.8,0.8)のテクスチャを設定すると二倍されるのでRGB(1.6,1.6,1.6)が乗算されるため、AlbedoColorがRGB(0.5,0.5,0.5)の時、最終的な色はRGB(0.8,0.8,0.8)になるので元のAlbedoColorより明るくなる。
RGB(0.2,0.2,0.2)のテクスチャを設定すると二倍されてRGB(0.4,0.4,0.4)が乗算されるためAlbedoColorがRGB(0.5,0.5,0.5)の時、最終的な色はRGB(0.2,0.2,0.2)になるので元のAlbedoColorより暗くなる。

DetailNormalMap

ディテールテクスチャ用のノーマルマップ。

DetailNormalScale

ディテールテクスチャ用のノーマルマップの強度。

BlendMode

オブジェクトの透明度や重ね合わせ方を設定できる。
設定は以下の通り。

Opaque

不透明。透過しない素材の場合に使用する。

Cutout

切り抜き画像のような表現ができる。
指定の透明度未満の部分を完全に透明にし以上を完全に不透明にする。
透明か不透明がはっきりしている場合に使用する。

Alpha

透明を表現できる。透明な素材に対して使用する。
Transparentに比べると精度は欠けるが軽め。

Transparent

透明を表現できる。透明な素材に対して使用する。
Alphaに比べると精度は高いがちょっとだけ重め。

Additive

背景に対して加算する。

Multiply

背景に対して乗算する。

AlphaCutoff

BlendModeがCutoutの時に使用。
透明と不透明の境界をどこにするかを決定する。

OffsetFactor

深度オフセットを制御するのに使われる。
Z-Fighting(メッシュが完全に重なったときにちらつくやつ)を防ぐのに使用されたりする。

OffsetUnits

深度オフセットを制御するのに使われる。
Z-Fightingを防ぐのに使用されたりする。

RenderQueue

レンダリング順序に影響を与える。
デフォルト値は-1でこの場合は自動で設定される。
不透明の場合には特に変更する必要はないが、透明なものを扱う場合には調整する必要があるときもある。

Metallic

メタリックの性質を持つかを設定する。
金属なら1、非金属なら0を設定するのが基本。
ただしクリアコートや液体を疑似的に表現する場合などは要調整。

メタリックについてはこちらでも書いてます↓
ResoniteでMetallicまったくわからん!と思っている人へ

Smoothness

表面の滑らかさ。
1に近いほど表面がツルツルになり光沢がはっきりする。
0に近いほど光沢が拡散される。

MetallicMap

メタリックとスムースネスをテクスチャで指定する場合に使用。
メタリックがRチャンネル、スムースネスがアルファチャンネルで指定できる。

Discussion