概要
特殊な機能を持たないアイテムを追加します。
動作確認
2020年3月21日
- Minecraft 1.16.5
- Forge 36.1.0
解説
TitaniumMod
TitaniumMod/src/main/java/com/tntmodders/titaniummod/TitaniumMod.java
package com.tntmodders.titaniummod;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
@Mod(TitaniumMod.MOD_ID)
public class TitaniumMod {
public static final String MOD_ID = "titaniummod";
public TitaniumMod() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
Items.register(modEventBus);
}
public static class Items {
private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID);
public static final RegistryObject<Item> TITANIUM_INGOT = ITEMS.register("titanium_ingot", () -> new Item(new Item.Properties()
.tab(ItemGroup.TAB_MATERIALS)));
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);
}
}
}
MODのプログラムをJavaで記述します。
MOD_ID
はmods.toml
に記載したものと一致する必要があります。すべて小文字にしてください。
ITEMS.register("titanium_ingot", …)
でアイテムの登録名を指定します。アイテムIDはtitaniummod:titanium_ingot
となります。
Item
クラスのインスタンスはMinecraftのアイテムの種類を表します。耐久上限や最大スタック数など、アイテムの種類によって変わる性質を保持しています。
tab(ItemGroup.TAB_MATERIALS)
でクリエイティブタブ「その他」に表示されるよう指定します。この指定を行わなかった場合、クリエイティブタブからは取得できなくなります。
モデル
TitaniumMod/src/main/resources/assets/titaniummod/models/item/titanium_ingot.json
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "titaniummod:item/titanium_ingot"
}
}
アイテムモデルをリソースパックと同様の形式のJSONで記述します。
テクスチャ
TitaniumMod/src/main/resources/assets/titaniummod/textures/item/titanium_ingot.png
アイテムのアイコンになる16×16ピクセルのpng画像ファイルです。
英語翻訳
TitaniumMod/src/main/resources/assets/titaniummod/lang/en_us.json
{
"item.titaniummod.titanium_ingot": "Titanium Ingot"
}
英語の翻訳をリソースパックと同様の形式のJSONで記述します。翻訳が設定されていない言語の代わりとしても表示されます。
日本語翻訳
TitaniumMod/src/main/resources/assets/titaniummod/lang/ja_jp.json
{
"item.titaniummod.titanium_ingot": "チタンインゴット"
}
日本語の翻訳をリソースパックと同様の形式のJSONで記述します。文字コードはUTF-8で保存します。
過去の質問
テクスチャが反映されません。
src/main/resources/assets/
にあるtitaniummod
フォルダは、MODのIDをすべて小文字にして入れてください。また、テクスチャやモデルが見つからなかったという内容のログが表示されるので、ファイル名が正しいか確認してください。
関連クラス
net.minecraft.item.Items
:バニラのアイテムが記述されています。net.minecraft.item.ItemGroup
:バニラのクリエイティブタブが記述されています。
リンク
- Items - Forge Documentation
- Registries - Forge Documentation
- Resources - Forge Documentation
- リソースパック - Minecraft Wiki
- チュートリアル/リソースパックの作成 - Minecraft Wiki
前:環境構築
次:ブロックの追加
“アイテムの追加 (1.16.5)” への11件のフィードバック
マイクラでMODの勉強をしている者です。
この記事のコードを全コピーして実際にrunCilentしてみたところ、
アイテム名やブロック名(日本語と英語両方)、テクスチャが反映されませんでした。
ファイル名は確認しましたが異常はあり原因は何田消化?原因は何でしょうか?
実行ログの起動処理の部分にリソースが見つからなかったというエラーが出ているはずなので、「titanium」で検索し、そこに表示されているファイル名とパスを確認してください。
環境構築の記事の手順にある
mods.toml
のmodId
や、JSONファイルなどを配置するフォルダの階層、ファイル名についてもう一度確認してください。解決しなければ、
TitaniumMod/build/resources/main/assets/
にJSONファイルなどが自動でコピーされているかどうかお知らせください。違う人なのですが、JSONファイルがコピーされているのにテクスチャが反映されません。
なんででしょうか?
ゲームが正常に起動してアイテムの追加を確認できているなら、ファイルの配置や名前に間違いがある可能性が高いでしょう。
ログ(IntelliJ IDEAのRun Tool Windowか
TitaniumMod/run/logs/latest.log
)をtitanium
やWARN
、ERROR
などで検索し、関連する出力を探してください。Unable to load model
やUsing missing texture
などの記述があれば、該当するファイルが読み込まれていないので、ファイル名やフォルダの構成を確認してください。アイテム名の翻訳も反映されていないなら、上位フォルダの構成が間違っていないか確認してください。
解決しなかったら、ログとスクリーンショットの個人情報に注意して、以下についてお知らせください。
model
とtexture
のどちらが読み込まれていないかresources
内のフォルダ構成がわかるもの)minecraft:textures/item/titanium_ingot.png : java.io.FileNotFoundException: minecraft:textures/item/titanium_ingot.png

というエラーを発見しました。
modelとtextureのどちらが読み込まれていないか⇛textureが読み込まれていないです。
翻訳が反映されているか⇛反映されています。
ログの関連部分か全文⇛エラーは全文ではなく一行だけです。
画像の貼り方がわからないのでGoogleドライブの機能を使わせていただきます。
titaniummodではなくzisakumodになっていますが気にしないでください。(わかりづらくてすいません)
エラーの
minecraft:textures/item/titanium_ingot.png
は、titaniummod
やzisakumod
ではなくminecraft
のリソースでテクスチャを探していることを示しています。モデルファイル内の"layer0": "titaniummod:item/titanium_ingot"
の行で正しくMOD IDを指定していることを確認してください。また、パッケージ名に脱字があるようです。
mods.toml
やZisakuMod.java
、各リソースファイルの内容について、誤字脱字がないかもう一度確認してください。解決しなければ、MOD名やMOD IDまで完全に記事にしたがってみてください。
スクリーンショットはこちらで差し替えました。Googleドライブの共有は相手にアカウント名が見えるのでご注意ください。
解決しました!ありがとうございます!!!!!!
テクスチャのところでassetsがないのですが原因は何でしょうか?
正しい状態です。
assets
やaluminiummod
など指定された名前のフォルダを新しく作り、aluminium.json
などのファイルを新しく作って配置してください。ありがとうございます!(返信遅れてすいません)