贝博恩创新科技网

Entity Creator教程如何快速上手?

Entity Creator 是一个功能强大的工具,主要用于创建和管理游戏中的各种实体,在 Minecraft 原版模组(尤其是基于 Forge 或 Fabric 的模组)中,实体是游戏世界中所有可移动、可交互对象的统称,比如生物、掉落物、投射物(箭、火球)等等。

这份教程将从零开始,带你了解 Entity Creator 的核心功能,并手把手教你创建一个简单的自定义实体。


第一部分:Entity Creator 是什么?

核心概念: Entity Creator 是一个可视化编辑器,它让你通过图形界面的方式来定义一个实体的各种属性,而无需(或只需少量)手写复杂的 Java 代码,它会自动生成大量基础的实体类代码,让你可以专注于实体的独特行为。

主要功能:

  • 基础属性设置: 设置实体的名称、标识符、大小、碰撞箱、生命值、护甲值等。
  • 渲染设置: 定义实体应该使用哪个模型、哪个纹理贴图、渲染尺寸等。
  • 行为设置:
    • 移动: 设置移动速度、是否飞行、是否游泳。
    • 目标选择: 定义实体会主动攻击谁,或者谁会攻击它(僵尸会攻击村民,村民会攻击僵尸)。
    • 生成规则: 设置实体可以在哪些生物群系自然生成。
    • 掉落物: 定义实体死亡时掉落哪些物品。
    • AI(行为树): 通过拖拽节点的方式,配置实体的复杂行为,比如巡逻、攻击、躲避等。
  • 数据同步: 自动处理实体数据在客户端和服务器之间的同步,保证游戏体验一致。
  • 事件处理: 提供了实体生命周期中关键事件(如生成、死亡、受到攻击等)的钩子,方便你添加自定义逻辑。

第二部分:准备工作

在开始之前,请确保你已经准备好以下环境:

  1. IDE (集成开发环境): 推荐使用 IntelliJ IDEA (社区版免费) 或 VS Code
  2. Forge MDK (Mod Development Kit): 从 Minecraft Forge 官网下载与你目标 Minecraft 版本对应的 MDK,Entity Creator 通常作为 Forge MDK 的一部分或一个推荐的插件存在。
  3. 安装 Entity Creator 插件:
    • 如果使用 IntelliJ IDEA,请进入 File -> Settings -> Plugins
    • 搜索 Forge MDK PluginEntity Creator,然后安装它。
    • 重启 IDE 使插件生效。

第三部分:详细教程 - 创建你的第一个实体

我们将创建一个非常简单的实体:"漂浮的方块" (Floating Cube),它不会动,也不会攻击,只是静静地悬浮在空中,让你熟悉创建实体的基本流程。

步骤 1:创建新实体

  1. 在你的项目结构中,找到 src/main/java 目录。
  2. 右键点击你的主 Mod 包(com.example.mymod)。
  3. 选择 New -> Entity
  4. 在弹出的窗口中,为你的实体命名,FloatingCube
  5. 点击 OK,Entity Creator 窗口将会打开。

Entity Creator教程如何快速上手?-图1

步骤 2:设置基础属性

在 Entity Creator 界面的左侧,你会看到几个标签页,我们先从 General (常规) 标签页开始。

  1. Entity Name: 输入 Floating Cube,这是在游戏中显示的名称。
  2. Entity ID: 输入 floating_cube,这是实机的唯一标识符,通常使用小写字母和下划线。
  3. Entity Class Name: 保持默认的 FloatingCube,这是生成的 Java 类名。
  4. Mob Category: 选择 Misc (杂项),这决定了实体的生成位置和行为组别。
  5. Spawn Egg: 点击 号,选择一种颜色作为生成蛋的颜色,比如紫色。
  6. Hitbox: 设置碰撞箱大小,对于一个小方块,可以设置为 Width: 0.8Height: 0.8
  7. Attributes (属性):
    • Max Health: 设置生命值,0
    • Follow Range: 设置寻路范围,设为 0 表示它不会主动移动。
    • Knockback Resistance: 击退抗性,设为 0
    • Movement Speed: 移动速度,设为 0
    • Attack Damage: 攻击伤害,设为 0

Entity Creator教程如何快速上手?-图2

步骤 3:设置渲染

点击 Rendering (渲染) 标签页,告诉游戏如何显示我们的实体。

  1. Model: 这是关键,我们使用一个方块模型。
    • 点击 Select,在弹出的窗口中选择 Built-in -> Cube
  2. Texture: 为方块选择一个纹理。
    • 点击 Select,然后点击 号创建一个新的纹理。
    • 你可以上传一张图片,或者使用一个简单的纯色材质,为了简单,我们创建一个紫色的纹理。
  3. Animations: 我们不需要动画,所以保持默认。
  4. Render Size: 调整模型在游戏中的显示大小,可以设置为 0, 1.0, 1.0
  5. Shadow Radius: 设置阴影大小,可以设为 5

Entity Creator教程如何快速上手?-图3

步骤 4:保存并生成代码

