ずんだもんのアドオン工房へようこそ!
・itemIDについて
・item_texture.jsonについて
・(items).jsonについて
この記事では以上3点を解説したのちに、
実際に無機能アイテムである【ずんだ棒】を追加していきます。

itemIDについて
itemIDとはなにか
itemIDとは、全アイテムに割り振られた固有IDのこと。
普段マイクラをプレイするうえではあまり聞きなれない単語ですが、
コマンドを扱う人には馴染みがあるのではないかと思います。
そうです、主にgiveコマンドを使うときに出てくる文字列がitemIDにあたります。
/give @s diamond //ダイヤモンドを入手するコマンド
代表例としては【stick(棒)】や【diamond(ダイヤモンド)】などでしょうか。
itemIDのルール
itemIDはアルファベットである必要があります。
また記号の使用は認められていません。
ただし例外としてアンダーバー(_)の使用は認められています。
同時にテクスチャのファイル名にも採用されており、
後述する(items).jsonのファイル名にもなっているので、
アドオン制作ではもう頻繁に出てくる肝となる要素であります。
カスタムアイテムとは
ここでカスタムアイテムについて言及しておきます。
カスタムアイテムとは、
既存マイクラにはない自分独自のitemIDで作ったオリジナルアイテムのことを指します。
カスタムアイテムを作る流れとしては、
①itemIDを決める
②テクスチャファイルの準備
③コンポーネントの定義(この章の後半で解説)
以上の流れで作ることが一般的です。
棒のような無機能アイテムや食べ物はもちろん、
剣やツールに防具アイテム・ScriptAPIを使ったバックパックのようなものまで、
アイデア次第でなんでも作ることができます。
item_texture.jsonについて
item_texture.jsonとは
item_texture.jsonとは、テクスチャファイルの住所を書き連ねていったファイルです。
まずテクスチャファイルの住所とは、
何かのアイテムに対応するテクスチャがどこのフォルダにあるかを、視覚的に明示したものです。
vanilla(R)/textures/items/stick.png //棒テクスチャの住所
一般的にこのように書き、
1.vanillaというリソースパックフォルダの中の、
2.texturesフォルダの中の、
3.itemsフォルダの中の、
4.stick.png
という読み方になります。
「/」=「フォルダの中の」と読み替えると理解しやすいでしょう。
item_texture.jsonの役割と中身
マイクラにおけるテクスチャ反映の流れを知ると、
このファイルがいかほど大事がが理解できます。
①はじめにテクスチャが分からないアイテムに対し、
システム側がそのアイテムの住所を参照するよう指示します。

②そのアイテムから住所が送られてきます。

③教えられた住所をもとに、システム側がファイルを探します。

④テクスチャファイルを無事に見つけることができれば、
そのアイテムに対してテクスチャが反映されます。

マイクラ側では全アイテムに対してこの操作が行われています。
もしも住所が定義されていなければ、どこを探せばいいのか分からないままになってしまうので
正しくテクスチャが反映されない事態に陥ってしまうわけですね。
ファイルはtexturesフォルダの直下に置きます。

item_texture.jsonの基礎構文
item_texture.jsonには決められた最低限の構文があります。
{
"resource_pack_name": "名前空間",
"texture_name": "atlas.items",
"texture_data": {
"アイテムID": {
"textures": "textures/items/アイテムID"
}
}
}
| resource_pack_name | 名前空間=リソースパックの名前のこと。 |
| texture_name | atlas.itemsで固定。 |
| texture_data | 各itemIDに対する、テクスチャファイルの住所を記入する。 拡張子(.png)は記入しない。 |
(items).jsonについて
(items).jsonのとは
(items).jsonとは、アイテムコンポーネントを記述していくファイルです。
そのアイテムを食べ物にするのかツール類にするのか、
はたまたアイテムを光らせたり最大スタック数を決めたりなど、
アイテムに関するいろいろな設定をできます。
この設定をコンポーネントといい、
アイテムに関するコンポーネントなのでアイテムコンポーネントと呼びます。
また、ファイル名は前述したitemIDにする必要があります。
‘apple.json’ や ‘stick.json’ などです。
ファイルは画像のところに置きます。
ビヘイビアパック内なので注意しましょう。

