環境構築 (1.19.4)

概要

MODを開発するための環境を準備します。Windows 11で動作確認しているので、MacやLinuxでは異なる部分があります。複数のMODを開発する時は、Forgeの読み込みの手順3から繰り返してください。また、この頁の内容は各種動作環境によって正しく動かないことがあります。IDEやJDKの環境を確かめつつ進めるようにして下さい。

動作確認

2023年12月13日

  • Windows 11 Pro 22H2 (64 bit)
  • IntelliJ IDEA 2023.3.1
  • Eclipse Temurin 17.0.9
  • Minecraft Development
  • Minecraft 1.19.4
  • Forge 45.2.0

手順

前提

Minecraft: Java Editionを公式サイトで購入してください。

MODを開発し配布する際は、MinecraftのEULAに従う必要があります。Minecraftのコードの公開禁止や商用利用に関する制限などが含まれているので、必ず自分で確認してください。

MODの開発は自己責任で行ってください。この講座により生じたいかなる損害についても、TNT Moddersは一切責任を負いません。

IntelliJ IDEAのインストール

  1. ダウンロードページから「Community」をダウンロードしてください。
  2. ダウンロードしたインストーラを実行し、デフォルト設定のまま画面に従ってインストールしてください。
  3. IntelliJ IDEAを起動し、タイトル画面で左側の「Plugins」を選択してください。
  4. 「Marketplace」の検索欄から「Minecraft Development」を探し、インストールと再起動をしてください。
  5. [※任意: 本バージョンの講座では英語版で解説をしますが、適宜IDEを日本語化しても構いません。該当する項目は本講座の購読者で適宜日本語訳して読んで下さい。] (「Marketplace」の検索欄から「Japanese Language Pack / 日本語言語パック」を探し、インストールと再起動をしてください。)

Forgeの読み込み

  1. ダウンロードページから1.19.4を選択し、「Download Recommended」の「Mdk」を押してください。
  2. 「AdFoc.us」という広告ページに移動し、5秒待つと右上に「SKIP」というボタンが出るので、これをクリックしてダウンロードしてください。下の方の「ダウンロード」などのボタンは広告です。
  3. ダウンロードしたzipファイルの中身をコピーし、MODを開発する場所に貼り付けます。日本語の入っていない場所がよいでしょう。今回は例としてC:/Mods/ExampleTNTを使用します。今後、build.gradleのパスがC:/Mods/ExampleTNT/build.gradleであるとします。
  4. IntelliJ IDEAを起動して「Projects」の「Open」からC:/Mods/ExampleTNTを選択します。
  5. セーフモードの案内が出たら「Trust Project」を選択してください。
  6. 自動で読み込みが始まるので、右下の読み込み表示が完了するまで待ちます。ここでは読み込みに失敗しても次の手順に進んでください。10分以上かかることもありますが、待ってください。

JDKの設定

  1. メニューバーの「File」から「Project Structure」ダイアログを開いてください。

  2. 「Project」の「SDK」に「temurin-17」を指定します。
  3. 選択肢になければ、「Add SDK」から「Download JDK」を選び、「Version」に「17」、「Vender」に「Eclipse Temurin (AdoptOpenJDK HotSpot)」を指定して「Download」を押してください。
  4. 「Langage Level」に「SDK Default」を選びます。
  5. 「Project Structure」ダイアログの「Platform Settings」の「SDKs」を確認し、「corretto-17」などが自動で追加されていたら削除してください。
  6. 「File」から「Settings」を選び、「Build, Execution, Deployment > Build Tools > Gradle」の「Gradle JVM」に「Project SDK」を設定してください。

Forgeの設定

  1. 画面左側のファイルビューから、build.gradleを開き、ctrl+Rで置換メニューを展開してexamplemodexampletnt(若しくはこのあと設定する予定のMOD ID)に置換して下さい。また、archivesBaseNameを同様にmodidから変更して下さい。
  2. 画面右側のツールウィンドウバーにある「Gradle」(象のマーク) を選択し、Gradleツールウィンドウを開いてください。
  3. Gradleツールウィンドウ左上の同期マークから「Reload All Gradle Projects」を実行し、完了を待ってください。
  4. 画面下側の「Build」からビルドツールウィンドウを開き、「BUILD SUCCESSFUL」と出ていることを確認してください。失敗した場合は、詳細が表示されます。
  5. Gradleツールウィンドウで「ExampleTNT > Tasks > forgegradle runs」と階層を下りて「genIntellijRuns」をダブルクリックすると、実行構成が自動で作成されます。
  6. もう一度ビルドツールウィンドウで「BUILD SUCCESSFUL」の表示か失敗の詳細を確認してください。
  7. 画面右上の「ExampleTNT [genIntellijRuns]」などと表示されている実行構成の選択肢に「runClient」があるか確認してください。
  8. 「runClient」が表示されない場合、「Reload All Gradle Projects」を試してください。それでも表示されなければ、「File」から「Close Project」を選択し、タイトル画面から「ExampleTNT」を開きなおしてください。
  9. 「runClient」を選択できたら実行ボタンを押し、Minecraftが起動することを確認してください。失敗した場合は、実行ツールウィンドウに詳細が表示されます。

