AnimKit - 剑士动画框架

AnimKit - 剑士动画框架

面向模组制作者的工具。AnimKit让用Lua编写的模组可以在任意时刻以所需方式在角色上播放任意动画——并在之后进行清理。它本身不执行任何操作:当你使用的模组要求安装它时,再安装即可。

[size=4][b]AnimKit - KenshiLua 动画框架[/b]

面向模组制作者的工具。AnimKit 让用 Lua 编写的模组能够在任意时刻以所需方式在角色身上播放任意动画,并在播放结束后自动清理。它本身不执行任何操作:当你使用的模组需要它时再安装。

[b]功能特性[/b][/size]

[list]
[][size=4]上半身覆盖任意动画。仅在手臂、脊柱和头部播放动画,同时双腿保持行走、奔跑或坐在长椅上——引擎自身的移动逻辑保持完整。[/size][/]
[][size=4]任意片段,任意方式。可循环播放原本不支持循环的片段、改变速度、倒放、冻结姿势、从片段任意位置开始、在 N 秒后停止。[/size][/]
[][size=4]道具。可将任意网格挂载到任意骨骼上——管道、瓶子、工具——支持偏移、旋转、缩放和纹理,并可仅在动画的某一部分显示。无需游戏数据,只需文件。[/size][/]
[][size=4]粒子效果。烟雾、火焰、蒸汽……可在任意骨骼上播放任意 EFFECT 记录,可长时间持续平滑运行,或仅在动画的某一时刻出现(如呼气时的一缕烟)。[/size][/]
[][size=4]自动清理。当动画停止、角色卸载以及游戏加载时,遮罩、道具和效果会被移除。[/size][/]
[/list][size=4][b]在启动器中于 KenshiLua 之后启用 AnimKit。

面向模组制作者
[/b][/size]
[code]
local Anim = KenshiLua.requireFromMod("AnimKit.mod", "animkit")

local track = Anim.play(character, "my drinking loop", {
part = "upper", -- 双腿保持行走 / 坐姿
loop = true,
props = {
{ mesh = "mods/MyMod/meshes/bottle.mesh", bone = "Bip01 Prop2",
texture = "mods/MyMod/textures/bottle_diffuse.dds" },
},
effects = {
{ effect = "small- smoke3_small", bone = "Bip01 Head", from = 0.7, to = 0.9 },
},
})

Anim.stop(track)[/code]

[list]
[][size=4]模组文件夹中的 API.md:每个选项、道具骨骼、效果的工作方式。[/size][/]
[][size=4]scripts/animkit/examples/pipe.lua:一个完整示例——抽烟斗(上半身循环、手持烟斗、烟锅阴燃、呼气时吐出一缕烟)。[/size][/]
[][size=4]测试窗口(Ctrl+Shift+A,在 scripts/animkit/config.lua 中开启):可在任意角色上实时尝试动画、遮罩、道具和效果,并读取引擎的动画层。[/size][/]
[][size=4]docs/ENGINE_NOTES.md:它如何驱动 Kenshi 的动画系统,以及沿途发现的陷阱。[/size][/]
[/list][size=4][b]
限制(0.1.1)
[/b][/size]
[list]
[][size=4]每个角色同一时间只能播放一个动画;新动画会替换旧动画。[/size][/]
[][size=4]动画按真实时间运行(暂停时也会运行),且不会被保存——加载后需重新播放。[/size][/]
[][size=4]自定义动画和效果需要在你的模组中包含对应记录(ANIMATION、动画文件、EFFECT),使用 FCS 制作。[/size][/]
[][size=4]已在人类身上测试;动物具有不同的骨架和层级。[/size][/]
[/list][size=4]
[b]致谢[/b]
KenshiLib 和 RE_Kenshi 由 BFrizzleFoShizzle 及 KenshiReclaimer 贡献者开发——KenshiLua 由 Genpretz 开发。[/size]