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) プログラムのデコンパイル&再コンパイルを行うツール群。
Forgeが主流となる前は必須であったが、Forge主流の現在はバニラMODを作る場合やCoreMODを作る場合以外に利用されることはあまり無い。
ただ、ForgeはMCPを利用して構築されているためMCP無しにForgeが生まれないことを忘れてはならない。
フォーラム
MinecraftForge 一般的なMOD作成において要求頻度の高い様々な拡張機能を提供する便利なAPI群。
ただし、Forgeが提供しない特殊なModを作る場合にCoreMODを使いこなせないと
その難易度が障害となり自由度に限界が生じるのが難点。
Forge主流の現在において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運営掲示板
    、質問は
    質問掲示板
    、雑談等は非公式フォーラムにてお願いします。
  • 投稿の前に、一度コメントログや、バージョンアップ直後はパッチノートにも目を通し、 既に同じ内容が載っていないか確認して下さい。
  • 投稿されているコメントへの返信の際は、 返信したいコメント横の○にチェックを入れて 返信して下さい。
    表示できる親コメントの数は限られます。新規投稿をむやみに行うことは、他のコメントが流れてしまう要因になります。
  • McMDKでmod作れたよw - 名無しさん 2013-12-01 07:14:56
  • MCPをインストールする段階で、binとrecourceは自動的にjarsにコピーされました。もしよければ、加筆お願いいたします。 - 名無しさん 2014-09-24 21:26:15
  • 1.MCPのインストール(Windows の場合)、4-5の2つではなく/assets&/libraries&/versionsの3つで上手く行きました。 - 名無しさん 2015-03-08 22:24:39
  • mcp.zipを解凍したフォルダにsarver.jarを入れても「!! Missing server jar file. aborting !!」と出ます。どうすればよいですか?1.8です - 以下、名無しに変わってVIPがお送りします。 2015-04-01 14:36:06
  • MCPのダウンロードページがリンク切れしてます。というかフォーラムからもアクセスできない状態です。これは私だけですか? - 名無しさん 2015-04-18 16:23:49
    • MCPのリンクを修正しました。あとフォーラムにはアクセスできましたよ - 名無しさん 2015-04-18 20:48:00
  • 現在はMCPはMOD開発ツールとして必須ではなくなったため、文言を修正しました。 - 名無しさん 2015-04-22 05:14:09
  • ナポアンのマイクラで紹介されているMCreatorっていうやつやれば簡単にできるよ。 - 名無しさん 2015-05-31 17:52:52
    • 一回使ってみたけど使用するまでの時間がけっこうかかりましたよ。 - 名無しさん 2015-07-05 17:57:37
  • MCCreatorのForgeインストールとか、ログインとかめんどくさいけど、それが終われば、MODをソースコードも一切必要なく作れるから便利だよ。 - Shadow Dragon 2015-07-07 13:51:33
  • recompile.batなどのファイルが見つからないのですが… - 名無しさん 2015-07-11 12:51:15
  • ここの方法でやってもeclipceがエラーはくのですが... - mnn 2015-07-27 10:22:27
    • 追記エラーは{エラー: メイン・クラスStartが見つからなかったかロードできませんでした}とでます - mnn 2015-07-27 10:35:40
      • 吊り下げ編集。ルール違反を続けられる場合、荒らしとして報告せざるを得ないので、お気をつけください。
名前:

コメントログ


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

基本事項



プラットフォーム


アイテムデータ



生物



ゲームデータ



ワールド



Tips



ADVANCE



マルチプレイ



リンク



Wiki運営



その他



カウンタ


合計
-

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

更新履歴


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

人気ページ