失敗した場合

  1. もう一度失敗した手順を試してください。
  2. Gradleツールウィンドウの「Reload All Gradle Projects」を行って、もう一度試してください。
  3. メニューバーの「File」から「Close Project」を選び、タイトル画面から開きなおし、もう一度試してください。
  4. PC本体の再起動を行って、もう一度試してください。
  5. 各手順に記載されている表示欄から詳細を確認してください。
  6. 解決方法が記載されているならそれに従い、わからなければ文章をそのまま検索して解決方法を探してください。
  7. この記事のコメント欄に解決方法がないか探してください。
  8. %USERPROFILE%/.gradle/C:/Mods/ExampleTNT/を削除し、Forgeの読み込みの手順3からやり直してください。
  9. 上記手順で解決しない場合、詳しい状況や失敗した手順の番号、表示されている詳細の全文をこの記事のコメント欄で説明していただければ、力になれるかもしれません。

Example Modの削除

  1. 画面左側のプロジェクトツールウィンドウから、ExampleTNT/src/main/java/にあるcom.example.examplemodExampleModを削除してください。
  2. 残ったらcom.example.examplemodも削除してください。
  3. ExampleTNT/src/main/javaを右クリックし、「New」の「package」から下の「パッケージ名について」の項目をよく読んだ上で、パッケージを作成して下さい。本講座ではパッケージ名をcom.tntmodders.exampletntとしていますが、適宜自分のパッケージ名に読み替えて利用して下さい。
  4. com.tntmodders.exampletntを右クリックし、「New」の「Javaクラス」からExampleTNTを作成してください。
  5. ExampleTNT/src/main/resources/META-INF/mods.tomlを開き、以下の変更をして下さい。
    modId="examplemod" -> modId="exampletnt"
    displayName="Example Mod" -> displayName="Example TNT"
    dependencies.examplemod -> dependencies.exampletnt (二箇所)
  6. TitaniumMod/にあるchangelog.txtCREDITS.txtLICENSE.txtREADME.txtを削除してください。Forgeの説明文書です。

パッケージ名について

Example Modの削除の手順3ではcom.tntmodders.exampletntとしています。公開するMODのパッケージ名には、com.tntmoddersを使わないでください。また、パッケージ名とMOD IDはすべて小文字に、クラス名は単語の頭を大文字にします。

パッケージ名は、実際にMODを作るときは自分が保有するドメインを使います。ない場合は自分の名前など、他のプログラムと被らないものを使ってください。例として、オファレンMODはtntmodders.comのドメインを取得する前に開発を始めたので、nahama.ofalenmodをパッケージ名にしました。自分のドメインを保持していない場合は、<ハンドルネーム>.<MOD名>若しくはnet.<ハンドルネーム>.<MOD名>を利用する例が多いです。

画像編集ソフト

16×16ピクセルの画像をピクセル単位で編集でき、RGBA各チャンネル8 bitの色情報を透過PNGファイルとして保存できるソフトを用意してください。リソースパックの作り方などで調べると適したソフトが紹介されていると思います。

凪浜は「paint.net」の無料版を使っています。
TomKateはPhotoshop Proを使っていますが、もっと軽いピクセル絵用のソフトのほうがいいと思います。

アンインストール

Forge関連

%USERPROFILE%/.gradle/C:/Mods/ExampleTNT/を削除してください。

IntelliJ IDEA

スタートメニューなどからアンインストールします。「Please confirm if you would like to delete the caches and settings:」の枠内にある2つのチェックボックスにチェックを入れてください。また、%APPDATA%/JetBrains/%LOCALAPPDATA%/JetBrains/に何か残っていたら削除してください。

JDK

%USERPROFILE%/.jdks/から削除してください。IntelliJ IDEAがインストールされているなら「プロジェクト構造」内の「プラットフォーム設定」の「SDK」からも削除してください。この記事の方法では環境変数の設定などは行いません。

リンク


次:アイテムの追加

2件のコメント

  1. 初めまして。
    こちらのサイトを参考にさせていただきながらMOD作成環境の構築を行っております。
    MODの作成自体が初めてです。
    順調に進んでいたのですが、runClientの実行でエラーが発生しました。
    エラーメッセージは下記の通りです。
    エラーの場合の対処方法もやれる範囲でやってみましたが、どうにもうまくいきませんでしたので
    こちらのコメント欄に投稿させていただきました。
    何か解決方法等ご存じであればご教授いただけると助かります。
    よろしくお願いいたします。

    以下エラーメッセージ
    Execution failed for task ':runClient'.

    Process 'command 'C:\Users\haru.gradle\jdks\adoptium-17-x64-hotspot-windows\jdk-17.0.7+7\bin\java.exe'' finished with non-zero exit value 1

    Try:

    Run with --info or --debug option to get more log output.
    Run with --scan to get full insights.

    Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':runClient'.
    Caused by: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\haru.gradle\jdks\adoptium-17-x64-hotspot-windows\jdk-17.0.7+7\bin\java.exe'' finished with non-zero exit value 1

    • Tom Kate

      ご連絡ありがとうございます。
      こちらの実行環境では該当エラーが確認できませんでした。
      環境構築の手順を一からクリーンインストールする形で試して頂くか、ヒープサイズを増やして実行してみると解決する可能性があります。
      finished with non-zero exit value 1
      の形式のエラーだと、原因が特定できないため、Try: 以下に書いてある引数もお試しください。

コメントはこちらです。(スパム対策の為コメントは手動承認になっています。未承認のコメントは表示されないので連投はお控え下さい。)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください