提供: Minecraft Modding Wiki
移動先: 案内検索
(前提MODについての注意書き追加)
(不適切な言葉の削除)
1行目: 1行目:
 
== Minecraft のMod開発環境を構築する ==
 
== Minecraft のMod開発環境を構築する ==
 +
 
以下の構築環境は、主に「クライアントユーザ向け」のMOD構築です。<br />
 
以下の構築環境は、主に「クライアントユーザ向け」のMOD構築です。<br />
 +
 
ModLoaderを使用する場合は、<br />
 
ModLoaderを使用する場合は、<br />
 +
 
Setup3の minecraft.jar(Modloader導入済)と minecraft_server.jar(ModLoaderを入れてない状態)の両方を用意して下さい。<br />
 
Setup3の minecraft.jar(Modloader導入済)と minecraft_server.jar(ModLoaderを入れてない状態)の両方を用意して下さい。<br />
  
 
'''※MinecraftForgeを導入する場合は[[MinecraftForge導入手順(MCP)]]を参照してください。'''<br />
 
'''※MinecraftForgeを導入する場合は[[MinecraftForge導入手順(MCP)]]を参照してください。'''<br />
 +
 
<div style="border:#900 2px solid;padding:1ex 1em;background:#f99;font-size:150%;font-weight:bold;line-height:100%;">前提MODについて</div>
 
<div style="border:#900 2px solid;padding:1ex 1em;background:#f99;font-size:150%;font-weight:bold;line-height:100%;">前提MODについて</div>
 +
 
<div style="border:red 4px double;padding:1ex 1em;">
 
<div style="border:red 4px double;padding:1ex 1em;">
 +
 
*1.5.x現在、前提MODはMinecraftForgeが主流になっています。<br />昔はModLoaderが主流でしたが、現在ではForgeの方が以下の理由により好まれる傾向にあります。
 
*1.5.x現在、前提MODはMinecraftForgeが主流になっています。<br />昔はModLoaderが主流でしたが、現在ではForgeの方が以下の理由により好まれる傾向にあります。
 +
 
**更新が早い
 
**更新が早い
 +
 
**導入が簡単
 
**導入が簡単
 +
 
**Moddingしやすい(高度な機能を実現するAPIが豊富)
 
**Moddingしやすい(高度な機能を実現するAPIが豊富)
 +
 
**ModLoader用MODも開発できる(ModLoaderと同じ手法でのModdingもできる)
 
**ModLoader用MODも開発できる(ModLoaderと同じ手法でのModdingもできる)
 +
 
**チュートリアルが充実している
 
**チュートリアルが充実している
 +
 
**意図しなくてもシングル/マルチ両対応MODを開発できる
 
**意図しなくてもシングル/マルチ両対応MODを開発できる
**Forge対応MODが多い(超重要)
+
<!--超重要などは書くべきことでは無いと思われる-->
 +
**Forge対応MODが多い
 +
 
 
*上記の理由により、特にModLoaderにこだわる理由がないのであれば、Forgeを使って開発するようにしましょう。
 
*上記の理由により、特にModLoaderにこだわる理由がないのであれば、Forgeを使って開発するようにしましょう。
 +
 
</div>
 
</div>
  
 
===(Setup.1) JDK(Java SE Development Kit)をダウンロードする===
 
===(Setup.1) JDK(Java SE Development Kit)をダウンロードする===
 +
 
JDK(Java SE Development Kit)をダウンロードするには、<br />
 
JDK(Java SE Development Kit)をダウンロードするには、<br />
 +
 
http://www.oracle.com/technetwork/java/javase/downloads/index.html をクリックして下さい。<br />
 
http://www.oracle.com/technetwork/java/javase/downloads/index.html をクリックして下さい。<br />
 +
 
12/3/6時点でページ内に「Java SE 7u3」と「Java SE 6 Update 31」がありますが、MCPのページに<br />
 
12/3/6時点でページ内に「Java SE 7u3」と「Java SE 6 Update 31」がありますが、MCPのページに<br />
Use the Java6 JDK with MCP, Java7 will not work properly  
+
 
 +
Use the Java6 JDK with MCP, Java7 will not work properly
 +
 
 
