*Mod開発 (特にForgeを前提としたMod) [[Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/Minecraft_Modding_Wiki]] 日本語のWiki [[Forge Documentaion>https://mcforge.readthedocs.io/en/latest/]] Forgeのドキュメント [[http://greyminecraftcoder.blogspot.com]] MinecraftやForgeのコードのコンセプトに着目してModの開発法を解説している。例えば各種レジストリの解説やメソッドの呼び出される順番などの情報がある [[Minecraft Modding: List Of Topics (1.6, 1.7 - outdated)>>http://greyminecraftcoder.blogspot.com/p/list-of-topics-outdated.html]] 上のブログのMC1.6、1.7向けの古い情報 [[125forum • トップページ>>http://minecraft125user.nisfan.net/forum/index.php]] MC1.2.5専用のフォーラム **Mod開発の基本・チュートリアル・開発環境構築 Modの開発環境にはMC1.6.4以前のMCP(ModCoderPack)を使った方法と、MC1.7.10からのForgeGradleを使う方法の、大きく分けて2つがある。新規で[[Mod開発]]を始める場合は後者の方法を用いるのが良いと思う。 **MC1.7.10 [[MinecraftForge導入手順 - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/MinecraftForge%E5%B0%8E%E5%85%A5%E6%89%8B%E9%A0%86]] おそらくMC1.7.10向け(+MC1.6.4の一部向け)。MC1.7.10以降のバージョンも同じ手順でできると思われるが、IDE関連の設定方法などは変わっている。 [[IGNIS制作記録 - defeatedcrow mod wiki>>https://defeatedcrow.jp/modwiki/IGNIS%E5%88%B6%E4%BD%9C%E8%A8%98%E9%8C%B2]] AppleMilkTea!やHead&Climateの製作者であるdefeatedcrow氏がModを作るときの流れをまとめたもの(MC1.7.10) [[MOD開発講座 | TNT Modders>>https://www.tntmodders.com/tutorial/]] 匠Craftの開発者らによるMC1.7.10の開発環境構築・チュートリアル **その他のバージョン [[チュートリアル一覧 MOD製作者のためのソース解説 | 鎮守府MOD製作者・鮎滝渉【Minecraft JE版】>>https://ayutakimm.wp-x.jp/universal-jp/contents-tree-jp/]] MC1.12.2およびMC1.10.2、Eclipseでのアイテム、ブロック、レシピ追加など [[MOD開発講座 | TNT Modders>>https://www.tntmodders.com/tutorial/]] 匠Craftの開発者らによるMC1.12.2及びMC1.14.4の開発環境構築・チュートリアル ***ForgeGradleについて [[ForgeGradle>>https://forgegradle.readthedocs.io/en/latest/]] ForgeGradleのドキュメント (MC1.7.10) [[>>https://github.com/Chicken-Bones/CodeChickenLib/blob/1.7/build/build.gradle]] CodeChickenLibのbuild.gradle。mavenのアップロードまで自動化しているようにみえる。 [[Minecraft Forge 1.7.10環境でのModのビルド等ができなくなった問題 - 鳥猫ぶろぐ>>https://blog.toliner.dev/entries/XsEydENmoDjW2qY7]] 2020年1月頃から、MC1.7.10のModding環境を最初に作るときに起こるようになったエラーの解決法 [[マインクラフト1.12以前向けのForgeGradleでrunClientをjdk8最新版で実行するには - Qiita>>https://qiita.com/anatawa12/items/90d1c3e2994b57073bec]] JDK 8u242からMC1.12以前の環境で発生するようになったエラーの解決法 ***&color(#999999){以下はMCPを用いる古い情報} [[MinecraftForge導入手順(MCP) - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/MinecraftForge%E5%B0%8E%E5%85%A5%E6%89%8B%E9%A0%86(MCP)]] &color(#999999){MC1.6.1~MC1.6.4のMCP環境にForgeを導入する方法} [[MCPの環境構築手順 - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/MCP%E3%81%AE%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E6%89%8B%E9%A0%86]] &color(#999999){MCPの開発環境構築の手順。Minecraftのバージョンは不明。} [[125forum • トピック - 【準備】1.2.5MOD/アドオン開発環境の構築、Modding時の注意>>http://minecraft125user.nisfan.net/forum/viewtopic.php?f=16&t=74]] &color(#999999){MC1.2.5でのMCP+Forgeの開発環境構築の手順} *Mod開発・全般 **Scalaでコードを書く [[No.3 Scalaでソースコードを書く - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-4.html]] [[No.4 新しいブロックを作る - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-5.html]] [[No.5 新しいブロックを作る(2) - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-6.html]] [[No.6 Blockの細かい設定をする - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-7.html]] [[No.7 TileEntityを作る - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-8.html]] 環境はMC1.7.10、Forge、IntelliJ IDEA **単体テスト [[Minecraft ForgeでJUnitのテストをする - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-33.html]] おそらくJSON化以降(MC1.8.0以降)のMinecraftでしかできない。一部はMC1.7.10でも使える。 [[BuiltBrokenModding/MinecraftJUnit: Lib designed to support JUnit testing in a minecraft forge workspace>>https://github.com/BuiltBrokenModding/MinecraftJUnit]] Minecraft moddingでJUnitのテストをするためにライブラリ。どのバージョンのMinecraftに対応しているのかは未調査。 *Mod開発・目的別 (特にMC1.7.10) **鉱石辞書 [[鉱石辞書の利用 - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/%E9%89%B1%E7%9F%B3%E8%BE%9E%E6%9B%B8%E3%81%AE%E5%88%A9%E7%94%A8]] 鉱石辞書の登録、参照方法。MC1.7.10でも使える。バニラ及びいくつかのModの鉱石辞書名の一覧もある。 **液体 [[1.6の流体追加 - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/1.6%E3%81%AE%E6%B5%81%E4%BD%93%E8%BF%BD%E5%8A%A0]] アイテム・ブロックなどの実体を持たない流体情報であるFluidの追加方法。及びFluidに対応する流体ブロックの追加方法、Fluidへのテクスチャの適用方法、Fluidに対応するバケツの追加方法。 MC1.7.10でも類似の方法で可能。 [[1.6の流体をバケツで扱う - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/1.6%E3%81%AE%E6%B5%81%E4%BD%93%E3%82%92%E3%83%90%E3%82%B1%E3%83%84%E3%81%A7%E6%89%B1%E3%81%86]] 追加した液体をバケツですくう方法。 MC1.7.10でも類似の方法で可能。 **機械 [[1.7の液体タンクを持つTileEntityの追加 - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/1.7%E3%81%AE%E6%B6%B2%E4%BD%93%E3%82%BF%E3%83%B3%E3%82%AF%E3%82%92%E6%8C%81%E3%81%A4TileEntity%E3%81%AE%E8%BF%BD%E5%8A%A0]] ・TileEntityの扱い方 ・TileEntityでのFluidStackの操作 ・Blockのカスタムレンダリング ・TileEntitySpecialRenderer などについてのコードが載っており、集大成的なページになっている。あとはGUIの表示方法とIInventoryの実装方法がわかれば大抵の機械は実現できそう。 [[コンテナとGUIの追加の方法 - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%81%A8GUI%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%81%AE%E6%96%B9%E6%B3%95]] IInventoryの実装例。タイトルにGUIとあるが、GUIの追加の方法は書かれていない。MC1.7.10 [[CodeChickenLib/InventoryUtils.java at master · Chicken-Bones/CodeChickenLib>>https://github.com/Chicken-Bones/CodeChickenLib/blob/master/src/codechicken/lib/inventory/InventoryUtils.java]] IInventoryの実装例。MC1.7.10向けCodeChickenLibのソースコードの一部。 IInventoryの中でも仕様がわかりにくいdecrStackSize()の実装や、インベントリのItemStackをNBTに書き込む処理・読み込む処理などがstaticメソッドとして書かれている。 [[1.7でのインベントリ操作 - Minecraft Modding Wiki>>https://mcmodding.jp/modding/index.php/1.7%E3%81%A7%E3%81%AE%E3%82%A4%E3%83%B3%E3%83%99%E3%83%B3%E3%83%88%E3%83%AA%E6%93%8D%E4%BD%9C]] IInventoryを利用して他のブロックなどのインベントリを操作する方法。コメントがわかりやすい **GUI [[Applied-Energistics-2/GuiScrollbar.java at rv3-1.7.10 · AppliedEnergistics/Applied-Energistics-2>>https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/rv3-1.7.10/src/main/java/appeng/client/gui/widgets/GuiScrollbar.java]] MC1.7.10向けAppliedEnergistics2のコード。スクロールバーの実装。 [[Container#transferStackInSlotの話 - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-9.html]] おそらくMC1.7.10の話。Container#transferStackInSlotの実装方法について。 [[TileEntityに入るアイテムを制限する - Kotori minecraft mod>>https://kotori316.blog.fc2.com/blog-entry-11.html]] おそらくMC1.7.10の話。 **エンティティ [[Jabelar's Minecraft Forge Modding Tutorials>>https://jabelarminecraft.blogspot.com/]] たぶんMC1.7.10 *ForgeやMinecraftのコードについて理解する [[https://codeshare.io/5Xx5E]] へぼへぼ氏によるForge及びMinecraftのコードの分析 FMLのModローディング部分、BlockやTileEntityの扱われ方、TESRなど [[http://greyminecraftcoder.blogspot.com]] MinecraftやForgeのコードを解説する。プレイヤーが右クリックしたときの処理順、各種レジストリの解説、レンダリング処理の解説など。 [[RayStarkMC/ModdingDocument: MinecraftModdingDocuments>>https://github.com/RayStarkMC/ModdingDocument]] ForgeやMinecraftのクラスの解説。net.minecraft.util.MathHelperの解説などが特に有用。 *その他のライブラリなどについて **Gson [[Gson User Guide を和訳 - Qiita>>https://qiita.com/yoshinarl/items/4575b2e1785dcde63531]] *コメント #include(コメント欄方針/テンプレート) #pcomment(reply,new,enableurl,15,リンク集/コメントログ) [[コメントログ>>リンク集/コメントログ]]