spine之一——术语和概念

在cocos2dx中常用的骨骼动画编辑器就是cocosStudio和spine了。

一、spine术语和概念

1. Skinmesh 蒙皮 在最终的渲染结果中,蒙皮将完全显示出来,蒙皮实际上就是顶点、法线和纹理坐标等将被渲染的元素。 而其中,最关键的当然是顶点,顶点将直接被骨头牵扯运动,因而使得整个模型呈现骨骼所决定的样子。

2. Skeleton 骨骼 骨骼是一种抽象的概念,在最终的渲染结果中,它不可见。类如人体骨骼,骨骼是若干骨头(Bone)成树状的集合体,而每块骨头又分别与若干数量的蒙皮顶点关联。 当骨头运动的时候,与之关联的所有蒙皮顶点也会受骨骼的影响而运动。

骨头与蒙皮顶点的关联需要考虑到每块骨头对蒙皮顶点的影响。尽管大部分情况下,一个顶点将仅仅被一个骨头的影响,但是关节处的顶点往往被多根骨头影响,例如踝关节,可能会分别受小腿骨50%和脚骨50%的影响,这种影响叫作权重(Weight)。在这种情况下,我们称踝关节的这些顶点,受小腿骨影响的权重是50%,受脚骨影响的权重也是50%。

3. Bone 骨头 spine 是骨骼编辑器,所以骨头是基础。每个骨头都会有 位移T/缩放S/旋转R 的属性(TSR属性)。骨头可以有子节点,最终形成了一个树型结构。可以对应2dx 里面的 node。

4. Slot 插槽 骨头上的一个挂载点。不是所有的骨头上都能放置东西的,因为很多骨头其实只参与计算,真正重要的骨头,也就是需要挂载其他东西的骨头上必须放置插槽。slot 只是用来标记特殊的骨头位置,本身只有一个颜色属性,也可以说,重要的骨头节点可以称为 slot。

5. Attachment 附件 挂在插槽上的内容,可以是图片,也可以是判定区域,只要是你能想到的东西,都可以当成附件。

6. Draw order 描画顺序 骨架上插槽的一个顺序列表。用来控制描画的先后顺序。

7. Animation 动画 基于时间轴的一个骨头状态列表。

8. Skin 皮肤 一套Attachment(附件)的集合,类似于换装。

9. Bounding Box 边界框 用来指定骨头上的边界的多边形的区域。

10. atlas 图集 贴图集合,小图片合并在一起,就成了图集。

二、实现

上面大致介绍了一些基本概念,然后我们从实现角度上来说下为啥这么设计。

(1)首先,假设我们需要一个骨骼系统。于是,我们就设计了一个树状的骨架,每个节点就是(Bone)。

(2)再想下,骨头上要放图片啥的,于是我们就需要访问到特定的骨头,遍历太傻了,好吧,我们给这些骨头加个名字,这样就能访问到具体的骨头了,那这些名字就叫slot。

(3)好吧,可能有些人觉得,slot 和 bone 本质上一样,为啥需要分开呢,没必要的。我只能说事情其实并不简单。来想下,我们已经有了一个完美的骨架,图片也在应该在的骨头上了。那我们该如何显示图片么?遍历么,从根结点开始,一直到最下层的节点,不管你用啥排序,这个顺序是固定的,但是现实总是很残酷,很多时候,我们需要不停调整图片描画的顺序,也就是调整树的节点排序。那怎么办,我们指定下骨头描画的顺序吧(Draw order),这些特定的骨头也就是 slot。

(4)你看,这下完美了,也就是 bone 用来计算位置,slot 用来控制描画。

(5)完美的骨骼系统,一定要有碰撞区域(bounding box),这和图片差不多,一个用于显示,一个用于边界判断,好吧,那就抽象成一个概念叫(attachment),于是,slot 上就可以附加不同的 attachment 了。

(6)终于可以换附件了,但是一个一个换好累。于是,我们把一组附件合在一起,组成了 skin。这下简单了,一换 skin,整个世界就变样了。

(7)啊,做着做着,就发现图片太多了,要优化啊。怎么办,简单,把小图片合在一起,每个图片对应了一个大图里面的一个区域,这就是 atlas。

【参考】http://kingzeus.blog.51cto.com/8504664/1540262

时间: 2024-11-05 21:52:52

spine之一——术语和概念的相关文章

【Spine】转:Spine术语和概念

