跳转到内容

Spine动画烘焙插件

Spine动画烘焙插件是一款为游戏开发者设计的高效工具,旨在优化和提升Spine动画在LayaAir引擎中的运行性能。通过烘焙Spine动画数据,能显著减少游戏运行时的性能消耗,并增加整体的渲染效率。

在LayaAir-IDE中,从包管理器中安装Spine动画烘焙插件,如图1-1所示,

1-1

(图1-1)

安装完成后,会打开此工具面板。

1-2

(图1-2)

目标节点:可以选择spine资源(.skel或者.json格式)。

存储路径:选择在resources目录下的自定义目录即可。

2-1

(图2-1)

点击烘焙动作按钮后,会有弹窗提示烘焙完成。

2-2

(图2-2)

如果选择的spine和IDE设置的spine版本不符,或者spine文件损坏会提示错误弹框。spine的版本设置在图2-3所示的项目设置中,

2-3

(图2-3)

烘焙成功后,会在目标文件夹中生成一个.ktx压缩纹理文件和一个.lh预制体文件。

2-4

(图2-4)

生成的预制体文件增加了一个烘焙组件(参数没有暴露)和spine组件。

2-5

(图2-5)

另外,

1、控制台会输出哪些动作烘焙失败(目前只有使用裁剪的资源无法烘焙)。

2、烘焙时会输出哪些满足了instance渲染条件(中途没有换vb ib,即spine没有换插槽、没有显示隐藏、没有修改blend)。

2-6

(图2-6)

方法一:

在IDE中,将预制体拖入到场景,勾选预览,选择皮肤动画,就可以在IDE中预览。

3-1

(图3-1)

方法二:

通过脚本中代码添加,示例代码如下所示:

const { regClass, property } = Laya;
@regClass()
export class SpineTest extends Laya.Script {
//组件被启用后执行,例如节点被添加到舞台后
onEnable(): void {
//加载预制体文件
Laya.loader.load("resources/spine3.8/boy/spineboy-pma_bake.lh").then((res) => {
// 创建预制体
let spineboy: Laya.Sprite = res.create();
// 获取Spine2DRenderNode组件
let spine2dRender: Laya.Spine2DRenderNode = spineboy.getComponent(Laya.Spine2DRenderNode);
// 设置播放动画
spine2dRender.animationName = "walk";
// 添加预制体到场景
this.owner.addChild(spineboy);
});
}
}