你的实体已经基本定义好了,点击 Entity Creator 窗口右上角的 "Save" 按钮。

  • 注意: Entity Creator 会自动在正确的位置生成必要的文件,包括:
    • FloatingCube.java - 实体主类。
    • FloatingCubeRenderer.java - 实体渲染类。
    • FloatingCubeModel.java - 实体模型类。
    • 以及在 ModEntities.java 中注册你的实体。

步骤 5:添加实体到游戏中

仅仅生成代码是不够的,你还需要让游戏知道这个新实体的存在。

  1. 打开 ModEntities.java 文件。 这个文件通常在 src/main/java/yourmod/ 目录下。

  2. public static void registerAll() 方法中,你会看到一行类似这样的代码:

    Registry.register(BuiltInRegistries.ENTITY_TYPE, new ResourceLocation(MyMod.MOD_ID, "floating_cube"), FloatingCube.FEATURE);

    这行代码是 Entity Creator 自动添加的,它负责在游戏的实体注册表中注册你的 FloatingCube

  3. 在主 Mod 类中添加实体到实体类型选择器。

    • 打开你的主 Mod 类(MyMod.java)。
    • 找到 public static final DeferredRegister<EntityType<?>> ENTITIES = ... 这行。
    • public MyMod() 构造函数中,添加以下代码,以便你的实体可以被刷怪蛋或命令生成:
      // 在构造函数中添加
      EntityTypeSpawnEgg.addSpawn(FloatingCube.class, 50, 1, MobCategory.MONSTER, new ResourceLocation("overworld"));
      • FloatingCube.class: 你的实体类。
      • 50: 生成权重(数字越大,生成概率越高)。
      • 1: 最小生成数量。
      • MobCategory.MONSTER: 生成类别,我们之前选的是 Misc,这里保持一致用 MONSTER 也可以,或者用 CREATURE
      • new ResourceLocation("overworld"): 生成的维度,这里是主世界。

步骤 6:运行游戏测试

  1. 确保你的代码没有错误。
  2. 点击 IDE 旁边的 "Run" 按钮(绿色三角)启动游戏。
  3. 进入游戏,在创造模式物品栏中找到你设置的紫色生成蛋。
  4. 将它放置在地面上,你应该能看到一个紫色的方块悬浮在那里!

Entity Creator教程如何快速上手?-图4

恭喜!你已经成功创建了你的第一个自定义实体!


第四部分:进阶技巧与常见问题

进阶技巧

  1. 自定义 AI (行为树):

    • General 标签页下找到 Goals (目标)。
    • 点击 号,你可以添加预设的行为,Float (漂浮)、Look At Player (看向玩家)、Random Look Around (随机环顾四周) 等。
    • 拖拽节点可以调整它们的优先级和执行顺序。
  2. 处理自定义 NBT 数据:

    • 如果你想让实体记住一些信息(比如它漂浮的高度),你需要使用 NBT (Named Binary Tag)。
    • 在生成的 FloatingCube.java 文件中,你会找到 addAdditionalSaveDatareadAdditionalSaveData 方法,在这两个方法中,你可以读写自定义的 NBT 标签。
  3. 实现自定义逻辑:

    • Entity Creator 生成的代码是一个很好的起点,你可以随时打开这些 .java 文件,手动添加你想要的功能。
    • FloatingCube.java 中重写 tick() 方法,可以每帧执行一些逻辑,比如让实体上下浮动。

常见问题

  • Q: 实体在游戏中看不见/是黑色的?

    • A: 这通常是渲染问题,检查 Rendering 标签页中的 ModelTexture 是否正确设置,确保纹理文件路径正确,并且被正确打包进资源包。
  • Q: 游戏崩溃,报错 NoSuchMethodErrorClassNotFoundException

    • A: 这通常是代码生成或项目配置问题,检查 Entity Creator 是否正确保存,并重新生成代码,确保你的 build.gradle 文件配置正确,并且所有依赖都已正确下载。
  • Q: 我想创建一个更复杂的实体,比如一个会发射弹药的生物?

    • A: Entity Creator 提供了 GoalsAttributes 来实现基本行为,对于发射弹药这种复杂行为,你可能需要在生成的 Java 代码中手动实现,通常需要重写 aiStep() 方法,并在其中添加判断逻辑和调用 shoot() 方法。

Entity Creator 是一个降低模组开发门槛的利器,它将繁琐的代码编写工作转化为直观的拖拽和点击配置,让你能更快地将创意变为现实。

学习路径建议:

  1. 从简单开始: 先创建一个没有 AI 的静态实体,熟悉整个流程。
  2. 添加基础行为: 尝试给实体添加一些简单的 AI,比如看向玩家、随机移动。
  3. 深入代码: 当你对界面熟悉后,开始阅读和修改生成的 Java 代码,理解其工作原理,并添加更复杂的功能。

希望这份教程能帮助你顺利开启 Entity Creator 的使用之旅!祝你模组开发愉快!

分享:
扫描分享到社交APP
上一篇
下一篇