(items).jsonの基礎構文
(items).jsonにも最低限記述しなければならない構文があります。
{
"format_version": "1.26.20",
"minecraft:item": {
"description": {
"identifier": "名前空間:アイテムID",
"menu_category": {
"category": "クリエイティブインベントリ"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "アイテムID"
}
},
"minecraft:display_name": {
"value": "item.アイテムID.name"
}
}
}
}
| format_version | ファイル編集時におけるマイクラの最新バージョンを記入する |
| minecraft:item | このファイルがアイテム用であることを視覚的に明示する |
中身の解説
おおざっぱに分けると、2つのかたまりに分けられます。
| description | itemIDの定義やクリエイティブインベントリの指定をする。 |
| components | アイテムコンポーネントを記述していく。 |
この2つのかたまりの中にいろいろ記述していくんですね。
◎description
| identifier | itemIDの定義をする。 (名前空間):(itemID)の形で記入 |
| menu_category | どのクリエイティブインベントリに追加するかを指定する。 「construction」「equipment」「items」「nature」の4種類があり、 追加しないときは「none」を指定する。 |

◎components
| minecraft:icon | アイテムのテクスチャファイルを指定する。 itemIDを指定しておけば問題ない。 |
| minecraft:display_name | アイテムの翻訳キーを指定する。 |
いざ実践!
この記事の内容を用いて【ずんだ棒の追加】を実践していきましょう!
開発していく手順は以下の通りとします!
1.itemIDを決定する
・”ずんだ棒” => “zunda_stick”
2.各種ファイル名の決定
・”テクスチャファイル” => “zunda_stick.png”
・”(items).json” => “zunda_stick.json”
3.テキストファイルの編集
・item_texture.json
・zunda_stick.json
*このサンプルは第2回記事で配布しています
itemIDの決定
まずはitemIDを決定させなければ話が進みません。
日本語を英語に翻訳したものをitemIDに採用するといいでしょう。
| ずんだ | zunda |
| 棒 | stick |
単語を繋げるときにはアンダーバー(_)を使うと見やすくなります。
△zundastick
◎zunda_stick
各ファイル名の決定
カスタムアイテムを作るときのルールとして、
テクスチャファイル名と(items).jsonのファイル名はitemIDにする決まりがありました。
| テクスチャファイル | zunda_stick.png |
| (items).json | zunda_stick.json |
テキストファイルの編集
まずそれぞれのファイルを指定された場所に作成しましょう。

◎item_texture.json
{
"resource_pack_name": "zundaddon",
"texture_name": "atlas.items",
"texture_data": {
"zunda_stick": {
"textures": "textures/items/zunda_stick"
}
}
}
意外とミスしやすいので気を付けながら慎重に書き込んでください。
◎zunda_stick.json
{
"format_version": "1.26.20",
"minecraft:item": {
"description": {
"identifier": "zundaddon:zunda_stick",
"menu_category": {
"category": "items"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "zunda_stick"
}
},
"minecraft:display_name": {
"value": "item.zunda_stick.name"
}
}
}
}
目をかけるところは、identifierですね。
(名前空間):(itemID)の形になるのでそこだけ気をつけましょう。
またmenu_categoryは、今回はitemsを指定しています。
最後に言語ファイルを記述して完成です。
item.zunda_stick.name=ずんだ棒
解説動画
次回のためのサンプルアドオン
お疲れさまでした!
これで無機能アイテムの追加ができるようになりましたね!
次回の記事では”オリジナルフード2種類とそのレシピ”を作っていきます!
ぜひダウンロードして次回の投稿をお楽しみに!

*リンクをクリックするとダウンロードできます

コメント