【Minecraft 1.12.2】ツールの追加【Mod制作】
どうも、minBです。
最近、忙しくてなかなか時間が取れません。。。
さて、今回はツールの追加をやっていきたいと思います。
とはいっても、基本的にアイテムの追加と変わりませんのでサクサク行きましょう。
※注意: 私自身、Mod制作&Java初心者です。記事に誤った情報がある場合がありますがご了承下さい。
環境
Minecraft: 1.12.2
IntelliJ IDEA: 2018.2.5
Minecraft Forge: 1.12.2-14.23.5.2768
今回、Mod名はSampleToolsで作ってます。
まずは必要なファイルとフォルダを作成していきます。
com/samplemod/sampletools内にSampleTools.java、
resources/assets/sampletools内にlangフォルダとmodelsフォルダ
、models内にitemフォルダを作成します。
langフォルダにはアイテム名を登録するlangファイル、
itemフォルダにはテクスチャを登録するjsonファイルを保存します。
作り終えたらSampleTools.javaにid、name、versionと@Modアノテーションを記述しておきます。
次に、必要なメソッドやらを記述していきます。
下の画像のように記述して下さい。
ITEMSクラスで登録するアイテムをインスタンス化、
registerItemsメソッドでアイテムを登録、
registerModelsメソッドでモデルを登録します。
次は、追加するツールを別クラスで書いていきます。
今回はピッケルを追加してみましょう。
SampleTools.javaと同じ階層にSamplePickaxe.javaを作成し、以下のように記述します。
ItemPickaxeを継承させています。
また、コンストラクタも必要なので記述してやります。
SampleTools.javaに戻り追記。
ITEMSクラス内で先ほどのSamplePickaxeクラスをインスタンス化します。
引数にはツールマテリアルというものを渡します。
ツールマテリアルの引数は
(ツールマテリアルの名前,回収レベル,耐久値,採掘速度,攻撃力,エンチャントの付きやすさ)
です。
ついでにRegistryNameとUnlocalizedNameも登録しておきます。
ここまで来たら後は無機能アイテムと同じ流れです。
アイテムとモデルの追加
SampleTools.java
テクスチャとアイテム名の登録
今回は金ツールのテクスチャをお借りします。
item/samplepickaxe.json
lang/en_us.lang
lang/ja_jp.lang
ここまでできたら、起動してみましょう。
Toolタブのところに追加されていれば成功です。
余談ですが、ItemPickaxeを継承したクラスでインスタンス化したアイテムはクリエイティブタブの設定をしなくても自動的にToolタブに振り分けられます。
ちゃんと石も掘れます。
いかがだったでしょうか?
他のツールも同じように追加することができます。
なお、他のツール用のクラスを作る際、継承するクラスは
斧:ItemAxe
シャベル:ItemSpade
クワ:ItemHoe
となっています。
もし、分からないことがあれば気軽にコメントしていってください。
それではまた。
【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
それでは早速SampleMod1.javaに追記していきます。
ブロックの追加はアイテムの追加と流れは同じです。
まずは、内部クラスでブロックの宣言をし、それをregisterItems()に登録します。
下の画像の水色で囲まれた部分が追記した箇所になります。
次は、registerBlocks()でブロックの登録を行います。
そして、registerModels()でモデルの登録をするという流れです。
次に、テクスチャの指定を行います。
assets/<modid>内にblockstatesフォルダを作り、その中にsample_block.jsonファイルを作ります。
下の画像のように記述してください。
少しだけ解説。
forge_marker:Minecraft forgeには独自のblockstatesの記述方式があります。それを使用する際にまず、このforge_markerを記述します。数字に関してはあまりわかりませんがとりあえず現在は1しかないようです。
defaults:ここでとりあえずのテクスチャを指定します。今回は全面に土のテクスチャを貼り付けてみました。
variants:defaultsで指定したテクスチャを上書きすることができます。特定の面だけ指定してテクスチャを変更することができるようです。
私も初めてなので理解しきれていませんが、こんなところだと思います。
最後にlangファイルで英語名、日本語名を指定したらMinecraftを起動してみましょう。
無事登録することができました。
それでは今回はここまでです。
お疲れさまでした。
【Minecraft 1.12.2】卵爆弾modの制作計画【Mod制作】
どうも、minBです。
mod制作の勉強しつつ備忘録としてブログを書いています。
ただ私が具体的な目標がないとやる気が起きにくい性格でして、、、
勉強がてら何かmodを一つ、作ってみたいと思った次第です。
で、どんなmod作ろうかなーと考えてたわけですが、
そういえば通常プレイだと卵って余ること多いんだよなーって思いまして。
卵って投げれるし、遠距離武器にできそうってことで、
卵爆弾なるものを作ってみようかと思います。
細かいところは作りながら調整していきますが、
・卵4つ、火薬5つで卵爆弾4つ
・投げることができ、ダメージは3
・地形破壊効果なし
こんな感じで作っていこうかと思います。
それではまた次回
【Minecraft 1.12.2】レシピの追加【Mod制作】
どうも、minBです。
今回はレシピの追加をしていきます。
その他の記事はこちら
環境
Minecraft: 1.12.2
IntelliJ IDEA: 2018.2.5
Minecraft Forge: 1.12.2-14.23.5.2768
レシピの追加では、プログラムを書く必要がありません。
json形式のファイルを追加するだけです。
まずはjsonファイルを保存するファイルを作成します。
resources/asset/<modid>の中に、recipesファイルを作ってください。
このrecipesファイルの中にjsonファイルを保存していきます。
レシピには、定型レシピと不定形レシピの2つがあります。
まずは定型レシピを作ってみたいと思います。
recipesファイルの中にsample_recipe1.jsonファイルを作り、中身を書きます。
下の画像のように記述してください。
順に解説していきます。
2行目、"type"の行で、定型レシピか不定形レシピかを指定しています。
定型レシピなら、"minecraft:crafting_shaped"、
不定形レシピなら、"minecraft:crafting_shapeless"
を記述します。
その後、"pattern"でレシピの形を決め、"key"で素材アイテムを設定、
"result"で作成アイテムを設定します。
"pattern"でのレシピの形は任意の文字を用いて指定します。
ここで用いられた文字に、次の"key"で、任意のアイテムを紐づけし、レシピを作るわけです。
"key"では、
任意の文字:{
"item":素材アイテム名,
"data":メタ値
}
のように記述します。
上の画像では、横一列に並べられたXに、土を紐づけしています。
"result"でのアイテム指定は"key"とほとんど同じです。
"result":{
"item":作成アイテム名,
"data":メタ値,
"count":作成される個数
}
このように記述します。
今回は、ダイヤモンドが2つ作られるように指定しました。
ちなみに、メタ値って何?って方は後日、記事を書く予定なので少々お待ちください。
それでは、実行してみましょう。
土を3つ横に並べるとダイヤモンドが2つ作成されるはずです。
次は、素材アイテムを2種類使ったレシピを追加してみましょう。
ファイル名はsample_recipe2にしました。
"pettern"のレシピの形を"XXX"から"XYX"に変更しました。
そして、"key"では「,」(カンマ)で区切りで、Yのアイテムとして石を指定しています。
無事、2種類のアイテムを使ったレシピを登録することができました。
また、先ほど作った2つのレシピは横1行のレシピでしたが、縦に素材アイテムを並べたレシピを使いしたい場合もあるわけです。
そのときは
このように各段で「,」(カンマ)で区切って記述します。
ツルハシの棒の部分など、縦軸または横軸でアイテムの位置を固定したいときには、空白にしたい箇所に半角スペースを入れます
こんな感じです。見づらいですが、Yの左右に半角スペースが入っています。
ちゃんと追加できてますね。
次は不定形レシピを追加していきます。
不定形レシピとは、バニラのキノコシチューなど、どの場所に素材アイテムを置いても大丈夫なレシピのことです。
ファイル名はsample_recipe3.jsonです。
不定形レシピではレシピの形を指定する必要がないので、素材アイテムと作成アイテムのみ指定するだけです。
素材アイテムは"ingredients"に記述します。複数アイテムを素材にする場合はこれまで同様カンマ区切りです。
無事追加できました。
レシピの追加については以上です。
ありがとうございました。
次回はブロックの追加をしてみようと思います。
【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開発をしたいという思いでこのブログを始めました。
至らぬ点があると思いますが、温かい目で見守ってもらえるとありがたいです。