最新版 |
編集中の文章 |
1行目: |
1行目: |
− | MinecraftForge9.11.1.960以降での開発環境構築手順です。
| + | {{stb}} |
| + | Minecraft1.7.2以降で、MinecraftForge10.12.0.967以降を導入する場合の手順です。<br /> |
| + | ;動作確認 |
| + | :Minecraft1.7.2 Forge10.12.0.??? |
| + | |
| + | *動作の確認は基本的にRecommended[推奨版]のみ。Latest[最新版]はForge自体の動作が保証されていません。 |
| + | *Forgeのダウンロードは[http://files.minecraftforge.net/ こちら]から。 |
| + | |
| + | |
| + | ;以前のバージョンでの手順 |
| + | *[[MinecraftForge導入手順(MCP)旧版|Minecraft1.2.5 Forge3.2.3.108以前]] |
| + | *[[MinecraftForge導入手順3.3.7 |Minecraft1.2.5 Forge3.3.7.135~Minecraft1.4.2 Forge6.0.1.341]] |
| + | *[[MinecraftForge導入手順6.3.0 |Minecraft1.4.4 Forge6.3.0.372~]] |
| + | *[[MinecraftForge導入手順6.5.0 |Minecraft1.4.6 Forge6.5.0.471~]] |
| + | *[[MinecraftForge導入手順(MCP)|Minecraft1.6.1 Forge8.9.0.749~Minecraft1.6.4 Forge9.11.1.965(960-964は除く)]] |
| | | |
| ==必要なもの== | | ==必要なもの== |
| *MinecraftForgeのソースファイル | | *MinecraftForgeのソースファイル |
− | **http://files.minecraftforge.net/ から Mdk をダウンロード | + | **http://files.minecraftforge.net/ から Src をダウンロード |
− | **Forge-1.8-11.14.4 以前は '''Src''' 。
| |
− | **Show All Downloadsからダウンロードしたいデータのリンクの右のiを押すと、adfoc.us(広告)を飛ばせます。
| |
− | | |
| *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)※任意 | + | *Java総合開発環境(IDE)※任意 |
| **[[Eclipseを入手する]] | | **[[Eclipseを入手する]] |
| **[[IDEAを入手する]] | | **[[IDEAを入手する]] |
| | | |
− | ==Forge==
| + | |
− | ===前準備===
| + | ==前準備== |
| *JDKのダウンロード、およびインストール | | *JDKのダウンロード、およびインストール |
− | *Mod Development Kit (Mdk)のダウンロード、および解凍 | + | *MinecraftForgeSourceのダウンロード、および解凍 |
− | | |
− | ===手順===
| |
− | ;IDEAの場合
| |
− | :#Import Projectから解凍したフォルダの中にあるbuild.gradleを開く
| |
− | :#読み込みを待った後、Gradleタブ(デフォルトで右側に存在)からsetupDecompWorkspaceを選択し実行する。
| |
− | ;その他の場合
| |
− | ; ForgeGradle 2.3までの場合
| |
− | :#gradlewファイルが存在するディレクトリで<source lang="winbatch">gradlew setupDecompWorkspace</source>をシェル上で実行する。
| |
− | :#しばらく待ち、「BUILD SUCCESSFUL」と表示されれば成功。
| |
− | :##「BUILD FAILURE」と表示された場合は<source lang="winbatch">gradlew --refresh-dependencies</source>を実行の後やり直す。
| |
− | :#Eclipseの場合は、<source lang="winbatch">gradlew eclipse</source>も併せて実行し、生成されるファイルからプロジェクトを開く。
| |
− | | |
− | ; ForgeGradle 3以降の場合
| |
− | :#gradlewファイルが存在するディレクトリで<source lang="winbatch">gradlew genEclipseRuns</source>をシェル上で実行する。
| |
− | :#以降は2.3の2と同じ流れ
| |
| | | |
− | | + | ==環境構築手順(install.bat作成まで)== |
− | ===マルチプロジェクトにする場合=== | + | Forge の src を展開する |
− | 複数のMODを同じワークスペースで開発する場合のみ必要な工程です。
| + | gradlew.batをメモ帳等で開き、JDKのパスをショートネームで追記しておく(12~18行目あたりのset ***が並んでる付近でよい) |
− | <ol>
| + | *set JAVA_HOME=C:\PROGRA~1\Java\jdk1.7.0_51 |
− | <li>build.gradleファイルを適当なテキストエディタで開き、build.gradle内の以下の部分
| + | *ショートネームがわからなければ、コマンドプロンプトで「dir /x C:\」と打てば表示される。「Program Files」は「PROGRA~1」など |
− | <source lang="groovy">apply plugin: ... | + | インストール用バッチファイルの作成 |
| + | *ディレクトリ内に新規テキストファイルを作成し、中に以下の括弧内のコードを書いて保存。ファイル名を「Install.bat」に変更して完成。 |
| + | **(Eclipse用)「gradlew setupDecompWorkspace eclipse」 |
| + | **(intellij IDEA用)「gradlew setupDecompWorkspace idea」 |
| + | Install.batを実行する。暫く待つと ディレクトリ内に必要なファイルが生成される。 |
| + | *(Eclipse)Eclipceのファイル「.project」と「.classpath」が作成されていれば成功。 |
| + | *(IDEA)IDEAのファイル「.iml」「.ipr」「.iws」が作成されていれば成功。 |
| + | *失敗していたら「gradlew --refresh-dependencies」を実行させて依存ファイルの再作成を行わせ、再度install.batを実行してみること。 |
| + | ==build.gradleファイルの編集== |
| + | *ディレクトリ内にあるbuild.gradleファイルを適当なテキストエディタで開く |
| + | *1つのMODのみ開発する場合。 |
| + | **ファイルの中程にあるversionとarchivesBaseNameを適当な文字列に変える。 |
| + | *複数のMODを同じワークスペースで開発する場合。 |
| + | **build.gradle内の以下の部分 |
| + | <source lang="groovy"> |
| + | apply plugin: 'forge' |
| | | |
| version = "1.0" | | version = "1.0" |
46行目: |
57行目: |
| | | |
| minecraft { | | minecraft { |
− | version = ... | + | version = "1.7.2-10.12.0.1024"//DLした時のForgeのバージョン |
− | runDir = ...
| + | assetDir = "eclipse/assets" |
− | | + | } |
− | mappings = ... | + | </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 = ...
| + | assetDir = "eclipse/assets" |
| + | } |
| | | |
− | mappings = ...
| + | version = "1.0"//各プロジェクトで指定するだろうし、無くてもよい。 |
− | }
| |
| | | |
| archivesBaseName = project.projectDir.name | | archivesBaseName = project.projectDir.name |
| } | | } |
| </source> | | </source> |
− | </li>
| + | *ディレクトリ内に新規テキストファイルを作成し、ファイル名を「settings.gradle」に変更。 |
− | <li>build.gradleを同じディレクトリに「settings.gradle」ファイルを作成する。</li>
| + | *「settings.gradle」を開いて、以下のように記述し保存。 |
− | <li>「settings.gradle」を開いて、以下のように記述し保存。
| + | *(Eclipseの場合)includeFlat 'Project1','Project2' |
− | ;Eclipseの場合
| + | **この時、Project1フォルダとProject2フォルダは作業しているディレクトリと“同じ階層”に置くこと |
− | :<source lang="groovy">includeFlat 'Project1','Project2'</source>
| + | 作業フォルダ<br />Project1<br />Project2 |
− | :この時、Project1ディレクトリとProject2ディレクトリは以下に示すようにワークスペースと“同じ階層”に置くこと
| + | *(IDEAの場合)include 'Project1','Project2' |
− | :親ディレクトリ
| + | **この時、Project1フォルダとProject2フォルダは作業しているディレクトリ“内”に置くこと |
− | ::ワークスペース/
| + | 作業フォルダ<br />|-Project1<br />|-Project2 |
− | ::Project1/
| + | *各プロジェクトのディレクトリ内に新規テキストファイルを作成し、「build.gradle」という名称に変更。 |
− | ::Project2/
| + | *「build.gradle」を開いて、以下のように記述し保存。 |
− | ;IDEAの場合
| |
− | :<source lang="groovy">include 'Project1','Project2'</source>
| |
− | :この時、Project1ディレクトリとProject2ディレクトリは以下に示すようにワークスペース“内”に置くこと
| |
− | :親ディレクトリ
| |
− | ::ワークスペース/
| |
− | :::Project1/
| |
− | :::Project2/
| |
− | </li> | |
− | <li>各プロジェクトのディレクトリ内に「build.gradle」ファイルを作成する。</li>
| |
− | <li>「build.gradle」を開いて、以下のように記述し保存。
| |
| <source lang="groovy"> | | <source lang="groovy"> |
| + | tasks.withType(Compile) { |
| + | options.encoding = 'UTF-8'//ソースファイル内に日本語を記述している場合はこのブロックが必須。 |
| + | } |
| sourceSets.main { | | sourceSets.main { |
| java.srcDirs project.projectDir.name | | java.srcDirs project.projectDir.name |
| resources.srcDirs project.projectDir.name | | resources.srcDirs project.projectDir.name |
| } | | } |
− | version = "1.0"//バージョン</source> | + | version = "1.0" |
− | ;ソースに日本語が記述されている場合
| + | } |
− | :さらに以下を追加。<source lang="groovy">tasks.withType(Jar) {compileJava.options.encoding = 'UTF-8'}</source>
| + | </source> |
− | ;APIに日本語が記述されている場合
| + | *ソースファイル内に日本語が記述されている場合は、「build.gradle」に以下を追加。 |
− | :さらに以下を追加。<source lang="groovy">tasks.withType(Jar) {compileApiJava.options.encoding = 'UTF-8'}</source>
| + | <source lang="groovy"> |
− | ;依存関係がある場合、外部jarをビルド時に読ませたい場合
| + | tasks.withType(Compile) {options.encoding = 'UTF-8'} |
− | :#さらに以下を追加。<source lang="groovy">dependencies { compile fileTree(dir: 'lib', include: '*.jar') }</source>
| + | </source> |
− | :#そのプロジェクトのディレクトリ内に「lib」ディレクトリを作成。
| + | *依存関係がある場合、外部jarをビルド時に読ませたい場合は、「build.gradle」に以下を追加。<br />そして、そのプロジェクトのディレクトリ内に「lib」フォルダを作成。 |
− | ;マルチプロジェクト内の他のプロジェクトに依存している場合
| + | <source lang="groovy"> |
− | :さらに以下を追加。<source lang="groovy">dependencies { compile project(':ProjectName')}</source>
| + | dependencies { compile fileTree(dir: 'lib', include: '*.jar') } |
− | </li>
| + | </source> |
− | </ol>
| + | *マルチプロジェクト内の他のプロジェクトに依存している場合は、「build.gradle」に以下を追加。 |
− | | + | <source lang="groovy"> |
− | 以上のようにすると、以下のようになる。
| + | dependencies { compile project(':ProjectName')} |
− | ;Eclipseの場合
| + | </source> |
− | :ワークスペース/
| + | ==MODのリリース== |
− | ::src/
| + | リリースビルド用バッチファイルの作成 |
− | ::build.gradle
| + | *ディレクトリ内に新規テキストファイルを作成し、中に「gradlew build --info > buildlog.txt 2>&1」と書いて保存。ファイル名を「Release.bat」に変更。 |
− | ::settings.gradle
| + | *今後、コンパイルを行う時はこの「Release.bat」を実行すれば、MCPでの「recompile.bat」「reobfuscate_srg.bat」を同時に行ってくれる |
− | :Project1/
| + | *コンパイル中のログは、「buildlog.txt」に出力される |
− | ::src/
| + | *コンパイルされたclassファイルは、\build\libsディレクトリに圧縮された状態で出力される |
− | ::build.gradle
| + | **「build.gradle」を弄っていなければ、「modid-1.0.jar」として出力されている。"archivesBaseName"-"version".jarという書式 |
− | :Project2/
| + | Eclipse で開発する場合は、プロジェクトファイルを開き、起動クラスの設定を行う |
− | ::src/
| + | 起動クラスの設定は*.launchwrapper.Launch、プログラムの引数として「--version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker」を指定。 |
− | ::build.gradle
| + | *VM への引数として「-Xincgc -Xmx1024M -Xms1024M」を指定。 |
− | | + | *作業ディレクトリに「${workspace_loc:(プロジェクト名)/jars}」を指定。GUI からワークスペースの jars ディレクトリを指定しても良い。 |
− | ;IDEAの場合
| + | *ワールド情報は jars/save の中に生成されるので、既存ワールドは適宜このディレクトリにコピーすること。一度ゲームを起動すれば jars ディレクトリ内に必要ディレクトリが作成される。 |
− | :ワークスペース/
| + | サーバ起動時のクラスは net.minecraft.server.MinecraftServer。 |
− | ::src/
| + | ビルドパスの修正 |
− | ::build.gradle
| + | *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」のファイルなので一緒に設定すると良い |
− | ::settings.gradle
| |
− | ::Project1/
| |
− | :::src/
| |
− | :::build.gradle
| |
− | ::Project2/
| |
− | :::src/
| |
− | :::build.gradle
| |
− | | |
− | ==MOD==
| |
− | ===開発===
| |
− | ソースはプロジェクト/ワークスペースのsrc/main/java下に配置し、リソース類はプロジェクト/ワークスペースのsrc/main/resources/assets下に配置する。<br />
| |
− | リソースの配置の仕方は、[[1.7のリソース(テクスチャ・サウンド・言語ファイル等)の置き場所]]を参照のこと。
| |
− | ===デバッグ===
| |
− | 作成したMODのデバッグは、ForgeGradleを使うことで、1.6.4以前のMCP環境と同様に行うことが出来る。
| |
− | ;IDE上でデバッグする場合
| |
− | :;:Eclipse で開発する場合
| |
− | :::#プロジェクトファイルを開き、起動クラスの設定を行う
| |
− | :::##起動クラスの設定はクライアントの場合GradleStart、サーバはGradleStartServer。プログラムの引数は空で良いが、「-username=<任意の文字列>」を指定しておくと、マルチプレイのテスト時にOPを付与しなおす必要がなくなる。
| |
− | :::##VM への引数として「-Xincgc -Xmx1024M -Xms1024M」を指定。(非力なマシンでデバッグする場合は適宜変更のこと)
| |
− | :::##作業ディレクトリに「${workspace_loc:(プロジェクト名)/jars}」を指定。GUI からワークスペースの jars ディレクトリを指定しても良い。
| |
− | :::##ワールド情報は jars/save の中に生成されるので、既存ワールドは適宜このディレクトリにコピーすること。一度ゲームを起動すれば jars ディレクトリ内に必要ディレクトリが作成される。
| |
− | :::#ビルドパスの修正
| |
− | :::##ForgeSrcのパスが不足している場合、C:\Users\ユーザー名\.gradle\caches\minecraft\net\minecraftforge\forge\(Forgeバージョン) に forgeSrc-(Forgeバージョン).jar が存在する。添付ソースは末尾が「-source.jar」のファイルなので一緒に設定すると良い
| |
− | :;:IDEAで開発する場合
| |
− | ::::GradleタブからそれぞれのプロジェクトのrunClient,runServerを実行する。
| |
− | ;その他の場合
| |
− | :;:単独プロジェクトの場合
| |
− | ::::ワークスペースで<source lang="winbatch">gradlew runClient</source>をシェルから実行することでクライアントが立ち上がる。<br><source lang="winbatch">gradlew runServer</source>と実行すればサーバーが立ち上がる。
| |
− | :;:マルチプロジェクトの場合
| |
− | ::::ワークスペースで<source lang="winbatch">gradlew :<PROJECT NAME>:runClient</source>と実行するとプロジェクトのModとそれの依存するModのみが入った環境のクライアントが立ち上がる。<br><source lang="winbatch">gradlew :<PROJECT NAME>:runServer</source>とすれば、サーバーが立ち上がる。
| |
− | '''build.gradle内のrunDirに指定したディレクトリ(MDKのデフォルトでは"run")がプロジェクトディレクトリ以下に存在しないと,runClientおよびrunServerがエラーで実行できないので注意.'''
| |
− | | |
− | ===リリース===
| |
− | ;シングルプロジェクトの場合
| |
− | :;:IDEAの場合
| |
− | ::::Gradleタブからbuildを選択し実行。
| |
− | :;:その他の場合
| |
− | ::::ワークスペースで<source lang="winbatch">gradlew build</source>とシェルから実行。成果物は\build\libs下に出力される
| |
− | :::::「build.gradle」を弄っていなければ、「modid-1.0.jar」として出力されている。"archivesBaseName"-"version".jarという書式
| |
− | ;マルチプロジェクトの場合
| |
− | :;:IDEAの場合
| |
− | ::::Gradleタブからビルドしたいプロジェクトのbuildを選択し実行。
| |
− | :;:その他の場合
| |
− | ::::ワークスペースで<source lang="winbatch">gradlew :<ProjectName>:build</source>とシェルから実行。成果物は各プロジェクトの\build\libs下に出力される
| |
− | :::::「build.gradle」を弄っていなければ、「<ProjectName>-1.0.jar」として出力されている。"<ProjectName>"-"version".jarという書式
| |
| | | |
| + | IDEAで開発する場合、起動構成は開発ディレクトリ上でのコマンドプロンプトで「gradlew genIntellijRuns」と実行すれば自動的に構成できる。 |
| ==Forgeのアップデート== | | ==Forgeのアップデート== |
| Forgeの新しいビルドがアップデートされた時に、以下のようにして、開発環境のForgeをアップデートすることが出来る。 | | Forgeの新しいビルドがアップデートされた時に、以下のようにして、開発環境のForgeをアップデートすることが出来る。 |
− | #「build.gradle」ファイルを開く。
| + | *「build.gradle」ファイルを開く。 |
− | #中程のminecraftブロック内の“version”を最新のビルドナンバーに書き換え、保存する。
| + | *中程のminecraftブロック内の“version”を最新のビルドナンバーに書き換え、保存する。 |
− | #「gradlew setupDecompWorkspace」を実行。
| + | *「install.bat」を実行。 |
− | | + | [http://forum.minecraftuser.jp/viewtopic.php?f=21&t=9494&start=320 参考:非公式フォーラム] |
− | ==動画==
| |
− | <youtube width="640" height="360">8VEdtQLuLO0</youtube>
| |
− | <youtube width="640" height="360">pLWQk6ed56Q</youtube>
| |
− | <youtube width="640" height="360">yanCpy8p2ZE</youtube>
| |
− | <youtube width="640" height="360">PfmlNiHonV0</youtube>
| |
− | | |
− | ==リンク==
| |
− | | |
− | ===以前のバージョンでの手順===
| |
− | *[[MinecraftForge導入手順(MCP)旧版|Minecraft1.2.5 Forge3.2.3.108以前]] | |
− | *[[MinecraftForge導入手順3.3.7 |Minecraft1.2.5 Forge3.3.7.135~Minecraft1.4.2 Forge6.0.1.341]]
| |
− | *[[MinecraftForge導入手順6.3.0 |Minecraft1.4.4 Forge6.3.0.372~]]
| |
− | *[[MinecraftForge導入手順6.5.0 |Minecraft1.4.6 Forge6.5.0.471~]]
| |
− | *[[MinecraftForge導入手順(MCP)|Minecraft1.6.1 Forge8.9.0.749~Minecraft1.6.4 Forge9.11.1.965(960-964は除く)]]
| |
− | | |
− | ===参考サイト===
| |
− | *[http://mcforge.readthedocs.io/en/latest/gettingstarted/ Getting Started]
| |
− | {{Warning}}以下古い情報を含みます。
| |
− | *[http://forum.minecraftuser.jp/viewtopic.php?f=21&t=9494&start=320 非公式フォーラム]
| |
− | *[http://reginn666.hatenablog.com/entry/2013/12/25/031356 IDEA+Gradleでわいわい]
| |
− | *[http://qiita.com/reginn666/items/d26717cf06ca17eb072c IntelliJ IDEAでModding]
| |
− | *[http://qiita.com/reginn666/items/b9f4a0a9f647d7034210 ForgeGradle+IDEAでマルチプロジェクト]
| |
| | | |
| <comments /> | | <comments /> |
− | ----
| |
− | * eclipseの初回起動時のワークスペースの設定はどのようにすればいいのですか。 --[[特別:投稿記録/153.174.129.158|153.174.129.158]] 2018年2月12日 (月) 16:50 (JST)
| |
− | ----
| |
− | * "MOD"の"開発"の欄についてですが、「ソースはプロジェクト/ワークスペースのsrc/main/java下に配置し」のところを分かりやすく加筆できる方お願いします --[[特別:投稿記録/153.174.129.158|153.174.129.158]] 2018年2月12日 (月) 16:44 (JST)
| |
− | ----
| |
− | * "MOD"の"開発"の欄についてですが、「ソースはプロジェクト/ワークスペースのsrc/main/java下に配置し」のところを --[[特別:投稿記録/153.174.129.158|153.174.129.158]] 2018年2月12日 (月) 16:43 (JST)
| |
− | ----
| |
− | * PowerShell上では./gradlew setupDecompWorkspaceのように先頭に./をつけないと動かないんですね... --[[特別:投稿記録/126.100.216.85|126.100.216.85]] 2017年10月2日 (月) 11:00 (JST)
| |
− | ----
| |
− | * gradlew setupDecompWorkspaceを実行した時、:deobfuscateJar FAILEDで止まって、そのまま終わってしまいます。 どうするべきでしょうか? --[[特別:投稿記録/175.28.219.127|175.28.219.127]] 2017年9月17日 (日) 10:37 (JST)
| |
− | ----
| |
− | * 当たり前ですが、install.bat実行時に対応するバージョンのminecraftの.jarが無いと失敗します。実行前に一度でも対応バージョンのminecraftを起動しておく旨を記載した方がよろしいかと --[[特別:投稿記録/122.251.218.248|122.251.218.248]] 2016年12月14日 (水) 18:09 (JST)
| |
− | ----
| |
− | * マルチプロジェクトのほうの解説が少しわかりづらいのです --[[特別:投稿記録/118.8.218.24|118.8.218.24]] 2016年7月23日 (土) 19:06 (JST)
| |
− | ----
| |
− | * install.batが失敗したので調べたらgradle.propertiesファイルを作成して内容をorg.gradle.jvmargs=-Xmx2048Mと書いてgradlewと同じディレクトリに入れておいたら成功しました。 --[[特別:投稿記録/115.36.144.125|115.36.144.125]] 2016年2月25日 (木) 07:04 (JST)
| |