【Minecraft】minBのmod制作備忘録

mod製作初心者の備忘録です。

【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で作ってます。

 

まずは必要なファイルとフォルダを作成していきます。

 f:id:minB:20190203165059p:plain

com/samplemod/sampletools内にSampleTools.java

resources/assets/sampletools内にlangフォルダとmodelsフォルダ

、models内にitemフォルダを作成します。

 

langフォルダにはアイテム名を登録するlangファイル、

itemフォルダにはテクスチャを登録するjsonファイルを保存します。

 

作り終えたらSampleTools.javaにid、name、versionと@Modアノテーションを記述しておきます。

 

次に、必要なメソッドやらを記述していきます。

下の画像のように記述して下さい。

f:id:minB:20190203171252p:plain

 

ITEMSクラスで登録するアイテムをインスタンス化、

registerItemsメソッドでアイテムを登録、

registerModelsメソッドでモデルを登録します。

 

次は、追加するツールを別クラスで書いていきます。

今回はピッケルを追加してみましょう。

 

SampleTools.javaと同じ階層にSamplePickaxe.javaを作成し、以下のように記述します。

f:id:minB:20190203171822p:plain

ItemPickaxeを継承させています。

また、コンストラクタも必要なので記述してやります。

 

SampleTools.javaに戻り追記。f:id:minB:20190203172645p:plain

ITEMSクラス内で先ほどのSamplePickaxeクラスをインスタンス化します。

引数にはツールマテリアルというものを渡します。

ツールマテリアルの引数は

(ツールマテリアルの名前,回収レベル,耐久値,採掘速度,攻撃力,エンチャントの付きやすさ)

です。

ついでにRegistryNameとUnlocalizedNameも登録しておきます。

 

ここまで来たら後は無機能アイテムと同じ流れです。

 

アイテムとモデルの追加

SampleTools.java

f:id:minB:20190203174014p:plain

 

テクスチャとアイテム名の登録

今回は金ツールのテクスチャをお借りします。

item/samplepickaxe.json

f:id:minB:20190203174148p:plain

 

lang/en_us.lang

f:id:minB:20190203174839p:plain

 

lang/ja_jp.lang

f:id:minB:20190203174914p:plain

 

ここまでできたら、起動してみましょう。

f:id:minB:20190203175634p:plain

Toolタブのところに追加されていれば成功です。

余談ですが、ItemPickaxeを継承したクラスでインスタンス化したアイテムはクリエイティブタブの設定をしなくても自動的にToolタブに振り分けられます。

 

f:id:minB:20190203175840p:plain

ちゃんと石も掘れます。

 

 

いかがだったでしょうか?

他のツールも同じように追加することができます。

なお、他のツール用のクラスを作る際、継承するクラスは

斧: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()に登録します。

下の画像の水色で囲まれた部分が追記した箇所になります。

f:id:minB:20181116180115p:plain

 

次は、registerBlocks()でブロックの登録を行います。

そして、registerModels()でモデルの登録をするという流れです。

f:id:minB:20181116181230p:plain

 

 

次に、テクスチャの指定を行います。

assets/<modid>内にblockstatesフォルダを作り、その中にsample_block.jsonファイルを作ります。

下の画像のように記述してください。

f:id:minB:20181117231608p:plain

 

少しだけ解説。

forge_marker:Minecraft forgeには独自のblockstatesの記述方式があります。それを使用する際にまず、このforge_markerを記述します。数字に関してはあまりわかりませんがとりあえず現在は1しかないようです。

 

defaults:ここでとりあえずのテクスチャを指定します。今回は全面に土のテクスチャを貼り付けてみました。

 

variants:defaultsで指定したテクスチャを上書きすることができます。特定の面だけ指定してテクスチャを変更することができるようです。

 

私も初めてなので理解しきれていませんが、こんなところだと思います。

 

最後にlangファイルで英語名、日本語名を指定したらMinecraftを起動してみましょう。

f:id:minB:20181117232854p:plain

無事登録することができました。

 

それでは今回はここまでです。

お疲れさまでした。

【Minecraft 1.12.2】卵爆弾Modの進捗状況【Mod制作】

どうも、minBです。

 

前回からオリジナルのModを作ってみたいってことで卵爆弾Modなるものを作ってます。

まだ基本的な部分しか終わってませんがその報告を。

 

まずは、アイテムの登録。テクスチャはひとまず卵のを使ってます。

f:id:minB:20181112213050p:plain

 

次は、卵のクラスを参考に、卵のように投げれるようにしました。

f:id:minB:20181112213142p:plain

卵のクラスをそのまま持ってきたのでまだ子供のニワトリが生まれてきてしまいますけどね。

時間がなかったのでとりあえずはここまで。

 

今後は

・テクスチャを作る。

・レシピを追加する。

・ニワトリが産まれないようにする。

・着弾点で爆発の処理を追加する。

こんなかんじで作っていきたいと思います。

それではまた次回。

【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ファイルを作り、中身を書きます。

下の画像のように記述してください。

f:id:minB:20181110163357p:plain

順に解説していきます。

 

2行目、"type"の行で、定型レシピか不定形レシピかを指定しています。

定型レシピなら、"minecraft:crafting_shaped"、

不定形レシピなら、"minecraft:crafting_shapeless"

を記述します。

 

その後、"pattern"でレシピの形を決め、"key"で素材アイテムを設定、

"result"で作成アイテムを設定します。

 

"pattern"でのレシピの形は任意の文字を用いて指定します。

ここで用いられた文字に、次の"key"で、任意のアイテムを紐づけし、レシピを作るわけです。

 

"key"では、

任意の文字:{

    "item":素材アイテム名,

    "data":メタ値

}

のように記述します。

上の画像では、横一列に並べられたXに、土を紐づけしています。

 

"result"でのアイテム指定は"key"とほとんど同じです。

"result":{

    "item":作成アイテム名,

    "data":メタ値,

    "count":作成される個数

}

このように記述します。

今回は、ダイヤモンドが2つ作られるように指定しました。

ちなみに、メタ値って何?って方は後日、記事を書く予定なので少々お待ちください。

 

それでは、実行してみましょう。

f:id:minB:20181110171400p:plain

 

土を3つ横に並べるとダイヤモンドが2つ作成されるはずです。

 

 

次は、素材アイテムを2種類使ったレシピを追加してみましょう。

ファイル名はsample_recipe2にしました。

f:id:minB:20181110173211p:plain

 

"pettern"のレシピの形を"XXX"から"XYX"に変更しました。

そして、"key"では「,」(カンマ)で区切りで、Yのアイテムとして石を指定しています。

 

f:id:minB:20181110173749p:plain

無事、2種類のアイテムを使ったレシピを登録することができました。

 

また、先ほど作った2つのレシピは横1行のレシピでしたが、縦に素材アイテムを並べたレシピを使いしたい場合もあるわけです。

そのときは

f:id:minB:20181110181005p:plain

このように各段で「,」(カンマ)で区切って記述します。

 

f:id:minB:20181110180410p:plain

 

 

ツルハシの棒の部分など、縦軸または横軸でアイテムの位置を固定したいときには、空白にしたい箇所に半角スペースを入れます

f:id:minB:20181110181315p:plain

こんな感じです。見づらいですが、Yの左右に半角スペースが入っています。

 

f:id:minB:20181110181344p:plain

ちゃんと追加できてますね。

 

 

次は不定形レシピを追加していきます。

不定形レシピとは、バニラのキノコシチューなど、どの場所に素材アイテムを置いても大丈夫なレシピのことです。

 

ファイル名はsample_recipe3.jsonです。

f:id:minB:20181111112255p:plain

不定形レシピではレシピの形を指定する必要がないので、素材アイテムと作成アイテムのみ指定するだけです。

素材アイテムは"ingredients"に記述します。複数アイテムを素材にする場合はこれまで同様カンマ区切りです。

 

f:id:minB:20181111113220p:plain

無事追加できました。

 

レシピの追加については以上です。

ありがとうございました。

次回はブロックの追加をしてみようと思います。

【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名にしました。

 

 

f:id:minB:20181107214413p:plain

javaフォルダを右クリック→New→Directoryと進み、

com/sample/samplemod1

と入力します。

そして、samplemod1フォルダで右クリック→new→Java Classで

SampleMod1.java

を作りましょう。

 

 

それでは、中身を書いていきます。

まずは、マイクラにこのjavaファイルをModとして読み込ませます。

下の画像の通りに書いてください。

 

f:id:minB:20181107214423p:plain

クラス内でModのID、名前、バージョンを格納した定数を作成しています。

 

@Mod(~~~~)で、このjavaファイルがModだよ、ということを認識させています。

