# 动画格式

# 作者:境界

动画格式是指由基岩版团队为生物实体开发的数据结构,是写入JSON文件并以JSON语法呈现的。若开发者是使用Blockbench这样的软件制作的美术资源,是可以不用特地了解这些结构的。本章教程更多是为同时兼具美术和开发的个人开发者进行一些知识上的梳理和归纳,展示图中可能对一些非关键信息进行了折叠。

# format_version

format_version是指代定义动画文件的版本号,目前只有1.8.0这一格式版本号。

# Animation.

每个动画资源都必须以animation.为固定前缀。后面的名称可以以生物名称加动画名称的 组合。

# loop

loop意为动画播放的循环格式。如果只播放一次,则loop属性可以不填;若循环播放,loop值为true。若动画结束后停留在最后一帧,值为"hold_on_last_frame"。

# animation_length

animation_length意为动画时长。

# bones

bones意为每个骨骼动画信息的集合。在里面保存着所有生物骨骼的位移信息、旋转信息、缩放信息。其中里面的每个属性键都对应着生物几何体的骨骼名称。对应的值内共包含rotation旋转、position位置、scale缩放三种动画形式,每个形式内再包含着相应的动画信息。

{
	"format_version": "1.8.0",
	"animations": {
		"animation.fallout_cow.dying": {
			"animation_length": 0.52,
			"bones": {
				"body": {
					"rotation": {
						"0.0": [0, 0, 0],
						"0.52": [0, 0, -5]
					},
					"position": {
						"0.0": [0, 0, 0],
						"0.52": [-2, -11, 0]
					}
				}
			}
		}
	}
}

如上面代码所示:

"0.0"->“0.52”这个时间段,body骨骼绕Z轴旋转-5角度,位置以骨骼位置向X轴左边偏移2个单位,向Y轴向下偏移11个单位,同时最后再放大1.5倍。

当前中国版的动画效果都是线性动画效果,即动画的表现形式为匀速。曲线变化动画效果目前还在实验玩法当中,开发者可以在单人模式上看到效果,但无法将组件用于联机,请等待基岩版团队后续开发计划。