功能
SimpleAnimator 是一个简易的动画引擎,它允许玩家使用类基岩版动画格式播放玩家动画,其初心是为了做一个兼容录像回放的表情模组。
在联机游玩的时候,客户端会同步服务端加载的动画。
注:基岩版格式动画不代表你可以直接拿基岩版的动画过来用,可能会出现绑骨名称错误或位置问题。
添加动画
动画可以通过 BlockBench 制作,部分特殊的布尔值若在需要的情况下可以手动在动画导出后手动添加:
unlock:解锁指定模型部件的锁定(1.2.0+)
useVanillaRig:使用原版骨骼或修正骨骼(1.2.0+)
movable:在播放动画时是否能移动角色,默认为 false;
abortable:动画是否会可被中止,默认为 true,取值为 false 时该动画无法被玩家操作打断(若动画为循环模式不推荐)
此外,对应格式的 BlockBench 项目文件可前往 Release 下载,以方便制作动画。
一个动画文件需要包含一个名为main的子动画,此外,可添加名为enter和exit的动画作为开始/结束过渡。
在每个子动画中,可以通过添加更新变量:fadeIn,fadeOut 设置该子动画的渐入/渐出时长(单位:秒)。
模组提供了两个添加动画的途径:
数据包:
对于模组开发者,可以选择将动画文件放至 data/[modid]/animations 中。
API 与更多细节会在后续版本文档中补充。
文件夹:
对于多数玩家,可以将动画文件放至 [游戏版本路径]/animations 中即可加载动画。
互动
互动是在mod版本1.1.0后新增加的特性,可以让两个玩家互动并播放动画(在网络不稳定的情况下可能会错位)。
互动的文件导入与普通动画相似,但是需要为动画文件添加子动画:invite,waiting,cancel(可选)。
此外,动画骨骼中需要包括带有requester_和receiver_前缀的骨骼,在 Release 可通过Starting-Kit.interact.bbmodel查看具体格式。
命令
/animate play <animate> #播放动画
/animate stop #停止动画
/interact invite <player> <interact> #邀请指定玩家互动
/interact accept <player> #接受指定玩家的互动邀请
兼容性
模组兼容以下模组:
该模组理论上与 GeckoLib 和 PlayerAnimator 无兼容性问题,但不排除会出现动画覆盖等问题。
不兼容:
更改了玩家模型的 Mod 几乎不兼容。
TODO
版本:1.20.2+
功能:更改互动的时态逻辑;动画文件标记;骑乘/跟随互动?
附属:游戏内动画制作?