sumisoクラフト

sumisoクラフトはてなブログ拠点

【統合版マイクラ】RTX対応テクスチャの作り方

 

統合版Minecraft

レイトレーシング対応リソースパックを

作ってみた

 

こんにちは

f:id:sumiso_c0db8c:20210217120544p:plain

sumiso_c0db8c だ

 

統合版マイクラ1.16.200から

windows10版に正式実装された

 

レイトレーシング(RTX)

 

公式影MODとも呼ばれ

 

リアルな光と影が描画されるようになる

ただし、重い(PCのスペックにもよる)

 

RTX対応グラフィックカードを製作している

NVIDIAの公式サイトに

RTX対応テクスチャの作り方が

公開されているので(英語)

www.nvidia.com

これを参考にして

RTX対応リソースパックを作ってみる

 

目次

 

 

作成するテクスチャ

イクラに存在する

全てのブロックのテクスチャを

1から作るのは大変なので

 

今回は

✔簡単

✔RTXの効果が分かりやすい

 

という点から

 

鉄ブロックを

100%反射する鏡ブロックに

 

金ブロックを

発光するブロックに

 

していく

 

 

ファイル構成

 

sumiso_rtx/ ←任意の名前
 ├ manifest.json
  ├ pack_icon.png ←無くても動作する
 └ textures/
      └ blocks/
           ├ gold_block.texture_set.json 
           ├ gold_block.png
           ├ gold_block_normal.png
           ├ iron_block.texture_set.json
         └ iron_block_normal.png

 

manifest.json

 

{
    "format_version": 2,
    "header": {
        "description": "Shining gold, reflective iron",
        "name": "iron mirror and shining gold",
        "uuid": "3ba269c2-cc9b-4fe4-93ec-f23562c0db8c",
        "version": [1, 0, 0],
        "min_engine_version": [1, 16, 200]
    },
    "modules": [
        {
            "type": "resources",
            "uuid": "973156bb-f162-44eb-84af-c18355c0db8c",
            "version": [1, 0, 0]
        }
	],
    "capabilities" : [
            "raytraced"
    ]			
}

リソースパックの定義をするmanifest.json

基本的には普通のリソースパックと同じ

 

"min_engine_version": [1, 16, 200]

は必須。消したらエラーになった

 

"capabilities" : ["raytraced"]

でRTX対応

ということらしい

 

gold_block.texture_set.json

ここからがテクスチャの本体

金ブロックを発光するブロックにする

 

{
    "format_version": "1.16.100",
    "minecraft:texture_set": {
        "color":"gold_block",
        "metalness_emissive_roughness": "#e6ff1a",
        "heightmap": "gold_block_normal"
    }
}

 

1つのブロックに対して

見た目

金属性、発光性、表面の質感

表面の凹凸

を定義する

 

 "color"

ブロックの見た目の色

バニラの金ブロックのテクスチャを

そのまま利用した

 

バニラのリソースパックは

ここからDL可能

www.minecraft.net

 

"metalness_emissive_roughness"

ブロックの質感などを

#RRGGBB形式で指定する

 

metalness

金属か非金属か

表面がどれだけメタリックか定義する

RRの部分

 

10進数に直すと

0~255の数値になる

 

0で完全な非金属

255で完全な金属になる

 

今回は適当に230ぐらい

16進数にして

 

e6

 

にしてみた

 

emissive

発光するかどうか

GGの部分

 

0で発光しない

255で光り輝く

 

今回は

金ブロックを光らせてみる

ということで

 

255

16進数にして

 

ff

 

にしてみた

 

roughness

表面の質感

BBの部分

 

0でツルツル

255でザラザラ

 

適当に26ぐらい

 

1a

 

にしてみた

 

"heightmap"

表面の凸凹を

グレースケールの画像で定義する

白黒だけど、rgbの画像を指定すると

エラーになるので注意

 

 

gold_block_normal.png

f:id:sumiso_c0db8c:20210217125736p:plain

 

画像ちっちゃいな

(16 x 16 px)

 

フチだけ黒くして

中央部分が膨らんでいる感を表現した

 

 

iron_block.texture_set.json

 鉄ブロックを鏡にする

正直鉄ブロックじゃなくてもいい

 

{
    "format_version": "1.16.100",
    "minecraft:texture_set": {
        "color": [255, 255, 255, 255],
        "metalness_emissive_roughness": "#ff0000",
        "heightmap": "iron_block_normal"
    }
}

 

"color"

今度は画像ではなく、色を直接指定してみた

鏡にするので

真っ白で不透明なブロックにする

 

"metalness_emissive_roughness"

100%反射させるために

メタリック度はMAX

鏡は光らないので発光は0

鏡はツルツルなので0

 

"#ff0000"

 

となる

 

"heightmap"

鏡はツルツルで凹凸がないので

真っ白の画像を用意した

 

iron_block_normal.png

f:id:sumiso_c0db8c:20210217131520p:plain

↑ココ

 

導入

あとはこれらのファイルをzipにし

拡張子を.mcpackに書き換える

 

アイコンがマイクラになるので

クリックすれば自動でインポートされ

リソースパックから

選択できるようになる

 

実用例

f:id:sumiso_c0db8c:20210217122135p:plain

手に持った金ブロックは光っていないが

設置した金ブロックは光っている

 

他の発光するブロック

きのこライト(シュルームライト)や

溶岩は

 

今回作成したリソースパックで

発光の定義をしていないので

光っていない

 

 

 

光る金ブロックと

鏡になった鉄ブロックで

こんなこともできる

 

ただの薄暗い部屋が

f:id:sumiso_c0db8c:20210217132624p:plain

※暗すぎたので若干画像編集で明るくしています

 

レイトレーシングをONにすると

f:id:sumiso_c0db8c:20210217132819p:plain

金ブロックが発光し

壁が合わせ鏡になる 

 

各方向

8回まで反射が描画されているようだ

 

ちなみに

3人称視点にしないと

鏡に映っている自分を

確認することは

できない

 

光る金ブロック

見た目は光っているが

データ的にはただの金ブロックなので

f:id:sumiso_c0db8c:20210217133306p:plain

普通にモンスターが湧く

 

眩しすぎて

クリーパーが

霞んでいる

 

終わりに

RTX対応リソースパックを作ってみた

 

イクラに存在する

全てのブロックを作るのは大変だが

 

既存のRTX対応リソースパックを適用した上に

一部自作のテクスチャに変える

なんて使い方ができるかもしれない

 

Java版の影MODで

鉱石ブロックが光る

というのを統合版で再現してみたり

 

適当なブロックを

鏡ブロックに変えれば

建築の表現の幅が広がる

 

、、、その前に建築が出来ないが