6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

アドオンの作り方をゆるーく紹介 #アイテム追加編

Last updated at Posted at 2022-11-25

最終目的

・アイテム・ブロックを追加する

情報

・これは備忘録だよ
・自分が追加のときとてつもなくつまずいたから作ったよ
・これはMinecraft バージョン1.19.41時点の情報だよ
 それ以降のバージョンで動かなくなっても保証しないよ
・サンプルコードはyamlで書いてるけどコメントアウト用だから本番はjsonにしてね

対象ユーザ

・マイクラを持っている人
・アドオンを作る気力がある人
メンタルが強い人(エラーで悩まされたから)
アドオンとはなにか知っている人 (説明がめんどくさいから)

略称

・ビヘイビアーパック・・・bp
・リソースパック・・・rp
・マインクラフト・・・マイクラ
・Java Edition(Java版)・・・JE
・Bedrock Edition(統合版)・・・BE

れっつごー

まず最初に下記の図のようにフォルダ・ファイルを作ってね
階層はわかりやすいところでいいよ

sample_resource_pack ←アドオンの名前。最後に_rpってつけとくと分かりやすい。
┣manifest.json
┣pack_icon.png
┣textures
┃┣items
┃┃┗(アイテムの名前).png
┃┗item_texture.json
┗texts
 ┗(対応させたい言語の名前).lang

sample_behavior_pack ←アドオンの名前。最後に_bpってつけとくと分かりやすい。
┣manifest.json
┣pack_icon.png
┣items
┃┗(アイテムの名前).json
┗recipes
 ┗(分類用の名前)_(アイテムの名前)_recipe.json

それぞれの説明

リソースパック

textures フォルダ

items フォルダ

(アイテムの名前).png

これはテクスチャだね
.pngじゃないとだめっぽい
16x16ぐらいが丁度いい

item_texture.json

item_texture.jsonはテクスチャを指定するよ

item_texture.json
{
  "resourse_pack_name":"ここは基本何でもいい",
  "texture_name":"atlas.items", #これ固定ね
  "texture_data":{
    "テクスチャID(困ったらアイテム名でいいよ)":{
      "textures":"textures/items/itemsフォルダの中にある画像の名前(_topと.pngとか抜きで)"
    }
  }
}

textsフォルダ

(対応させたい言語の名前).lang

.langはこういう形式で書くよ

(対応させたい言語の名前).lang
(1行開ける)
item.(identifier).name=(表示したい名前)

identifierは(アイテムの名前).jsonのidentifierだよ
日本語はja_JP.lang
英語はen_US.lang
すべて設定するのがめんどい!って人はここを読みましょう

ビヘイビアーパック

items フォルダ

(アイテムの名前).json

アイテムの振る舞いを設定する
これが一番長い。根気強くね!!

(アイテムの名前).json
{
  "format_version":"1.16.100", #おすすめ。これ以外にして動かなくなっても知らん(無責任)
  "minecraft:item":{
    "description":{
      "identifier":"アイテムのフルIDの設定",
      "category":"左のタブからConstruction:構築、Equipment:所持品、Items:アイテム、Nature:性質(デフォ)"
    },
    "components":{
      #設定しといたほうがいいやつ
      "minecraft:foil":false, #エンチャント品のように光らせるかどうか。true=光る false=光らない。,
      "minecraft:hand_equipped":false, #武器のように持つか。trueかfalse。,
      "minecraft:max_stack_size":64, #どこまでスタックできるか。デフォは64。,
      "minecraft:stacked_by_data":false, #データ値の違うものをスタックするか。デフォはfalse(?)。,
      "minecraft:display_name":{
        #(対応させたい言語の名前).langでいちいち指定がめんどいっ!って人向け
        "value":"すべての言語で表示される名前を指定する。"
      },
      "minecraft:damage":10, #叩いたときのダメージ,
      "minecraft:repairable":{
        "repair_items":[
          {
            "items":["どのアイテムで耐久値を回復させるか。コマンドIDで指定する。JEのほうね"]
            "repair_amount":10, #回復する耐久値の数,
          }
        ]
      },
      #"minecraft:repairable"とセット
      "minecraft:durability":{
        "max_durability":100, #耐久値の量
        "damage_chance":{
          "min":100, #耐久値が減る確率の最小値
          "max":100  #耐久値が減る確率の最大値
        }
      },
      "minecraft:creative_category":{
        "parent":"クリエイティブでどこのグループに属するのか。すべて下にあるリンクにある。カテゴリーとは違う。"
      },
      #絶対に指定するやつ
      "minecraft:icon":{
        "texture":"item_texture.jsonで指定したテクスチャIDを書く。"
      },
      "minecraft:render_offsets":"fleshかapple。appleの動作確認はしてない。",
      ...
      #他にもいっぱいある。下のリンクでね
    }
  }
}

