骨骼动画详解-Spine

合集下载

关于用Spine制作骨骼动画的步骤

关于用Spine制作骨骼动画的步骤

关于⽤Spine制作⾻骼动画的步骤步骤:1.打开spine。

2.新建⼀个空项⽬。

3.点右边Tree下的Images模块,导⼊在⾃⼰的切⽚素材和原整图。

4.把原整图拖到场景中,点右下⾓Color改变原图的颜⾊,⽅便后⾯对照。

5.把切⽚素材⼀个⼀个拖到场景中,不⽤在意层级关系,先按照原整图的模板,⼀个⼀个贴上去就⾏了,如果⼤⼩不对,可以改变Scale的值来改变⼤⼩,不过宽和⾼的Scale要⼀致。

6.接下来调节切⽚的层级关系,展开右边Tree的Draw Order模块,按照原整图的层级关系,进⾏拖动切⽚,使我们⼀个⼀个贴上去的图的整体效果和原整图的⼀样。

7.然后是创建⾻骼,点Root节点,再点Create,再点跨部为⼀个中⼼点,然后以这个中⼼点为⽗亲,其他的点为它的⼦节点,注意创建⾻骼要确定层级关系,如果拖动⽗级节点,它的所有⼦节点都会跟着动。

8.接下来就是把⾻骼和切⽚进⾏绑定,有两种⽅法,⼀种是点击要绑定的图⽚或者说是切⽚,再点击右下⾓的Set Parent,再点击要绑定的⾻骼,就可以了。

但是这个⽅法绑定的图⽚太僵硬,⽽且⼀个切⽚只能对应⼀个⾻骼。

要使动画更⽣动,必须增加切⽚的数量。

还有⼀种是蒙⽪,英⽂叫Mesh,这个功能只有正版才有,⽤法是点击⼀张图,勾选右下⾓的Mesh选项,再点击Edit编辑蒙⽪,会出现⼀个蓝⾊的框框,我们点出现的版块⾥⾯的create,创建⼀些点。

这些点受指定⾻骼的控制,⽽这些点可以控制它周围的像素,如果点越密,单个点控制的像素⾯积就⽐较少,如果⽐较稀疏,单个点控制的就⽐较多。

我⽤的是1.7.03的破解版,⽬前只有这个版本的破解版。

正版要⼀千多块快到两千...9.然后还可以进⾏IK,但是只有1.9版本以后的Spine才有这个功能,这个功能的⽤途是我们设置的⼀些点会被固定在场景上,使它们不受拖动之类的影响。

10.最后是制作动画,右键点击右边Tree下的Animation模块,新建⼀个动画,取的名字后⾯在程序中会⽤到,然后就是K帧。

spine骨骼动画组件使用详解

spine骨骼动画组件使用详解

