NakanishiのForge1.20.1のJavaMod開発講座

MoreCropsDelightの作者、NakanishiがMod制作について書いていきます。

JavaでMinecraftのModを作ろう☆ 農業編① 〜JSONファイルを用意しよう〜

こんばんは。Nakanishiです。

Discordサーバーを運営中です。

Kazushi_Nakanishiのこっそりサーバー

一緒にゆるくMod制作を楽しみませんか?
※)日本語での会話ができる方のみ参加可能です。
  条件に合わない方は参加をご遠慮ください。

 

 

前回までは食料編としてオリジナルのニンジンを作ってみました。

食料編 カテゴリーの記事一覧 - NakanishiのForge1.20.1のJavaMod開発講座

今回からは既存のニンジン同様に、植えて収穫出来るようにしていこうと思います。

 

 

①テクスチャ、JSONファイルを追加しよう

最初にテクスチャを用意しますが、公式のニンジンはステージ0からステージ7まで成長し、その中で使われるテクスチャは4枚必要になります。

割り当てとしては

ステージ0~1=carrots_stage0

ステージ2~3=carrots_stage1

ステージ4~6=carrots_stage2

ステージ7=carrots_stage3

となっています。

 

なので、公式同様に4枚の成長過程のテクスチャを用意します。

今回は例として【Prismarine Carrots】のテクスチャを用意しました。

prismarine_carrots_stage0

prismarine_carrots_stage1

prismarine_carrots_stage2

prismarine_carrots_stage3

これらのpngファイルを【textures/block】に入れていきます。

 

次に【models/block】にJSONファイルを準備していきます。

ここでのJSONファイルは各テクスチャに必要なので、4つのファイルが必要になります。

 

例)

{
  "parent": "minecraft:block/crop",
  "textures": {
    "crop": "nakanishi_mod:block/prismarine_carrots_stage0"
  }
}

prismarine_carrots_stage0のmodelのJSONファイル例

prismarine_carrots_stage1のmodelのJSONファイル例

prismarine_carrots_stage2のmodelのJSONファイル例

prismarine_carrots_stage3のmodelのJSONファイル例

これで【models/block】のJSONファイルは完成です。

ブロックとしては1つのブロックでも、テクスチャが複数枚必要な場合はその枚数分だけmodelのJSONファイルが必要になります。

 

次に【blockstates】のJSONファイルを作っていきます。

ここで先ほど書いてもらった【models/block】の指定を行います。

 

まず、例として公式の【carrots】の【blockstate】のJSONファイルを確認しましょう。

例)

{
  "variants": {
    "age=0": {
      "model": "minecraft:block/carrots_stage0"
    },
    "age=1": {
      "model": "minecraft:block/carrots_stage0"
    },
    "age=2": {
      "model": "minecraft:block/carrots_stage1"
    },
    "age=3": {
      "model": "minecraft:block/carrots_stage1"
    },
    "age=4": {
      "model": "minecraft:block/carrots_stage2"
    },
    "age=5": {
      "model": "minecraft:block/carrots_stage2"
    },
    "age=6": {
      "model": "minecraft:block/carrots_stage2"
    },
    "age=7": {
      "model": "minecraft:block/carrots_stage3"
    }
  }
}

 

💡ポイント

age成長段階です

 

これを【prismarine_carrots】に置き換えていきます。

例)

{
  "variants": {
    "age=0": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage0"
    },
    "age=1": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage0"
    },
    "age=2": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage1"
    },
    "age=3": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage1"
    },
    "age=4": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage2"
    },
    "age=5": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage2"
    },
    "age=6": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage2"
    },
    "age=7": {
      "model": "nakanishi_mod:block/prismarine_carrots_stage3"
    }
  }
}

 

prismarine_carrotsのblockstateのJSONファイル例

💡ポイント

・ファイル名は【prismarine_carrots】のように、ブロックのID名にする必要があります。

 

これで見た目のJSONファイルは完成です。

 

 

ここまでお疲れ様でした☆

次回はブロック側【Prismarine Carrots】のCLASSファイルを制作していこうと思います。

 

もしこの記事が参考になった、または「JavaでMod制作を始めてみたい!」と思っていただけたら、ぜひ読者登録をお願いします。
それではまた次回お会いしましょう。
ここまでお読みいただき、ありがとうございました。

 

次回記事

JavaでMinecraftのModを作ろう☆ 農業編② 〜CropBlock(ブロック)のCLASSファイルを作ろう〜 - NakanishiのForge1.20.1のJavaMod開発講座