Mod開発解説 > Forge1.18.2 > アイテムの作成

目次

+ ...


{
   "name" : "template-code-highlight"
}

アイテムの追加方法の解説です。

アイテムを登録する

アイテムなどのオブジェクトは、登録してゲームに認識させなければいけません。

基本的なアイテムを登録する

棒、火薬などの特殊な機能がないアイテムの追加方法です。
ツールや、右クリックすると何かが起こる、といったアイテムはもう一方のやり方で追加できます。

Items.java

アイテムの登録情報を記述します。
場所はどこでもいいですが、com/example/examplemod/items/に作成します。
package com.example.examplemod.items;

import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.CreativeModeTab;

public class Items {
    public static final String MOD_ID = "examplemod";

    private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MOD_ID);

    public static final RegistryObject<Item> BLUE_POWDER = ITEMS.register("blue_powder", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC).fireResistant()));

    public static DeferredRegister<Item> getRegister(){
        return Items.ITEMS;
    }
}



MOD_IDはmods.tomlで定義したMODのIDと同じものを入れて下さい。
ITEMSには、アイテムを登録するためのDeferredRegister、いわば「名簿」のようなものを設定しています。
その次のITEMS.register("<アイテムのID>", ...)でアイテムを登録します。実際のアイテムIDは、MODのID:設定したアイテムのIDとなります。
変数名は、定数なので大文字にしましょう。

new Item.Properties()の後に、アイテムの振る舞いを記述します。

設定できる要素については、次の表を参照してください。
メソッド名 引数 説明
food (FoodProperties) 食べ物としての設定をする。詳しい解説は以下を参照。
stacksTo (int) 最大スタック数を指定する。durabilityと併用できない。
defaultDurability (int)
durability (int) 耐久値を設定する。指定すると最大スタック数は1に設定される。
craftRemainder (Item) クラフトに使用したときに返ってくるアイテムを指定する。一覧は<forge>/net/minecraft/world/item/Items.javaを参照。
tab (CreativeModeTab) アイテムが属するクリエイティブタブを指定する。タブ一覧は下記参照。
rarity (Rarity) レア度を指定する。
fireResistant (なし) 火に耐性を持つ。
setNoRepair (なし) アイテムを修理できなくなる。
+ クリエイティブタブ一覧
定数名 名前
CreativeModeTab.TAB_BUILDING_BLOCKS 建築ブロック
CreativeModeTab.TAB_DECORATIONS 装飾ブロック
CreativeModeTab.TAB_REDSTONE レッドストーン
CreativeModeTab.TAB_TRANSPORTATION 運送
CreativeModeTab.TAB_MISC その他
CreativeModeTab.TAB_SEARCH アイテム検索
CreativeModeTab.TAB_FOOD 食料
CreativeModeTab.TAB_TOOLS 道具
CreativeModeTab.TAB_COMBAT 戦闘
CreativeModeTab.TAB_BREWING 醸造
CreativeModeTab.TAB_MATERIALS その他(TAB_MISCと同じ)
CreativeModeTab.TAB_HOTBAR 保存したホットバー
CreativeModeTab.TAB_INVENTORY サバイバルインベントリ
「アイテム検索」「保存したホットバー」「サバイバルインベントリ」に所属させることも可能です。
しかし、「保存したホットバー」内には表示されません。
また、「サバイバルインベントリ」内では、「アイテムを削除」のスロットに配置されそこから入手することはできません。
いずれの場合も「アイテム検索」から入手することは可能です。
+ レア度一覧
Rarity.COMMON 白色
Rarity.UNCOMMON 黄色
Rarity.RARE 水色
Rarity.EPIC 明るい紫色


FoodProperties


public static final RegistryObject<Item> EDIBLE_POWDER = ITEMS.register("edible_powder", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_FOOD).food(new FoodProperties.Builder().alwaysEat().effect(() -> new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 10, 5, false, true, false), 1.0F).build())));


new FoodPropeties.Builder().<設定>.build()という風に書きます。

