アドオン詳細解説 - ブロック(リソース)
アドオンのブロックについて説明します。
目次 (折りたたみ可)
テクスチャの変更
texturesフォルダのblocksフォルダの中に変えたいブロックのテクスチャを入れます。ファイル名はテンプレートを参照してください。
リソース
┣ manifest.json
┣ pack_icon.png
┗ textures
┗blocks
┗〇〇.png
ブロックのテクスチャの仕組み
terrain_texture.jsonでテクスチャにIDをつけ、blocks.jsonでそのIDとブロック本体を紐づけします。

terrain_texture.jsonの基本
ファイルの場所
textureフォルダの中に置きます。
リソース
┣ manifest.json
┣ pack_icon.png
┗ textures
┗terrain_texture.json
基本の構造
上の4行の値はコピペしたらそのままにしておいてください。
{
"num_mip_levels": 4,
"padding": 8,
"resource_pack_name": "vanilla",
"texture_name": "atlas.terrain",
"texture_data": {
"diamond_ore": { "textures": "textures/blocks/diamond_ore" }
}
}
上の例でdiamond_oreとなっているところは自分で決めるテクスチャのIDです。
アルファベット、アンダーバー( _ )、数字(1文字目以外)のみが使えます。
このIDのことをこのサイトでは「TerrainID」と呼ぶことがあります。
texturesの値はテクスチャのファイルパス(拡張子なし)です。
紐づけするブロックを増やす
赤枠で囲まれた部分を増やします。
{
"num_mip_levels": 4,
"padding": 8,
"resource_pack_name": "vanilla",
"texture_name": "atlas.terrain",
"texture_data": {
"diamond_ore": { "textures": "textures/blocks/diamond_ore" },
"gold_ore": { "textures": "textures/blocks/gold_ore" }
}
}
カンマ( , )忘れに注意。
blocks.jsonの基本
ファイルの場所
manifest.jsonと同じ層に置きます。
リソース
┣ manifest.json
┣ pack_icon.png
┗ blocks.json
基本の構造
format_versionの値はコピペしたらそのままにしておいてください。
{
"format_version": [ 1, 1, 0 ],
"diamond_ore": {
"textures": "diamond_ore", "sound": "stone"
}
}
マーカー部分は、紐づけるブロックのID(minecraft:は省略)、 texturesの値にはテクスチャのID(TerrainID)を指定します。
紐づけするブロックを増やす
赤枠で囲まれた部分を増やします。
{
"format_version": [ 1, 1, 0 ],
"diamond_ore": {
"textures": "diamond_ore", "sound": "stone"
},
"gold_ore": {
"textures": "gold_ore", "sound": "stone"
}
}
カンマ忘れに注意。
カスタムブロックにテクスチャを貼る
blocks.jsonでカスタムブロックのIDを指定します。
サウンドを指定する
blocks.jsonのsoundの値で指定できます。
サウンド一覧
値 | 概要 |
---|---|
wood | 木材 |
stone | 石 |
metal | 金属ブロック |
glass | ガラス |
grass | 草ブロック |
gravel | 砂利 |
sand | 砂 |
scaffolding | 足場ブロック |
amethyst_cluster | アメジストの欠片 |
amethyst_block | アメジストブロック |
large_amethyst_bud | 大きなアメジストの芽 |
big_dripleaf | 大きなドリップリーフ |
frog_spawn | カエルの卵 |
itemframe | 額縁 |
anvil | 金床 |
packed_mud | 乾燥した泥ブロック |
fungus | キノコ(ネザー) |
stem | キノコの茎(ネザー) |
tuff | 凝灰岩 |
cave_vines | グロウベリーのツタ |
basalt | 玄武岩 |
moss_carpet | 苔のカーペット |
moss_block | 苔ブロック |
ancient_debris | 古代のがれき |
powder_snow | 粉雪 |
comparator | コンパレータ |
coral | サンゴブロック |
shroomlight | シュルームライト |
pointed_dripstone | 鍾乳石 |
dripstone_block | 鍾乳石ブロック |
sweet_berry_bush | スイートベリーの茂み |
sculk | スカルク |
sculk_catalyst | スカルクカタリスト |
sculk_shrieker | スカルクシュリーカー |
sculk_sensor | スカルクセンサー |
sculk_vein | スカルクのツタ |
slime | スライムブロック |
soul_sand | ソウルサンド |
soul_soil | ソウルソイル |
bamboo | 竹 |
bamboo_sapling | たけのこ |
small_amethyst_bud | 小さなアメジストの芽 |
chain | チェーン |
vines | ツタ |
azalea | ツツジ |
azalea_leaves | ツツジの葉 |
deepslate | ディープスレート |
deepslate_bricks | ディープスレートレンガ |
copper | 銅ブロック |
muddy_mangrove_roots | 泥に使ったマングローブの根 |
mud | 泥ブロック |
mud_bricks | 泥レンガ |
nylium | ナイリウム |
roots | 根(ネザー) |
dirt_with_roots | 根が張った土 |
nether_wart | ネザーウォート |
nether_gold_ore | ネザー金鉱石 |
nether_sprouts | ネザースプラウト |
netherrack | ネザーラック |
nether_brick | ネザーレンガ |
netherite | ネザライトブロック |
ladder | ハシゴ |
honey_block | ハチミツブロック |
medium_amethyst_bud | 普通のアメジストの芽 |
hanging_roots | ぶら下がる根 |
froglight | フロッグライト |
calcite | 方解石 |
spore_blossom | 胞子の花 |
bone_block | 骨ブロック |
mangrove_roots | マングローブの根 |
snow | 雪 |
cloth | 羊毛 |
lantern | ランタン |
candle | ロウソク |
lodestone | ロードストーン |
面ごとに違うテクスチャ
blocks.jsonのtexturesを以下のように書くことで、面ごとに違うテクスチャを貼ることができます。
6面指定パターン
{
"textures": {
"down": "crafting_table_bottom", // 下
"east": "crafting_table_side", // 東
"north": "crafting_table_front", // 北
"south": "crafting_table_front", // 南
"up": "crafting_table_top", // 上
"west": "crafting_table_side" // 西
},
"sound": "wood"
}
上下・側面指定パターン
{
"textures": {
"down": "log_top", // 下
"side": "log_side", // 側面
"up": "log_top" // 上
},
"sound": "wood"
}
アニメーションするテクスチャ
texturesフォルダのflipbook_textures.jsonを作成・編集します。
ファイルの場所
リソース
┣ manifest.json
┣ pack_icon.png
┗ textures
┗ flipbook_textures.json
基本の構造
赤枠の部分を増やして他のブロックについて設定します。その際はカンマ忘れに注意。
[
{
"flipbook_texture": "textures/blocks/water_still_grey",
"atlas_tile": "still_water_grey",
"ticks_per_frame": 2
}
]
flipbook_textureにテクスチャのファイルパス(拡張子なし)、 atlas_tileにテクスチャのID(TerrainID)を指定します。
ticks_per_frameで1コマ表示する長さ(tick)を指定できます。数が小さいほど速くなります。
その他のプロパティ
必要なときだけ追加するプロパティです。
atlas_index (int)
TerrainIDに含まれるテクスチャのインデックス。
atlas_tile_variant (int)
frames (int-n)
コマ番号を直接指定してコマの順番を決めます。
replicate (int)
ピクセルの大きさ。
blend_frames (bool)
falseにするとパッと次のコマへ遷移するように、 trueにするとスムーズにフェードしながら遷移するようになります。
テクスチャ
アニメーションのコマを1つずつ縦に並べたものを作ります。 1コマひとコマは必ず正方形なので、コマのサイズはテクスチャの横幅で決まります。
インベントリ内のテクスチャを別で指定
blocks.jsonのcarried_texturesプロパティを指定ことによって、 置いた状態のテクスチャと、手に持った(インベントリにある)状態でテクスチャを別にできます。
指定の方法はtexturesプロパティと同じでTerrainIDを指定し、面別指定も同様にできます。
{
"carried_textures": "bamboo_carried",
"textures": "bamboo_sapling",
"sound": "bamboo_sapling"
}
テクスチャの向きをランダムにする
blocks.jsonでisotropicプロパティをtrueにすると、 ブロックを置いた座標によってテクスチャがランダムに回転(0°, 90°, 180°, 270°)します。面別指定できます。
{
"isotropic": true,
"sound": "gravel",
"textures": "clay"
}
ランダムなテクスチャ
terrain_texture.jsonのtexturesをvariationsで指定すると、 ブロックを置いた座標によってテクスチャがランダムになります。
{
"textures": {
"variations": [
{ "path": "textures/blocks/bookshelf0" },
{ "path": "textures/blocks/bookshelf1" },
{ "path": "textures/blocks/bookshelf2" },
{ "path": "textures/blocks/bookshelf3" }
]
}
}
その他
複数のテクスチャを指定
{
"textures": [
"textures/blocks/anvil_top_damaged_0",
"textures/blocks/anvil_top_damaged_1",
"textures/blocks/anvil_top_damaged_2",
"textures/blocks/anvil_base"
]
}
brightness_gamma(blocks.json)
小数で指定。テクスチャの明るさ(ガンマ)を変えられる。
{
"brightness_gamma": 0.80,
"sound": "nether_brick",
"textures": "nether_brick"
}
overlay_color(terrain_texture.json)
カラーコードで指定。テクスチャに単色をオーバーレイできます。
{
"textures": {
"overlay_color": "#79c05a",
"path": "textures/blocks/grass_side"
}
}
できないこと
- バニラのブロックのジオメトリ変更(blockshapeについては解説しません)
- 特殊発光テクスチャ
- ブロックステートとテクスチャの紐づけ(データ値でブロックステートが決まるなら可)
- テクスチャのバリエーションとしてのデータ値を追加