※現在Modding関連ページをMinecraft Modding Wikiに移植するかどうか検討中です。
Wiki運営掲示板でこれについてのご意見を募集しています。
Modding(MOD作成)に関してメモ程度にまとめ。
Javaの知識がある程度必要。全くの素人でもすこしずつ慣れていけば作れるはずです。
MOD製作に関する情報交換、質問などのためのIRCチャンネルでは Modding初心者のサポートも行なっています。
サーバ:irc.friend-chat.jp
チャンネル名:#minecraftmoddingJP
ぜひ利用してみてください。
この記事は Minecraft 1.3.2 , MCP 7.2 , ModLoader 1.3.2の時点 で書かれたものです。
ツール名 | コメント |
JDK | Minecraft自体がJavaで作られているので必須。 |
|
ほぼ必須。プログラムのデコンパイル&再コンパイルを行うツール群。 |
|
MOD作成において要求頻度の高い様々な拡張機能を総合的に補助する拡張API。 導入必須ではないが、上手く活用すればMOD開発において大きな助けになる場合がある。 |
Eclipse |
有名なJava開発環境であり無料かつ高機能なソフト。あるとかなり便利なので入れておくことを推奨する。 ただし、Minecraft1個起動してメモリがいっぱいになるようではあまりおすすめはできない(結構メモリを消費するため) |
ModLoaderとの統合を行った場合の作成方法についてメインに書いてゆく。
ModLoader を導入する場合は、事前に用意する minecraft.jar に多少の違いがあるので注意が必要。
MOD を入れていない状態
の
minecraft.jar, minecraft_server.jar
を用意する。
ModLoader だけを入れた
minecraft.jar
を用意する。
minecraft_server.jar
は、
MOD を入れていない状態
のものを用意する。
必ず minecraft.jar, MCP, ModLoader の対応バージョンを合わせること。
デコンパイル時に以下のエラーメッセージが出るが気にしなくてもよい。
1 out of 1hunk FAILED -- saving rejects to file 'net\minecraft\src\RenderBlocks.#'
デコンパイル後
ModLoaderを使う場合、ModLoaderの配布ページからDecompile Fixesを落として、それを解凍した中にあるMLProp.javaファイル1行目を
//package net.minecraft.src; → package net.minecraft.src;
と変更する
そしてそのMLProp.javaを、MCPROOT/src/minecraft/net/minecraft/srcフォルダ内に上書きしてください
既存のクラスを変更する場合は MCPROOT/src/minecraft/net/minecraft/src/ 内にあるソースコードを変更する。
自作のクラスを追加する場合も、このフォルダに追加する。
クラスをパッケージ分けすることもできるがModLoaderを使用するときにmod_Hogeのクラスは必ずnet.minecraft.srcに入れること。
でないとエラーをはくかmodが読み込まれない。
最初の内は無理をせず BlockXXX.java や ItemXXX.java などをコピーして練習すると感触をつかみやすい。
欲しい機能がある場合は、その機能を持つソースを覗いてみよう。(爆発を起こしたい→クリーパーのソースを見る…など)
既存のクラスを変更すると、他の MOD と競合することがあるので、レシピの追加などは ModLoader を使ったほうが無難。
ModLoaderを使用する場合は、BaseModを継承したクラスを作成する。
その際クラス名の先頭に"mod_"というプレフィックスをつけること。(つけないと ModLoader から認識されません)
cleanup.bat を実行すると、decompile 時に生成されたフォルダ以下が全て削除されます。
ソースコードは必ずバックアップを取ることを推奨
します。
自作のテクスチャを使用する場合は、作成して好きな場所に保存しておくこと。
自作のリソースは MCPROOT/bin/minecraft/ に配置する。
公式のファイルとの区別がつきやすいようなフォルダ名・ファイル名にするのが良い。
(例 : MCPROOT/bin/minecraft/mod/sample.png など)
(Eclipseを使用する場合は必ず
mcp以外の場所
にバックアップを取り、リソースはMCPROOT/eclipse/Client/bin/に配置する)
cleanup.batを実行すると、decompile時に生成されたフォルダ以下が全て削除されます。
リソースのマスターデータは別のフォルダにバックアップをすることを推奨
します。
recompile.batを実行する。
エラーが出た場合は、コマンドプロンプトに詳細が表示されるので原因を取り除く。
コンパイルに失敗した場合、テストプレイを実行できない。
(Eclipseを使用する場合でテストプレイをする場合はこの作業はいらない)
startclient.bat を実行すると、変更を加えた状態でテストを行える。
テストプレイ時は MCPROOT/jars/ が .minecraft/ に相当し、セーブファイルは MCPROOT/jars/saves に作成される。
(Eclipseを使用する場合この方法以外を使用する(後述))
テストのためのアイテムやブロックがないときは、既存のセーブデータのコピーによって対処するといいだろう。
動作テストで満足できないときは、1に戻ってやり直そう。
配布するファイルを出力する場合は MCPROOT/reobfuscate.bat を実行する。
ファイル作成に成功すると MCPROOT/reobf に配布する class ファイルとリソースデータが出力される。
(Eclipseを使用する場合、先にrecompile.batを起動しリコンパイルしてからreobfuscate.batを起動する。)
実際に minecraft.jar に導入してテストを行う。
ModLoaderを使った場合はclassファイル群をzip化しmodsフォルダにいれる。
もちろん minecraft.jar内の META-INFフォルダ は削除すること。
最後に起動テストをして完了。
うまくいったら好きな場所に公開してみよう。
先に上の動作の1のデコパイル作業をMCP上で行う
ここからEclipseの日本語版をDLし適当な位置に解凍する。
(このとき、Windowsのパスの長さの制限(以下MAX_PATH)である260文字を超えると解凍時にエラーが出る。
エラーが出た場合、解凍時のディレクトリパスをMAX_PATHを超えないような場所にすること)
解凍が完了したら、eclipse.exeを実行(このとき、eclipse -clean.batの実行をおすすめする)
ワークスペース・ランチャーが起動するのでMCPROOT/eclipse/を指定して「OK」を押す
modを作成していて、間違った文を書くと
という風に波下線が表示される。
テストプレイは
をクリックするとできる。
Eclipseでのコメント // や /* */などを使って日本語を打たないでください 文字化けでMCP上で読み込めないことが多いです。
また、先に日本語で書いてあるコメントも読み込むと文字化けしてしまうことが多いため、注意が必要
日本語を打ちたい場合は保存時に文字コードをMS932にするかEclipseの設定>一般>ワークスペース>エンコードの文字コードをMS932にしてください。
minecraft.jar、minecraft_server.jar をデコンパイルして、ソースファイルを src フォルダに出力する
src フォルダにあるソースファイルをコンパイルし、minecraft.jar、minecraft_server.jar を作成する
MCPROOT/modsrcフォルダに変更したMODのソースが出力される おもにソース配布用
コンパイルされた minecraft.jar を実行し、ゲームを実行する
コンパイルされた minecraft_server.jar を実行し、サーバーを立てる
実行ファイルから差分ファイルを割り出し、配布用の class ファイルとリソースを出力する
デコンパイルで作成されたフォルダを全て削除する (削除されたファイルは元に戻せないので注意)
ファイルのMD5を更新する
MCP本体のアップデート
まずはここで自分の目的にあったチュートリアルがないかを探しましょう
コメント欄の方針に関してはコメント欄方針を参照して下さい。
wikiの編集が苦手な方は、以下のコメントフォームへ書き込んで頂ければ有志でページに取り込みます。
※コメントを投稿する際は、以下の点を確認して下さい※