とあるので「Java SE 6 Update 31」を使いましょう。<br />
 
とあるので「Java SE 6 Update 31」を使いましょう。<br />
 +
 
Java7でも動くようですが、MOD導入者にJava7を必要とさせることもあるのでJava6にしておいた方が安全です。<br />
 
Java7でも動くようですが、MOD導入者にJava7を必要とさせることもあるのでJava6にしておいた方が安全です。<br />
 +
 
JDK DOWNLOADというボタンがあるのでそのリンクを押します。<br />
 
JDK DOWNLOADというボタンがあるのでそのリンクを押します。<br />
 +
 
そして Oracle Binary Code License Agreement for Java SE に同意するために、<br />
 
そして Oracle Binary Code License Agreement for Java SE に同意するために、<br />
 +
 
Accept License Agreement(訳: ライセンスに同意する)のラジオボタンを選択(クリック)して、<br />
 
Accept License Agreement(訳: ライセンスに同意する)のラジオボタンを選択(クリック)して、<br />
 +
 
その後、自分のプラットフォームに合わせたJDKのダウンロードリンクをクリックしましょう。 <br />
 
その後、自分のプラットフォームに合わせたJDKのダウンロードリンクをクリックしましょう。 <br />
  
33行目: 58行目:
  
 
===(Setup.2) Minecraft Code Pack(MCP) を入手===
 
===(Setup.2) Minecraft Code Pack(MCP) を入手===
 +
 
'''Download:''' http://mcp.ocean-labs.de/index.php/MCP_Releases
 
'''Download:''' http://mcp.ocean-labs.de/index.php/MCP_Releases
  
 
上記をダウンロード後、mcp(バージョン).zip を解凍して下さい。<br />
 
上記をダウンロード後、mcp(バージョン).zip を解凍して下さい。<br />
 +
 
解凍後は、適当な場所(例: C:\McRoot\ ) にフォルダを生成し、解凍した中身を移す。<br />
 
解凍後は、適当な場所(例: C:\McRoot\ ) にフォルダを生成し、解凍した中身を移す。<br />
 +
 
(※フォルダ名は、日本語等のマルチバイトの場合、不具合が起きる可能性があるため、英数をお勧めします)<br />
 
(※フォルダ名は、日本語等のマルチバイトの場合、不具合が起きる可能性があるため、英数をお勧めします)<br />
  
 
===(Setup.3) Minecraft 関連をダウンロードとコピーペースト===
 
===(Setup.3) Minecraft 関連をダウンロードとコピーペースト===
 +
 