spine⾻骼动画组件使⽤详解1. spine⾻骼动画⼯具⾻骼动画: 把动画打散, 通过⼯具,调⾻骼的运动等来形成动画spine是⼀个⾮常流⾏的2D⾻骼动画制作⼯具spine 动画美术⼈员导出3个⽂件:(1) .png⽂件:动画的”⾻骼”的图⽚集;(2).atlas⽂件: 每个⾻骼在图⽚集⾥⾯位置,⼤⼩;(3).json⽂件: ⾻骼动画的anim控制⽂件,以及⾻骼位置等信息;⾻骼动画导⼊: 直接把三个⽂件拷贝到项⽬的资源⽬录下即可;使⽤⾻骼动画 2种⽅式:(1) 直接拖动到场景;(2) 创建⼀个节点来添加sp.Skeleton组件;2. sp.Skeletonsp.Skeleton: 控制⾯板属性:Skeleton Data: ⾻骼的控制⽂件.json⽂件;Default Skin: 默认⽪肤;Animation: 正在播放的动画;Loop: 是否循环播放;Premuliplied Alpha 是否使⽤贴图预乘;TimeScale: 播放动画的时间⽐例系数;Debug Slots: 是否显⽰ Slots的调试信息;Debug Bone: 是否显⽰Bone的调试信息;sp.Skeleton重要的⽅法: Skeleton是以管道的模式来播放动画,管道⽤整数编号,管道可以独⽴播放动画,Track;(1)clearTrack(trackIndex): 清理对应Track的动画(2)clearTracks(); 清楚所有Track动画(3)setAnimation(trackIndex, “anim_name”, is_loop)清楚管道所有动画后,再从新播放(4)addAnimation(trackIndex, “anim_name”, is_loop);往管道⾥⾯添加⼀个动画;3. 动画事件监听setStartListener: 设置动画开始播放的事件;setEndListener : 设置动画播放完成后的事件;setCompleteListener: 设置动画⼀次播放完成后的事件;代码⽰例: game_scene.js// Learn cc.Class:// - [Chinese] https:///creator/manual/zh/scripting/class.html// - [English] /creator/manual/en/scripting/class.html// Learn Attribute:// - [Chinese] https:///creator/manual/zh/scripting/reference/attributes.html// - [English] /creator/manual/en/scripting/reference/attributes.html// Learn life-cycle callbacks:// - [Chinese] https:///creator/manual/zh/scripting/life-cycle-callbacks.html// - [English] https:///docs/creator/manual/en/scripting/life-cycle-callbacks.htmlcc.Class({extends: ponent,properties: {// foo: {// // ATTRIBUTES:// default: null, // The default value will be used only when the component attaching// // to a node for the first time// type: cc.SpriteFrame, // optional, default is typeof default// serializable: true, // optional, default is true// },// bar: {// get () {// return this._bar;// },// set (value) {// this._bar = value;// }// },//编辑器绑定ske_anim: {type: sp.Skeleton,default: null,},},// LIFE-CYCLE CALLBACKS:onLoad () {//代码获取var spine = this.node.getChildByName("spine");this.ske_comp = spine.getComponent(sp.Skeleton);//事件this.ske_comp.setStartListener(function() {console.log("play start ");});this.ske_comp.setCompleteListener(function() {console.log("play once ");});},enter_click() {//清理动画播放管道// this.ske_comp.clearTracks();this.ske_comp.clearTracks(0);//指定管道的索引//end//step1 播放⼊场动画this.ske_comp.setAnimation(0, "in", false); //将管道清空,再加⼊this.ske_comp.addAnimation(0, "idle_1", true); //直接加⼊管道队列//end//step 播放我们的idle},start () {},// update (dt) {},});---------------------。

AE中的人物角色骨骼动画技术解析

AE中的人物角色骨骼动画技术解析

AE中的人物角色骨骼动画技术解析Adobe After Effects(简称AE)是一款广泛应用于电影后期制作和动态影片特效制作的软件。

在AE中,人物角色骨骼动画技术是一项重要的技巧,它可以实现人物的自然动作和流畅运动。

本文将解析AE中的人物角色骨骼动画技术,帮助读者掌握这一重要的制作技巧。

人物角色骨骼动画技术是指在AE中使用骨骼系统来控制人物的动作。

通过对人物角色的关节进行绑定,可以使其具有真实的骨骼结构,从而实现更加自然的动作效果。

首先,需要创建一个人物角色的骨架。

在AE中,可以使用“Null Object”来创建骨骼,将其命名为各个关节的名称(例如脚、膝盖、臀部等)。

接下来,将这些关节通过“Parent”选项进行层级关联,建立起骨骼系统的结构。

一旦骨骼系统创建完成,就可以开始对人物角色进行动画制作了。

首先,选择一个关键帧位置进行动画制作。

通过调整关节的旋转角度和位置,可以实现人物角色的运动效果。

需要注意的是,关节的运动是通过旋转进行控制的,因此要根据人物的运动特点进行合理的调整。

在制作人物角色骨骼动画时,关键帧的设置非常重要。

可以通过添加关键帧来控制人物的不同姿势和动作。

例如,可以在人物行走时添加一个关键帧来产生蹲下的动作效果。

此外,AE还提供了一些有用的插件和工具,可以帮助优化人物角色骨骼动画的制作过程。

例如,可以使用IK插件来自动计算关节的旋转角度,简化动画制作的过程。

除了基本的动画制作,AE还支持一些高级的人物角色骨骼动画技术。

例如,可以使用“表情控制器”来实现人物面部表情的自动控制,使其更加生动。

还可以使用“布料模拟”等功能来实现人物服装的自然运动效果。

总结起来,人物角色骨骼动画技术是AE中的一项重要技巧,可以使人物角色的动作更加自然和流畅。

通过创建骨骼系统和合理设置关键帧,可以实现各种复杂的人物角色动作效果。

此外,AE提供了一些插件和工具,可以进一步优化制作过程,并实现更加高级的人物角色骨骼动画效果。

记录Spine骨骼动画导入unity步骤[unity3d4.6.6版本2d动画]

记录Spine骨骼动画导入unity步骤[unity3d4.6.6版本2d动画]

记录Spine⾻骼动画导⼊unity步骤[unity3d4.6.6版本2d动画] 1:准备好unity使⽤Spine所需要的运⾏库,可到如下地址使⽤git下载,或直接下载master.zip⽂件. 2:准备好Spine导出好的动画⽂件,正好最近偶尔玩⼀个游戏,⾥⾯使⽤了Spine制作的⾻骼动画,我就直接使⽤它做好的资源记录⼀下步骤,仅作笔记使⽤. 我这⾥的动画⽂件资源如图:这⾥需要提前做⼀个准备⼯作,把上图中的enemy_hunter.atlas⽂件重名为enemy_hunter.atlas.txt,因为unity⽆法识别.atlas⽂件,后⾯⽆法进⾏资源导⼊. 3:现在准备⼯作ok了,我们可以创建⼀个unity⼯程了.a:把master.zip⽂件中spine-runtimes-master\spine-unity\Assets\spine-unity⽂件夹复制到⼯程的Assets⽂件夹中 b:把master.zip⽂件中spine-runtimes-master\spine-csharp\src⽂件夹中所有内容复制到⼯程的Assets\spine-csharp⽂件夹中 4:导⼊资源 a:这⾥我在资源⾯板右键新建⼀个⽂件夹,⽤来存放导⼊的资源,建议导⼊顺序为".png" ".json" ".atlas.txt",这样在最后导⼊".atlas.txt"⽂件的时候,会⾃动⽣成enemy_hunter_Material.mat⽂件和enemy_hunter_Atlas.asset⽂件. b:右键新建"spine skeletonData"类型⽂件,名称为"enemy_hunter_SkeletonData.asset",这⾥结合⽹上的资料,感觉以前的版本,应该都是⾃动⽣成的,不知道这⾥为什么需要⼿动建⽴这个⽂件,之前的版本也没有使⽤过,纯属猜测.⽂件新建好后,需要配置Skeleton JSON属性,指定"enemy_hunter.json"⽂件,然后点击"Attempt Reimport"的按钮即可.完成后如图: 到⽬前为⽌,⾻骼动画的导⼊⼯作就完成了. 5.现在我们把这个⾻骼动画加⼊到场景中看看效果. 新建Spine SkeletonAnimation对象,Skeleton Data Asset属性指定为"enemy_hunter_SkeletonData.asset"⽂件.然后Advanced中Animation属性选择⼀个动作,Loop属性勾上,即可循环播放. 如图: 6:现在即可在Game⾯板播放观看效果.⾄此Spine⾻骼动画导⼊unity已完成!。

骨骼动画原理

骨骼动画原理

⾻骼动画原理动画相关理论详解⼀、⾻架⾻架由⼀系列具有层次关系的关节(⾻骼)和关节链组成,是⼀种树结构,选择其中⼀个是根关节,其它关节是根关节的⼦孙,可以通过平移和旋转根关节移动并确定整个⾻架在世界空间中的位置和⽅向。

⽗关节运动能影响⼦关节运动,但⼦关节运动对⽗关节不产⽣影响,因此,平移或旋转⽗关节时,也会同时平移或旋转其所有⼦关节。

⼆、⾻骼的表⽰通常会将关节进⾏编号0\sim N-1,编号也称关节索引,通过索引查找关节⽐关节名查找⾼效的多。

通常⼀个关节包含以下信息关节名⽗关节索引(根关节的⽗关节索引为-1,为⽆效索引)关节绑定姿势的逆变换矩阵(offset矩阵)所谓绑定姿势,是指蒙⽪⽹格顶点绑定⾄⾻骼时,关节的位置、朝向、及缩放,通常会存储关节变换的逆矩阵。

struct Joint{Matrix4x4 m_inverseBindPose;const char* m_name;U8 m_iParent;};struct Skeleton{U32 m_jointCount; // 关节数Joint* m_aJoint; // 关节数组};三、姿势把关节旋转、平移、缩放,就能为⾻架摆出各种姿势,关节的姿势被定义为关节相对于某坐标系的位置、朝向、缩放。

通常⾻架存在绑定姿势、局部姿势、全局姿势。

3.1 绑定姿势绑定姿势是⽹格绑定到⾻骼之前的姿势,也就是讲⽹格当作正常、没有蒙⽪、完全不涉及⾻骼三⾓形⽹格来渲染的姿势,通常是设计师绑定模型时预设的。

如下⾯的左图就是⼀个绑定姿势,右图是任意⼀个姿势。

3.2 局部姿势局部姿势是关节相对于⽗关节来指定的,是⼀种常见的姿势。

局部姿势存储为TQS的格式,表⽰相对与⽗关节的位置、朝向、缩放,根关节的⽗节点可以认为是世界坐标系原点。

关节在三维软件⾥通常是显⽰成⼀个点或者⼀个球,实际上,每个关节定义了⼀个坐标空间。

在数学上,关节姿势就是⼀个仿射变换,⽤P_j表⽰关节j代表的仿射变换,它是⼀个4\times 4的矩阵,它由平移向量T_j,旋转矩阵R_j以及对⾓缩放矩阵S_j组成P_j=\left [\begin{matrix} R_jS_j & T_j \\ 0 & 1 \end{matrix} \right ]局部关节姿势可以表⽰为struct JointPose{Quaternion m_rot; // 相对⽗关节朝向Vector3 m_trans; // 在⽗关节中的坐标Vector3 m_scale; // 相对⽗关节的缩放};局部关节姿势矩阵P_j作⽤到以关节j坐标系表⽰的点或者向量时,其结果是将点或者向量变换到⽗关节坐标空间表⽰的点。

Spine(2D骨骼动画)

Spine(2D骨骼动画)

Spine(2D⾻骼动画)Spine 是⼀款针对游戏的 2D ⾻骼动画编辑⼯具。

Spine 旨在提供更⾼效和简洁的⼯作流程,以创建游戏所需的动画。

功能:1、摄影表 Dopesheet在动画制作过程中摄影表是最核⼼的地⽅。

这⾥显⽰全部关键的细节,通过它能够创建动画以及对时间节奏进⾏微调。

2、⽹格 Meshes⽹格同意你在矩形边界内定义多边形。

这将提⾼终于纹理贴图集的空间使⽤率,因为在多边形外的像素将被忽略掉,这样的优化对移动设备来特别重要。

⽹格的另外⼀个功能就是⽀持⾃由变形 FFD 和蒙⽪ Skinning。

3、曲线编辑器 Graph Editor在曲线编辑器中能够通过调整贝赛尔曲线来控制两帧之间的差值,以实现栩栩如⽣的动画效果。

4、反向动⼒学⼯具 IK PosingPose ⼯具能够利⽤反向动⼒学便捷的调整姿势。

5、⽪肤 Skins⽪肤能够为做好的动画切换图⽚素材。

通过改变附加在⾻骼上的图⽚来实现动画的重⽤。

6、边界框 Bounding Boxes边界框是⼀个附加到⾻骼上,随着⾻骼移动的对象。

它能够⽤于碰撞检測和物理集成。

7、⾃由变形 Free-Form Deformation⾃由变形 FFD 同意你通过移动⽹格点来变形图⽚。

FFD 能实现⽹格的:拉伸、挤压、弯曲、反弹,等⼀些矩形图⽚⽆法实现的功能。

8、蒙⽪ Skinning蒙⽪同意将⽹格中指定的点附加给指定⾻骼。

然后点将随着⾻骼移动,⽹格则随之⾃⼰主动发⽣变形。

如今能够⽤⾻骼动作控制⾓⾊的图⽚进⾏弯曲变形了。

9、输出格式 Export formatsSpine 能将项⽬中的动画导出为 JSON 或⼆进制格式⽂件,它们能在 Spine 执⾏时库中完美的再现。

Spine 同⼀时候还能够导出 GIF 动画, PNG 或 JPG 序列图,还有 AVI 或 QuickTime 的视频⽂件。

10、导⼊ ImportingSpine 通过⼀个路径查找并导⼊其他⼯具⽣成的数据⽂件,它可以识别符合要求的 JSON 或⼆进制格式数据。

Spine骨骼动画 IKpinning约束功能分享

Spine骨骼动画 IKpinning约束功能分享

Spine骨骼动画 IKpinning约束功能分享这里本篇讲解2D游戏动画中Spine IK 约束,也就是大家期待已久的IKPinning。

此功能约束住IK 链末端,这样你可以通过操控父级反向驱动整条骨骼链。

(其实Spine的IK约束只支持两根骨头,无所谓了。

)IK约束本身没什么好讲的,不过官方就出了个演示视频,诈称以后会有更多细节透露,不知道要等到几时,最近几天问这个的同学又比较多,就写出来大家分享吧。

这里通过两个简单的例子来演示IK 约束的使用。

这个IK约束的功能,有点打补丁的感觉。

不MAYA,3DMAX 里的有点不同。

下面细说。

例 1 手臂创建IK 约束:1.创建大臂,小臂:uparm, arm这很简单。

(hand不用管,不我们要学的东西无关,只是创建了手臂不创建hand我心里不爽)2.创建用于固定的IKpin骨骼。

这里要注意了,Spine的实现方式有点怪异,竟然是创建一个骨骼来做为固定点。

这样这个用于固定的骨骼,就要不这条骨链的父级平级戒高级,反正不能作为骨链的子级。

(注意IKpin不uparm是平级的都在root下。

这里的两个骨骼图标不同,十字星的意思是长度为0的骨骼。

只是显示不同罢了)3.创建IK约束,Spine的IK 约束只支持两根骨骼(可以不相临,但必须在一条骨链上)首先:选中uparm, arm,在层级树中点Constraints节点,下方出现创建按钮'New IK Constraint”。

想毛,点它。

新创建的约束起个名字,我就取了个ikpin。

好了,现在就完成创建了。

(这里有个小问题,如果你在场景中点选目标,就会自动完成。

如果在层级树中点选目标,你点完后其实已经创建成功了。

但选择状态不会消失,按下右键才会完成。

目前版本1.9.01,不知道这是个小BUG还是为其它功能做的预留。

无所谓了)问题是这样的,你的IKpin骨骼位置没有完全匹配arm的末端关节处。

具体怎么才能匹配呢,其实也很简单,你可以先把IKpin放到arm 下,成为arm的子物体。

骨骼动画原理

骨骼动画原理

骨骼动画原理骨骼动画是一种基于骨骼系统的动画技术,它可以模拟人体或其他生物的运动,使得角色在动画中更加真实和生动。

骨骼动画原理是指通过对角色的骨骼结构进行建模和控制,实现角色的动作和表情。

在本文中,我们将深入探讨骨骼动画的原理及其应用。

首先,骨骼动画的核心是骨骼系统。

骨骼系统由骨骼、关节和控制器组成,它们共同构成了角色的骨骼结构。

骨骼是角色的骨架,关节连接了不同的骨骼,而控制器则用于控制骨骼的运动。

通过对骨骼系统的建模和控制,可以实现角色的各种动作,如行走、奔跑、跳跃等。

其次,骨骼动画的原理是基于关键帧动画。

关键帧动画是一种基于关键帧的动画技术,它通过设置关键帧来控制角色的动作。

在骨骼动画中,动画师首先确定角色在动画序列中的关键动作,然后在这些关键帧上设置角色的姿势和表情。

系统会根据这些关键帧自动计算出中间帧,从而实现角色的流畅运动。

另外,骨骼动画还涉及到皮肤绑定技术。

皮肤绑定是将角色的皮肤与骨骼系统进行绑定,使得角色的皮肤能够跟随骨骼的运动而变形。

这种技术可以使角色在动画中呈现出更加真实的外观,同时也方便动画师对角色的表情和姿势进行调整。

最后,骨骼动画的应用非常广泛。

它被广泛应用于电影、电视、游戏等领域,成为了现代动画制作的重要技术之一。

通过骨骼动画,动画师可以轻松地制作出各种生动的角色动画,为观众带来更加精彩的视听体验。

总之,骨骼动画是一种基于骨骼系统的动画技术,它通过对角色的骨骼结构进行建模和控制,实现角色的动作和表情。

骨骼动画的原理是基于关键帧动画和皮肤绑定技术,它的应用非常广泛,成为了现代动画制作的重要技术之一。

希望本文能够帮助读者更加深入地了解骨骼动画的原理及其应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

骨骼动画详解-Spine
骨骼动画详解-Spine
游戏中人物的走动,跑动,攻击等动作是必不可少,实现它们的方法一般采用帧动画或者骨骼动画。

帧动画与骨骼动画的区别在于:帧动画的每一帧都是角色特定姿势的一个快照,动画的流畅性和平滑效果都取决于帧数的多少。

而骨骼动画则是把角色的各部分身体部件图片绑定到一根根互相作用连接的“骨头”上,通过控制这些骨骼的位置、旋转方向和放大缩小而生成的动画。

它们需要的图片资源各不相同,如下分别是帧动画和骨骼动画所需的资源图:
骨骼动画比传统的逐帧动画要求更高的处理器性能,但同时它也具有更多的优势,比如:
更少的美术资源:骨骼动画的资源是一块块小的角色部件(比如:头、手、胳膊、腰等等),美术再也不用提供每一帧完整的图片了,这无疑节省了资源大小,能为您节省出更多的人力物力更好的投入到游戏开发中去。

更小的体积:帧动画需要提供每一帧图片。

而骨骼动画只需要少量的图片资源,并把骨骼的动画数据保存在一个json
文件里面(后文会提到),它所占用的空间非常小,并能为你的游戏提供独一无二的动画。

更好的流畅性:骨骼动画使用差值算法计算中间帧,这能让你的动画总是保持流畅的效果。

装备附件:图片绑定在骨骼上来实现动画。

如果你需要可以方便的更换角色的装备满足不同的需求。

甚至改变角色的样貌来达到动画重用的效果。

不同动画可混合使用:不同的骨骼动画可以被结合到一起。

比如一个角色可以转动头部、射击并且同时也在走路。

程序动画:可以通过代码控制骨骼,比如可以实现跟随鼠标的射击,注视敌人,或者上坡时的身体前倾等效果。

骨骼动画编辑器——Spine
Spine是一款针对游戏的2D骨骼动画编辑工具,它具有良好的UI设计和完整的功能,是一个比较成熟的骨骼动画编辑器。

Spine旨在提供更高效和简洁的工作流程,以创建游戏所需的动画。

使用Spine创建骨骼动画分两大步骤:
在SETUP模式下,组装角色部件,为其绑定骨骼;
在ANIMATE模式下,基于绑定好的骨骼创建动画。

下面简单介绍下具体步骤,更多详细内容请查看官方网站教程:Spine快速入门教程。

1)在SETUP模式下,选中Images属性,导入所需图片资源所在文件夹,其中路径名和资源名中不能出现中文,否则解析不了;
2)拖动Images下的图片到场景,对角色进行组装(把各个身体部位拼在一起),可通过Draw Order属性调整图片所在层的顺序;
3)创建骨骼,并绑定图片到骨骼上,要注意各骨骼的父子关系。

