spine相关概念

文章目录

xxx.png/texture(贴图图片)

  • 源图片(贴图)。
  • attachment 最终使用的图片来源。

xxx.atlas

  • 里面的region,代表从png里面裁出来的一小部分区域

xxx.json

bones(骨骼)

  • 负责位置、旋转、缩放。------【负责动】

slots(插槽)

  • 骨骼上的显示槽(默认会显示一个本身配置好的 attachment)。
  • 插槽可以理解为"骨骼上的贴图挂载位",但它不等于骨骼,也不等于图片。
  • 作用:1、决定"哪张图挂在哪根骨骼上";2、决定遮挡关系;3、支持切换附件(动画数据可以控制插槽当前使用哪个 attachment);4、可单独控制颜色/透明度。
  • 挂在某根骨骼上,负责显示什么、绘制层级。------【负责挂图和层级】
  • 运行时分2种情况:
    • 切换同一套 Spine 数据里已有的 attachment(比如嘴巴插槽在闭嘴、张嘴图片之间切换,或者武器插槽切换不同武器)。
    • 用代码替换成新的贴图(可以把某个 slot 的显示贴图换成运行时加载的另一张图。比如给角色换武器、换头像、换衣服。这个新图不一定是原本 Spine 文件里的贴图,但尺寸、锚点、方向通常要自己处理好,否则会歪)。

attachment(附件)

  • 槽里显示的具体东西,通常是一块贴图,也可以运行时替换。------【具体挂上去的图片/网格】

skins(皮肤/外观配置表)

  • 定义插槽可用的 attachment,也就是外观/贴图绑定信息。
  • 定义"插槽里可以显示哪些 attachment,以及这些 attachment 的摆放参数"。
  • 它告诉spine:1、某个slot下有哪些attachment;1-1、这个attachment的RTS/宽高是多少;1-2、这个attachment对应atlas/png里的哪块图。
  • 具体例子:在default皮肤中,shitou_Head这个插槽,有一个叫 shitou_Head 的 attachment,它的位置、旋转、宽高按这里配置。
  • skins 不一定只是"换皮肤"用。即使角色没有多套皮肤,也会有 default skin,用来定义默认情况下每个插槽能挂哪些图片附件。

animations

  • 具体动画关键帧,告诉骨骼/插槽/IK 在每个时间点怎么变化。
  • 动画数据/动画关键帧数据------【驱动骨骼、插槽、附件变化】。
  • 定义动画关键帧,用来驱动骨骼、插槽、attachment 随时间变化。
  • 比如记录某个时间点:bone的RTS,slot切换哪个attachment/透明度/颜色变化。
  • 运行时播放动画时,就是按这些时间点插值计算,让骨骼和插槽连续变化。
  • 常见的数据类型:
    • bones:控制骨骼
    • RTS
    • slots:控制插槽,比如换attachment、变色、透明度。
    • ik:控制IK约束的混合、弯曲方向等。
    • drawOrder:控制插槽绘制顺序。
    • events:动画事件,比如打击点、音效点。

ik(Inverse Kinematics,反向动力学/反向运动学)

  • 让某些骨骼跟着目标点反推姿势,常用于脚、手。
  • 可以这么理解:1、普通骨骼动画:我直接告诉骨骼转多少、移动多少;2、IK:我告诉骨骼"末端要到哪里",系统反推中间骨骼怎么转。
  • 具体例子:手臂有上臂、小臂、手掌。如果不用 IK,动画师要分别调上臂、小臂的角度。用了 IK 后,可以设置一个"目标点",比如手掌要碰到某个位置,然后 Spine 自动计算上臂、小臂该怎么弯。
  • 再一个例子:给左右脚做了 IK 约束。target1、target2 是目标骨骼,脚骨骼会根据目标点进行约束。这样脚的位置更容易固定或控制,不需要完全手调脚骨骼的每个角度。target1 -> 控制 xxx_R_Foot;target2 -> 控制 xxx_L_Foot。

xxx.sk

  • 引擎使用的二进制骨骼动画数据格式。
  • 替代了.atlas+.json的职责。
  • 可能的关键词:二进制/压缩/更快加载/体积更小/解析成本低/适合运行时直接使用/隐藏了原始的文本结构。

总结

  • slots 决定有哪些显示槽、挂在哪根骨骼上、默认显示哪个 attachment。
  • skins 决定这些 attachment 的具体配置。
  • animations 决定播放时骨骼和插槽怎么变化。
相关推荐
依星8 天前
[工具] SpineUnpacker一款专为 Spine 骨骼动画开发者和游戏美术师设计的 Atlas 大图解包工具 Spine Atlas 解包工具
spine·游戏美术
INFINI Labs19 天前
Easysearch analysis-ik 多词典性能优化:从性能回退到分词性能提升 25%~30%
elasticsearch·性能优化·分词·performance·easysearch·ik
晴夏。21 天前
UE 常见IK算法
ue·ik
UWA2 个月前
小游戏的Spine数量过多开销大
memory·animation·spine
WongLeer2 个月前
Elasticsearch 从入门到实战(含 IK 分词器 + 完整查询示例)
elasticsearch·中文分词·ik
charley.layabox4 个月前
LayaAir3.4性能大幅提升、新增IK、动画引导线、3D Spine、动态合并图集、帧调试器、Linux版本IDE、完善WebGPU等
3d·spine
茉莉玫瑰花茶4 个月前
Spine 骨骼动画入门:Skeleton 运行时 3.8 版本
spine
茉莉玫瑰花茶5 个月前
Spine 软件入门学习笔记:面向 2D 游戏动画 + C++ API 开发 - 1
学习·spine
ujainu小6 个月前
Flutter动画提效实战:animations 2.1.1 官方包全解析,4种Material动画开箱即用
flutter·animations