1. Minecraft Server Jar(minecraft_server.jar)をダウンロードする。 ('''Download:''' http://www.minecraft.net/download ))<br />
 
1. Minecraft Server Jar(minecraft_server.jar)をダウンロードする。 ('''Download:''' http://www.minecraft.net/download ))<br />
 +
 
2. minecraft_server.jar をMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う<br />
 
2. minecraft_server.jar をMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う<br />
 +
 
3. %appdata%\.minecraft/bin を、フォルダごとMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う<br />
 
3. %appdata%\.minecraft/bin を、フォルダごとMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う<br />
 +
 
4. %appdata%\.minecraft/resource を、フォルダごとMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う<br />
 
4. %appdata%\.minecraft/resource を、フォルダごとMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う<br />
  
 
===(Setup.4) デコンパイルを行おう===
 
===(Setup.4) デコンパイルを行おう===
 +
 
1. 先程適当な場所(例: C:\McRoot\) に decompile.bat というファイルがあるので、それをダブルクリックする。<br />
 
1. 先程適当な場所(例: C:\McRoot\) に decompile.bat というファイルがあるので、それをダブルクリックする。<br />
 +
 
2. するとデコンパイルが始まるので、終わるまでお茶でも飲んで待っていよう<br />
 
2. するとデコンパイルが始まるので、終わるまでお茶でも飲んで待っていよう<br />
 +
 
3. デコンパイルされたソースは、先程適当な場所(例: C:\McRoot\src ) 内に展開される<br />
 
3. デコンパイルされたソースは、先程適当な場所(例: C:\McRoot\src ) 内に展開される<br />
 +
 
  ├この時点で失敗する場合は、minecraft.jar, minecraft_server.jar, MCP のいずれかのバージョンが合っていない可能性がある。<br />
 
  ├この時点で失敗する場合は、minecraft.jar, minecraft_server.jar, MCP のいずれかのバージョンが合っていない可能性がある。<br />
 +
 
  └ macの場合は、ターミナルでMCPROOT/へ移動した後./decompile.shと入力してdecompile.shを実行する。<br />
 
  └ macの場合は、ターミナルでMCPROOT/へ移動した後./decompile.shと入力してdecompile.shを実行する。<br />
 +
 
4. ModLoaderを導入した場合は、MCPROOT/src/minecraft/net/~/srcフォルダ内に<br />
 
4. ModLoaderを導入した場合は、MCPROOT/src/minecraft/net/~/srcフォルダ内に<br />
 +
 
  BaseMod.java, ModLoader.java も展開される。(ModLoader 導入成功)<br />
 
  BaseMod.java, ModLoader.java も展開される。(ModLoader 導入成功)<br />
 +
 
  └MCP 2.X 以前の様に enable_modloader.bat を実行する必要はありません。(実行すると不具合が発生する)<br />
 
  └MCP 2.X 以前の様に enable_modloader.bat を実行する必要はありません。(実行すると不具合が発生する)<br />
 +
 
(Option)<br/>
 
(Option)<br/>
 +
 
5. このままではMLPropが使えないので、ModLoaderの配布ページ ('''Download:''' http://www.minecraftforum.net/topic/75440-v125-risugamis-mods-everything-updated/ ))<br />からDecompileFixesをダウンロードし<br/>
 
5. このままではMLPropが使えないので、ModLoaderの配布ページ ('''Download:''' http://www.minecraftforum.net/topic/75440-v125-risugamis-mods-everything-updated/ ))<br />からDecompileFixesをダウンロードし<br/>
 +
 
  解凍したMLProp.javaをMCPROOT/src/minecraft/net/minecraft/src/minecraft/net/minecraft/srcフォルダ内に上書きする。<br/>
 
  解凍したMLProp.javaをMCPROOT/src/minecraft/net/minecraft/src/minecraft/net/minecraft/srcフォルダ内に上書きする。<br/>
 +
 
  MLProp.javaを開いて1行目のコメントアウトを削除する。
 
  MLProp.javaを開いて1行目のコメントアウトを削除する。
 +
 
//package net.minecraft.src; → package net.minecraft.src;
 
//package net.minecraft.src; → package net.minecraft.src;
  
 
==ソースファイルの作成==
 
==ソースファイルの作成==
 +
 
既存のクラスを変更する場合は C:\McRoot\src/minecraft/net/minecraft/src/ 内にあるソースコードを変更する。<br />
 
既存のクラスを変更する場合は C:\McRoot\src/minecraft/net/minecraft/src/ 内にあるソースコードを変更する。<br />
 +
 
自作のクラスを追加する場合も、このフォルダに追加する。<br />
 
自作のクラスを追加する場合も、このフォルダに追加する。<br />
+
 
 
最初の内は無理をせず BlockXXX.java や ItemXXX.java などをコピーして練習すると感触をつかみやすい。<br />
 
最初の内は無理をせず BlockXXX.java や ItemXXX.java などをコピーして練習すると感触をつかみやすい。<br />
 +
 
欲しい機能がある場合は、その機能を持つソースを覗いてみよう。(爆発を起こしたい→クリーパーのソースを見る…など)<br />
 
欲しい機能がある場合は、その機能を持つソースを覗いてみよう。(爆発を起こしたい→クリーパーのソースを見る…など)<br />
+
 
 
既存のクラスを変更すると、他の MOD と競合することがあるので、レシピの追加などは ModLoader を使ったほうが無難。<br />
 
既存のクラスを変更すると、他の MOD と競合することがあるので、レシピの追加などは ModLoader を使ったほうが無難。<br />
 +
 
ModLoaderを使用する場合は、BaseModを継承したクラスを作成する。<br />
 
ModLoaderを使用する場合は、BaseModを継承したクラスを作成する。<br />
 +
 
その際クラス名の先頭に"mod_"というプレフィックスをつけること。(つけないと ModLoader から認識されません)<br />
 
その際クラス名の先頭に"mod_"というプレフィックスをつけること。(つけないと ModLoader から認識されません)<br />
  
 
cleanup.bat を実行すると、'''decompile 時に生成されたフォルダ以下が全て削除'''されます。<br />
 
cleanup.bat を実行すると、'''decompile 時に生成されたフォルダ以下が全て削除'''されます。<br />
 +
 
ソースコードは必ずバックアップを取ることを推奨 します。<br />
 
ソースコードは必ずバックアップを取ることを推奨 します。<br />
  
 
==リソースの作成と配置==
 
==リソースの作成と配置==
 +
 
自作のテクスチャを使用する場合は、作成して好きな場所に保存しておくこと。<br />
 
自作のテクスチャを使用する場合は、作成して好きな場所に保存しておくこと。<br />
+
 
 
自作のリソースは C:\McRoot\bin\minecraft\ に配置する。<br />
 
自作のリソースは C:\McRoot\bin\minecraft\ に配置する。<br />
 +
 
公式のファイルとの区別がつきやすいようなフォルダ名・ファイル名にするのが良い。<br />
 
公式のファイルとの区別がつきやすいようなフォルダ名・ファイル名にするのが良い。<br />
 +
 
(例 : C:\McRoot\bin\minecraft\mod\sample.png など)<br />
 
(例 : C:\McRoot\bin\minecraft\mod\sample.png など)<br />
  
 
cleanup.batを実行すると、'''decompile時に生成されたフォルダ以下が全て削除'''されます。<br />
 
cleanup.batを実行すると、'''decompile時に生成されたフォルダ以下が全て削除'''されます。<br />
 +
 
リソースのマスターデータは別のフォルダにバックアップをすることを推奨 します。<br />
 
リソースのマスターデータは別のフォルダにバックアップをすることを推奨 します。<br />
  
 
Eclipseを使用している場合<br />
 
Eclipseを使用している場合<br />
  
minecraft.jarにリソースファイル(主にテクスチャ等の画像)を入れる場合<br />
+
minecraft.jarにリソースファイル(主にテクスチャ等の画像)を入れる場合<br />
C:\McRoot\jars\bin\に入ってる'''minecraft.jar'''の中に配置する。<br />
+
 
 +
C:\McRoot\jars\bin\に入ってる'''minecraft.jar'''の中に配置する。<br />
 +
 
 +
.minecraftフォルダの中に入れる場合<br />
  
.minecraftフォルダの中に入れる場合<br />
+
C:\Users\(ユーザー名)\AppData\Roaming\.minecraftの中の任意のフォルダに入れる。<br />
C:\Users\(ユーザー名)\AppData\Roaming\.minecraftの中の任意のフォルダに入れる。<br />
+
 
+
設定ファイルは'''.minecraft\configか.minecraft\mods'''に入れる。<br />
設定ファイルは'''.minecraft\configか.minecraft\mods'''に入れる。<br />
+
 
音声ファイルは'''.minecraft\resource\mods'''に入れる。<br />
+
音声ファイルは'''.minecraft\resource\mods'''に入れる。<br />
  
 
==コンパイル==
 
==コンパイル==
 +
 
recompile.batを実行する。<br />
 
recompile.batを実行する。<br />
 +
 
エラーが出た場合は、コマンドプロンプトに詳細が表示されるので原因を取り除く。<br />
 
エラーが出た場合は、コマンドプロンプトに詳細が表示されるので原因を取り除く。<br />
 +
 
コンパイルに失敗した場合、テストプレイを実行できない。<br />
 
コンパイルに失敗した場合、テストプレイを実行できない。<br />
  
103行目: 164行目:
  
 
==動作テスト==
 
==動作テスト==
 +
 
startclient.bat を実行すると、変更を加えた状態でテストを行える。<br />
 
startclient.bat を実行すると、変更を加えた状態でテストを行える。<br />
 +
 
テストプレイ時は C:\McRoot\jars\ が .minecraft\に相当し、セーブファイルは C:\McRoot\jars\saves に作成される。<br />
 
テストプレイ時は C:\McRoot\jars\ が .minecraft\に相当し、セーブファイルは C:\McRoot\jars\saves に作成される。<br />
+
 
 
テストのためのアイテムやブロックがないときは、既存のセーブデータのコピーによって対処するといいだろう。<br />
 
テストのためのアイテムやブロックがないときは、既存のセーブデータのコピーによって対処するといいだろう。<br />
 +
 
動作テストで満足できないときは、1に戻ってやり直そう。<br />
 
動作テストで満足できないときは、1に戻ってやり直そう。<br />
  
 
==配布ファイルの出力==
 
==配布ファイルの出力==
 +
 
※MCP 3.X で大きく仕様が変更されたので注意。 <br />
 
※MCP 3.X で大きく仕様が変更されたので注意。 <br />
 +
 
配布するファイルを出力する場合は C:\McRoot\reobfuscate.bat を実行する。<br />
 
配布するファイルを出力する場合は C:\McRoot\reobfuscate.bat を実行する。<br />
 +
 
ファイル作成に成功すると MCPROOT/reobf に配布する class ファイルとリソースデータが出力される。<br />
 
ファイル作成に成功すると MCPROOT/reobf に配布する class ファイルとリソースデータが出力される。<br />
 +
 
MPC 2.X 以前の様にファイルを列挙する必要はない。<br />
 
MPC 2.X 以前の様にファイルを列挙する必要はない。<br />
  
 
==自作MODを実際に導入して最終テスト==
 
==自作MODを実際に導入して最終テスト==
 +
 
実際に minecraft.jar に導入してテストを行う。<br />
 
実際に minecraft.jar に導入してテストを行う。<br />
  
 
ModLoader を入れた場合、 ModLoader を導入 したあと class ファイルをZIP内に書き込む。<br />
 
ModLoader を入れた場合、 ModLoader を導入 したあと class ファイルをZIP内に書き込む。<br />
 +
 
もちろん META-INF は削除すること。<br />
 
もちろん META-INF は削除すること。<br />
+
 
 
最後に起動テストをして完了。<br />
 
最後に起動テストをして完了。<br />
 +
 
うまくいったら好きな場所に公開してみよう。<br />
 
うまくいったら好きな場所に公開してみよう。<br />
  
 
==バッチファイル一覧==
 
==バッチファイル一覧==
 +
 
* decompile
 
* decompile
 +
 
minecraft.jar、minecraft_server.jar をデコンパイルして、ソースファイルを src フォルダに出力する
 
minecraft.jar、minecraft_server.jar をデコンパイルして、ソースファイルを src フォルダに出力する
 +
 
* recompile
 
* recompile
 +
 
src フォルダにあるソースファイルをコンパイルし、minecraft.jar、minecraft_server.jar を作成する
 
src フォルダにあるソースファイルをコンパイルし、minecraft.jar、minecraft_server.jar を作成する
 +
 
* startclient
 
* startclient
 +
 
コンパイルされた minecraft.jar を実行し、ゲームを実行する
 
コンパイルされた minecraft.jar を実行し、ゲームを実行する
 +
 
* startserver
 
* startserver
 +
 
コンパイルされた minecraft_server.jar を実行し、サーバーを立てる
 
コンパイルされた minecraft_server.jar を実行し、サーバーを立てる
 +
 
* reobfuscate
 
* reobfuscate
 +
 
実行ファイルから差分ファイルを割り出し、配布用の class ファイルとリソースを出力する
 
実行ファイルから差分ファイルを割り出し、配布用の class ファイルとリソースを出力する
 +
 
* cleanup
 
* cleanup
 +
 
デコンパイルで作成されたフォルダを全て削除する (削除されたファイルは元に戻せないので注意)
 
デコンパイルで作成されたフォルダを全て削除する (削除されたファイルは元に戻せないので注意)
  

2013年5月9日 (木) 02:54時点における版

Minecraft のMod開発環境を構築する

以下の構築環境は、主に「クライアントユーザ向け」のMOD構築です。

ModLoaderを使用する場合は、

Setup3の minecraft.jar(Modloader導入済)と minecraft_server.jar(ModLoaderを入れてない状態)の両方を用意して下さい。

※MinecraftForgeを導入する場合はMinecraftForge導入手順(MCP)を参照してください。

前提MODについて
  • 1.5.x現在、前提MODはMinecraftForgeが主流になっています。
    昔はModLoaderが主流でしたが、現在ではForgeの方が以下の理由により好まれる傾向にあります。
    • 更新が早い
    • 導入が簡単
    • Moddingしやすい(高度な機能を実現するAPIが豊富)
    • ModLoader用MODも開発できる(ModLoaderと同じ手法でのModdingもできる)
    • チュートリアルが充実している
    • 意図しなくてもシングル/マルチ両対応MODを開発できる
    • Forge対応MODが多い
  • 上記の理由により、特にModLoaderにこだわる理由がないのであれば、Forgeを使って開発するようにしましょう。

(Setup.1) JDK(Java SE Development Kit)をダウンロードする

JDK(Java SE Development Kit)をダウンロードするには、

http://www.oracle.com/technetwork/java/javase/downloads/index.html をクリックして下さい。

12/3/6時点でページ内に「Java SE 7u3」と「Java SE 6 Update 31」がありますが、MCPのページに

Use the Java6 JDK with MCP, Java7 will not work properly

とあるので「Java SE 6 Update 31」を使いましょう。

Java7でも動くようですが、MOD導入者にJava7を必要とさせることもあるのでJava6にしておいた方が安全です。

JDK DOWNLOADというボタンがあるのでそのリンクを押します。

そして Oracle Binary Code License Agreement for Java SE に同意するために、

Accept License Agreement(訳: ライセンスに同意する)のラジオボタンを選択(クリック)して、

その後、自分のプラットフォームに合わせたJDKのダウンロードリンクをクリックしましょう。

JDKのインストール後、環境変数の設定が必要なことがあります(ほぼ必ず)

(Setup.2) Minecraft Code Pack(MCP) を入手

Download: http://mcp.ocean-labs.de/index.php/MCP_Releases

上記をダウンロード後、mcp(バージョン).zip を解凍して下さい。

解凍後は、適当な場所(例: C:\McRoot\ ) にフォルダを生成し、解凍した中身を移す。

(※フォルダ名は、日本語等のマルチバイトの場合、不具合が起きる可能性があるため、英数をお勧めします)

(Setup.3) Minecraft 関連をダウンロードとコピーペースト

1. Minecraft Server Jar(minecraft_server.jar)をダウンロードする。 (Download: http://www.minecraft.net/download ))

2. minecraft_server.jar をMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う

3. %appdata%\.minecraft/bin を、フォルダごとMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う

4. %appdata%\.minecraft/resource を、フォルダごとMCPを設置した場所の\jars(例: C:\McRoot\jars )にコピーを行う

(Setup.4) デコンパイルを行おう

1. 先程適当な場所(例: C:\McRoot\) に decompile.bat というファイルがあるので、それをダブルクリックする。

2. するとデコンパイルが始まるので、終わるまでお茶でも飲んで待っていよう

3. デコンパイルされたソースは、先程適当な場所(例: C:\McRoot\src ) 内に展開される

  ├この時点で失敗する場合は、minecraft.jar, minecraft_server.jar, MCP のいずれかのバージョンが合っていない可能性がある。

  └ macの場合は、ターミナルでMCPROOT/へ移動した後./decompile.shと入力してdecompile.shを実行する。

4. ModLoaderを導入した場合は、MCPROOT/src/minecraft/net/~/srcフォルダ内に

  BaseMod.java, ModLoader.java も展開される。(ModLoader 導入成功)

  └MCP 2.X 以前の様に enable_modloader.bat を実行する必要はありません。(実行すると不具合が発生する)

(Option)

5. このままではMLPropが使えないので、ModLoaderの配布ページ (Download: http://www.minecraftforum.net/topic/75440-v125-risugamis-mods-everything-updated/ ))
からDecompileFixesをダウンロードし

  解凍したMLProp.javaをMCPROOT/src/minecraft/net/minecraft/src/minecraft/net/minecraft/srcフォルダ内に上書きする。

  MLProp.javaを開いて1行目のコメントアウトを削除する。

//package net.minecraft.src; → package net.minecraft.src;

ソースファイルの作成

既存のクラスを変更する場合は C:\McRoot\src/minecraft/net/minecraft/src/ 内にあるソースコードを変更する。

自作のクラスを追加する場合も、このフォルダに追加する。

最初の内は無理をせず BlockXXX.java や ItemXXX.java などをコピーして練習すると感触をつかみやすい。

欲しい機能がある場合は、その機能を持つソースを覗いてみよう。(爆発を起こしたい→クリーパーのソースを見る…など)

既存のクラスを変更すると、他の MOD と競合することがあるので、レシピの追加などは ModLoader を使ったほうが無難。

ModLoaderを使用する場合は、BaseModを継承したクラスを作成する。

その際クラス名の先頭に"mod_"というプレフィックスをつけること。(つけないと ModLoader から認識されません)

cleanup.bat を実行すると、decompile 時に生成されたフォルダ以下が全て削除されます。

ソースコードは必ずバックアップを取ることを推奨 します。

リソースの作成と配置

自作のテクスチャを使用する場合は、作成して好きな場所に保存しておくこと。

自作のリソースは C:\McRoot\bin\minecraft\ に配置する。

公式のファイルとの区別がつきやすいようなフォルダ名・ファイル名にするのが良い。

(例 : C:\McRoot\bin\minecraft\mod\sample.png など)

cleanup.batを実行すると、decompile時に生成されたフォルダ以下が全て削除されます。

リソースのマスターデータは別のフォルダにバックアップをすることを推奨 します。

Eclipseを使用している場合

minecraft.jarにリソースファイル(主にテクスチャ等の画像)を入れる場合

C:\McRoot\jars\bin\に入ってるminecraft.jarの中に配置する。

.minecraftフォルダの中に入れる場合

C:\Users\(ユーザー名)\AppData\Roaming\.minecraftの中の任意のフォルダに入れる。

設定ファイルは.minecraft\configか.minecraft\modsに入れる。

音声ファイルは.minecraft\resource\modsに入れる。

コンパイル

recompile.batを実行する。

エラーが出た場合は、コマンドプロンプトに詳細が表示されるので原因を取り除く。

コンパイルに失敗した場合、テストプレイを実行できない。

日本語のコメントを記述した場合、コンパイルに失敗するため、/MCPROOT/conf/mcp.cfg内のCmdRecompの末端に "-encoding utf-8" と記述することによりコンパイルすることができるようなる。

動作テスト

startclient.bat を実行すると、変更を加えた状態でテストを行える。

テストプレイ時は C:\McRoot\jars\ が .minecraft\に相当し、セーブファイルは C:\McRoot\jars\saves に作成される。

テストのためのアイテムやブロックがないときは、既存のセーブデータのコピーによって対処するといいだろう。

動作テストで満足できないときは、1に戻ってやり直そう。

配布ファイルの出力

※MCP 3.X で大きく仕様が変更されたので注意。

配布するファイルを出力する場合は C:\McRoot\reobfuscate.bat を実行する。

ファイル作成に成功すると MCPROOT/reobf に配布する class ファイルとリソースデータが出力される。

MPC 2.X 以前の様にファイルを列挙する必要はない。

自作MODを実際に導入して最終テスト

実際に minecraft.jar に導入してテストを行う。

ModLoader を入れた場合、 ModLoader を導入 したあと class ファイルをZIP内に書き込む。

もちろん META-INF は削除すること。

最後に起動テストをして完了。

うまくいったら好きな場所に公開してみよう。

バッチファイル一覧

  • decompile

minecraft.jar、minecraft_server.jar をデコンパイルして、ソースファイルを src フォルダに出力する

  • recompile

src フォルダにあるソースファイルをコンパイルし、minecraft.jar、minecraft_server.jar を作成する

  • startclient

コンパイルされた minecraft.jar を実行し、ゲームを実行する

  • startserver

コンパイルされた minecraft_server.jar を実行し、サーバーを立てる

  • reobfuscate

実行ファイルから差分ファイルを割り出し、配布用の class ファイルとリソースを出力する

  • cleanup

デコンパイルで作成されたフォルダを全て削除する (削除されたファイルは元に戻せないので注意)

動画

Minecraft MODの作り方講座 【下準備編】