クリエイティブのグループとすべてのcomponentsはここ。

recipes

(分類用の名前)_(アイテムの名前)_recipe.json

(分類用の名前)は並べ替えられたときに見やすくするため。無くても良い

(分類用の名前)_(アイテムの名前)_recipe.json
{
  "format_version":"1.16.100", #ここはmanifest.jsonと統一する
  #決まった形のレシピの場合
  "minecraft:recipe_shaped":{
    "description":{
      "identifier":"基本何でもいい。でもbpのidentifierと統一したほうがいいかも。",
    },
    "tags":["crafting_table"], #そのレシピがクラフトできるもののタグ。
                               #"furnace","smoker","campfire","stonecutter", "brewing_stand"
                               #  かまど    燻製器   たき火類  ストーンカッター  醸造台(ここで変えるだけでは意味がありません)
    "pattern":[
      " A ", #レシピのパターンを設定する。
      "A A", #1つの材料につき一つのアルファベットを書く。
      "A A"  #↑のアルファベットは同じ材料なら同じアルファベットで。
    ],
    "key":{ #指定したアルファベットがそれぞれなんの材料かを指定する
      "指定したアルファベット":{
        "item":"itemIDをJEかBE版マイクラのコマンドIDで書く。",
        "data":"基本は0。データ値を指定する。"
      }, 
      #...
      #アルファベットの種類の数だけ続ける。
    "result":{
      "item":"作った結果、できるもの。のbpで書いたアイテムのidentifier",
      "count":1 #それが何個できるかの指定。多分いくつでも行ける。(やり過ぎは禁物)
    }
  }
}

共通の説明

pack_icon.png

.pngじゃないとだめっぽい
このファイルはどんな大きさでも丁度いいようになるらしい

manifest.json

これいちばん重要
アドオンとマイクラに認識させるためのファイル

manifest.json
{
  "format_version":"1.16.100", #自分がよく使うバージョン。これじゃいけないなんてことはない。
  "header":{
    "name":"パックの名前"
    "description":"パックの説明。バージョン書いてもいいかも。",
    "uuid":"パックを特定するためのもの。",
    "version":[0,0,1] #パックのバージョンを書く。
  },
  "modules":[
    {
      "description":"パックの説明。表示されない。謎。",
      "type":"rpならresources、bpならdata。",
      "uuid":"パックを特定するためのもの。",
      "version":[0,0,1] #パックのバージョンを書く。headerと統一するといいよ。
    }
  ]
}

uuidはここで生成できる。
4つ要るのでまとめて生成すると楽。

終わりに

はい! お疲れ様でした!!
アドオンを作るのは根気と時間がとても要るので大変です!
ですが、できたとき、マスターしたとき、とても嬉しかったり、MODのようなこともできるので
とても楽しいです!!
この講座の続きも作るつもりなので、よかったら見てね!
下にリンク集つけとくね!

とらぶるしゅーてぃんぐ

動かなかった人へ。

よくある間違い1

カッコ({})の数が足りない。
さっと確認できるvscodeがいいよ。(web版)

よくある間違い2

記述ミス

例.json
{
  "format_version":"1.16.100",
  "minecraft:item":{
    "description":{
      "identifier":"sample:sample_item",
      "category":"Equipment"
    },
    "component":{ #←ここ!!
    #...

"components"が"component"になっています。
こういうのがよくあるので注意してください。

その他

そういうのは質問で聞いてね!

リンク集

目的 どんな知識がいるか リンク
アイテムを作りたい アドオンとはなにか 今ここ
ブロックを作りたい アドオンとはなにか まだできてないよ
テクスチャを変えたい アドオンとはなにか まだできてないよ
レシピ・ドロップアイテムを変えたい アドオンとはなにか まだできてないよ

アイデアあったら質問とかで。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?