Modding

※現在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の時点 で書かれたものです。

目次


MOD作成に必要なソフト・ツール一覧

ツール名 コメント
JDK Minecraft自体がJavaで作られているので必須。
Mod Coder Pack(MCP) ほぼ必須。プログラムのデコンパイル&再コンパイルを行うツール群。フォーラム
MinecraftForge MOD作成において要求頻度の高い様々な拡張機能を総合的に補助する拡張API。
導入必須ではないが、上手く活用すればMOD開発において大きな助けになる場合がある。解説
Eclipse 有名なJava開発環境であり無料かつ高機能なソフト。あるとかなり便利なので入れておくことを推奨する。
ただし、Minecraft1個起動してメモリがいっぱいになるようではあまりおすすめはできない(結構メモリを消費するため)


クライアントMODの作成の大まかな流れ

ModLoaderとの統合を行った場合の作成方法についてメインに書いてゆく。

0.データの準備

ModLoader を導入する場合は、事前に用意する minecraft.jar に多少の違いがあるので注意が必要。

ModLoader を導入しない場合

  MOD を入れていない状態 minecraft.jar, minecraft_server.jar を用意する。

ModLoader を導入する場合

  ModLoader だけを入れた minecraft.jar を用意する。
  minecraft_server.jar は、 MOD を入れていない状態 のものを用意する。
 必ず minecraft.jar, MCP, ModLoader の対応バージョンを合わせること。

