にほたもるのブログ

にほたもるがゲームなどについて気ままに書くブログです。

Minecraft 1.12.2 MOD制作日記

 どうも。にほです。

最近記事を書くことが無さ過ぎてまったく更新していなかったのですが、せっかくなので日記形式で現在作っているマイクラのMODの制作過程を書いていけたらなぁと思った次第です。

 

とはいっても、既にMODの基礎は出来上がっている状態なので、日記というよりこれまでにやってきたことを振り返るような感じになってしまいます。加えて大して技術的なことはしておりませんし、MOD制作のチュートリアル的なものでもありません。ですので、期待はしないでください(^^; MOD制作のチュートリアルは、近いうちにブログではなく自分のサイトで紹介しようかなぁと思っております。

 

さて、これだけで終わるのも何なので、メインクラスくらいまでは書いてしまおうかなと。といっても、通常のプログラムのようにmain関数から始まって…というわけではないので、メインクラスというのも若干語弊がありますが。

 

まずは、src/main/javaの直下に適当なパッケージを作ります。そこに新しいクラスMain.javaを作っていきます。このMain.javaには、様々なMOD情報を記述していくことになります。このプログラムがMODであることを示すための情報ですね。その中の情報に、MODIDというMODを表す一意の文字列を記述しなければなりません。このMODIDは、Main.javaの中に直接書いてしまってもいいのですが、様々なところから参照するので、他のクラスを作ってそこから参照させるようにします。

 

何故参照するためのクラスを作るかというと、仮に後でMOD内のいろんなところで参照したい値ができてきたときにも同様にして値を宣言・定義するのですが、参照したい値がいろんなクラスに点在しているととても分かりにくいです。MODIDがMain.javaにあって、MOD名がName.javaにあって、MODバージョンがVersion.javaにあって…となると、ソースコードを書くのも大変です。なので、システムで利用する値は全部同じファイルに纏めてしまいます。

 

とりあえず新しいクラスを作りましょう。一般的にはReference.javaとするようですが(Referenceは参照の意味)、私はこのサイトでゲームプログラミングを勉強したので、Define.javaという風に名前を付けました。変数は、MODのIDとMOD名、MODバージョンを用意すればいいでしょう。変数名は適当でいいので、わかりやすい名前をつけましょう。

 

package doph.niho.melonpan.system;


public class Define {

    public static final String MODID = "melonpan";

    public static final String MOD_NAME = "Melonpan Mod";

    public static final String MOD_VERSION = "0.00";

}

 

 これで、Defineクラスを通じてMODのデータを参照できるようになりました。

 

それではメインクラスです。

 

package doph.niho.melonpan.system;

 

import net.minecraftforge.fml.common.Mod;

 

@Mod(modid = Define.MODID, name = Define.MOD_NAME, version = Define.MOD_VERSION)

public class Main {

    

 

これでメインクラスの雛型が出来上がりました。ここに、初期化処理や登録処理等を書いていくことになります。

 

さて、今回はこの辺で。次回はアイテムの追加について書いていきたいと思います。それではまた。