Uploaded:2023/01/01 Latest-Update:2023/01/01

アドオン作りの基礎 - ブロック編#1

目次は右上の「≡」から!

手順をふんで、できるだけ簡単にブロックの作り方を解説します!

前回の記事(アドオンづくりの基礎#2)の 「追加するコンテンツのフォルダ」まで手順を進めているのが前提です。

ブロックを追加するためにはビヘイビアパックとリソースパックの両方を作る必要があるので分けて説明しますが、 どっちでの作業なのか注意して進めてください。

ビヘイビア

ブロックの本体を作る

blocksフォルダの中にsimple_block.jsonを新規作成します。ファイルの名前は自由です。

ビヘイビア
  ┣ manifest.json
  ┣ pack_icon.png
  ┗ blocks
    ┗〇〇.json
Dat
blocks/simple_block.json
{ "format_version": "1.16.100", "minecraft:block": { "description": { "identifier": "ex:simple_block" }, "components": { "minecraft:block_light_emission": 1.0, "minecraft:creative_category": { "category": "construction" }, "minecraft:destroy_time": 1.0, "minecraft:explosion_resistance": 5.0, "minecraft:loot": "loot_tables/blocks/simple_block.json", "minecraft:map_color": "#64ec86" } } }

内容の意味

{ "format_version": "1.16.100", "minecraft:block": { "description": { "identifier": "~#M(83ffd9)(アドオンID)M#~:~#M(83ffd9)(ブロックのID)M#~" }, "components": { "minecraft:block_light_emission": ~#M(83ffd9)1.0M#~, // (※1) "minecraft:creative_category": { "category": ~#M(83ffd9)"construction"M#~ // (※2) }, "minecraft:destroy_time": ~#M(83ffd9)1.0M#~, // (※3) "minecraft:explosion_resistance": ~#M(83ffd9)5.0M#~, // (※4) "minecraft:loot": ~#M(83ffd9)"(ルートテーブルのファイルパス)"M#~, // (※5) "minecraft:map_color": ~#M(83ffd9)"#64ec86"M#~ // (※6) } } }

アドオンIDとブロックのIDは書き方を守って各自で決めてください。

書き方

アドオンID

アドオン全体で共通のID

ブロックID

個別のID(バニラとカブらないほうがよい)

基本の書式

  • アルファベット、数字、「_」「-」以外は使わない
  • 頭文字はアルファベット
  • アルファベットの大文字は使わないほうがいい

(※1) 明るさを0.0~1.0の小数で指定します。
(※2) クリエイティブインベントリのカテゴリを指定します。

詳細
↑こういうやつ

"construction"(構築), "equipment"(所持品), "items"(アイテム), "nature"(性質)から選んでください。 また、新しく増やせません。

(※3) 壊すのにかかる時間を秒数で指定します。
(※4) ブロックの爆発耐性を小数で指定します。
(※5) ブロックを壊したときにドロップするアイテムを決める、ルートテーブルを指定します。

詳細

今回はこのブロックをドロップするようにします。
loot_tablesフォルダの中にblocksフォルダを作り、その中にsimple_block.jsonを新規作成します。 ファイルの名前は自由です(ブロックのJSONでも名前を変えてください)。

Dat
loot_tables/blocks/simple_block.json
{ "pools": [ { "rolls": 1, "entries": [ { "type": "item", "name": "ex:simple_block", "weight": 1 } ] } ] }
ビヘイビアパック
┣ manifest.json
┣ pack_icon.png
┗ loot_tables
  ┗ blocks
    ┗ simple_block.json

詳しい作り方は:ルートテーブルの作り方


ビヘイビアは完成

あとはこの記事(アドオンづくりの基礎#2)の 「圧縮」以降の手順になります。

リソース

テクスチャを用意

リソースパックtexturesフォルダ(なければ新規作成)の中にblocksフォルダを作ります。
その中にテクスチャファイルを入れてください。今回は「simple_block.png」であるとします。

リソース
  ┣ manifest.json
  ┣ pack_icon.png
  ┗ textures
    ┗ blocks
      ┗ simple_block.png

テクスチャにIDをつける

リソースパックのtexturesフォルダ内にterrain_texture.jsonを新規作成します。名前は決まっています。

リソース
  ┣ manifest.json
  ┣ pack_icon.png
  ┗ textures
    ┣ terrain_texture.json
    ┗ blocks
      ┗ simple_block.png
Res
textures/terrain_textures.json
{ "num_mip_levels": 4, "padding": 8, "resource_pack_name": "vanilla", "texture_name": "atlas.terrain", "texture_data": { "simple_block": { "textures": "textures/blocks/simple_block" } } }

内容の意味

{ "num_mip_levels": 4, "padding": 8, "resource_pack_name": "vanilla", "texture_name": "atlas.terrain", "texture_data": { "~#M(83ffd9)(テクスチャのID)M#~": { "textures": "textures/blocks/~#M(83ffd9)(テクスチャ名)M#~" } } }

上の4行はコピペしたまま気にしなくていいです。


ブロックにテクスチャを貼る

リソースパックのmanifest.jsonと同じ層にblocks.jsonを新規作成します。名前は決まっています。

リソース
  ┣ manifest.json
  ┣ pack_icon.png
  ┣ blocks.json
  ┗ textures
    ┣ terrain_texture.json
    ┗ blocks
      ┗ simple_block.png
Res
blocks.json
{ "format_version": [ 1, 1, 0 ], "ex:simple_block": { "sound": "glass", "textures": "simple_block" } }

内容の意味

{ "format_version": [ 1, 1, 0 ], "~#M(83ffd9)(ブロックのフルID)M#~": { "sound": ~#M(83ffd9)"glass"M#~, // (※7) "textures": "~#M(83ffd9)(テクスチャのID)M#~" } }

(※7) このブロックに関する基礎のサウンド(破壊、設置など)を決めます。

ここから選択
ID名前
amethyst_blockアメジストのブロック
amethyst_clusterアメジストのかたまり
ancient_debris古代のがれき
anvil金床
azaleaツツジ
azalea_leavesツツジの葉っぱ
bamboo
bamboo_saplingたけのこ
basalt玄武岩
big_dripleaf大きなドリップリーフ
bone_block骨ブロック
calcite方解石
candleキャンドル
cave_vines洞窟のつた
chainチェーン
clothウール
comparatorレッドストーンコンパレーター
copper銅のブロック
coralサンゴのブロック
deepslateディープスレート
deepslate_bricksディープスレートレンガ
dirt_with_roots根のついた土
dripstone_blockドリップストーンブロック
fungus(きのこ (ネザー))
glassガラス
grass草ブロック
gravel砂利
hanging_rootsぶら下がる根っこ
honey_blockハチのブロック
(ハチミツブロック)
itemframe額縁
ladderハシゴ
lanternランタン
large_amethyst_bud大きなアメジストの芽
lodestoneロデストーン
(ロードストーン)
medium_amethyst_bud普通のアメジストの芽
metal(金属ブロック)
moss_blockこけブロック
moss_carpetこけカーペット
nether_brickネザーレンガのブロック
nether_gold_oreネザーゴールド鉱石
nether_sproutsネザースプラウト
nether_wartネザーウォート
netheriteネザライトのブロック
netherrackネザーレック(ネザーラック)
nylium(ニリウム(ナイリウム))
pointed_dripstone尖ったドリップストーン
powder_snow粉雪
roots(根(ネザー))
sand
scaffolding足場
sculkスカルク
sculk_catalystスカルクカタリスト
sculk_sensorスカルクセンサー
sculk_shriekerスカルクシュリーカー
sculk_veinスカルクヴェイン
shroomlightシュルームライト
slimeスライムブロック
small_amethyst_bud小さなアメジストの芽
snow
soul_sandソウルサンド
soul_soil魂の土壌(ソウルソイル)
spore_blossomスポアブロッサム
stem幹(ネザー)
stone
sweet_berry_bushスイートベリーの茂み
tuff凝灰岩
vinesツタ
wood(木材)

表示用の名前

最後に、インベントリ内などで表示する名前を指定します。

リソースパックのmanifest.jsonと同じ層のtextsフォルダにあるja_JP.langファイルを編集します(なかったら新規作成、名前は固定)。

リソース
  ┣ manifest.json
  ┣ pack_icon.png
  ┣ blocks.json
  ┣ texts
  ┃ ┗ ja_JP.lang
  ┗ textures
    ┣ terrain_texture.json
    ┗ blocks
      ┗ simple_block.png

中には以下の行を追加します。

tile.ex:simple_block.name=シンプルなブロック

内容の意味

tile.(ブロックのフルID).name=(表示する名前)

リソースも完成

あとはこの記事(アドオンづくりの基礎#2)の 「圧縮」以降の手順になります。

完成!

作ったパックを両方ともインポートして確認してみましょう!
以下のことに気をつけてください:

二つ目以降のブロックの追加のしかた

ファイル自体を増やすのか、ファイルの中身を増やすのかに注意してください。

ブロック本体(ビヘイビア)

ファイル自体をまたblocksフォルダ内に新規作成してください。

ビヘイビア
  ┣ pack_icon.png
  ┣ manifest.json
  ┗ blocks
    ┣ simple_block.json
    ┣ myblock_2.json
    :
    ┗ myblock_n.json

テクスチャにIDをつける(リソース、terrain_texture.json)

ファイルの中身に書き加えていきます。カンマ( , )の忘れには気をつけてください。

{ "num_mip_levels": 4, "padding": 8, "resource_pack_name": "vanilla", "texture_name": "atlas.terrain", "texture_data": { "simple_block": { "textures": "textures/blocks/simple_block" }, ~#r"myblock_2": { "textures": "textures/blocks/myblock_2" }r#~ } }

ブロックにテクスチャを貼る(リソース、blocks.json)

こちらもファイルの中身に書き加えていきます。カンマ( , )の忘れには気をつけてください。

{ "format_version": [ 1, 1, 0 ], "ex:simple_block": { "sound": "glass", "textures": "simple_block" }~#M(83ffd9),M#~ ~#r"ex:myblock_2": { %% "sound": "gravel", %% "textures": "myblock_2" %%}r#~ }
©2023 Rinca Hayamine