4)切换到ANIMATE模式,选中要“动”的骨骼,对其进行旋转、移动、缩放等操作,每次改动后要记得打关键帧。

5)在菜单栏找到Texture Packer项,对角色纹理进行打包,资源文件后缀为atlas(而非Cocos2d-x常用的plist)。

打包后将生成两个文件,即:png 和atlas。

6)导出动画文件Json。

Spine动画的使用
Cocos2d-x程序中,使用Spine动画首先需要包含spine的相关头文件。

#include
#include "spine/spine.h"
using namespace spine;
其常用方法如下:
创建一个Spine动画对象,将动画文件和资源文件导入。

auto skeletonNode = new SkeletonAnimation("enemy.json", "enemy.atlas");
骨骼动画往往是不止一个动画的,例如:当人物需要行走时,就设置播放动画为行走;当要发动攻击时,就设置播放动画为攻击。

下面方法可以设置当前播放动画,其中参数false
表示不循环播放,true表示循环播放。

skeletonNode->setAnimation(0, "walk", true);
setAnimation方法只能播放一种动画,所以当要连续播放不同的动画时,需要使用addAnimation方法来实现,它可以一条一条的播放不同的动画。

skeletonNode->addAnimation(0, "walk", true); skeletonNode->addAnimation(0, "attack", false);
对于一般情况下,动画的切换要求两个动画完全能衔接上,
不然会出现跳跃感,这个对于美术来说要求很高,而Spine 加了个动画混合的功能来解决这个问题。

