Minecraft BE アドオン作成手順 エンティティ編

いがみさとし
いがみさとし

MinecraftBEにタマクロー追加した!

タマクロー
タマクロー

おー!見せろ!見せろ!

https://twitter.com/igamisatoshi/status/1520273232183853056?s=20&t=iNlGOdhHAL0KsZpFb-DEfQ

 

いがみさとし
いがみさとし

せっかくなので、やり方まとめておく!

タマクロー
タマクロー

間違いがあるかもしれんから、

公式サイトも載せとくなー!

 

 Minecraft: Bedrock Edition Creator Documentation

 マイクロソフトのMinecraft BEクリエイターサイト。

 Minecraft BE の仕様のすべてはここにあるはず!

Minecraft: Bedrock Edition クリエイター ドキュメント
アドオンを使用してMinecraftにMODを入れる方法を学びましょう。スキンを作成したり、ユニークな体験を設計したり、最新機能を入手したりしながら、Minecraftのクリエイターとしてスキルを磨いていくことができます。

 

Minecraft BE にエンティティを追加するアドオンの作成手順

 このサイトで説明するのは、Minecraft BEに味方モブを追加するアドオンの作成方法。

 

作業環境

 僕が作業したときの環境。

 参考程度に。

 

 Windows 10 Pro 

 blocbench 4.2.4

 Minecraft Entity Wizard プラグイン 1.0.6

 さくらエディタ v2.4.1

 Minecraft BE 1.18.31

 

