提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | + | {{stb}} | |
+ | Minecraft1.7.2以降で、MinecraftForge10.12.0.967以降を導入する場合の手順です。<br /> | ||
+ | ;動作確認 | ||
+ | :Minecraft1.7.2 Forge10.12.0.??? | ||
+ | |||
+ | *動作の確認は基本的にRecommended[推奨版]のみ。Latest[最新版]はForge自体の動作が保証されていません。 | ||
+ | *Forgeのダウンロードは[http://files.minecraftforge.net/ こちら]から。 | ||
==必要なもの== | ==必要なもの== | ||
*MinecraftForgeのソースファイル | *MinecraftForgeのソースファイル | ||
− | **http://files.minecraftforge.net/ | + | **http://files.minecraftforge.net/ から Src をダウンロード |
− | |||
− | |||
− | |||
*JDK(JavaDevelopmentKit) | *JDK(JavaDevelopmentKit) | ||
**http://www.oracle.com/technetwork/java/javase/downloads/index.html からPCに合わせてダウンロード | **http://www.oracle.com/technetwork/java/javase/downloads/index.html からPCに合わせてダウンロード | ||
**詳しくは「[[MOD開発環境を作る|事前準備・MOD開発環境を作る]]」を参照。 | **詳しくは「[[MOD開発環境を作る|事前準備・MOD開発環境を作る]]」を参照。 | ||
− | * | + | *Java総合開発環境(IDE)※任意 |
**[[Eclipseを入手する]] | **[[Eclipseを入手する]] | ||
**[[IDEAを入手する]] | **[[IDEAを入手する]] | ||
17行目: | 20行目: | ||
===前準備=== | ===前準備=== | ||
*JDKのダウンロード、およびインストール | *JDKのダウンロード、およびインストール | ||
− | * | + | *MinecraftForgeSourceのダウンロード、および解凍 |
− | === | + | ===環境構築手順(install.bat作成まで)=== |
− | + | Forge の src を展開する | |
− | : | + | gradlew.batをメモ帳等で開き、JDKのパスをショートネームで追記しておく(12~18行目あたりのset ***が並んでる付近でよい) |
− | : | + | *set JAVA_HOME=C:\PROGRA~1\Java\jdk1.7.0_51 |
− | + | *ショートネームがわからなければ、コマンドプロンプトで「dir /x C:\」と打てば表示される。「Program Files」は「PROGRA~1」など | |
− | + | インストール用バッチファイルの作成 | |
− | + | *ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「Install.bat」に変更して完成。 | |
− | + | (IDEを使わないでデバッグする人用) | |
− | + | <source lang="text"> | |
− | + | call gradlew setupDevWorkspace setupDecompWorkspace | |
+ | </source> | ||
+ | (Eclipse用) | ||
+ | <source lang="text"> | ||
+ | call gradlew setupDevWorkspace setupDecompWorkspace eclipse | ||
+ | pause | ||
+ | </source> | ||
+ | (intellij IDEA用) | ||
+ | <source lang="text"> | ||
+ | call gradlew setupDevWorkspace setupDecompWorkspace idea | ||
+ | pause | ||
+ | </source> | ||
+ | (IDEAは標準でGradleファイルの読み込みができるので、バッチファイルを作る必要はそれほどない。) | ||
+ | Install.batを実行する。暫く待つと ディレクトリ内に必要なファイルが生成される。 | ||
+ | *「BUILD SUCCESSFUL」が表示されていれば成功。 | ||
+ | *失敗していたら「gradlew --refresh-dependencies」を実行させて依存ファイルの再作成を行わせ、再度install.batを実行してみること。 | ||
− | + | ===build.gradleファイルの編集=== | |
− | |||
− | |||
− | |||
− | |||
− | == | ||
複数のMODを同じワークスペースで開発する場合のみ必要な工程です。 | 複数のMODを同じワークスペースで開発する場合のみ必要な工程です。 | ||
− | + | *ディレクトリ内にあるbuild.gradleファイルを適当なテキストエディタで開く | |
− | + | **build.gradle内の以下の部分 | |
− | <source lang="groovy">apply plugin: | + | <source lang="groovy"> |
+ | apply plugin: 'forge' | ||
version = "1.0" | version = "1.0" | ||
46行目: | 60行目: | ||
minecraft { | minecraft { | ||
− | version = ... | + | version = "1.7.2-10.12.0.1024"//DLした時のForgeのバージョン |
− | + | assetDir = "eclipse/assets" | |
− | + | } | |
− | + | </source> | |
− | }</source> | ||
を、次のように変更する。 | を、次のように変更する。 | ||
− | <source lang="groovy">allprojects { | + | <source lang="groovy"> |
− | apply plugin: | + | allprojects { |
+ | apply plugin: 'forge' | ||
minecraft { | minecraft { | ||
− | version = ... | + | version = "1.7.2-10.12.0.1024" |
− | runDir = | + | runDir = "eclipse/assets" |
+ | } | ||
− | + | version = "1.0"//各プロジェクトで指定するだろうし、無くてもよい。 | |
− | |||
archivesBaseName = project.projectDir.name | archivesBaseName = project.projectDir.name | ||
} | } | ||
</source> | </source> | ||
− | + | *ディレクトリ内に新規テキストファイルを作成し、ファイル名を「settings.gradle」に変更。 | |
− | + | *「settings.gradle」を開いて、以下のように記述し保存。 | |
− | + | *(Eclipseの場合)includeFlat 'Project1','Project2' | |
− | + | **この時、Project1ディレクトリとProject2ディレクトリは作業しているディレクトリと“同じ階層”に置くこと | |
− | + | 作業フォルダ<br />Project1<br />Project2 | |
− | + | *(IDEAの場合)include 'Project1','Project2' | |
− | + | **この時、Project1ディレクトリとProject2ディレクトリは作業しているディレクトリ“内”に置くこと | |
− | + | 作業フォルダ<br />|-Project1<br />|-Project2 | |
− | + | *各プロジェクトのディレクトリ内に新規テキストファイルを作成し、「build.gradle」という名称に変更。 | |
− | + | *「build.gradle」を開いて、以下のように記述し保存。 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | </ | ||
− | |||
− | |||
<source lang="groovy"> | <source lang="groovy"> | ||
sourceSets.main { | sourceSets.main { | ||
90行目: | 94行目: | ||
resources.srcDirs project.projectDir.name | resources.srcDirs project.projectDir.name | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | version = "1.0"//各プロジェクトのバージョン | |
− | + | } | |
− | + | </source> | |
− | + | *project.projectDir.nameは'''各プロジェクトのディレクトリに置き換わる'''ので'''変更する必要はない''' | |
− | + | *以下の記述でも同じように動くが、'''推奨しない。''' | |
− | + | <source lang="groovy"> | |
− | + | sourceSets.main { | |
− | + | java.srcDirs 'src/main/java' | |
− | + | resources.srcDirs 'src/main/resources' | |
− | + | } | |
− | |||
− | |||
− | + | version = "1.0"//各プロジェクトのバージョン | |
− | + | } | |
− | :: | + | </source> |
− | : | + | |
− | + | *ソースファイル内に日本語が記述されている場合は、「build.gradle」に以下を追加。 | |
− | + | <source lang="groovy"> | |
− | + | tasks.withType(Jar) {compileJava.options.encoding = 'UTF-8'} | |
− | + | </source> | |
− | + | *日本語の記述されているAPIを利用する場合は、「build.gradle」に以下を追加。 | |
− | + | <source lang="groovy"> | |
− | + | tasks.withType(Jar) {compileApiJava.options.encoding = 'UTF-8'} | |
+ | </source> | ||
+ | *依存関係がある場合、外部jarをビルド時に読ませたい場合は、「build.gradle」に以下を追加。<br />そして、そのプロジェクトのディレクトリ内に「lib」ディレクトリを作成。 | ||
+ | <source lang="groovy"> | ||
+ | dependencies { compile fileTree(dir: 'lib', include: '*.jar') } | ||
+ | </source> | ||
+ | *マルチプロジェクト内の他のプロジェクトに依存している場合は、「build.gradle」に以下を追加。 | ||
+ | <source lang="groovy"> | ||
+ | dependencies { compile project(':ProjectName')} | ||
+ | </source> | ||
+ | |||
+ | *以上のファイルを配置すると、以下のようになる。 | ||
+ | Eclipse<br /> | ||
+ | 作業ディレクトリ<br /> | ||
+ | |-.gradleディレクトリ<br /> | ||
+ | |-srcディレクトリ<br /> | ||
+ | |-build.gradle<br /> | ||
+ | |-settings.gradle<br /> | ||
+ | Project1<br /> | ||
+ | |-.gradleディレクトリ<br /> | ||
+ | |-srcディレクトリ<br /> | ||
+ | |-build.gradle<br /> | ||
+ | Project2<br /> | ||
+ | |-.gradleディレクトリ<br /> | ||
+ | |-srcディレクトリ<br /> | ||
+ | |-build.gradle<br /> | ||
+ | IDEA<br /> | ||
+ | 作業ディレクトリ<br /> | ||
+ | |-.gradleディレクトリ<br /> | ||
+ | |-srcディレクトリ<br /> | ||
+ | |-build.gradle<br /> | ||
+ | |-settings.gradle<br /> | ||
+ | |-Project1<br /> | ||
+ | |-.gradleディレクトリ<br /> | ||
+ | |-srcディレクトリ<br /> | ||
+ | |-build.gradle<br /> | ||
+ | |-Project2<br /> | ||
+ | |-.gradleディレクトリ<br /> | ||
+ | |-srcディレクトリ<br /> | ||
+ | |-build.gradle | ||
==MOD== | ==MOD== | ||
===開発=== | ===開発=== | ||
− | + | この環境下でMODをビルドしたい場合、単独プロジェクトの場合は、開発環境の作業ディレクトリに<br /> | |
− | + | src/main/java<br /> | |
+ | という階層でディレクトリを作成し、javaディレクトリ内に、自身のMODのパッケージに有ったディレクトリ構成でsourceファイルを配置すればよい。<br /> | ||
+ | 画像や音声ファイル等のリソースファイルは<br /> | ||
+ | src/main/resources/assets<br /> | ||
+ | という階層でディレクトリを作成し、assetsディレクトリ内に指定されたディレクトリ構成でファイルを配置すればよい。 | ||
+ | リソースファイルの配置の仕方は、[[1.7のリソース(テクスチャ・サウンド・言語ファイル等)の置き場所]]を参照のこと。 | ||
+ | *マルチプロジェクトの場合 | ||
+ | 各プロジェクトディレクトリ内に、上のディレクトリ構成でファイルを配置する。 | ||
===デバッグ=== | ===デバッグ=== | ||
作成したMODのデバッグは、ForgeGradleを使うことで、1.6.4以前のMCP環境と同様に行うことが出来る。 | 作成したMODのデバッグは、ForgeGradleを使うことで、1.6.4以前のMCP環境と同様に行うことが出来る。 | ||
− | + | *単独プロジェクトの場合 | |
− | : | + | 作業ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunClient.bat」に変更する。 |
− | :: | + | <source lang="text"> |
− | + | call gradlew runClient | |
− | + | pause | |
− | + | </source> | |
− | + | 作業ディレクトリ内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunServer.bat」に変更する。 | |
− | + | <source lang="text"> | |
− | + | call gradlew runServer | |
− | + | pause | |
− | + | </source> | |
− | + | *マルチプロジェクトの場合 | |
− | + | 作業ディレクトリ(プロジェクトディレクトリではない)内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunClient.bat」に変更する。 | |
− | + | <source lang="text"> | |
− | + | call gradlew :<PROJECT NAME>:runClient | |
− | + | pause | |
− | + | </source> | |
+ | 作業ディレクトリ(プロジェクトディレクトリではない)内に新規テキストファイルを作成し、中に以下のコードを書いて保存。ファイル名を「RunClient.bat」に変更する。 | ||
+ | <source lang="text"> | ||
+ | call gradlew :<PROJECT NAME>:runServer | ||
+ | pause | ||
+ | </source> | ||
+ | *IDE上でデバッグする場合 | ||
+ | Eclipse で開発する場合は、プロジェクトファイルを開き、起動クラスの設定を行う | ||
+ | 起動クラスの設定は*.launchwrapper.Launch、プログラムの引数として「--version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker」を指定。 | ||
+ | *VM への引数として「-Xincgc -Xmx1024M -Xms1024M」を指定。(非力なマシンでデバッグする場合は適宜変更のこと) | ||
+ | *作業ディレクトリに「${workspace_loc:(プロジェクト名)/jars}」を指定。GUI からワークスペースの jars ディレクトリを指定しても良い。 | ||
+ | *ワールド情報は jars/save の中に生成されるので、既存ワールドは適宜このディレクトリにコピーすること。一度ゲームを起動すれば jars ディレクトリ内に必要ディレクトリが作成される。 | ||
+ | サーバ起動時のクラスは net.minecraft.server.MinecraftServer。 | ||
+ | ビルドパスの修正 | ||
+ | *ForgeSrcのパスが不足している場合、C:\Users\ユーザー名\.gradle\caches\minecraft\net\minecraftforge\forge\1.7.2-10.12.0.ビルド番号 に forgeSrc-1.7.2-10.12.0.ビルド番号.jar が存在する。添付ソースは末尾が「-source.jar」のファイルなので一緒に設定すると良い | ||
+ | IDEAで開発する場合、起動構成は開発ディレクトリ上でのコマンドプロンプトで「gradlew genIntellijRuns」と実行すれば自動的に構成できる。 | ||
===リリース=== | ===リリース=== | ||
− | + | リリースビルド用バッチファイルの作成<br /> | |
− | + | (シングルプロジェクト用) | |
− | + | *ディレクトリ内に新規テキストファイルを作成し、中に「gradlew build --info > buildlog.txt 2>&1」と書いて保存。ファイル名を「Release.bat」に変更。 | |
− | + | *今後、コンパイルを行う時はこの「Release.bat」を実行すれば、MCPでの「recompile.bat」「reobfuscate_srg.bat」を同時に行ってくれる | |
− | + | *コンパイル中のログは、「buildlog.txt」に出力される | |
− | + | *コンパイルされたclassファイルは、\build\libsディレクトリに圧縮された状態で出力される | |
− | + | **「build.gradle」を弄っていなければ、「modid-1.0.jar」として出力されている。"archivesBaseName"-"version".jarという書式 | |
− | + | ||
− | :: | + | (マルチプロジェクト用) |
− | + | *ディレクトリ内に新規テキストファイルを作成し、中に「gradlew :<ProjectName>:build --info > build-<ProjectName>-log.txt 2>&1」と書いて保存。ファイル名を「Release-<ProjectName>.bat」に変更。 | |
− | + | *今後、<ProjectName>のプロジェクトのコンパイルを行う時はこの「Release-<ProjectName>.bat」を実行すれば、MCPでの「recompile.bat」「reobfuscate_srg.bat」を同時に行ってくれる | |
− | + | *コンパイル中のログは、「build-<ProjectName>-log.txt」に出力される | |
+ | *コンパイルされたclassファイルは、\build\libsディレクトリに圧縮された状態で出力される | ||
+ | **マルチプロジェクト用「build.gradle」を弄っていなければ、「<ProjectName>-1.0.jar」として出力されている。"<ProjectName>"-"version".jarという書式 | ||
==Forgeのアップデート== | ==Forgeのアップデート== | ||
Forgeの新しいビルドがアップデートされた時に、以下のようにして、開発環境のForgeをアップデートすることが出来る。 | Forgeの新しいビルドがアップデートされた時に、以下のようにして、開発環境のForgeをアップデートすることが出来る。 | ||
− | + | *「build.gradle」ファイルを開く。 | |
− | + | *中程のminecraftブロック内の“version”を最新のビルドナンバーに書き換え、保存する。 | |
− | + | *「install.bat」を実行。 | |
+ | (注意)マルチプロジェクトをしている場合は、setupDevWorkspaceとsetupDecompWorkspaceを全てのプロジェクトで自動で行うが、setupDecompWorkspaceは大元のプロジェクトで行えば十分なので、「install.bat」の中身の「setupDecompWorkspace」を「:setupDecompWorkspace」に置き換えたほうが、作業が捗り、decomp時のJava heapエラーに悩まされることもなくなる。 | ||
==動画== | ==動画== | ||
<youtube width="640" height="360">8VEdtQLuLO0</youtube> | <youtube width="640" height="360">8VEdtQLuLO0</youtube> | ||
− | |||
− | |||
− | |||
==リンク== | ==リンク== | ||
188行目: | 239行目: | ||
===参考サイト=== | ===参考サイト=== | ||
− | + | [http://forum.minecraftuser.jp/viewtopic.php?f=21&t=9494&start=320 非公式フォーラム]<br /> | |
− | + | [http://reginn666.hatenablog.com/entry/2013/12/25/031356 IDEA+Gradleでわいわい]<br /> | |
− | + | [http://qiita.com/reginn666/items/d26717cf06ca17eb072c IntelliJ IDEAでModding]<br /> | |
− | + | [http://qiita.com/reginn666/items/b9f4a0a9f647d7034210 ForgeGradle+IDEAでマルチプロジェクト] | |
− | |||
− | |||
<comments /> | <comments /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |