【マインクラフト（統合版）】食料アイテムの作り方まとめ

# はじめに

ここでは以下の環境で実装しているコンテンツを例に取り上げて進めていきます。

https://qiita.com/glasses_seven/items/433ac9d9fcbdb72c6d18/

基本的な部分は以下のページでダミーアイテムが実装済みである事を前提にしています。

https://qiita.com/glasses_seven/items/b41797e3df3325c3fab5/

`components`ブロックのJSONデータの内容を、「汎用ブロック」「アニメーション設定」「食料設定」の３つのパートに分け、食料アイテムの作り方を以降でご紹介します。

:::note info
「汎用ブロック」とは[&gt;&gt; コンポーネント定義](https://qiita.com/glasses_seven/items/b41797e3df3325c3fab5#コンポーネント定義 "ダミーアイテムの作り方（コンポーネント定義）")の項目でご紹介させて頂いた`components`ブロックの便宜上の呼称です。
:::


# 定義ファイルの内容

ここでは本環境で実装している以下のアイテム（さんま）用のJSONファイルを例に取り上げます。
釜戸などで焼いて食べる事を可能にするため「生さんま」と「焼きさんま」をセットで作成しています。

・生さんま（customize:sanma）
![生さんま](https://socket-manager.github.io/document/minecraft-contents/img/custom-item-food/sanma.png "生さんま")

・焼きさんま（customize:cooked_sanma）
![焼きさんま](https://socket-manager.github.io/document/minecraft-contents/img/custom-item-food/cooked_sanma.png "焼きさんま")

```json:<ビヘイビアパック>/items/sanma.json（生さんま）
{
    "format_version": "1.20.50",
    "minecraft:item": {
        "description": {
            "identifier": "customize:sanma",
            "menu_category": {
                "category": "none"
            }
        },
        "components": {

            // 汎用ブロック -----START
            "minecraft:icon": {
                "texture": "sanma"
            },
            "minecraft:display_name": {
                "value": "item.customize:sanma.name"
            },
            "minecraft:can_destroy_in_creative": false,
            "minecraft:hand_equipped": false,
            "minecraft:glint": true,
            // 汎用ブロック -----END

            // アニメーション設定 -----START
            "minecraft:use_animation": "drink",
            "minecraft:use_modifiers": {
                "use_duration": 1.6,
                "movement_modifier": 0.35
            },
            // アニメーション設定 -----END

            // 食料設定 -----START
            "minecraft:food": {
                "nutrition": 0
            }
            // 食料設定 -----END

        }
    }
}
```

```json:<ビヘイビアパック>/items/cooked_sanma.json（焼きさんま）
{
    "format_version": "1.20.50",
    "minecraft:item": {
        "description": {
            "identifier": "customize:cooked_sanma",
            "menu_category": {
                "category": "none"
            }
        },
        "components": {

            // 汎用ブロック -----START
            "minecraft:icon": {
                "texture": "cooked_sanma"
            },
            "minecraft:display_name": {
                "value": "item.customize:cooked_sanma.name"
            },
            "minecraft:can_destroy_in_creative": false,
            "minecraft:hand_equipped": false,
            "minecraft:glint": false,
            // 汎用ブロック -----END

            // アニメーション設定 -----START
            "minecraft:use_animation": "eat",
            "minecraft:use_modifiers": {
                "use_duration": 1.6,
                "movement_modifier": 0.35
            },
            // アニメーション設定 -----END

            // 食料設定 -----START
            "minecraft:food": {
                "nutrition": 5
            }
            // 食料設定 -----END

        }
    }
}
```

上記のコメントのように、大きく分けて「汎用ブロック」「アニメーション設定」「食料設定」の３つのパートに分けています。

「生さんま」「焼きさんま」それぞれの設定内容は以下でまとめて記載しています。


# 汎用ブロック

## ・minecraft:icon

テクスチャファイルの所在を表すキーを設定しています。
<dl>
    <dt>生さんま</dt>
    <dd>
        "texture": "sanma"
    </dd>
    <dt>焼きさんま</dt>
    <dd>
        "texture": "cooked_sanma"
    </dd>
</dl>

## ・minecraft:display_name

以下の[&gt;&gt; 多言語設定](#多言語設定 "食料アイテムの作り方（多言語設定）")の項目で設定しているキーの名前を設定しています。
この多言語設定で登録されているキーの値がアイテム名として表示されます。
<dl>
    <dt>生さんま</dt>
    <dd>
        "value": "item.customize:sanma.name"
    </dd>
    <dt>焼きさんま</dt>
    <dd>
        "value": "item.customize:cooked_sanma.name"
    </dd>
</dl>

## ・minecraft:can_destroy_in_creative

クリエイティブモード時にブロックを壊さないようにfalseを設定しています。

## ・minecraft:hand_equipped

装備品ではないのでfalseを設定しています。

## ・minecraft:glint

「生さんま」だけはショップで売却できる特殊なアイテムである事を表現するため、レンダリングがかかるようにtrueを設定しています。


# アニメーション設定

## ・minecraft:use_animation

アニメーションの種類を指定します。
<dl>
    <dt>生さんま</dt>
    <dd>
        ショップでの売却アイテムのため、食片が飛び散るエフェクトが表示されない<code>drink</code>アニメーションで代用しています。
    </dd>
    <dt>焼きさんま</dt>
    <dd>
        食す事で満腹度が回復するので<code>eat</code>アニメーションを設定しています。
    </dd>
</dl>

アニメーションの種類と定義の詳細は以下のページをご覧ください。

https://qiita.com/glasses_seven/items/93ffdf68edb5e1f806bc/

## ・minecraft:use_modifiers

アイテムを使用するまでにかかる時間を指定します。
「生さんま」「焼きさんま」共にバニラのリンゴの設定を流用しています。


# 食料設定

## ・minecraft:food

満腹度の回復量を指定します。
<dl>
    <dt>生さんま</dt>
    <dd>
        ショップでの売却アイテムのためゼロを設定しています。
    </dd>
    <dt>焼きさんま</dt>
    <dd>
        食す事で満腹度が５ポイント回復するように設定しています。
    </dd>
</dl>


# 多言語設定

カスタムエンティティの場合と同様に以下のファイルでアイテム名を定義しています。

```text:<リソースパック>/texts/en_US.lang
item.customize:sanma.name=生さんま
item.customize:cooked_sanma.name=焼きさんま
```


# おわりに

ここでご紹介させて頂いた「生さんま」は釣れるアイテムとして以下のページでご紹介しています。

https://qiita.com/glasses_seven/items/5af11b4a4766af93ea37/

また以下のショップで売却する事が可能です。

https://qiita.com/glasses_seven/items/e77bfb43baf55e35680b/

「生さんま」を焼いて「焼きさんま」を作る方法は炉のレシピアイテムとして以下のページでご紹介しています。

https://qiita.com/glasses_seven/items/6865c9c3ae5d756a2989/