内容提要
本文介绍TyranoScript自定义内核方法:脚本解析为对象后,框架按标签调用kag.tag中的函数;向tyrano.plugin.kag.tag对象添加属性即可新增命令,如perform_show,参数传入pm,并须调用nextOrder执行下一条命令。示例将Spine动画集成进Tyrano以显示角色动画。
延伸解读
自定义命令的机制
TyranoScript 将脚本解析为对象后,框架根据标签调用 kag.tag 中的函数。向 tyrano.plugin.kag.tag 对象添加属性即可新增命令,例如 perform_show。每个命令需定义 pm 参数和 start 函数,并在 start 中调用 this.kag.ftag.nextOrder() 以执行下一条命令。这种设计让开发者能灵活扩展引擎功能。
Spine 集成示例
文章以 perform_show 命令为例,展示如何将 Spine 动画集成到 Tyrano 中。该命令接收 name、storage、width、height、left、top 等参数,通过创建 div 容器并初始化 SpinePlayer 来显示动画。这为在视觉小说中添加角色动画提供了一种实现方式。
注意事项与资源
使用 Spine 需要引入其 JavaScript 运行时库,但官方文档较为缺乏,文章提供了 GitHub 仓库链接供参考。此外,自定义命令时需确保正确调用 nextOrder,否则脚本会停止执行。开发者应留意这些细节,以避免集成过程中的常见问题。
Q&A
TyranoScript 如何自定义内核命令?
通过向 tyrano.plugin.kag.tag 对象添加属性来新增命令。例如,添加 perform_show 属性,其 start 函数会在命令执行时被调用,参数通过 pm 传入。
TyranoScript 脚本解析后是如何执行的?
脚本先被 tokenized 解析成对象,然后框架根据不同的标签调用 kag.tag 文件中对应的函数来执行。
在 TyranoScript 中如何集成 Spine 动画?
通过自定义 perform_show 命令,在 start 函数中创建 div 容器,并使用 spine.SpinePlayer 加载 Spine 的 json 和 atlas 文件来显示动画。
为什么在自定义命令中必须调用 nextOrder?
nextOrder 函数用于提示程序运行下一条命令,如果不调用,命令执行后会卡住,无法继续执行后续命令。
perform_show 命令的参数如何传递?
命令中的属性如 name、storage、width 等会作为参数传递给 pm 对象,在 start 函数中可以通过 pm.name、pm.storage 等访问。
Spine 官方 JavaScript 运行时库在哪里获取?
可以在 Spine 官网的 spine-runtimes 页面或 GitHub 仓库(如 https://github.com/EsotericSoftware/spine-runtimes/tree/3.8/spine-ts)找到,但文档较少。