{}const=>[]async()letfn</>var
開発

Minecraftに新しいモブを追加する方法

Forge APIの操作、Javaでのコード作成、3Dモデルの作成、クリーチャーへのユニークな動作の追加方法を学びます。ゲーム開発の旅を始め、実際のプロジェクトでOOPを学びたい人のために最適です。

К

Kodik

著者

2分で読める

Minecraft は単なるゲームではなく、創造性とプログラミング学習のための総合的なプラットフォームです!今日は、ゼロから自分だけのモブを作る方法を解説します。これは、 Java ゲーム開発の基礎を理解することができます。

何が必要ですか?

作業を開始する前に、次のものがインストールされていることを確認してください。

  • Java Development Kit (JDK) バージョン17以降

  • IntelliJ IDEA (コミュニティエディションが適しています)

  • Minecraft Forge MDK (Mod Development Kit)

  • Javaの基本知識(変数、クラス、メソッド)

🔥 10万人以上の学生が参加中

理論を読むのに疲れた?
コーディングの時間だ!

Kodik — 実践でプログラミングを学ぶアプリ。AIメンター、インタラクティブなレッスン、実際のプロジェクト。

🤖 AI 24時間
🎓 修了証
💰 無料
🚀 始める
今日参加

ステップ1:環境のセットアップ

まずはダウンロードしてください Forge MDK 公式サイトから files.minecraftforge.netアーカイブを別のフォルダに解凍し、IntelliJ IDEAでプロジェクトを開きます。

IDEターミナルで次のコマンドを実行します。

./gradlew genIntellijRuns

💡ヒント: これにより、開発用のプロジェクトが設定されます。Gradleがすべての依存関係をダウンロードするまでお待ちください。これには数分かかる場合があります。

ステップ2:モブクラスを作成する

夜に飛び回って光るフレンドリーなホタルのシンプルなモブを作成しましょう。

src/main/java/com/yourname/yourmod/entity フォルダーに、FireflyEntity.java ファイルを作成します。

package com.yourname.yourmod.entity;

import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.goal.FloatGoal;
import net.minecraft.world.entity.ai.goal.WaterAvoidingRandomStrollGoal;
import net.minecraft.world.level.Level;

public class FireflyEntity extends PathfinderMob {
    
    public FireflyEntity(EntityType<? extends PathfinderMob> type, Level world) {
        super(type, world);
    }
    
    // モブの行動を記録する
    @Override
    protected void registerGoals() {
        this.goalSelector.addGoal(0, new FloatGoal(this));
        this.goalSelector.addGoal(1, new WaterAvoidingRandomStrollGoal(this, 1.0D));
    }
    
    // 属性を設定する(健康、速度)
    public static AttributeSupplier.Builder createAttributes() {
        return PathfinderMob.createMobAttributes()
            .add(Attributes.MAX_HEALTH, 5.0D)
            .add(Attributes.MOVEMENT_SPEED, 0.25D);
    }
}

何が起こっているのですか?

  • PathfinderMob — 歩くことができるモブの基本クラス

  • registerGoals() — モブの動作(泳ぐ、歩く、攻撃する)を決定するメソッド

  • createAttributes() — ここでは、特性を設定します:体力、速度、ダメージ

ステップ3:モブを登録する

今度は、ゲームに私たちのモブについて「伝える」必要があります。クラス ModEntities.java を作成します。

package com.yourname.yourmod.entity;

import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

public class ModEntities {
    public static final DeferredRegister<EntityType<?>> ENTITIES = 
        DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, "yourmod");
    
    public static final RegistryObject<EntityType<FireflyEntity>> FIREFLY = 
        ENTITIES.register("firefly", () -> EntityType.Builder
            .of(FireflyEntity::new, MobCategory.CREATURE)
            .sized(0.4F, 0.3F) // ヒットボックスのサイズ
            .build("firefly"));
}

モッドのメインクラスに ENTITIES を登録することを忘れないでください。

@Mod("yourmod")
public class YourMod {
    public YourMod() {
        IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
        ModEntities.ENTITIES.register(bus);
    }
}

ステップ4:モデルとテクスチャを作成する

