この記事はS.Haruyaさんによって寄稿された記事です。
オリジナル記事はこちら:https://zenn.dev/sfuka/articles/a7667110d84183
- はじめに
- PBS Metallicとは
- 設定項目
- persistent
- UpdateOrder
- Enabled
- HighPriorityIntegration
- _shader
- TextureScale
- TextureOffset
- DetailTextureScale
- DetailTextureOffse
- AlbedoColor
- AlbedoTexture
- EmissiveColor
- EmissiveMap
- NormalScale
- NormalMap
- HeightMap
- HeightScale
- OcclusionMap
- DetailAlbedoTexture
- DetailNormalMap
- DetailNormalScale
- BlendMode
- Opaque
- Cutout
- Alpha
- Transparent
- Additive
- Multiply
- AlphaCutoff
- OffsetFactor
- OffsetUnits
- RenderQueue
- Metallic
- Smoothness
- MetallicMap
はじめに
これは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チャンネル、スムースネスがアルファチャンネルで指定できる。