物理ベース レンダリングの概要

物理ベース レンダリング (PBR) は、リアルな光の挙動に応じた材料の表現をシミュレートします。 一部のメタリック プロパティは反射を投影し、さまざまな種類のガラスを通過する光は屈折します。

このガイドでは、Minecraft: Bedrock Edition で PBR テクスチャを設計する際の基本的なワークフローをいくつか学びます。 一連のテクスチャを作成して、新しいタイプの各テクスチャ マップの特性を確認します。

このガイドでは、次の内容を学びます。

  • Minecraft のテクスチャ用の新しいテクスチャ マップ。
  • ラフネス マップとメタリック マップを使用してミラー テクスチャ セットを作成する方法。

要件

次のチュートリアルを完了する必要があります。

テクスチャは用意されていますが、独自のテクスチャを作成するにはレイヤー機能を備えたデジタル ペイント ソフトウェアが必要です。

PBR テクスチャとは

テクスチャは、テクスチャ マッピングという一般的なレンダリング方法を使用します。 クリエイターはテクスチャ マップを使用することで、複数の画像を重ねて高精細な 3D オブジェクトを作成できます。 Minecraft のバニラ テクスチャは、カラーと呼ばれる単一のマップを使用します。 カラー マップは、赤、青、緑、アルファの 4 つのカラー チャンネル (総称して RGBA) で構成されています。 最初の 3 つのチャンネルでテクスチャのレンダリング方法をコントロールし、アルファでテクスチャの透明度をコントロールします。

Minecraft に PBR が導入されたことで、テクスチャで新たに 5 つのマップを使用できるようになり、リアルな材料表現が可能になりました。

すべてのマップがブロックのテクスチャ セットに含まれ、このマップが重なり合うことで、テクスチャにさまざまな値が設定されます。 このプロセスによって、世界に配置されるブロックのレンダリング方法をより詳細にコントロールできます。

重要

PBR テクスチャ セットで、すべてのマップを使用する必要はありません。 マップを空白のままにすると、テクスチャ セットではデフォルトの値が使用されます。

メタリック マップ

メタリック マップは、テクスチャ マップのどの領域を金属のような質感にするかを指定するグレースケール テクスチャです。

  • 黒に設定されたピクセルは値が 0 で、非メタリックと認識されます。 草、土、樹皮などが非メタリック オブジェクトに該当します。
  • 白に設定されたピクセルは値が 1 で、100% メタリックとして処理されます。 鉄、ゴールド、銅などがメタリック オブジェクトに該当します。

縁がメタリック、中央が艶消しの白いコンクリート ブロック

上記の画像では次の mer を使用しています。

白いコンクリート ブロックのメタリック mer テクスチャ

エミッシブ マップ

エミッシブ マップは、テクスチャ マップのどの領域を発光させるかを指定するグレースケール テクスチャです。

  • 黒に設定されたピクセルは値が 0 で、発光しないものと認識されます。
  • 白に設定されたピクセルは値が 1 で、最も発光するものと認識されます。
  • このマップはグレースケールのため、設定できる値は 0 から 1 までです。

発光する縦のストライプを含む白いコンクリート ブロック

上記の画像では次の mer を使用しています。

白いコンクリート ブロックのエミッシブ mer テクスチャ

ラフネス マップ

ラフネス マップは、テクスチャ マップのどの領域で光を反射させるかを指定するグレースケール テクスチャです。

  • 黒に設定されたピクセルは値が 0 で、非常になめらかなものとして処理されます。 なめらかな大理石やガラス、なめらかなプラスチックなどのオブジェクトが、非常になめらかなものとして処理されます。
  • 白に設定されたピクセルは値が 1 で、非常に粗いものとして処理されます。 レンガや樹皮、石が非常に粗いものとして処理されます。
  • このマップはグレースケールのため、設定できる値は 0 から 1 までです。

横方向の粗いストライプとなめらかなストライプを含む白いコンクリート ブロック

上記の画像では次の mer を使用しています。

白いコンクリート ブロックのラフネス mer テクスチャ

法線マップ

法線マップは、奥行きと、テクスチャに光線があたったときの光の挙動をコントロールする RGB テクスチャです。

  • 法線マップでは RGB を使用するため、面のディテールを作成して、テクスチャの外観を彫刻のような 3D オブジェクトにすることができます。
  • RGB の値をそれぞれ 128128255 に設定すると、ピクセルの外観がフラットになります。

注意事項

