内科専門医 今日もマイクラ処方中

Minecraftの医学的有効性を検証中

MENU

アイアンゴーレムを手懐かせよう!マインクラフト統合版 (day280)

マインクラフトでは、特定のモブを手懐ける(tame、飼育する、仲間にする)ことができる。

Taming – Minecraft Wiki

その中にアイアンゴーレムは入っていない。

Java版ではいくつか目的に合いそうなmodがあるが決定的なものはない(2022年10月時点)。

自分でそのようなmodを作れば良いのかもしれないそのハードルは高い。

しかし、統合版であれば割とハードル低くアイアンゴーレムを手懐けることが可能だ。

とはいえそれなりに複雑な行程だ。そのために必要なことをまとめる。

Minecraft: Bedrock Edition クリエイター ドキュメント | Microsoft Docs

1. Visual Studio CodeのDL

(いきなりやる気を失うかもしれないが)jsonファイルというものに、コードを書き込む(追加する)ためにVisual Studio Codeが便利なのでダウンロードする。メモ帳などでも良いが利便性が全く違う。下記からDL。

Download Visual Studio Code - Mac, Linux, Windows

拡張機能のインストールもしておく。

Bedrock Definitions - Visual Studio Marketplace

Blockception's Minecraft Bedrock Development - Visual Studio Marketplace

 

2. ビヘイビアーパックの作成

ビヘイビアーパックではエンティティの行動、戦利品ドロップ、スポーンルール、アイテム、レシピ、トレード テーブルなどの追加が可能。ここではアイアンゴーレムを手懐けられるビヘイビアーパックを作成する。

基本的には↓を見れば出来る内容。

Entity JSON Documentation | Microsoft Learn 

2.1.ビヘイビアーパックのフォルダを作る。

C:\user\(ユーザ名)\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\development_behavior_packs

にTaming_Golemという名前のフォルダを作る(名前は任意)

(ここではStructuresというフォルダもあるが、これは関係ありません)



 

2.2. manifest.jsonの作成

Taming_Golemフォルダにmanifest.jsonを作成。

作り方は、manifestというテキストファイルを作成し、拡張子をjsonに変更する。

 

以下を入力。

 

{
    "format_version": 2,
    "header": {
      "description": "Survial_with_Golem",
      "name": "Taming_Golem",
      "uuid":"uuid1",
      "version": [1, 0, 0],
      "min_engine_version": [1, 16, 0]
    },
    "modules":
      [
        {
          "description": "Taming_Golem Add-on",
            "type": "data",
            "uuid": "uuid2",
            "version": [1, 0, 0]
        }
      ]
   }

 

解説

format_version: 1 for skin packs or 2 for resource, behavior, and world packs.

header: ビヘイビアーパックに関する情報を入れる部分

description: ビヘイビアーパックの説明
name: ビヘイビアーパックの名前
uuid(uuid1, uuid2となっているが、ここは自分で入れる必要あり): Universally unique identifier。簡単に言えば世界で唯一の文字列のこと。文字自体には意味は無く、uuidは下記で作成してもよいし任意のものでよい。

https://www.uuidgenerator.net/

version: リソース パックのバージョン、[majorVersion, minorVersion, revision]
min_engine_version: 動作するために必要な Minecraft のバージョン

 

modules: 中身のtypeを格納する部分

type: 以下のどれか:resources, data, client_data, interface, world_template or javascript.

 

2.3. iron_golem.jsonの作成

2.3.1.フォルダー、ファイルの階層構造

まずフォルダーentitiesを作る。

(loot_tablesとpack_icon.pngは関係ありません。ちなみに、pack_icon.pngという画像ファイルを置いておくとこのビヘイビアーパックのアイコン画像になります)。

 

entitiesフォルダにiron_golem.jsonを作成する。(chicken, zombieなどがあるがこれは別で作ったもので関係ない)

Taming_Golem-entities-entities-iron_golem.json


