在哪找其他人公开的模型

游戏动画作品分享 & 资源分享
我们在这篇文档实现了一个零门槛的游戏动画创作相关美术资源、模型资源、动作数据、伪装数据等内容的发布、分享、托管平台。任何人都可以在这里分享、下载创作资源,前提是您遵循资源发布协议。

我可以将 Blockbench 中的模型导入游戏吗?

可以,你甚至可以导入 BE 或 Gecko 动画数据,并且不需要将它导出为 OBJ。详细操作见下文。

如何导入 Blockbuster 模型(OBJ、VOX、Blockbuster JSON)

Blockbuster 支持加载 .obj``.vox 以及由模组中的模型编辑器生成的专有 .json 格式模型。

:::warning 注意区别 Blockbench 导出的几何体模型格式 .geo.json,它与由 Blockbuster 模型编辑器生成的.json 文件是两个不同的概念。
并不是所有拓展名为 .json 的文件就都是同一种文件,需要根据其中的具体内容判断。 :::

所有模型都需要放在 .minecraft\config\blockbuster\models\... 目录下,且一个模型文件需要有一个文件夹包裹才能够被正常加载,结构图如下:
🧱 模型配置与使用相关问题 - 图1
以导入「原版生物模型包MOBS」为例,打开压缩包后文件结构如下:
image.png
你需要将 mobs 文件夹完整地解压至 Blockbuster 模型目录,即 .minecraft\config\blockbuster\models\切勿将 armor_stand``axolotl``bat… 等子文件夹单独解压至 Blockbuster 模型目录,如图所示:
🧱 模型配置与使用相关问题 - 图3
按以上方式导入的 Blockbuster 模型,正常情况下,创造模式伪装菜单会显示出类似下图的效果:
image.png

如何导入 Chameleon 模型包

通过 Chameleon Mod,你可以将来自 Blockbench 的基岩版模型和 GeckoLib 模型以伪装的形式加载至 Blockbuster 的伪装列表,同时支持加载绝大多数类型的 Blockbench 动画数据。

所有模型都需要放在 .minecraft\config\chameleon\models\... 目录下,且一个模型文件需要有一个文件夹包裹才能够被正常加载,结构图如下:
🧱 模型配置与使用相关问题 - 图5
解压与导入方式与 Blockbuster 模型类似,只不过你需要将它们放到 ...\chameleon\models 目录,模型才能够被正确加载。

如何从 Blockbench 导出 Chameleon 模型

如果您需要使用 Blockbench 从头开始制作一个模型,在新建模型时请选择「基岩版模型」,不要选择其他的模型格式。
image.png
如果您已经拥有了一个模型,但它的格式并非基岩版模型,请先对工程文件(.bbmodel进行备份,随后将模型格式转换为「基岩版模型」。如果您的模型格式为 GeckoLib Animated Model,可忽略此步骤,但不推荐您将一个基岩版模型转换为 GeckoLib 模型,这没有必要。
Blockbench_nf4ayCkP8n.png

具体操作

如果要导出一个包含动画数据的名为 Trash_Can 的模型,它的文件结构是这样的:
🧱 模型配置与使用相关问题 - 图8
如果您的模型中不包含动画数据,则可以忽略导出动画数据相关的步骤。

首先您需要先在 Chameleon 的模型文件夹创建一个文件夹,尽量以字母、数字、横杠、下划线命名,尽量避免中文与特殊符号(例如 Trash_Can),并在内部创建一个 skins 文件夹。

随后将当前模型导出为「基岩版几何」格式的文件,文件拓展名为 .geo.json(GeckoLib 模型则选择导出 Export GeckoLib Model)。
image.png
同时你还需要将贴图保存至对应模型文件夹下的 skins 文件夹,这个文件夹通常需要您自行创建。
image.png
需要注意的是,Blockbench 中只有「组」会被识别为一个单独的肢体,其余部分会被识别为一个整体。如果您后续需要在游戏中调整模型的某个肢体,您必须在导出前将所有「块」放在一个「组」里,并调整组的轴枢点等内容。
image.png image.png
如果您的模型包含了动画数据,在保存时会弹出一个保存 model.animation.json 的操作,届时请将动画数据保存到对应的模型文件夹,并将 model.animation.json 前的名称改为和模型名称一致(例如 Trash_Can.geo.json + Trash_Can.animation.json)。

另外,请确保没有重复的动画名称,否则名称重复的动画是不会在游戏中显示的。
image.png
导出所有必要的文件后,在游戏中重新打开一次创造模式伪装菜单(默认快捷键 B)或按组合键 F3 + T 全局重载游戏资源,即可成功导出并加载 Chameleon 模型至游戏内。

如何将 Chameleon 中的动画与人物动作进行映射

手动映射

[SHANA]javaw 2022-04-13 20-40-53-402.mp4 (12.7MB)如果您想让演员在特定动作下播放特定的动画,请按视频中的方式,将特定的动作(例如 Idle(站立不动)FlyingIdle(飞行时不动)绑定至特定的动画即可。

自动映射

Blockbench_6yBTBf3Zlq.png
在 Blockbench 中将动画名称改为以下列表中提供的名称,导入游戏后即可自动映射动作。

伪装编辑器中的动作名称 Blockbench 中的动画名称 描述
Idle(空闲) idle 实体站定不动时的 默认动画
Running(行走) running 实体在地面行走(按 WASD)时的动画
Sprinting(疾跑) sprinting 实体在地面疾跑(按两次 W 键或 Ctrl 键)的动画
CrouchingIdle(蹲下不动) crouching_idle 实体在地面潜行不动的动画
Crouching(蹲下行走) crouching 实体在潜行时行走(按 WASD)的动画
SwimmingIdle(游泳不行走) swimming_idle 实体在水中或垂直移动时的动画
Swimming(游泳行走) swimming 实体在水中水平移动(按 WASD)时的动画
FlyingIdle(飞行不移动) flying_idle 玩家 在空中站定不动时的动画
Flying(飞行移动) flying 玩家 在空中移动(按 WASD + 上下飞行)时的动画
RidingIdle(骑乘不移动) riding_idle 实体骑在另一个实体上时的动画
Riding(骑乘移动) riding 实体骑在另一个实体上并移动的动画
Dying(死亡) dying 实体死亡时的动画
注意:该动画只会持续 1 秒(20 Tick)
Falling(降落) falling 当实体快速降落(垂直移动)时的动画
Sleeping(睡觉) sleeping 玩家 在床上睡觉的动画
Swipe(挥动手臂) swipe 实体挥手(左键)的动画
Jump(跳) jump 实体跳跃(按空格键)时的动画
Hurt(受伤) hurt 实体收到任意类型的伤害时的动画
Land(落地瞬间) land 实体降落在地面时的动画
Shoot(射箭) shoot 实体拉弓时的动画
Consume(消耗物品) consume 实体消耗食物、药水等物品时的动画

如何导出 OBJ 模型

首先你需要安装 Blender,2.8+ 版本皆可(不要跟着视频里那样安装 2.7 版)。由于目前的教程需要您拥有一定的 Blender 基础操作知识,您可以参考 这篇教程 来了解一些必要的 Blender 基础操作。

随后跟着以下两个教程导出即可:
记得安装教程中提到的 Blender 插件 io_export_bbjson,并在导出 OBJ 模型后,同步导出对应的 model.json 文件,以保证 Blockbuster 能够正确加载您的模型。