作業手順

 手順はざっくりこんな感じ。

  1. 必要なモノの準備
  2. ブロックベンチ作業 
  3. エディタ作業 

     

    必要なモノの準備

     アドオンを作るには、ブロックベンチとjsonファイルを書き換えるエディタが必要。

     公式の手順はこちら(英語) 

    Getting Started with Minecraft Entity Wizard
    AtutorialcoveringhowtocreateacustomentitymodelusingtheMinecraftEntityWizardtoolinBlockbench

     

    ブロックベンチ

     ブロックベンチはMinecraft内の3Dモデル作成に使える良アプリ。

     英語だけど日本語化できる。

     Minecraft Entity Wizardプラグインでエンティティ追加の初期設定もできて便利!

     

    ブロックベンチダウンロード

    Blockbench
    Aneasytouse3Dmodeleditorforlow-polyandpixel-art

     

     サイトからDOWNLOADボタンを押して、自分の環境にあったやつをダウンロード。

     僕はWindows環境なのでWindowsのInstallerをクリックした。

     ダウンロードして保存したインストーラーを実行すればインストールされる。

     

    ブロックベンチ日本語化

     ブロックベンチを実行して、まずは日本語化。

     File → Preferences → settings

     

    General → Language → Englishを日本語(Japanese)に変更して、下のcloseボタン。

     

    ブロックベンチを再起動すれば日本語化完了。

     

     

    jsonを書き換えるエディタ

     Minecraft BEでは、エンティティの設定をJSON形式で書くことになる。

     そのためのに必要なのがエディタ。

     公式ではVSコードという高機能エディタを使っている。

     僕はサクラエディタで十分だった。

     

    Sakura Editor
    JapanesetexteditorforMSWindows

     

     こちらはダウンロードしてインストールすればおしまい。

     簡単!

     

    ブロックベンチ作業

     いよいいよ作業開始!

     

    Minecraft Entity Wizard プラグイン インストール

     まずはプラグインのインストール。

    1. Fileからプラグインをクリック
    2. 上のタブ、利用可能をクリック
    3. 右の検索窓にminecraftと入力(全文入れなくても出てくると思う)
    4. 一覧に Minecraft Entity Wizard が出てきたら +インストールをクリック

     

     インストールされたら、インストール済みにでる。

     

    これでブロックベンチの準備完了

     

     

    Minecraft Entity Wizard プラグインで元データ作成

     ブロックベンチのMinecraft Entity Wizard プラグインで元データ作成していく。

     

     Tool → Minecraft Entity Wizard をクリック

     Let’s Go! ボタンをクリック

     

     

    Name

    • Display Name : エンティティの名前。スポーンエッグ、チャット、インターフェイスなどに表示されるやつ。
    • Identifier:エンティティのID。マイクラ内で使われる内部名称。

     

     

    Appearane

     アピアランスって読む。僕は読めなかった。

     登場キャラクターって意味で、元になるエンティティを選ぶ。

     僕は最初catを選んだら、種類たくさんでわけわからなくなって、最終的にchikenにした。

     

     

    Behavior

     ビヘイビアって読む。僕は読めなかった。

     行動とか挙動とか振る舞いとかって意味で、動きの元になるエンティティを選ぶ。

     一緒にアニメーションもコピーしてくれる。

    • Same Behavior :Appearaneで選んだエンティティから元データを作る。
    • Different Behavir :選んだエンティティから元データを作る。

     

     

    Spawn Egg

     スポーンエッグ!読めた!

     クリエーティブモードでスポーンさせるためのアイテム。

     説明しなくてもみんな知ってると思うけど。

     Colorsで色を選ぶだけ。簡単!

     

     

    Export

     エクスポート、データの出力先を決める。

    • Export to Folder:マイクラBE内に直接エクスポート! 有効化はされないので大丈夫。
    • Export as MCAddon:どこか任意の場所に保存。

     どちらの方法でもいいけど、テストすると思うからFolderがおすすめ。

     ちゃんと動くまで確認してからアドオンにすればいいと思う。

     

    • pack Name:Minecraft BE内でマイパックに表示される名前
    • Pack Author(s):製作者名をいれるところ
    • Pack Lcon:マイパックに表示されるアイコン。64×64推奨。

     

    Exportを押せば元データ完成。

     

     

    Next Steps

     Edit Modelを押せばモデルの編集ができる。

     この後、作業を保存すればマイクラ内のデータに直接保存される。

     MCAddonでエクスポートしたらEdit Model押せなかった。

     データの更新とかはマイクラ内で設定する。

     

     

    3Dモデル作成

     こんな感じでモデルをつくる。

     モデルの作り方はこちらの動画を参考にした。

     すごいわかりやすい動画でした。感謝!

     意外と直感的で使いやすいと思う。

     

     

     

    テクスチャ作成

     モデルができたらテクスチャ作成。

     画面右上の Paint からテクスチャモードにできる。

     左側が平面図。右側で色を作って真ん中で塗る。

     操作は簡単でも実際にやると大変。

     

     

    アニメーション作成

     キーをポチポチして、動きをつけるよくあるアニメーション作成。

     ここで使ったアニメーション名がjsonファイルに書き込まれる。

     キーとキーの間は補完(勝手に作ってくれる)してくれるし、コピーもできる。

     全体の動きを作ってから、細かいところを動かすとうまくいく気がする。

     

     作業中、時々Ctrl+Sを押して保存すると、マイクラ内に保存されたファイルに上書きしてくれる。

     File → 上書き保存でも同じ。

     

    とりあえずはここまででブロックベンチはおしまい。

     

     

    エディタ作業

     ここからはマイクラ内にエクスポートした前提で書いていく。

     mcaddon形式で保存した場合は、Zipで圧縮されたファイルなので、展開すれば中にビヘイビアとリソースのフォルダがあると思う。

     

     まず、ファイル構成の説明。

     エクスポートされたリソースパックとビヘイビアパックの場所に行く。

     具体的にはcom.mojangというフォルダを探す。

     いがみのPCだとここだった。

     

    C:\Users\ユーザー名\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang

     

     青文字は自分のユーザー名に置き換えて読んでね。

     あとAppDataは隠しフォルダなので、隠しフォルダを表示させてね。

     やりかたは調べてね。

     

     com.mojangフォルダの中を開くといろいろ出てくると思うけど使うのは2つ。

     中にパック名のフォルダが入ってる。

     

    • development_behavior_packs 
      • エンティティの挙動に関する設定。食べるものやテイムアイテム、動作の優先順位など。
    • development_resource_packs 
      • エンティティ自体に関する設定。3Dモデルデータやテクスチャやアニメーションとそれらのリストなど。

     

     それぞれにさっきプラグインでつけたパック名のフォルダがあると思う。

     ない? 頑張って探してください。

     PCの環境によって違うところなので僕では力になれない。ごめん。

     どうしても見つからない場合は PC内をcom.mojangで検索すれば出てくるかも。

     よく行く場所になるのでショートカット作っておくと良いかもしれない。

     それぞれのフォルダ構成は次で説明。

     

     

    フォルダ構成

    • development_behavior_packs :ビヘイビアフォルダ
      • パック名フォルダ
        • manifest.json :ビヘイビアパックの概要設定ファイル
        • pack_icon.png :ビヘイビアパックのアイコン
        • entities
          • パック名.behavior.json :エンティティの設定ファイル
    • development_resource_packs :リソースフォルダ
      • パック名フォルダ
        • animations
          • パック名.animation.json :アニメーションの動きのデータ。
        • entity
          • パック名.entity.json :エンティティ3Dデータ名、テクスチャ、アニメーションなどを登録。
        • models
          • entity
            • パック名.geo.json :3Dモデルのデータそのもの 
        • texts
          • en_US.lang :翻訳用。item.spawn_egg.entity.tsukumo:igami.name=いがみのスポーンエッグ
        • textures
          • entity
            • パック名.png :3Dモデルのテクスチャ
        • manifest.json :リソースパックの概要設定ファイル
        • pack_icon.png :リソースパックのアイコン
        • sounds.json :サウンド設定

     

     

    マニュフェストの設定

     manifest、マニフェストって読む。この場合の意味は計画書が近いかな?
     アドオンを作るのに必要な物だから、必要なデータ全部そろってから作ってもいいと思う。
     
     

    ビヘイビアのマニュフェスト(behavior)

     まずはビヘイビアのマニュフェスト。

     公式サイトはこちら(英語) https://docs.microsoft.com/en-us/minecraft/creator/documents/behaviorpack

     

     場所

    • development_behavior_packs
      • パック名フォルダ
        • manifest.json 

     

     以下公式サイトから引用して注釈つけてく!

    {
     "format_version": 2,
     "header": {
      "description": "My attack cow behavior pack Add-On!", パック名にbehavior packってつけてくれる
      "name": "My Behavior Pack", マイクラ内で表示されるパック名
      "uuid":"", Minecraft entity wizard プラグインが自動でつけてくれる
      "version": [1, 0, 0], バージョン
      "min_engine_version": [1, 16, 0] 要求最低エンジンバージョン。
     },
     "modules": このマニュフェストのメインデータ
      [
       {
        "description": "My First Add-On!", 説明記述:なんでもかける。「私の初めてのアドオン」って書いてある
        "type": "data", タイプ:データ型
        "uuid": "", Minecraft entity wizard プラグインが自動でつけてくれる
        "version": [1, 0, 0] バージョン
       }
      ],
     "dependencies": [ 依存関係
      {
       "uuid":"UUID from the header section of manifest.json in My_RESOURCE_Pack", 
                 Minecraft entity wizard プラグインが自動でつけてくれる。
                 依存関係になるリソースパックのUUIDを記入する。
       "version":[1,0,0]バージョン
      }
     ]
    }

     UUIDはこちらでも作れるみたいで公式サイトに紹介されてたので紹介。

     https://www.uuidgenerator.net/

     min_engine_version (要求最低エンジンバージョン)についてはこちらがくわしい。

     

    リソースのマニュフェスト(resource)

     続いてリソースのマニュフェスト。

     公式サイトはこちら(英語)https://docs.microsoft.com/en-us/minecraft/creator/documents/resourcepack

     

     場所

    • development_resource_packs
      • パック名フォルダ
        • manifest.json 

     

     こちらも公式サイトから引用して注釈つける!

    {
     "format_version": 2,
     "header": {
      "description": "My dirt resource pack Add-On!", パック名にresource packってつけてくれる
      "name": "My Resource Pack", マイクラ内で表示されるパック名
      "uuid":"", Minecraft entity wizard プラグインが自動でつけてくれる
             ビヘイビアの依存関係(dependencies)欄に入力するUUIDはこれ。
    
      "version": [1, 0, 0], バージョン
      "min_engine_version": [1, 16, 0] 要求最低エンジンバージョン。
     },
     "modules": [ このマニュフェストのメインデータ
      {
       "description": "My First Add-On!", 説明記述:なんでもかける。「私の初めてのアドオン」って書いてある
       "type": "resources", タイプ:リソース型
       "uuid": "", Minecraft entity wizard プラグインが自動でつけてくれる
       "version": [1, 0, 0] バージョン
      }
     ]
    }

     マニュフェストは以上でおわり!

     

     

    エンティティ設定

     やっとエンティティの設定だ!

     設定にはビヘイビアとリソースの2種類がある!

     

     

    ビヘイビアのエンティティ設定

     まずはビヘイビア(behavior)から!
     ビヘイビアはエンティティの挙動の設定。
    公式サイトはこちら(英語) https://docs.microsoft.com/en-us/minecraft/creator/documents/behaviorpack
     場所
    • development_behavior_packs
      • パック名フォルダ
        • entities – パック名.behavior.json

     

     引用していくー!

     例文はchicken.json。鶏さん。

     まだわからないところもあるから、そこは随時調べて入れていく!

     全部この通りにする必要はないので、不要なところは消すことになる。

     なんでJSONはコメントアウトできないんだろー。

     

    {
     "format_version": "1.16.0",
     "minecraft:entity": { 
      "description": {
       "identifier": "minecraft:chicken", エンティティのIDを設定する 名前空間:名前
       "is_spawnable": true, スポーンエッグの追加と使用許可
       "is_summonable": true, /summonコマンドの許可
       "is_experimental": false テスト版
      },
      "component_groups": {
       "minecraft:chicken_baby": { 鶏の赤ちゃん
        "minecraft:is_baby": { minecraft:is_babyの公式サイトの説明
        },
        "minecraft:scale": { 大きさ変更
         "value":0.5 半分の大きさ
        },
        "minecraft:ageable": { エンティティの成長設定
         "duration": 1200, 成長までの時間
         "feed_items": [ エンティティにあげられるエサ
          "wheat_seeds", 小麦の種
          "beetroot_seeds", ビートルートの種
          "melon_seeds", スイカの種
          "pumpkin_seeds" かぼちゃの種
         ],
         "grow_up": { エンティティ成長した時のイベント
          "event": "minecraft:ageable_grow_up",
          "target": "self"
         }
        },
        "minecraft:behavior.follow_parent": { 親への追従 
         "priority": 5, 優先順位
         "speed_multiplier": 1.1
        }
       },
    
       "minecraft:chicken_adult": {
        "minecraft:experience_reward": { 経験値
         "on_bred": "Math.Random(1,7)", 繁殖に成功したときの経験値
         "on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0" 倒した時の経験値
        },
        "minecraft:loot": { ドロップアイテム
         "table": "loot_tables/entities/chicken.json"
        },
        "minecraft:breedable": { 繁殖設定
         "require_tame": false, 手なずける必要:不要
         "breeds_with": {
          "mate_type": "minecraft:chicken", 仲間定義
          "baby_type": "minecraft:chicken", 赤ちゃん定義
          "breed_event": { 繁殖時のイベント
           "event": "minecraft:entity_born",
           "target": "baby"
          }
         },
         "breed_items": [ 発情アイテム
          "wheat_seeds", 小麦の種
          "beetroot_seeds", ビートルートの種
          "melon_seeds", スイカの種
          "pumpkin_seeds" かぼちゃの種
         ]
        },
        "minecraft:behavior.breed": {
         "priority": 3,
         "speed_multiplier": 1.0
        },
        "minecraft:rideable": {
         "seat_count": 1,
         "family_types": [
          "zombie"
         ],
         "seats": {
          "position": [ 0.0, 0.4, 0.0 ]
         }
        },
        "minecraft:spawn_entity": {
         "entities": {
          "min_wait_time": 300,
          "max_wait_time": 600,
          "spawn_sound": "plop",
          "spawn_item": "egg",
          "filters": {
           "test": "rider_count", "subject": "self", "operator": "==", "value": 0
          }
         }
        }
       }
      },
    
      "components": {
       "minecraft:is_hidden_when_invisible": {
       },
       "minecraft:type_family": {
        "family": [ "chicken", "mob" ]
       },
       "minecraft:breathable": {
        "total_supply": 15,
        "suffocate_time": 0
       },
       "minecraft:collision_box": {
        "width": 0.6,
        "height": 0.8
       },
       "minecraft:nameable": {
       },
       "minecraft:health": {
        "value": 4,
        "max": 4
       },
       "minecraft:hurt_on_condition": {
        "damage_conditions": [
         {
          "filters": { "test": "in_lava", "subject": "self", "operator": "==", "value": true },
          "cause": "lava",
          "damage_per_tick": 4
         }
        ]
       },
       "minecraft:movement": {
        "value": 0.25
       },
       "minecraft:damage_sensor": {
        "triggers": {
         "cause": "fall",
         "deals_damage": false
        }
       },
       "minecraft:leashable": {
        "soft_distance": 4.0,
        "hard_distance": 6.0,
        "max_distance": 10.0
       },
       "minecraft:balloonable": {
        "mass": 0.5
       },
       "minecraft:navigation.walk": {
        "can_path_over_water": true,
        "avoid_damage_blocks": true
       },
       "minecraft:movement.basic": {
       },
       "minecraft:jump.static": {
       },
       "minecraft:can_climb": {
       },
       "minecraft:despawn": {
        "despawn_from_distance": {}
       },
       "minecraft:behavior.float": {
        "priority": 0
       },
       "minecraft:behavior.panic": {
        "priority": 1,
        "speed_multiplier": 1.5
       },
       "minecraft:behavior.mount_pathing": {
        "priority": 2,
        "speed_multiplier": 1.5,
        "target_dist": 0.0,
        "track_target": true
       },
       "minecraft:behavior.tempt": {
        "priority": 4,
        "speed_multiplier": 1.0,
        "items": [
         "wheat_seeds",
         "beetroot_seeds",
         "melon_seeds",
         "pumpkin_seeds"
        ]
       },
       "minecraft:behavior.random_stroll": {
        "priority": 6,
        "speed_multiplier": 1.0
       },
       "minecraft:behavior.look_at_player": {
        "priority": 7,
        "look_distance": 6.0,
        "probability": 0.02
       },
       "minecraft:behavior.random_look_around": {
        "priority": 8
       },
       "minecraft:physics": {
       },
       "minecraft:pushable": {
        "is_pushable": true,
        "is_pushable_by_piston": true
       },
       "minecraft:conditional_bandwidth_optimization": {
       }
      },
    
      "events": {
       "from_egg": {
        "add": { "component_groups": [ "minecraft:chicken_baby" ] }
       },
    
       "minecraft:entity_spawned": {
        "randomize": [
         {
          "weight": 95,
          "trigger": "minecraft:spawn_adult"
         },
         {
          "weight": 5,
          "add": {
           "component_groups": [
            "minecraft:chicken_baby"
           ]
          }
         }
        ]
       },
    
       "minecraft:entity_born": {
        "remove": {
        },
        "add": {
         "component_groups": [
          "minecraft:chicken_baby"
         ]
        }
       },
    
       "minecraft:ageable_grow_up": {
        "remove": {
         "component_groups": [
          "minecraft:chicken_baby"
         ]
        },
        "add": {
         "component_groups": [
          "minecraft:chicken_adult"
         ]
        }
       },
    
       "minecraft:spawn_adult": {
        "add": {
         "component_groups": [
          "minecraft:chicken_adult"
         ]
        }
       }
      }
     }
    }

     IDや名前空間についての説明はこちら

     

     

    リソースのエンティティ設定

     リソースのエンティティの設定はいくつかファイルがわかれてる。

     基本Minecraft entity wizard プラグインが作ってくれているから大きな変更はいらないはず。

     JSONファイルを一覧にしてみるね。

    1. パック名.entity.json :エンティティの設定ファイル
    2. パック名.animation.json :アニメーションの名前とデータ
    3. パック名.geo.json :3Dモデルのデータ
    4. sounds.json :サウンド設定
    5. manifest.json :マニュフェスト。先に説明して作ったやつ。

     

     順番に説明するねー。

     

     

    1. エンティティ設定

      リソースパックのエンティティ設定は、他の設定ファイルの指定だったり、テクスチャーのファイル名だったりいろいろ。

     僕もまだわからないところが多いため完全な説明になっていないのはごめんなさい。

     鶏のデータを元にしたので、あちこちにchickenって残ってる。

    {
      "format_version": "1.10.0",
      "minecraft:client_entity": { エンティティの設定箇所
        "description": { 詳細
          "identifier": "pg:tamaclaw", エンティティの名前空間:名前
          "min_engine_version": "1.12.0", 要求最低エンジン
          "materials": {
            "default": "chicken",
            "legs": "chicken_legs"
          },
          "textures": {
            "default": "textures/entity/tamaclaw" テクスチャファイルの指定
          },
          "geometry": { 
            "default": "geometry.tamaclaw" 3Dモデルファイルの指定
          },
          "animations": { アニメーション名の指定
            "move": "animation.tamaclaw.move",
            "general": "animation.tamaclaw.general",
            "look_at_target": "animation.common.look_at_target", 
              このアニメーション作ってないけれどちゃんと動いてる。なんでだろう。
            "baby_transform": "animation.tamaclaw.baby_transform"
          },
          "scripts": {
            "animate": [
              "general",
              {
                "move": "query.modified_move_speed"
              },
              "look_at_target",
              {
                "baby_transform": "query.is_baby"
              }
            ]
          },
          "render_controllers": ["controller.render.chicken"],
          "spawn_egg": { スポーンエッグの設定
            "base_color": "#ffffff",
            "overlay_color": "#83f3ff"
          }
        }
      }
    }

     

    2. アニメーション設定

     アニメーション設定はMinecraft entity wizard プラグインで出力されているはず。

     もしなかったら、リソースパックフォルダの中にanimations(フォルダ)とその中にパック名.animation.jsonで作成する。

     中身はこんな感じ。

     これは僕が作ったtamaclawというリソースパックのデータ。

     オレンジ色の部分がアニメーションの名前で、BlockBenchで作ったときと同じ名前になる。

     ちなみに元データは鶏なので、鶏と同じアニメーション名だけど、中身はもう全然違うもの。

    {
      "format_version": "1.8.0",
      "animations": {
        "animation.tamaclaw.baby_transform": { アニメーション名
          "loop": true, ループするかどうか。
          "animation_length": 39.5, アニメーションの長さ
          "bones": { 3Dモデルの骨
            "head": { 3Dモデルの部位の名前
              "scale": { 変更箇所、ここではスケール(大きさ)
                "0.0": [1, 1.1, 0.9],
                "39.5": [1.1, 1.3, 1]
              }
            }
          }
        },
        "animation.tamaclaw.move": {
          "loop": true,
          "animation_length": 0.33333,
          "bones": {
            "body": {
              "rotation": { 変更箇所、ここではローテーション(回転)
                "0.0": [0, 0, 0],
                "0.0833": [-20, 0, 0],
                "0.1667": [-0.56, 0, 0],
                "0.25": [33.33, 0, 0],
                "0.3333": [0, 0, 0]
              },
              "position": { 変更箇所、ここではポジション(位置)
                "0.0": [0, 0, 0],
                "0.1667": [0, 3, 0],
                "0.3333": [0, 0, 0]
              }
            },
            "tail1": {
              "rotation": {
                "0.0": [0, 0, 0],
                "0.0833": [37.5, 0, 0],
                "0.1667": [0, 0, 0],
                "0.25": [-45, 0, 0],
                "0.3333": [0, 0, 0]
              }
            },
            "tail2": {
              "rotation": {
                "0.0": [0, 0, 0],
                "0.0833": [12.5, 0, 0],
                "0.1667": [-6.25, 0, 0],
                "0.25": [17.5, 0, 0],
                "0.3333": [0, 0, 0]
              }
            },
            "frontLegL": {
              "rotation": {
                "0.0": [2.5, 0, 0],
                "0.0833": [22.5, 0, 0],
                "0.1667": [-20, 0, 0],
                "0.25": [-20, 0, 0],
                "0.3333": [2.5, 0, 0]
              }
            },
            "frontLegR": {
              "rotation": {
                "0.0": [0, 0, 0],
                "0.0833": [32.5, 0, 0],
                "0.1667": [-22.5, 0, 0],
                "0.25": [-20, 0, 0],
                "0.3333": [0, 0, 0]
              }
            },
            "backLegL": {
              "rotation": {
                "0.0": [0, 0, 0],
                "0.0833": [57.5, 0, 0],
                "0.1667": [-16.25, 0, 0],
                "0.25": [-20, 0, 0],
                "0.3333": [0, 0, 0]
              }
            },
            "backLegR": {
              "rotation": {
                "0.0": [0, 0, 0],
                "0.0833": [45, 0, 0],
                "0.1667": [-12.5, 0, 0],
                "0.25": [-15, 0, 0],
                "0.3333": [0, 0, 0]
              }
            }
          }
        },
        "animation.tamaclaw.general": {
          "loop": true,
          "animation_length": 4,
          "bones": {
            "body": {
              "rotation": {
                "0.0": [0, 0, 0],
                "4.0": [0, 0, 0]
              },
              "position": {
                "0.0": [0, 0, 0],
                "2.0": [0, -1, 0],
                "4.0": [0, 0, 0]
              }
            },
            "tail1": {
              "rotation": {
                "0.0": [0, 0, 0],
                "2.0": [17.5, 0, 0],
                "4.0": [0, 0, 0]
              },
              "position": {
                "0.0": [0, 0, 0],
                "4.0": [0, 0, 0]
              }
            },
            "tail2": {
              "rotation": {
                "0.0": [-10, 0, 0],
                "2.0": [22.5, 0, 0],
                "4.0": [-10, 0, 0]
              },
              "position": [0, 0, 0]
            },
            "frontLegL": {
              "position": {
                "0.0": [0, 0, 0],
                "2.0": [0, 1, 0],
                "4.0": [0, 0, 0]
              }
            },
            "frontLegR": {
              "position": {
                "0.0": [0, 0, 0],
                "2.0": [0, 1, 0],
                "4.0": [0, 0, 0]
              }
            },
            "backLegL": {
              "position": {
                "0.0": [0, 0, 0],
                "2.0": [0, 1, 0],
                "4.0": [0, 0, 0]
              },
              "scale": 1
            },
            "backLegR": {
              "position": {
                "0.0": [0, 0, 0],
                "2.0": [0, 1, 0],
                "4.0": [0, 0, 0]
              }
            }
          }
        }
      }
    }
    3. サウンド変更

     サウンドの設定。

     鶏の元データを使っていたので、コケコッコと鳴いてしまう。

     そこを猫の鳴き声に変更した。

     細かいところはわかっていないので、またわかり次第注釈つけるー。

    {
      "entity_sounds": {
        "entities": {
          "pg:tamaclaw": {
            "events": {
              "ambient": "mob.cat.meow",
              "death": "mob.cat.meow",
              "hurt": "mob.cat.hit", 攻撃されたときの鳴き声
              "plop": "mob.cat.meow",
              "step": {
                "pitch": 1,
                "sound": "mob.chicken.step",
                "volume": 0.25
              }
            },
            "pitch": [0.8, 1.2],
            "volume": 1
          }
        }
      }
    }

     

    アドオン作成

     今までは自分のマインクラフトに直接インストールされていたと思うけれど、配布する場合はアドオンにしたほうが簡単にインストールできる。

     

    フォルダを新しく作る

     まずはデータを入れるフォルダを新しく作る。

     

    • パック名
      • パック名 Behavior
      • パック名 Resources

     

     

    元データをコピーしてくる

     com.mojangフォルダの中にあるデータを以下のように新しく作ったパック名のフォルダにコピーする。

     

     com.mojangフォルダの場所

     

    C:\Users\ユーザー名\AppData\Local\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang

     

     コピーする

    • development_behavior_packsの中のパック名フォルダの中身 → パック名 Behavior フォルダの中にコピー
    • development_resource_packsの中のパック名フォルダの中身 → パック名 Resources フォルダの中にコピー

     

     圧縮ソフトでZipファイルにする。

     圧縮ファイル名をパック名.mcaddonに変更する。

     これでアドオン完成!

     

     

    その他参考

    エンティティのリスト

     公式サイトにあるエンティティのjsonリスト

    Entity Documentation - EntityList
    AreferencedocumentlistingallavailableentitieslocatedintheVanillaBehaviorPack

     

     

    質問あれば僕のツイッターまで!

     

     


    おすすめの本