【Minecraft 1.20.4】コマンドのみを使用してカスタムブロックを作成する　～カスタムスポーンエッグ編～

# はじめに
こんにちは。Never3924です。
この記事はコマンドのみを使用してカスタムブロックを作成するという記事です。
Modとかリソースパック、データパックは使用しません。

では、作っていきましょう。

# バージョン
Minecraft 1.20.4

:::note alert
1.20.6以降だとNBTの記法が変わっているようで、使用できません。
:::

# 仕組み
仕組みの解説を行います。
見た目の設定にはBlock Displayを使用します。
当たり判定は内部にブロックを置いて実現します。
樽やドロッパーなんかがいいでしょう。
これらをまとめるためにアーマースタンドを使用します。

で、ブロックをどうやって設置するか?ですが、スポーンエッグを使用します。

# コマンド
まずはスポーンエッグから作っていきましょう。
ベースとなるのはこれです。
```
/give @p <好きなスポーンエッグのID> 1
```
好きなスポーンエッグのIDですが、今回はアレイのスポーンエッグにします。
IDは`minecraft:allay_spawn_egg`ですね。
そうなるとこのようになります。
```
/give @p minecraft:allay_spawn_egg 1
```
では、要となるNBTの指定をしましょう。
完成品はこれです。
```
{EntityTag:{id:armor_stand,ShowArms:0b,NoBasePlate:1b,Small:1b,Tags:["CustomCraftingTable"]},display:{Name:'[{"text":"カスタム作業台","italic":true,"color":"#FF5555","bold":true}]',Lore:['[{"text":"いろいろなアイテムを作ることができる。"}]']}}
```
ちょっと整形しますね。
```
{
    EntityTag: {
        id: armor_stand,
        ShowArms: 0b,
        NoBasePlate: 1b,
        Small: 1b,
        Tags: ["CustomCraftingTable"]
    },
    display: {
        Name: '[{"text":"カスタム作業台","italic":true,"color":"#FF5555","bold":true}]',
        Lore: ['[{"text":"いろいろなアイテムを作ることができる。"}]']
    }
}
```
見やすくなりました。
`display`の中身はまぁそんなに大事じゃないです。
アイテムの名前とか説明文とかなので。
一応解説します。
<details><summary>解説(クリックで見る)</summary>
`Name`や`Lore`はおそらくJson形式で書かれています。
ただし、文字列として扱われていることに注意が必要です。

まずNameから解説します。
整形してみます。
```json:Name
[
    {
        "text": "カスタム作業台",
        "italic": true,
        "color": "#FF5555",
        "bold":true
    }
]
```
こんな感じですね。
配列になっています。
なぜ配列になっているのかですが、途中で色を変えられるためと思われます。
例えば、
「カスタム作業台」の「カスタム」は赤色で、「作業台」はオレンジにしたい場合、
```json
[
    {
        "text": "カスタム",
        "italic": true,
        "color": "#FF5555",
        "bold":true
    },
    {
        "text": "作業台",
        "italic": true,
        "color": "#FFA500",
        "bold":true
    }
]
```
みたいな感じで指定ができます。
では、色とかの設定をしましょう。

```json
{
    "text": "作業台",
    "italic": true,
    "color": "#FFA500",
    "bold":true
}
```
このオブジェクトの解説をします。
`"text"`は、表示したいテキストを指定します。
`"italic"`は、文字を斜めにできます。
斜めにしたい場合は`true`を、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/beccc8e9-1f59-44b7-af0e-de5deaf01bf5.png)

したくない場合は`false`を指定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/76870752-aa67-4ef4-a3c6-3c6288c7105a.png)

`"color"`は、色を指定できます。
16進数表記でできます。
例　→　#FF5555

`"bold"`は、文字を太くできます。
太くしたい場合は`true`を、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/0307e529-c476-4bcc-98ec-fbe6da97ce96.png)

したくない場合は`false`を指定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/115e6a8c-b771-4016-b73f-515017e74e81.png)

また、`"underlined"`っていうやつもあります。
これは文字に下線をつけられます。
つけたい場合は`true`を、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/313fd439-2bfa-45c3-95bb-47776cc536b5.png)

つけたくない場合は`false`を指定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/bd7d7b44-e890-4b58-9f42-6c579ad98a33.png)

次にLoreの解説を行います。
Loreは配列になっています。
これは行を表していて、
増やせば増やすほど行が増えます。
```json:Lore
[
    '[{"text":"いろいろなアイテムを作ることができる。"}]'
]
```
1行ごとの設定は`Name`とほぼ変わりません。
</details>

では、`EntityTag`の解説をします。
`id`には召喚したいエンティティのIDを指定します。今回だと`armor_stand`ですね。
それ以外はアーマースタンドの設定なので、簡単に解説します。
`ShowArms`→アーマースタンドの手を表示するかどうか
`NoBasePlate`→アーマースタンドの下の台を表示するかどうか
`Small`→アーマースタンドを小さくする

`Tags`は大事で、エンティティの指定が楽になります。
他のやつとかぶらないように設定しましょう。

これでスポーンエッグのNBTが完成しました。
できたNBTは、以下の場所に設置します。
```
/give @p <アイテムID><完成したNBT> 1
```
NBTは、アイテムIDの直後に、スペースを開けずに記述してください。
今回の場合だと
```
/give @p minecraft:allay_spawn_egg{EntityTag:{id:armor_stand,ShowArms:0b,NoBasePlate:1b,Small:1b,Tags:["CustomCraftingTable"]},display:{Name:'[{"text":"カスタム作業台","italic":true,"color":"#FF5555","bold":true}]',Lore:['[{"text":"いろいろなアイテムを作ることができる。"}]']}} 1
```
これで実行してみると...?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/ba67a9ab-944f-457e-b53e-69f9f0378b7e.png)
できましたね。おめでとうございます！
では、手に入れたスポーンエッグを使ってみましょう。
![2025-04-07_09.49.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2985111/43489742-3600-4de6-8be3-f78e2e168623.png)

無事、アーマースタンドを召喚できました。

# おわりに
思ったより書くことが多かったので、ここらへんで終わります。
次回はBlock Displayの設定です。
ではまた～。