バイブラントビジュアルとシェーダー向けPBRテクスチャパックの作り方
PBRテクスチャパックは、ブロックに色以外の情報を与えます。どれくらいつやがあるか、どこが金属か、どこが光るか、光の中でどれくらいでこぼこに見えるかです。統合版Minecraftのバイブラントビジュアルはこれらのマップをテクスチャセットから読み、Java版ではIrisやOptiFine用のPBRシェーダーがlabPBR形式で読みます。Texture Pack Makerは、金属、ガラス、鉱石の光る粒などのかんたん質感を使って、あなたのテクスチャから両方をブラウザで作ります。
各マップの役割
テクスチャの各ピクセルに、いくつかの数値が加わります。「質感」タブでは見た目の言葉で呼び、ファイルのどこに入るかは次の表のとおりです。
| エディターでの名前 | 働き | Java版(labPBR) | 統合版(テクスチャセット) |
|---|---|---|---|
| つや | なめらかな面ははっきりした光や映り込みを見せ、ざらざらの面はつやがなく見えます。 | _sの赤:なめらかさ | MERの青:粗さ |
| 金属 | 鉄や金のように、金属は自分の色で空を映します。 | _sの緑:230〜255 | MERの赤:金属度 |
| 発光 | グロウストーンや鉱石の宝石のように、夜でも光を出します。 | _sのアルファ:0〜254 | MERの緑:発光 |
| 透過光 | 葉っぱのように、薄い部分から光が通ります。 | _sの青:65〜255 | MERSのアルファ(バイブラントビジュアルのみ) |
| でこぼこ | 平らな面でも、光と影ででこぼこが見えます。 | _nの赤と緑、高さはアルファ | 法線マップ |
質感がなければ、テクスチャはいつもどおりに見えます。Java版では色のテクスチャはそのままで、マップがその隣に置かれます。
作り方の手順
- Texture Pack Makerを開き、Java版か統合版のパックを作るか、手持ちのパックを開きます。
- ダイヤモンド鉱石など、ブロックやアイテムのテクスチャを選び、「プレビュー」の隣の「質感」タブを開きます。
- 金属、ガラス、光る粒などのかんたん質感を選びます。光の当たる3Dブロックが、動く太陽の下で見せてくれます。
- テクスチャ全体のつや、金属、発光、透過光を調整するか、パーツ(色の鮮やかなピクセル、明るいピクセル、暗いピクセル、特定の色、選択した範囲)を追加して別の値を付けます。
- 色からでこぼこを作るをオンにして強さを決め、似たテクスチャにも使うで、すべての鉱石、板材、原木に同じ質感を付けます。
- エクスポートを押します。Java版では各テクスチャの隣に
_n.pngと_s.png、統合版ではテクスチャセットとpbr機能が入ります。
鉱石の光る粒とそのほかのパーツ
パーツは、一部のピクセルに別の値を付けます。色の鮮やかなピクセルは灰色の石の中から鉱石の宝石を、明るいピクセルはランプの光を、特定の色のピクセルはクリックした色だけを、選択した範囲は選択ツールで囲んだ四角形を選びます。各パーツがどのピクセルを含むかは、小さな画像でわかります。
似たテクスチャにも使うは、同じブロックのほかの面と、名前が同じ言葉で終わる・始まるテクスチャに質感をコピーします。たとえば*_oreのテクスチャすべてやoak_*のテクスチャすべてです。それぞれ自分の色はそのままなので、パーツとでこぼこはそのテクスチャのピクセルに合わせて付きます。
Java版:シェーダー用のlabPBRマップ
Java版には独自のPBRはなく、IrisやOptiFineのシェーダーパックが描きます。エディターは2つのlabPBRマップを各テクスチャの隣に書き込みます。たとえばassets/minecraft/textures/block/stone_n.pngとstone_s.png(1.13より前はtextures/blocks/)で、大きさはエクスポートされるテクスチャと同じです。なめらかさは知覚的な値(1から粗さを引いたもの)で、金属でないものにはF0として約4%が入り、発光しないピクセルのアルファは255です。こうすると、アルファのない画像が光ることはありません。
labPBRマップを読むシェーダーをオンにしてください。シェーダーの設定ではlabPBRやリソースパック対応と呼ばれることが多く、映り込みや発光の強さはシェーダーが決めます。このサイトのシェーダーメーカーのシェーダーは、まだこれらのマップを使いません。
統合版:バイブラントビジュアル用のテクスチャセット
統合版は、色のテクスチャの隣にあるテクスチャセットを読みます。光る粒とでこぼこは画像になります。
{
"format_version": "1.16.100",
"minecraft:texture_set": {
"color": "diamond_ore",
"metalness_emissive_roughness": "diamond_ore_mer",
"normal": "diamond_ore_normal"
}
}テクスチャ全体がひとつの値なら、画像はいりません。
{
"format_version": "1.16.100",
"minecraft:texture_set": {
"color": "iron_block",
"metalness_emissive_roughness": [255, 0, 70]
}
}透過光はmetalness_emissive_roughness_subsurfaceの4番目のチャンネル(フォーマット1.21.30、バイブラントビジュアルのみ)で、アルファがそのまま残るようTGAで書き込みます。テクスチャセットは同じパックの画像しか指定できないので、塗っていない場合でもエディターは色のテクスチャも入れます。パックはpbr機能を宣言します。これがないとバイブラントビジュアルはオフのままです。
{
"format_version": 2,
"header": {
"min_engine_version": [1, 21, 120],
…
},
"modules": [ … ],
"capabilities": ["pbr"]
}ゲームはほとんどのブロックに独自のテクスチャセットを持っています。バイブラントビジュアルでは、ゲームのセットがあなたの色ではなくゲームの色のテクスチャを表示してしまうため、質感を付けずに変更したテクスチャには、ゲームのセットのコピーがパックに入ります。バイブラントビジュアルの設定の解説。
PBRマップのあるパックを開く
labPBRマップのあるJava版パックや、テクスチャセットのある統合版パックを開くと、そのマップは各テクスチャの「質感」タブに表示されます。質感を変えるまでは、元のままエクスポートされます。
よくある質問
RTXのグラフィックカードは必要ですか?
いいえ。バイブラントビジュアルは多くのPC、ゲーム機、新しめのスマホで動き、labPBRシェーダーはシェーダーが動くほとんどのグラフィックカードで動きます。統合版の以前のレイトレーシングモードも同じテクスチャセットを読みますが、光を通す質感は除きます。それはバイブラントビジュアルだけが読むレイヤーを使うからです。
ゲームでパックの見た目が変わらないのはなぜ?
統合版:グラフィックモードをバイブラントビジュアルにして、グローバルリソースでパックをいちばん上に置きます。Java版:labPBR対応のシェーダーをオンにして、質感やリソースパックの設定を確認します。どちらもなければ、Minecraftは色だけを表示します。
質感はアイテムやモブにも使えますか?
はい。バイブラントビジュアルと、ほとんどのlabPBRシェーダーで使えます。バイブラントビジュアルはアイテムに高さマップを使えないので、エディターは高さマップではなく、いつも法線マップを書き込みます。
金属は0か100にしたほうがいいのはなぜ?
本物の物は金属か金属でないかのどちらかで、labPBRもバイブラントビジュアルも各ピクセルをどちらかとして扱います。中間の値は灰色でくすんで見えます。つやのある石にしたいときは、つやを上げて金属は0のままにします。