(~~~~)には、いろいろな設定を書くことができます。

IDのみ必須らしいです。

 

@Mod.EventBusSubscriberは呼び出しを行っているようです。

私もあまり理解できてないです・・・

また後日、追記するかもしれません。

 

 

ここで一度、Modがきちんと認識されているかチェックしてみましょう。

右上の緑色の三角マークを押して、Minecraftを実行して下さい。

 

起動出来たら、Modsを押して下の画像のようにSampleMod1が表示されているかどうか確認してください。

f:id:minB:20181107214440p:plain

 

もし、表示されていない場合、コードに誤字・脱字がないか確認してみてください。

 

 

さて、ここからアイテムの追加を行っていきます。

今回は、無機能アイテムを追加してみたいと思います。

下の画像の通りに追記してください。

 

f:id:minB:20181107214432p:plain

ITEMSという名前のクラスとメソッドを2つ追記しました。

ITEMSはアイテム保持用のクラスです。本来は別のjavaファイルに分けて作ったほうがいいんでしょうけれど、今回は無機能アイテムなので内部クラスとして記述します。

registerItems()はアイテムの登録を行うメソッド、

registerModels()はモデルの登録を行うメソッドです。

 

 

それでは、各メソッドに追記していきます。

下の画像の通りに追記してください。

 

f:id:minB:20181107214438p:plain

 少しだけ説明すると、

.setRegistryName()では、登録名の設定

.setCreativeTab()では、クリエイティブモードの際、このアイテムがどのタブの中に存在するかの設定

.setUnlocalizedName()では、日本語名の登録(後述します)等を行う際に使われる名前の登録

を行います。

 

モデルの登録に関しては、私もあまり理解できていません・・・

申し訳ない・・・

 

次は、テクスチャの設定を行います。

今回は、もともとあるリンゴのテクスチャを流用しています。

 

テクスチャは.json形式で指定します。

まずは、jsonファイルを保存するファイルを作成しましょう。

f:id:minB:20181107220853p:plain

resources→new→Directoryと進み、

assets/samplemod1/models/item

と入力してください。

 

このファイル名は固定で、

assets/<modid>/models/item

となっています。

 

そして、itemフォルダで右クリック→New→Fileと進み、

sample_item.json

を作成します。

 

作成出来たら、以下のように記述してください。

f:id:minB:20181107221941p:plain

 

 

終わったら右上の緑色の三角マークで再びMinecraftを起動してみましょう。

起動できたら、クリエイティブモードでワールドを作り、

Miscellaneousのタブ(左下の溶岩バケツのアイコン)の一番下を確認してみてください

 

・・・リンゴのアイコンをした、item.sample.nameというアイテムがありましたでしょうか?

ありましたら、無事、アイテムの登録に成功したということになります。

f:id:minB:20181107215557p:plain

 

しかし、名前がなんだかしっくりきませんね。

というわけで、名前の変更をしていきます。

 

まずは、先ほど作ったassetsフォルダの中にあるフォルダ、samplemod1フォルダの中にlangという名前で新規フォルダを作成します。

さらに、langフォルダの中に

en_us.lang

ja_jp.lang

この2つのファイルを作ってください。

もし表示形式を選択してくださいと表示が出たら.txtで大丈夫です。

 

このような階層になっているかと思います。

f:id:minB:20181107223604j:plain

 

ファイルが作成できたら、

en_us.langには

item.sample.name=sample_item

 

ja_jp.langには

item.sample.name=サンプルアイテム

と記述してください。

ちなみに、この sampleは、registerItems()メソッドのsetUnlocalizedName()で記述した名前になります。

 

これで、英語、日本語でのアイテム名の登録ができました。

 

もう一度Minecraftを起動し、アイテム名を確認してみましょう。

f:id:minB:20181107214441p:plain

上の画像のように、アイテム名がsample_itemになっているでしょうか。

言語設定を変更して、日本語でも確認してみましょう。

f:id:minB:20181107214446p:plain

アイテム名がサンプルアイテムになっていれば、成功です。

 

 

無機能アイテムの追加の説明は以上です。

いかがだったでしょうか?

私自信、Mod開発初心者、Java初心者と分からないことだらけです。

しかし、少しずつ、ゆっくりでいいからMod開発をしたいという思いでこのブログを始めました。

至らぬ点があると思いますが、温かい目で見守ってもらえるとありがたいです。