前の記事で、マインクラフト(マイクラ)のリソースパック(リソパ)の作り方の初歩を復習したので、この記事ではモデルを使ってブロックのテクスチャーを指定する方法を書いておきます。
なお、この記事で示すフォルダーの構成などは Windows にインストールされたマイクラのJava版のものとなっています。
砂岩のテクスチャー
例えば、マイクラの安山岩のブロックのテクスチャーは、立方体のどの面でも同じものになっています。その一方、砂岩のテクスチャーは上面や下面が側面とは違っています。そこで、前回の記事で バージョン.jar ファイルを解凍してできた一群のファイルやフォルダーから、
assets → minecraft → textures → block
の中を見てみます。するとそこに、sandstone.png というファイルに加えて、sandstone_top.png と sandstone_bottom.png という2つのファイルがあることが分かります。この sandstone.png が側面のテクスチャーであり、sandstone_top.png と sandstone_bottom.png がそれぞれ、上面と下面のテクスチャーになっているのです。砂岩のテクスチャーを変更したい場合は、これら3つのテクスチャーを描き変えなければなりません。
ブロックのモデル
ここで、安山岩のブロックの上面と下面のテクスチャーを、砂岩と同じように、側面とは違ったものにすることを考えます。
ブロックのテクスチャーがある block フォルダーには andesite.png があります。しかし、砂岩の場合のように、andesite_top.png や andesite_bottom.png を加えても、上面や下面のテクスチャーは変わりません。
砂岩の上面や下面のテクスチャーを変えているのは、ブロックの「モデル」というものなのです。
前回の記事で バージョン.jar を解凍してできたフォルダー群を、
assets → minecraft → models → block
と辿ると、そこに sandstone.json というファイルがあるはずです。これを開いてみると、
{ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "minecraft:block/sandstone_bottom", "side": "minecraft:block/sandstone", "top": "minecraft:block/sandstone_top" } }
という内容になっています。これを読むと、およその意味が分かります。
砂岩のブロックは cube_bottom_top という種類のブロックから派生していて、側面のテクスチャーは sandstone、上面と下面のテクスチャーはそれぞれ sandstone_top と sandstone_bottom だ、ということが読み取れます。
では、安山岩のモデルはどうなっているのか、というと、同じフォルダ内に andesite.json ファイルがあるので、その内容を見ると、
{ "parent": "minecraft:block/cube_all", "textures": { "all": "minecraft:block/andesite" } }
となっています。これから、安山岩のブロックは cube_all から派生し、全面で使われるテクスチャーは andesite だと読み取れます。モデルがこのようになっているから、安山岩ブロックのテクスチャーは全面が同じものになるのです。
つまり、安山岩のブロックの上面と下面のテクスチャーを、側面のものと違うものにするには、このモデルを書き換えればよい、ということになります。
そこで試しに、安山岩ブロックのモデルを次のようにしてみます。
{ "parent": "minecraft:block/cube_bottom_top", "textures": { "bottom": "minecraft:block/granite", "side": "minecraft:block/andesite", "top": "minecraft:block/granite" } }
これで、安山岩ブロックの上面と下面のテクスチャーは花崗岩(granite)のテクスチャーと同じものになるはずです。
前回の記事と同じように、
.minecraft → resourcepacks → MyPack
フォルダーを作り、その中に、
assets → minecraft → models → block
というフォルダー階層を作ります。この block フォルダーに変更した安山岩ブロックのモデルを andesite.json という名前で保存します。
リソパとして機能させるためには、MyPack フォルダー内に pack.mcmeta ファイルを置かなければなりません。その内容については前回の記事を見てください。
ここまでの手順では、MyPack フォルダーの下に画像ファイルはありません。しかし、MyPack はこれでリソパとして機能します。その理由は、andesite.json ファイルがマイクラに元々ある画像ファイルを参照するからです。
もし、変更した画像ファイルを使いたければ、MyPack フォルダーの中にさらに
assets → minecraft → textures → block
というフォルダー階層を作り、ここに andesite.png と granite.png ファイルを置きます。
マイクラを起動して MyPack を読み込ませると、改造した安山岩ブロックが下のように表示されます。
玄武岩ブロックのモデル
安山岩や砂岩のブロックはどのような置き方をしても見た目に変わりはありません。しかし、例えば玄武岩や原木のブロックは、どの向きの面に向かって置くかによって、側面や端面の現れる向きが変わります。これがどういうモデルになっているのかを見るために、モデルが置かれているフォルダー内の basalt.json ファイルの内容を見ると、
{ "parent": "minecraft:block/cube_column", "textures": { "end": "minecraft:block/basalt_top", "side": "minecraft:block/basalt_side" } }
となっています。玄武岩のブロックは cube_column から派生し、側面のテクスチャーは basalt_side、端面のテクスチャーは basalt_top なのだと読み取れます。しかし、これを真似て安山岩のテクスチャーに向きを与えようとしてもうまくいきません。マイクラの内部やセーブデータでは、そもそも、安山岩には「向き」というものが与えられていないからです。
作業台のモデル
最後に、作業台のモデルについて触れておきます。
モデルが置かれているフォルダー内の crafting_table.json の内容を見ると、
{ "parent": "minecraft:block/cube", "textures": { "down": "minecraft:block/oak_planks", "east": "minecraft:block/crafting_table_side", "north": "minecraft:block/crafting_table_front", "particle": "minecraft:block/crafting_table_front", "south": "minecraft:block/crafting_table_side", "up": "minecraft:block/crafting_table_top", "west": "minecraft:block/crafting_table_front" } }
となっています。恐らくこれが、立方体の形をしたブロックの基本のモデルなのでしょう。だいたい意味は分かると思いますが、ひとつだけ particle という立方体の面とは関係なさそうな項目があります。
マイクラではブロックを壊したときに、破片が飛び散るようなアニメーションが表示されます。この particle で指定されたテクスチャーは、そのアニメーションに使われています。