在哪找其他人公开的模型
游戏动画作品分享 & 资源分享
我们在这篇文档实现了一个零门槛的游戏动画创作相关美术资源、模型资源、动作数据、伪装数据等内容的发布、分享、托管平台。任何人都可以在这里分享、下载创作资源,前提是您遵循资源发布协议。
我可以将 Blockbench 中的模型导入游戏吗?
可以,你甚至可以导入 BE 或 Gecko 动画数据,并且不需要将它导出为 OBJ。详细操作见下文。
如何导入 Blockbuster 模型(OBJ、VOX、Blockbuster JSON)
Blockbuster 支持加载 .obj``.vox
以及由模组中的模型编辑器生成的专有 .json
格式模型。
:::warning
注意区别 Blockbench 导出的几何体模型格式 .geo.json
,它与由 Blockbuster 模型编辑器生成的.json
文件是两个不同的概念。
并不是所有拓展名为 .json
的文件就都是同一种文件,需要根据其中的具体内容判断。
:::
所有模型都需要放在 .minecraft\config\blockbuster\models\...
目录下,且一个模型文件需要有一个文件夹包裹才能够被正常加载,结构图如下:
以导入「原版生物模型包MOBS」为例,打开压缩包后文件结构如下:
你需要将 mobs
文件夹完整地解压至 Blockbuster 模型目录,即 .minecraft\config\blockbuster\models\
,切勿将 armor_stand``axolotl``bat
… 等子文件夹单独解压至 Blockbuster 模型目录,如图所示:
按以上方式导入的 Blockbuster 模型,正常情况下,创造模式伪装菜单会显示出类似下图的效果:
如何导入 Chameleon 模型包
通过 Chameleon Mod,你可以将来自 Blockbench 的基岩版模型和 GeckoLib 模型以伪装的形式加载至 Blockbuster 的伪装列表,同时支持加载绝大多数类型的 Blockbench 动画数据。
所有模型都需要放在 .minecraft\config\chameleon\models\...
目录下,且一个模型文件需要有一个文件夹包裹才能够被正常加载,结构图如下:
解压与导入方式与 Blockbuster 模型类似,只不过你需要将它们放到 ...\chameleon\models
目录,模型才能够被正确加载。
如何从 Blockbench 导出 Chameleon 模型
如果您需要使用 Blockbench 从头开始制作一个模型,在新建模型时请选择「基岩版模型」,不要选择其他的模型格式。
如果您已经拥有了一个模型,但它的格式并非基岩版模型,请先对工程文件(.bbmodel
)进行备份,随后将模型格式转换为「基岩版模型」。如果您的模型格式为 GeckoLib Animated Model,可忽略此步骤,但不推荐您将一个基岩版模型转换为 GeckoLib 模型,这没有必要。
具体操作
如果要导出一个包含动画数据的名为 Trash_Can
的模型,它的文件结构是这样的:
如果您的模型中不包含动画数据,则可以忽略导出动画数据相关的步骤。
首先您需要先在 Chameleon 的模型文件夹创建一个文件夹,尽量以字母、数字、横杠、下划线命名,尽量避免中文与特殊符号(例如 Trash_Can
),并在内部创建一个 skins
文件夹。
随后将当前模型导出为「基岩版几何」格式的文件,文件拓展名为 .geo.json
(GeckoLib 模型则选择导出 Export GeckoLib Model)。
同时你还需要将贴图保存至对应模型文件夹下的 skins
文件夹,这个文件夹通常需要您自行创建。
需要注意的是,Blockbench 中只有「组」会被识别为一个单独的肢体,其余部分会被识别为一个整体。如果您后续需要在游戏中调整模型的某个肢体,您必须在导出前将所有「块」放在一个「组」里,并调整组的轴枢点等内容。
如果您的模型包含了动画数据,在保存时会弹出一个保存 model.animation.json
的操作,届时请将动画数据保存到对应的模型文件夹,并将 model.animation.json
前的名称改为和模型名称一致(例如 Trash_Can.geo.json
+ Trash_Can.animation.json
)。
另外,请确保没有重复的动画名称,否则名称重复的动画是不会在游戏中显示的。
导出所有必要的文件后,在游戏中重新打开一次创造模式伪装菜单(默认快捷键 B
)或按组合键 F3 + T
全局重载游戏资源,即可成功导出并加载 Chameleon 模型至游戏内。
如何将 Chameleon 中的动画与人物动作进行映射
手动映射
如果您想让演员在特定动作下播放特定的动画,请按视频中的方式,将特定的动作(例如 Idle
(站立不动)FlyingIdle
(飞行时不动)绑定至特定的动画即可。
自动映射
在 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 能够正确加载您的模型。