使得不要求两个动画能完全的衔接上,比如上面的walk和attack动画, 就是衔接不上的,直接按上面的办法播放,会出现跳跃,但是加了混合后,看起来就很自然了。

哪怕放慢10倍速度观察,也完美无缺。

这个功能在序列帧动画时是无法实现的,也是最体现Spine价值的一个功能。

skeletonNode->setMix("walk", "attack", 0.2f); skeletonNode->setMix("attack", "walk", 0.4f);
设置动画的播放快慢可通过设置它的timeScale值来实现。

skeletonNode->timeScale = 0.6f;
设置是否显示骨骼通过设置debugBones,true表示显示,false 表示隐藏。

skeletonNode->debugBones = true;
例子:创建一个player行走和攻击的动画, 并且循环播放。

auto skeletonNode = new SkeletonAnimation("enemy.json", "enemy.atlas");
skeletonNode->setMix("walk", "attack", 0.2f); skeletonNode->setMix("attack", "walk", 0.4f);
skeletonNode->setAnimation(0, "walk", false); skeletonNode->setAnimation(0, "attact", false);
skeletonNode->addAnimation(0, "walk", false); skeletonNode->addAnimation(0, "attact", true);
skeletonNode->debugBones = true;
Size windowSize = Director::getInstance()->getWinSize(); skeletonNode->setPosition(Point(windowSize.width / 2, windowSize.height / 2));
addChild(skeletonNode);
效果图:。

相关文档
最新文档