モブはありますが、見えません!3Dモデルを作成する必要があります。プログラムを使用できます Blockbench — Minecraftモデルの無料エディター。

  1. シンプルなモデルを作成します(ボディ用の立方体、ウィング用の小さな立方体)

  2. Javaファイルとしてエクスポート

  3. モデルをsrc/main/java/com/yourname/yourmod/client/model/に配置します

  4. テクスチャ(16x16ピクセル)を作成し、src/main/resources/assets/yourmod/textures/entity/に保存します

ステップ5:モブレンダラー

クラス FireflyRenderer.java を作成します。

package com.yourname.yourmod.client.renderer;

import com.yourname.yourmod.entity.FireflyEntity;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.client.renderer.entity.MobRenderer;
import net.minecraft.resources.ResourceLocation;

public class FireflyRenderer extends MobRenderer<FireflyEntity, FireflyModel> {
    
    private static final ResourceLocation TEXTURE = 
        new ResourceLocation("yourmod", "textures/entity/firefly.png");
    
    public FireflyRenderer(EntityRendererProvider.Context context) {
        super(context, new FireflyModel(context.bakeLayer(FireflyModel.LAYER)), 0.3F);
    }
    
    @Override
    public ResourceLocation getTextureLocation(FireflyEntity entity) {
        return TEXTURE;
    }
}

ステップ6:ワールド内のモブのスポーン

ゲームの自然なスポーンにモブを追加します。モッドのメインクラスにイベントハンドラを追加します。

@SubscribeEvent
public static void onBiomeLoading(BiomeLoadingEvent event) {
    if (event.getCategory() == Biome.BiomeCategory.FOREST) {
        event.getSpawns().getSpawner(MobCategory.CREATURE)
            .add(new MobSpawnSettings.SpawnerData(
                ModEntities.FIREFLY.get(), 15, 2, 4));
    }
}

✅ 素晴らしい! 森のバイオームにホタルが現れるようになりました!

ステップ7:テスト

IntelliJ IDEAを介してゲームを実行します(runClient構成を使用)。新しい世界を作り、以下を確認してください。

  • 森にモブが現れますか?

  • モデルは正しく表示されていますか?

  • 行動(歩く、泳ぐ)は機能しますか?

💡ヒント: 何かがうまくいかない場合は、コンソールのログを確認してください。Forgeはすべてのエラーを詳細に説明します。

その他の機能

モブを追加できます:

  • 独自のサウンド (ステップ、攻撃、死亡)

  • アニメーション (翼の揺れ、輝き)

  • ユニークな行動 (攻撃、逃走、食べ物の探索)

  • アイテムのドロップ 死亡時

  • 召喚の卵を介したスポーン

@Override
protected void dropCustomDeathLoot(DamageSource source, int looting, boolean recentlyHit) {
    super.dropCustomDeathLoot(source, looting, recentlyHit);
    this.spawnAtLocation(Items.GLOWSTONE_DUST, 1);
}

初心者がよくする間違い

  1. モブを登録するのを忘れましたENTITIES.register(bus) が呼び出されていることを確認してください

  2. テクスチャへのパスが正しくありません — コードとファイルシステムのパスが一致していることを確認してください

  3. 作業環境が生成されていませんgradlew genIntellijRuns を再度実行してください

  4. 古いバージョンのForge - Minecraftのバージョンに最新の安定バージョンを使用してください

このテーマをより深く掘り下げ、ユニークなメカニクスを持つ本当にクールなモブを作成したいですか?

B コディケ Javaの基礎から複雑なプロジェクトの作成まで、他の多くのプログラミングトピックを詳細に分析します。各テーマには、学習内容を定着させるための実践的な課題が付随しています。

学習内容:

  • 実際の例でJavaを操作する

  • モッド、プラグイン、ゲームを作成する

  • コードの構造を理解し、クリーンなコードを書く

  • 本物の開発者のように課題を解決する

ご不明な点やサポートが必要な場合は、当社のアクティブな テレグラムチャンネル、ここにはすでに志を同じくする人々の大きなチームが集まっています!私たちは常に問題を解決し、最良の解決策を提案し、学習の過程でサポートします。

Kodikに参加してください。プログラミングはわかりやすく、楽しいものです! 🚀

🎯先延ばしをやめよう

記事は気に入った?
実践の時間だ!

Kodikでは読むだけでなく、すぐにコードを書く。理論 + 実践 = 本当のスキル。

即座に実践
🧠AIがコードを説明
🏆修了証

登録不要 • カード不要