物理ベースのレンダリング (PBR) テクスチャは、複数の種類のテクスチャ画像、または マップ を使用して、単一のオブジェクトにリアルなシェーディングと照明を表現できます。複数のテクスチャマップを組み合わせることで、照明環境の色、粗さ、反射率をより正確にシミュレートでき、アセットと環境の視覚要素を向上させることができます。


PBR テクスチャを作成するためのさまざまなアプリケーションとワークフローが利用可能です。カスタム 3D オブジェクトのモデリン作品とテクスチャリングの段階で、Roblox Studio が 使用している特定のテクスチャマップをサポートしている限り、これらを使用できます。
このガイドでは、PBR テクスチャマップを使用するために メッシュオブジェクトを設定する方法について説明し、Roblox がサポートする PBR テクスチャマップの一般的な使用ケースとベストプラクティスを説明します。自分のサーフェスを作成するときは、マテリアル参照 で一般的な素材値、画像比較、衣類の例を見てください。
表面の外外見を有効にする
PBR テクスチャを任意の MeshPart に追加できるように、オリジナルの割り当てられたテクスチャを上書きする SurfaceAppearance オブジェクトを追加します。一全般的に、エクスペリエンス中にスクリプトで SurfaceAppearance プロパティを変更することはできません、エンジンはこれらのグラフィックを表示するためにプレプロセスが必要であるためです。基本のテクスチャを追加するのと同様、各テクスチャ画像マップは、適切なアップロードされた画像アセットIDにポイントする必要があります。
MeshPart の表面の外観を有効にするには:
エクスプローラー ウィンドウで、 をホバーし、⊕ ボタンをクリックします。
コンテキストメニューから SurfaceAppearance を挿入します。
テクスチャマップを SurfaceAppearance オブジェクトに追加する準備ができたら、プロパティ ウィンドウで各マッププロパティをクリックし、アセットIDを入力できます。
テクスチャマップ
Studio は現在、4種類の PBR テクスチャマップをサポートしています:色、ノーマル、粗さ、およびメタリック。これらのマップのそれぞれは、オブジェクトの表面の外外見の重要な側面に対応します。テクスチャマップはビジュアル外観を変更するだけで、MeshPart オブジェクトの幾何学を影響しません。
Roblox がサポートするテクスチャマップと追加資源の概要については、次の例を参照してください:
ColorMap プロパティは、マップに存在する透明性を含め、表面の色データを設定します。追加情報については、色 (アルベド) を参照してください。



色 (反射率)
色 、または 反射率 、マップは、テクスチャの色を決定し、ほとんど照明またはテクスチャ情報がない色情報のほとんどで構成されています。追加のカスタマイズには、画像マップに不透明度を追加して、透明性 をアルベドテクスチャにも追加できます。
アルファモード
草、葉、レース、または汚れやグランジのような透明の部分的または完全なセクションが必要なオブジェクトの場合、 アルファモード を使用して、色マップに透明性を適用できます。カラーマップ画像フォーマットがアルファチャンネルをサポートしている場合、0.0 が透明で、1.0 が不透明なグレースケールアルファマップを適用できます。同様に、.png のような画像形式を使用すると、色マップの任意の不透明度がアセットの透明度として適用されます。
透明性を 2つの異なる動作に適用するには、次の AlphaMode 値を設定できます:
- オーバーレイ — オーバーレイは、基本メッシュの ColorMap 上に MeshPart.Color をオーバーレイします。 オーバーレイ を使用したカラーマップは、透明度が存在する場所であるメッシュのベースカラーを明らかにします。これはデフォルト設定です。
- 透明性 — 透明性に基づく表示可能なメッシュを ColorMap から削除します。これにより、メッシュが透明であるときに原始のメッシュの色を明らかにしないようになり、透明が存在するときにメッシュが透明に見えるようになります。
レイヤー
オーバーレイ を使用して、メッシュのオリジナルの色のセクションを明らかにできます。色マップの透明領域が基本色を露出するため、メッシュの Color プロパティを部分的または完全に露出するユニークなテクスチャマップを設計でき、カスタムスキントーンや他のユニークな状況でメッシュの特性を表示することができます。
次の例では、白い球の参照を使用して オーバーレイ モードがどのように機能するかを示しています:



参照マップと素材を使用して オーバーレイ に設定する
次の例では、カスタムキャラクターのための オーバーレイ モードを使用し、キャラクターのオリジナルの肌色を明らかにします:


スキンと同様のアプリケーションのオーバーレイを最適化する方法に関する詳細は、カスタムスキントーン を参照してください。
透明性
透明モードを使用して、メッシュの視覚的な部分を削除することで、レースやネットなどの複雑なまたは極めて精巧なオブジェクトを作成できます。 透明モード では、メッシュの幾何学を彫刻する代わりに、メッシュを削除することができます。これはメッシュオブジェクトの幾何学に影響しないため、複雑なメッシュモデルのパフォーマンスの影響なしで詳細なオブジェクトを作成できます。
次の例では、このモードで部分的な透明度と全透明度が視覚的にメッシュのセクションを削除する方法を示しています:



モードの結果は、 が または 少なくとも に設定されているかどうかによって 2つありますが、数値精度が不透明な透明性をトリガーするような小さな値になる可能性があります。
- アルファを使用して、葉、レースファブリック、ネットなどのような硬い縁を持つ主に不透明なオブジェクトの形を切り捨てるときは、MeshPart.Transparency を 0 に設定します。表面の一部が完全に不透明になると、Roblox エンジンは適切な深度ベースの排除でレンダリングできます。不透明な表面は、一般に DepthOfFieldEffect のような深度ベースの効果、ガラスと水の屈折、水反射ともよく機能します。
- アルファを使用して、半透明のオブジェクトまたは透明度の滑らかなグラデーションを持つオブジェクトに詳細を追加するときは、 を 最低限 に設定します。これにより、汚れた窓やソフトエッジの羽などのオブジェクトのブレンド品質が向上しますが、すべての効果に対応するわけではありません。
ティントマスク
モードを使用して、表面の選択した領域に 着色を適用できます。色合いは、アルファチャンネルが完全に表示され、アルファチャンネルが透明でない場所で適用されていないところで最も強いです。

カラー着色
SurfaceAppearance.Color プロパティを変更して、色マップにトイントを適用できます。着色はパフォーマンスに影響しないため、異なる色合いの単一の色マップを再使用することでメモリを節約できます。カラー着色を使用して、MeshPart PBR テクスチャの間に追加の低コストの変化を作成するか、リアルタイムで PBR 表面の色をプログラマティックに変更します。
SurfaceAppearance.Color ティントは倍数として適用されるので、最終的な外観は Color3 (テクセルカラー) 時間 SurfaceAppearance.Color です。これは、オリジナルの SurfaceAppearance.ColorMap を近白のグレースケールの色で作成すると、このプロパティが適用されると最も強い着色効果が生じることを意味します。
色付けは SurfaceAppearance.ColorMap にのみ適用され、MeshPart.Color ではありません。透明度 を適用するときは、アルファチャンネルの使用を続けることができます。
When SurfaceAppearance.AlphaMode が Overlay に設定され、アルファチャンネルが存在すると、基本の MeshPart.Color が明らかにされ、SurfaceAppearance.Color の着色は視覚的な SurfaceAppearance 色マップにのみ適用されます。
When SurfaceAppearance.AlphaMode が TintMask に設定され、アルファチャンネルが存在すると、アルファチャンネルは SurfaceAppearance.Color の色合いの量を制御します。色合いは、アルファチャンネルが完全に表示され、アルファチャンネルが透明でない場所で適用されていないところで最も強いです。

ノーマル
普通の 、または 表面 、マップは表面にテクスチャの深さを追加し、高さマップと同様に動作します。結果として、視覚角度と照明環境によって効果が薄れたり強まったりする可能性があります。通常のマップが存在しない場合、値は 0.0 に設定されます。
次の図では、通常のマップ値の比較のためにメッシュ参照とマップ参照を切り替えることができます:



画像の R 、 G 、および B チャンネルは、それぞれにローカル表面ベクトルの X 、 Y 、および Z コンポーネントに対応します。色の統一イメージ [127, 127, 255] は完全に平坦なノーマルマップに翻訳されます。Roblox は OpenGL 形式 - Tangent Space の通常のマップのみをサポートしています。
ノーマルマップは、メッシュの視覚面に大きな影響を与え、テクスチャにある不恰な縫い目を強調することができます。可能な限り、テクスチャの縫い目を隠して、メッシュでビジュアル問題を避けましょう。
粗さ
粗さ 、または マイクロサーフェス 、マップは光がモデルの表面にどのように広がるかを決定します。粗さが 0.0 にあると、表面は光をすべてく散らさないため、物質の表面により鋭く明るい反射と光沢が生じます。1.0 で、光と反射が均等にモデルに散らされ、反射率の低いマットのような表面になります。
粗さは、異なる角度で反射率がどのように変化するかに影響し、 フレネル 効果と呼ばれます。一貫した反射行動を維持するための詳細とベストプラクティスについては、fresnel を参照してください。
次の図は、さまざまな粗さマップ値の比較を示しています:



フレネル
フレネル は、現在の視野角に対する表面の反射量を指します。スタジオのフレネル処理は、物理的な現実世界の精度を目指していますが、粗い表面でさえ特定の角度で予期せぬスペクトル貢献が得られる可能性があります。いくつかの場合、あなたの粗さマップを約 0.1 より粗くして、素材と一貫した照明応答を達成することで補償できます。
Roblox はこの照明効果を正確にレンダリングしても、テクスチャコンテンツ作成ソフトウェア (Substance Painter など) と Studio の間で、表面の明るさと反射率が一貫して応答しない可能性があります。アプリケーション間のレンダリングの違いについては、服装の例 を参照してください。
メタリック性
メタリック性 は、表面の反射率を決定します。メタリック値は 0.0 と 1.0 の間にあります。Roblox は、メタルネスマップが存在しない場合、デフォルト値を 0.0 に設定します。
次の図では、さまざまなメタルネスマップ値の比較を見てください:



異なる PBR レンダラーは、反射率を処理するためにさまざまなワークフローを使用します。スタジオは、素材が 非メタル か メタル かどうかを決定する メタリネスワークフロー を使用し、時々 インサレーター または コンダクター と呼ばれます。
ほとんどの場合、この値を 0.0 (非メタル) または 1.0 (メタル) に設定する必要があります。サテンまたはシルクなど、中程度の反射性プロパティを持つより珍しい表面を作成するときは、部分的なメタリック値を使用できます。この練習は、マテリアル内の反射を偽り、環境に反映された色から色を強調することができますカラー/アルベドマップを通して。