これまでに法線マップを作成したことがある場合を除き、法線マップは手動では作成しないことをお勧めします。 法線マップの作成に便利なサードパーティのソフトウェアを利用できます。

ハイト マップ

ハイト マップは、テクスチャの奥行きをコントロールするグレースケール テクスチャです。 ハイト マップは法線マップの代わりとしても使用できますが、多くのテクスチャと同様の効率性や表現力はありません。

  • 黒に設定されたピクセルは値が 0 で、内側に押し出されます。
  • 白に設定されたピクセルは値が 1 で、外側に押し出されます。
  • 0.5 に設定されたピクセルがデフォルトの高さと認識され、内側や外側に押し出されることはありません。

正方形のパターンの隆起がある白いコンクリート ブロック

上記の画像では次のハイト マップを使用しています。

白いコンクリート ブロックのハイト mer テクスチャ

鏡面の作成

テクスチャ セット JSON ファイルを作成し、指定されたテクスチャ ファイルを使用して、既存のバニラのガラス ブロックで鏡面テクスチャを作成してみましょう。

テクスチャ セット JSON の作成

テクスチャ セットを適切に機能させるためには、JSON ファイルで、そのテクスチャを読み込むよう定義する必要があります。 このチュートリアルでは、iron_block ブロックを使用する鏡の例を扱います。

ヒント

テクスチャ セットの詳細については、テクスチャ セットに関するドキュメント - テクスチャ セットの概要をご覧ください。

  1. ビヘイビアー パック内の textures/blocks フォルダーに移動します。
  2. 新しい JSON ファイルを作成し、iron_block.texture_set.json という名前を付けます。
  3. iron_block.texture_set.json をダブルクリックし、コンテンツを編集します。
  4. 次の例をコピーします。

iron_block.texture_set.json

{
  "format_version": "1.16.100",
  "minecraft:texture_set": {
    "color": "iron_block",
    "metalness_emissive_roughness": "iron_block_mer",
}
  1. ファイルを保存して閉じます。

JSON ファイルを設定したら、テクスチャで color の値と metalness_emissive_roughness の値を設定します。

レイトレーシング機能の追加

パックの manifest.json ファイルでは、"raytraced" の値を、既存の headermodules の下にある capabilities セクションに追加する必要があります。

{
    "format_version": 1,
    "header": {
        "name": "RTX Sample Resources",
        "description": "",
        "uuid": "58d4560c-106d-4b0c-9847-eee47417fb05",
        "min_engine_version": [1, 12, 0],
        "version": [1, 0, 0]
    },
    "modules": [
        {
            "description": "",
            "type": "resources",
            "uuid": "2d3df25b-856a-406d-9a57-c87b9a4d7af8",
            "version": [0, 0, 1]
        }
    ],
    "capabilities" : [
        "raytraced"
    ]
}

テクスチャの追加

PBR ワークフローで鏡面を作成するには、ラフネス マップとメタルネス マップが必要です。

値が 0.0 のラフネス マップ (ソリッド ブラック) では、光が反射するなめらかな面が作成されます。

値が 1.0 に設定されているメタルネス マップ (ソリッド ホワイト) では、反射する金属のようなブロックがレンダリングされます。

この鏡面を設定すると、Render Dragon エンジンが比較的短時間でこうしたオブジェクトの計算を処理し、レイ トレーシングを実行できるようになります。

メイン カラー テクスチャ: iron_block.png 鉄ブロックのデフォルトの Minecraft テクスチャ

PBR テクスチャ: iron_block_mer.png 鏡面効果のための鉄ブロックの mer テクスチャ

  1. iron_block.png ファイルと iron_block_mer.png ファイルを保存します。
  2. 両方の .png ファイルをコピーし、textures/blocks フォルダーに貼り付けます。

テクスチャ パックの実行

JSON ファイルを適切に設定し、両方のテクスチャを追加したら、Minecraft でテクスチャ パックを読み込んでテストできます。

環境にある花を反射する鉄ブロック

次のステップ

物理ベース レンダリングのチュートリアル

ラフネス マップとメタルネス マップを使用して鏡面を作成しました。 このガイドの次のステップに進み、カスタム テクスチャを用意して独自のテクスチャ セットを作成する方法を学びましょう。

リソースのフォグ

レイ トレーシングと同時に Minecraft のフォグが更新され、同様の JSON 構造が使用されるようになりました。これにより、ゲーム内でのフォグの外観を作成、管理できます。