2.3.2. defaultのjsonファイルをコピペ

まずEntity listからiron_golemを探し、iron_golem.jsonにコピペする。

Entity Documentation - EntityList | Microsoft Learn

iron_golem.jsonは↓

iron_golem | Microsoft Learn

これでdefaultのアイアンゴーレムの挙動がどのように規定されているか分かる。entityのjsonファイルの見方は下記2.3.3.で説明する。

2.3.3. 他のtameできるmobのjsonファイルを参考にする。

wolfが最も求めるもの近いのでそれを参考にする(プレイヤーが攻撃したものを攻撃するなど)。

wolf | Microsoft Learn

ここでentityのjsonファイルの構造を説明する。簡潔に言うと

"minecraft:entity"

の下位階層として

"description”

"component_groups"

"components"

"event"

がある。

wolfのtameに関わる部分は

"component_groups"

にある、

"minecraft:wolf_wild", "minecraft:wolf_tame"

と、

"events"

にある、

"minecraft:on_tame"

だ。

2.3.4. component_groupsを作成する

これを基に、アイアンゴーレム用の"component_groups"として、

"minecraft:golem_wild"

"minecraft:golem_tame"

を作成する。

例:

        "minecraft:golem_wild": {
            "minecraft:tameable": {
               "probability": 0.33,
               "tame_items": "iron_ingot",
               "tame_event": {
                 "event": "minecraft:on_tame",
                 "target": "self"
                  }
                }
          },

          "minecraft:golem_tame": {
            "minecraft:is_tamed": {
            },
            "minecraft:health": {
                     "value": 100,
                     "max": 100
            },
            "minecraft:behavior.follow_owner": {
                     "priority": 4,
                     "speed_multiplier": 1.0,
                     "start_distance": 10,
                     "stop_distance": 2
            },
            "minecraft:attack": {
                     "damage": 4
            },
            "minecraft:behavior.owner_hurt_by_target": {
                     "priority": 1
            },
            "minecraft:behavior.owner_hurt_target": {
                     "priority": 2
            }
            
        }

 

数字などは適宜変更してよい。

例えば、手懐いたアイアンゴーレムのhealthは100にしているが、10でも500でも良い。

また、手懐けるアイテムはiron ingotにしているがこれも他に変更可能だ。

 

2.3.4. eventsに追加する

上記のcomponent_groupsをeventsに追加していく。

"minecraft:golem_wild"で手懐けられる設定をしているので、どのようにiron_golemが発生したか(event)により付加されるcomponent_groupsに"minecraft:golem_wild"を追加していく。

さらに、"minecraft:on_tame"というeventで、

tame->

"minecraft:golem_wild"を除去

"minecraft:golem_tame"を追加

するよう設定する。

 

 

例:

      "events": {
        "minecraft:from_player": {
          "add": {
            "component_groups": [
              "minecraft:player_created",
              "minecraft:golem_wild"
            ]
          }
        },
        "minecraft:from_village": {
          "add": {
            "component_groups": [
              "minecraft:village_created",
              "minecraft:golem_wild"
            ]
          }
        },
        "minecraft:on_tame": {
            "remove": {
              "component_groups": [
                "minecraft:golem_wild"
              ]
            },
            "add": {
              "component_groups": [
                "minecraft:golem_tame"
              ]
            }
        }
    }

 

以上でjsonファイルの編集は終了だ。

 

3. ビヘイビアーパックをワールドに導入する。

3.1.統合版を開き、WorldsのEditを押す

3.2.Behavior Packsを選択

3.3.MY PACKSに先ほど作成したTaming_Golemが入っているのでActivate

これで、アイアンゴーレムを手懐けることに成功。静止画では説明できないが、手懐けたゴーレムは自分についてくるし、プレイヤーが攻撃した相手を倒してくれる。

さらに、下の画像では手懐けたアイアンゴーレムの肩に乗れるように設定している(後日説明予定)。