【Minecraft 1.12.2】アイテムの追加【Mod制作】
どうも、はじめまして。
minBと申します。
今回はアイテムの追加方法について書いていこうと思います。
また、この記事は以下のサイトを参考にさせていただいております
Minecraft Modding Wiki -1.11のアイテム追加
※注意: 私自身、Mod制作&Java初心者です。記事に誤った情報がある場合がありますがご了承下さい。
環境
Minecraft: 1.12.2
IntelliJ IDEA: 2018.2.5
Minecraft Forge: 1.12.2-14.23.5.2768
開発環境の構築については割愛させていただきます。
開発環境の構築が終わった時点から。
ExsampleModのファイルが残っている場合は削除してしまってかまいません。
まずは、ModのJavaファイルを入れるフォルダを作っていきます。
今回は「SampleMod1」というMod名にしました。
javaフォルダを右クリック→New→Directoryと進み、
com/sample/samplemod1
と入力します。
そして、samplemod1フォルダで右クリック→new→Java Classで
SampleMod1.java
を作りましょう。
それでは、中身を書いていきます。
まずは、マイクラにこのjavaファイルをModとして読み込ませます。
下の画像の通りに書いてください。
クラス内でModのID、名前、バージョンを格納した定数を作成しています。
@Mod(~~~~)で、このjavaファイルがModだよ、ということを認識させています。
(~~~~)には、いろいろな設定を書くことができます。
IDのみ必須らしいです。
@Mod.EventBusSubscriberは呼び出しを行っているようです。
私もあまり理解できてないです・・・
また後日、追記するかもしれません。
ここで一度、Modがきちんと認識されているかチェックしてみましょう。
右上の緑色の三角マークを押して、Minecraftを実行して下さい。
起動出来たら、Modsを押して下の画像のようにSampleMod1が表示されているかどうか確認してください。
もし、表示されていない場合、コードに誤字・脱字がないか確認してみてください。
さて、ここからアイテムの追加を行っていきます。
今回は、無機能アイテムを追加してみたいと思います。
下の画像の通りに追記してください。
ITEMSという名前のクラスとメソッドを2つ追記しました。
ITEMSはアイテム保持用のクラスです。本来は別のjavaファイルに分けて作ったほうがいいんでしょうけれど、今回は無機能アイテムなので内部クラスとして記述します。
registerItems()はアイテムの登録を行うメソッド、
registerModels()はモデルの登録を行うメソッドです。
それでは、各メソッドに追記していきます。
下の画像の通りに追記してください。
少しだけ説明すると、
.setRegistryName()では、登録名の設定
.setCreativeTab()では、クリエイティブモードの際、このアイテムがどのタブの中に存在するかの設定
.setUnlocalizedName()では、日本語名の登録(後述します)等を行う際に使われる名前の登録
を行います。
モデルの登録に関しては、私もあまり理解できていません・・・
申し訳ない・・・
次は、テクスチャの設定を行います。
今回は、もともとあるリンゴのテクスチャを流用しています。
テクスチャは.json形式で指定します。
まずは、jsonファイルを保存するファイルを作成しましょう。
resources→new→Directoryと進み、
assets/samplemod1/models/item
と入力してください。
このファイル名は固定で、
assets/<modid>/models/item
となっています。
そして、itemフォルダで右クリック→New→Fileと進み、
sample_item.json
を作成します。
作成出来たら、以下のように記述してください。
終わったら右上の緑色の三角マークで再びMinecraftを起動してみましょう。
起動できたら、クリエイティブモードでワールドを作り、
Miscellaneousのタブ(左下の溶岩バケツのアイコン)の一番下を確認してみてください
・・・リンゴのアイコンをした、item.sample.nameというアイテムがありましたでしょうか?
ありましたら、無事、アイテムの登録に成功したということになります。
しかし、名前がなんだかしっくりきませんね。
というわけで、名前の変更をしていきます。
まずは、先ほど作ったassetsフォルダの中にあるフォルダ、samplemod1フォルダの中にlangという名前で新規フォルダを作成します。
さらに、langフォルダの中に
en_us.lang
ja_jp.lang
この2つのファイルを作ってください。
もし表示形式を選択してくださいと表示が出たら.txtで大丈夫です。
このような階層になっているかと思います。
ファイルが作成できたら、
en_us.langには
item.sample.name=sample_item
ja_jp.langには
item.sample.name=サンプルアイテム
と記述してください。
ちなみに、この sampleは、registerItems()メソッドのsetUnlocalizedName()で記述した名前になります。
これで、英語、日本語でのアイテム名の登録ができました。
もう一度Minecraftを起動し、アイテム名を確認してみましょう。
上の画像のように、アイテム名がsample_itemになっているでしょうか。
言語設定を変更して、日本語でも確認してみましょう。
アイテム名がサンプルアイテムになっていれば、成功です。
無機能アイテムの追加の説明は以上です。
いかがだったでしょうか?
私自信、Mod開発初心者、Java初心者と分からないことだらけです。
しかし、少しずつ、ゆっくりでいいからMod開発をしたいという思いでこのブログを始めました。
至らぬ点があると思いますが、温かい目で見守ってもらえるとありがたいです。