一.spine术语和概念 1. Skinmesh 蒙皮 在最终的渲染结果中,蒙皮将完全显示出来,蒙皮实际上就是顶点.法线和纹理坐标等将被渲染的元素. 而其中,最关键的当然是顶点,顶点将直接被骨头牵扯运动,因而使得整个模型呈现骨骼所决定的样子. 2. Skeleton 骨骼 骨骼是一种抽象的概念,在最终的渲染结果中,它不可见.类如人体骨骼,骨骼是若干骨头(Bone)成树状的集合体,而每块骨头又分别与若干数量的蒙皮顶点关联. 当骨头运动的时候,与之关联的所有蒙皮顶点也会受骨骼的影响而运动. 骨头与蒙

Akka学习——术语和概念

(大部分为翻译) Concurrency vs. Parallelism 并发 vs 并行 并发并不一定同时运行,比如使用时间片,使得两个任务交替执行.而并行是执两个任务真正的同时执行. Asynchronous vs. Synchronous   同步 vs 异步   如果一个方法被调用后,调用者只能等到此方法返回值或抛出异常才能继续前进,那这个方法就被称为是"同步"的. 而"异步"调用,是指调用者在经历有限的步骤之后,可以继续前进.方法的完成可以通过其它的机制进

【Java】Java Socket编程(1)基本的术语和概念

计算机程序能够相互联网,相互通讯,这使一切都成为可能,这也是当今互联网存在的基础.那么程序是如何通过网络相互通信的呢?这就是我记录这系列的笔记的原因.Java语言从一开始就是为了互联网而设计的,它为实现程序的相互通信提供了许多有用API,这类应用编程接口被称为套接字(Socket).在开始学习Java Socket之前我们需要先来了解一下基本的术语和概念. 1.计算机网络 计算机网络由一组通过通信信道(Communication channel)相互连接的机器组成.这些机器被称为:主机(host

那些年搞不懂的术语、概念:协变、逆变、不变体

简述什么是协变性.逆变性.不变性 协变性,如:string->object (子类到父类的转换) 逆变性,如:object->string (父类到子类的转换) 不变性,基于上面两种情况,不可变.具体下面再做分析. 泛型委托的可变性 先使用框架定义的泛型委托Func和Action做例子(不了解的请戳) 协变:(string->object) Func<string> func1 = () => "农码一生"; Func<object> f

UML基本架构建模--通用机制的术语和概念(一)

 Terms and Concepts 术语和概念 A note is a graphical symbol for rendering constraints or comments attached to an element or a collection of elements. Graphically, a note is rendered as a rectangle with a dog-eared corner, together with a textual or grap

C# Socket编程(1)基本的术语和概念

计算机程序能够相互联网,相互通讯,这使一切都成为可能,这也是当今互联网存在的基础.那么程序是如何通过网络相互通信的呢?这就是我记录这系列的笔记的原因.C#语言从一开始就是为了互联网而设计的,它为实现程序的相互通信提供了许多有用API,这类应用编程接口被称为套接字(Socket).在开始学习C# Socket之前我们需要先来了解一下基本的术语和概念. 阅读目录: 1.计算机网络 2.分组报文 3.协议 3.1 IP协议 3.2 TCP协议 3.2 UDP协议 4.网络地址 4.1 回环地址 5.D

我的汇编学习之路(2):主要术语和概念

对于不折不扣的汇编新手来说,第一部分中出现的很多概念可能不是很明白,于是我决定写更多有价值的文章.所以,让我们开始<我的汇编学习之路>的第二部分的学习. 术语和概念 当我写了第一篇之后,我从不同的读者那获得很多反馈,第一篇中有些部分不明白,这就是本文以及接下来几篇从一些术语的描述开始的原因. 寄存器(Register):寄存器是处理器内小容量的存储结构,处理器的主要功能是数据处理,处理器可以从内存中获得数据,但这是一种低速的操作,这就是为什么处理器为什么要有自己数据存储结构,称为"寄

类的术语和概念

 Terms and Concepts 术语和概念 A classis a description of a set of objects that share the same attributes, operations, relationships, and semantics. Graphically, a class is rendered as a rectangle. 一个类描述一组对象,这组对象共享相同的属性,操作,关系和语义.图形上,一个类被表达为一个矩形. Names 名

顶级Apache Kafka术语和概念

1.卡夫卡术语 基本上,Kafka架构  包含很少的关键术语,如主题,制作人,消费者, 经纪人等等.要详细了解Apache Kafka,我们必须首先理解这些关键术语.因此,在本文“Kafka术语”中,我们将学习所有这些Kafka术语,这将有助于我们建立Kafka知识的坚实基础.那么,让我们从Apache Kafka术语开始. Apache Kafka术语和概念 2.卡夫卡术语清单 在这篇Apache Kafka教程中,下面列出了最突出的Kafka术语,这些术语可以帮助我们建立Kafka知识的坚实