設定できる要素
メソッド名 引数 説明
nutrition (int) 回復する満腹度。
saturationMod (float) 隠し満腹度の回復量?
実際の隠し満腹度の回復量は、nutrition * saturationModifier * 2になる。(要検証)
meat (なし) 肉に設定する。オオカミの餌になる。
alwaysEat (なし) 満腹でも食べられるようにする。
fast () 食べるスピードが速くなる。バニラでは「乾燥した昆布」に設定されている。
effect (java.util.function.Supplier<MobEffectInstance>,float) 食べたときにエフェクトを付与する。詳しくは以下の説明を参照。

effectの書き方(MobEffectInstance)

.food(new FoodProperties.Builder().effect(() -> new MobEffectInstance(<エフェクト>, <時間>, <レベル>, <アンビエント>, <可視>, <アイコン表示>, <隠し効果>), <確率>)).build())

デフォルト値のあるものは省略できます。
名前(仮) デフォルト 説明
エフェクト MobEffect 付与するエフェクト。
時間 int 0 エフェクトの持続時間(ティック)。
レベル int 0 エフェクトのレベル。
アンビエント boolean false ???
可視 boolean true パーティクル・インベントリでのアイコンを表示するかどうか
アイコン表示 boolean true プレイ画面で右上にアイコンを表示するかどうか
隠し効果 MobEffectInstance null ???
確率 float 確率を小数で指定する。
+ エフェクト一覧
定数名 名前
MobEffects.MOVEMENT_SPEED 移動速度上昇
MobEffects.MOVEMENT_SLOWDOWN 移動速度低下
MobEffects.DIG_SPEED 採掘速度上昇
MobEffects.DIG_SLOWDOWN 採掘速度低下
MobEffects.DAMAGE_BOOST 攻撃力上昇
MobEffects.HEAL 即時回復
MobEffects.HARM 即時ダメージ
MobEffects.JUMP 跳躍力上昇
MobEffects.CONFUSION 吐き気
MobEffects.REGENERATION 再生能力
MobEffects.DAMAGE_RESISTANCE 耐性
MobEffects.FIRE_RESISTANCE 火炎耐性
MobEffects.WATER_BREATHING 水中呼吸
MobEffects.INVISIBILITY 透明化
MobEffects.BLINDNESS 盲目
MobEffects.NIGHT_VISION 暗視
MobEffects.HUNGER 空腹
MobEffects.WEAKNESS 弱体化
MobEffects.POISON
MobEffects.WITHER 衰弱
MobEffects.HEALTH_BOOST 体力増強
MobEffects.ABSORPTION 衝撃吸収
MobEffects.SATURATION 満腹度回復
MobEffects.GLOWING 発光
MobEffects.LEVITATION 浮遊
MobEffects.LUCK 幸運
MobEffects.UNLUCK 不運
MobEffects.SLOW_FALLING 落下速度低下
MobEffects.CONDUIT_POWER コンジットパワー
MobEffects.DOLPHINS_GRACE イルカの好意
MobEffects.BAD_OMEN 不吉な予感
MobEffects.HERO_OF_THE_VILLAGE 村の英雄

見た目の設定

リソースパックで、アイテムの見た目を設定します。

テクスチャの設定

テクスチャファイル(PNG画像)はsrc/main/resources/assets/<MODのID>/textures/item/に保存します。

モデルJSON

src/main/resources/assets/<MODのID>/models/に作成します。
ファイル名は<アイテムID(名前空間を含まない)>.jsonにして下さい。
{
  "parent": "minecraft:item/generated",
  "textures": {
    "layer0": "examplemod:item/blue_powder"
  }
}
"layer0"の値を、"<MODのID>:<テクスチャのパス>"に設定します。

アイテム名の設定

言語JSON

src/main/resources/assets/<MODのID>/lang/に作成します。
ファイル名は言語に合わせて変更します。
{
  "item.examplemod.blue_powder": "Blue Powder",
  "item.examplemod.edible_powder": "Edible Powder"
}
JSONファイル内は、"item.<名前空間(MODのID)>.<アイテムID>": "<アイテム名>"の形で記述していきます。

参考文献

タグ:

未完成
最終更新:2024年12月11日 18:10