はじめに
本記事では、マインクラフト統合版でのオリジナルブロックの制作方法について解説します。
オリジナルブロックはアイテムと異なり、自由度が大きい分様々な点で複雑です。したがって、解説は本記事を含めて何回かに分けて行うことになるかと思います。本記事では、まず「何もしない単純なブロック」を制作し、これをゲーム内に追加していきます。

本記事の内容について解説したYoutube動画を作成しました。こちらより閲覧できます:
前提
ブロックの制作にあたっては、「何もしないアドオン」の制作が必須です。まずはアドオンそのものを作っていきましょう。既にアドオンがある場合、この節は飛ばしてください。
com.mojangの場所
まず、アドオン制作の舞台となるcom.mojangフォルダにアクセスしましょう。フォルダの場所を以下に示します。
フォルダの場所を変更していない場合、マインクラフト(統合版)のフォルダの場所は以下の通り。
C:\Users\(ユーザー名)\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang
エクスプローラー上で、「AppData」というファイルは隠しファイルです。
これを選択するには、エクスプローラーの「表示」設定から隠しファイルのチェックをオンにすればOKです。
または、「ファイル名を指定して実行」というアプリを起動し、
「%LocalAppData%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang」
と入力することでも開くことができます。
Windows10の場合、「ファイル名を指定して実行」というアプリは、
タスクバーにある「ここに入力して検索」と記された検索ボックスに、「ファイル名を指定して実行」と入力することで起動できます。
まずは、準備としてこのマインクラフト(統合版)のフォルダを開きましょう。
アドオンはイラストのように「ビヘイビアパック」と「リソースパック」の2つによって構成されます。ここでは、簡単にその2つを定義していきましょう。

development_behavior_packsを開き、まずはビヘイビアパックを制作します。フォルダを新規作成し、任意の名前を付けましょう。その後、そのフォルダを開き、manifest.jsonを作成します。
以下は、manifest.jsonの内容です。これをコピー&ペーストし、テキストエディタに貼り付けましょう。
{
"format_version": 2,
"header": {
"name": "テスト用アドオン",
"description": "アドオンのテストです",
"uuid": "adfac116-3164-409f-a89c-d31366588136",
"version": [1, 0, 0],
"min_engine_version": [1, 20, 0]
},
"modules": [
{
"type": "script",
"language": "javascript",
"uuid": "b1ef9620-c58e-4fa3-bdcd-f5f1d3c70c12",
"entry": "scripts/main.js",
"version": [0, 1, 0]
},
{
"description": "アドオンのテストです",
"type": "data",
"uuid": "adfac116-3164-409f-a89c-d35566588137",
"version": [1, 0, 0]
}
],
"capabilities": ["script_eval"],
"dependencies": [
{
"module_name": "@minecraft/server",
"version": "1.10.0"
},
{
"module_name": "@minecraft/server-ui",
"version": "1.1.0"
},
{
"uuid":"adfac116-3164-409f-a89c-d31366588114",
"version":[1,0,0]
}
]
}
なお、上記のnameやdescriptionを変更することでアドオンの名前や説明文を設定することができます。
ジェネレーターはこちら
続いてcom.mojangフォルダ内のdevelopment_resource_packsフォルダを開き、同様に任意の名前をつけましょう。その後、それを開いてmanifest.jsonを作成します。内容は以下:
{
"format_version": 2,
"header": {
"description": "テスト用のリソースパックです",
"name": "テスト用リソースパック",
"uuid": "adfac116-3164-409f-a89c-d31366588114",
"version": [1, 0, 0],
"min_engine_version": [1, 20, 20]
},
"modules": [
{
"description": "テスト用のリソースパックです",
"type": "resources",
"uuid": "adfac116-3164-409f-a89c-d31366588135",
"version": [1, 0, 0]
}
],
"dependencies": [
{
"uuid":"adfac116-3164-409f-a89c-d31366588136",
"version":[1,0,0]
}
]
}
なお、このときリソースパックのheaderのuuidがビヘイビアパックのdependenciesのuuidと一致していることを確認しましょう。同様に、ビヘイビアパックのheaderのuuidがリソースパックのdependenciesのuuidと一致している必要があります。また、両者のversionも同じである必要があります(ここで示しているテンプレートでは一致しています)。

これで準備は整いました。一度、マインクラフトを起動し、アドオンが定義できているか確認してみてください。アドオンがきちんと存在すれば成功です。
なお、manifest.jsonと同階層の場所にpack_icon.pngを配置すれば、パックアイコンもカスタマイズすることができます。
ブロックの定義
com.mojang
└── development_behavior_packs
└── ビヘイビアパックのフォルダ
├── manifest.json
└── blocks
└── test_block.json
まずビヘイビアパック内にblocksというフォルダを新規作成し、その中にブロックを定義するjsonファイルを作成します。以下は、何もしないブロックを定義するjsonファイル(test_block.json)の例です:
{
"format_version": "1.20.0",
"minecraft:block": {
"description": {
"identifier": "lemon_q0v0p:test_block",
"menu_category": {
"category": "construction"
}
},
"components": {
}
}
}
上記のidentifierでこのブロックのidを定義しています。ここをアレンジしてお好みのブロックを作成してみてください。なお、形式は(名前空間):(ブロック名)である必要があります。
テクスチャーの定義
development_resource_packs
└── リソースパックのフォルダ
├── textures
│ ├── terrain_texture.json
│ └── blocks
│ └── ブロックのテクスチャー.png
├── manifest.json
└── blocks.json
続いてリソースパックのフォルダに移動し、manifest.jsonと同階層の場所にblocks.jsonを新規作成し、以下をコピー&ペーストしましょう:
{
"format_version":"1.16.100",
"lemon_q0v0p:test_block" : {
"sound" : "stone",
"textures" : "test_block"
}
}
上記のtest_blockの部分をアレンジしてご利用ください。
terrain_texture.json
リソースパックの中にtexturesというフォルダを作成し、terrain_texture.jsonを作成します。内容は以下:
{
"num_mip_levels" : 4,
"padding" : 8,
"resource_pack_name" : "lemon_pack",
"texture_data" : {
"test_block" : {
"textures" : "textures/blocks/test_block"
}
},
"texture_name" : "atlas.terrain"
}
例にもれず、上記のtest_blockの部分をアレンジしてご利用ください。resource_pack_nameは任意の名前です。また、texture_nameのatlas.terrainは固定の文字列ですので、変更しないでください。
テクスチャーの配置
最後に、texturesフォルダ内にblocksフォルダを新規作成し、その中に16×16のサイズのブロックの画像ファイル(png)を配置します。適当なペイントソフトで制作すると良いかと思います。一応私の画像ファイルを置いておきます(テスト用です。再配布禁止)。

翻訳
以上で「何もしないブロック」がゲーム内で定義されるはずですが、アイテム名が「tile.lemon_q0v0p:test_block.name」などとなっており、少々見栄えが悪いです。それを解消するために、翻訳を定義しましょう。
リソースパックのmanifest.jsonと同階層の場所にtextsというフォルダを作成し、その中に「ja_JP.lang」というファイルを作成します。以下のように記述しましょう:
tile.lemon_q0v0p:test_block.name=テストブロック
これを保存することで、きちんと翻訳が定義されるはずです。
おしまい
以上で「何もしないブロック」の制作方法の解説を終了します。次回は下のような立体ブロックの制作方法についてお話しします。