1.MCPのインストール(Windows の場合)

  1. JDKのインストール&パスを通す。( JREではなくJDK )→参考
  2. Minecraft Code Pack(MCP)を入手して、適当な場所に解凍。(ここでは仮にmcpのフォルダを MCPROOT/ とする)
    • 日本語を含んだパスだと不具合が出る場合あり。デスクトップやマイドキュメントの中は避けたほうが良い。
  3. minecraft_server.jar を公式から落としてきて、MCPROOT/jars にコピー。
  4. %appdata%\.minecraft/bin を、まるごと MCPROOT/jars にコピー。
  5. %appdata%\.minecraft/resource を、まるごと MCPROOT/jars にコピー。
  6. decompile.bat をダブルクリックすると、デコンパイルが始まる。ソースは MCPROOT/src の中に展開される。
    • この時点で失敗する場合は、minecraft.jar, minecraft_server.jar, MCP のいずれかのバージョンが合っていない可能性がある。
    • macの場合は、ターミナルでMCPROOT/へ移動した後./decompile.shと入力してdecompile.shを実行する。
  7. ModLoaderを導入した場合は、MCPROOT/src/minecraft/net/minecraft/srcフォルダ内に BaseMod.java, ModLoader.java も展開される。(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フォルダ内に上書きしてください

(※下のコメントより抜粋→1.6以降はMCPでのデコンパイル方法が変わってます。.minecraftフォルダにあるassets、libraries、versionsをMCPROOT/jarsに入れます。minecraft_server.1.6.x.jarも同じフォルダにいれます。今までのようなbinとresourceは必要ありません。(不要なら削除を))

2.ソースファイルの作成

 既存のクラスを変更する場合は 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 時に生成されたフォルダ以下が全て削除されます。
  ソースコードは必ずバックアップを取ることを推奨 します。

3.リソースの作成と配置

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

 自作のリソースは MCPROOT/bin/minecraft/ に配置する。
 公式のファイルとの区別がつきやすいようなフォルダ名・ファイル名にするのが良い。
 (例 : MCPROOT/bin/minecraft/mod/sample.png など)
 (Eclipseを使用する場合は必ず mcp以外の場所 にバックアップを取り、リソースはMCPROOT/eclipse/Client/bin/に配置する)

  cleanup.batを実行すると、decompile時に生成されたフォルダ以下が全て削除されます。
  リソースのマスターデータは別のフォルダにバックアップをすることを推奨 します。

4.コンパイル

 recompile.batを実行する。
 エラーが出た場合は、コマンドプロンプトに詳細が表示されるので原因を取り除く。
 コンパイルに失敗した場合、テストプレイを実行できない。
 (Eclipseを使用する場合でテストプレイをする場合はこの作業はいらない)

5.動作テスト

 startclient.bat を実行すると、変更を加えた状態でテストを行える。
 テストプレイ時は MCPROOT/jars/ が .minecraft/ に相当し、セーブファイルは MCPROOT/jars/saves に作成される。
 (Eclipseを使用する場合この方法以外を使用する(後述))

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

6.配布ファイルの出力

 配布するファイルを出力する場合は MCPROOT/reobfuscate.bat を実行する。
 ファイル作成に成功すると MCPROOT/reobf に配布する class ファイルとリソースデータが出力される。
 (Eclipseを使用する場合、先にrecompile.batを起動しリコンパイルしてからreobfuscate.batを起動する。)

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

 実際に minecraft.jar に導入してテストを行う。
 ModLoaderを使った場合はclassファイル群をzip化しmodsフォルダにいれる。

 もちろん minecraft.jar内の META-INFフォルダ は削除すること。

 最後に起動テストをして完了。
 うまくいったら好きな場所に公開してみよう。


Eclipseでの開発


1.解凍と起動

先に上の動作の1のデコパイル作業をMCP上で行う
ここからEclipseの日本語版をDLし適当な位置に解凍する。
(このとき、Windowsのパスの長さの制限(以下MAX_PATH)である260文字を超えると解凍時にエラーが出る。
エラーが出た場合、解凍時のディレクトリパスをMAX_PATHを超えないような場所にすること)

解凍が完了したら、eclipse.exeを実行(このとき、eclipse -clean.batの実行をおすすめする)
ワークスペース・ランチャーが起動するのでMCPROOT/eclipse/を指定して「OK」を押す

2.mod作成

modを作成していて、間違った文を書くと

という風に波下線が表示される。

テストプレイは

をクリックするとできる。

Eclipseでのコメント // や /* */などを使って日本語を打たないでください 文字化けでMCP上で読み込めないことが多いです。
また、先に日本語で書いてあるコメントも読み込むと文字化けしてしまうことが多いため、注意が必要
日本語を打ちたい場合は保存時に文字コードをMS932にするかEclipseの設定>一般>ワークスペース>エンコードの文字コードをMS932にしてください。

バッチファイル一覧

  • decompile

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

  • recompile

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

  • getchangedsrc

    MCPROOT/modsrcフォルダに変更したMODのソースが出力される おもにソース配布用

  • startclient

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

  • startserver

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

  • reobfuscate

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

  • cleanup

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

  • updatemd5

    ファイルのMD5を更新する

  • updatemcp

    MCP本体のアップデート

具体例

まずはここで自分の目的にあったチュートリアルがないかを探しましょう


関連リンク


編集用コメント

コメント欄の方針に関してはコメント欄方針を参照して下さい。
wikiの編集が苦手な方は、以下のコメントフォームへ書き込んで頂ければ有志でページに取り込みます。
※コメントを投稿する際は、以下の点を確認して下さい※
  • 編集に関わらない内容のコメント・質問・雑談 は一律して削除されます。
    Wiki運営に関してはWiki運営掲示板、質問は質問掲示板、雑談等は非公式フォーラムにてお願いします。
  • 投稿の前に、一度コメントログや、バージョンアップ直後はパッチノートにも目を通し、 既に同じ内容が載っていないか確認して下さい。
  • 投稿されているコメントへの返信の際は、 返信したいコメント横の○にチェックを入れて 返信して下さい。
    表示できる親コメントの数は限られます。新規投稿をむやみに行うことは、他のコメントが流れてしまう要因になります。
  • 頑張って作っていますww - Zeusu1102 2013-08-25 23:03:21
    • ここは雑談するところじゃないよ。 - 名無しさん 2013-08-28 13:34:44
  • telinnkurunoouti - rc 2013-09-29 06:55:10
  • moddingウィキにアクセスできないのは自分だけか? - 名無しさん 2013-10-26 22:41:14
  • アクセスできない - 名無しさん 2013-10-27 15:08:24
    • pingは帰ってくるから鯖自体は落ちてないはず・・・。消した? - 名無しさん 2013-10-27 17:11:34
    • MOD始めたばかりだから頼りにしようと思ってた矢先にこれだよ・・・ - 名無しさん 2013-10-29 19:49:54
      • 同じく 誰か情報plz - 名無しさん 2013-11-01 17:16:53
        • 追記 Modding wikiは電源ユニットの故障で鯖落ち中 復旧には時間がかかるそうです - 名無しさん 2013-11-01 17:21:40
          • orz - 名無しさん 2013-11-02 11:34:43
            • Modding wiki復活しましたよ~ - 名無しさん 2013-11-04 17:39:53
  • 細かいかもしれませんがMinecraft Code PackではなくMCP公式のMod Coder Packの表記にするべきでは? - 名無しさん 2013-11-06 17:29:21
    • 調べたらMod Coder Packだった、今までずっとMinecraft code packだと思ってた - 名無しさん 2014-05-18 02:15:56
  • 他にもMod作成ツールありますよ。[McMDK][http://tuyapin.net/mcmdk/index.html] - 名無しさん 2013-11-29 16:45:59
    • McMDKはMCPの補助ツールとするべきでは・・・? - 名無しさん 2013-11-30 14:36:44
  • McMDKでmod作れたよw - 名無しさん 2013-12-01 07:14:56
  • 編集に関連すると思い質問させていただきます。NetBeansではできないのでしょうか?もしできるならばwikiを編集していただけませんか?よろしくお願いします。 - 名無しさん 2013-12-25 14:22:38
    • wikiに追加を求めてるだけで中身質問じゃねーか… - 名無しさん 2014-04-13 18:22:21
  • まだ日本でMOD作ってる方いますか? この記事大分前に自分が作ったやつに、どなたかが加筆してくださったもののままなので気になりました - 名無しさん 2014-07-31 23:21:31
  • MCPをインストールする段階で、binとrecourceは自動的にjarsにコピーされました。もしよければ、加筆お願いいたします。 - 名無しさん 2014-09-24 21:26:15
名前:

コメントログ


|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|
Wikiのガイドライン
必ずお読みください!

基本事項



プラットフォーム



アイテムデータ



生物



ゲームデータ



ワールド



Tips



ADVANCE



マルチプレイ



リンク



Wiki運営



その他



カウンタ


合計
-

トップページ
今日 : -
昨日 : -

更新履歴


取得中です。
※「ログ」「アーカイブ」「コメント」のページはここの履歴に表示されませんので、「更新履歴」および「コメント」から参照してください

人気ページ