Spine版本: 3.7+
标签:

专业版, 网格, 权重, 路径约束, 变换约束, 剪裁, 填入黑色

坦克

坦克项目演示了如何使用Spine的路径变换约束轻松快速地创建机械部件动画,如坦克履带和车轮。本坦克示例还使用了Spine的填入黑色功能制作了一个低成本爆炸效果。

坦克履带

设置

tank-root骨骼包含一个treads-path插槽,其中包含一个同名的路径附件。该路径附件是treads-path路径约束的目标。

该路径约束驱动骨骼treadtread36。此设置可在动画过程中通过仅设置路径约束的位置值关键帧来沿着路径移动履带。

所有路径约束属性都使用了默认值,除了混合: 旋转被设置为而非切线,以确保履带骨骼沿着路径正确旋转。

该路径被加权到一些骨骼上,在选择了履带路径时可在权重视图中看到。

可以变换这些骨骼以使路径变形。在下面的GIF中,tread-gravity1骨骼在Y轴上移动,从而导致路径变形。

各履带的某些部分在车轮前面绘制,而相同履带的其他部分在车轮后面绘制。单个履带的插槽和附件设置如下所示:

tread插槽在车轮前面绘制,tread-inside1tread-inside2插槽在车轮后面绘制。这由骨架的绘制顺序中所有相关插槽的位置定义。

动画

动画模式下播放drive动画时,我们可以看到履带随着车轮的转动而移动。这是通过设置路径约束的位置属性关键帧实现的,可以在摄影表中看到:

当坦克驶过岩石时,履带链会变形,自然地跟随岩石的形状。这是通过设置路径加权的骨骼变换关键帧来完成的:

车轮

轮辋的上部在车轮上部内里投下阴影。为了在车轮旋转时实现此效果,阴影部分与实际车轮分离。这是其中一个车轮的设置:

wheel-mid-root1包含插槽wheel-mid-overlay,其中包含一个表示车轮阴影部分的附件。插槽的混合模式被设置为相乘,以在实际车轮上绘制时达到理想的阴影效果。

真正车轮包含在wheel-mid1骨骼中,它是wheel-mid-root1骨骼的子级。wheel-mid-root1骨骼只移动,保持阴影不旋转。要旋转车轮,需要旋转wheel-mid1骨骼。

选择wheel-mid1骨骼并旋转它将导致其余的底部车轮旋转。这是通过变换约束实现的:

变换约束wheel-mid1-transform根据wheel-mid1骨骼的旋转来转动骨骼wheel-mid2wheel-mid4。这样,我们只需要设置wheel-mid1骨骼的旋转关键帧,而变换约束可确保其他骨骼跟随。

为了使车轮旋转看起来不那么统一,我们将变换约束的旋转偏移量设置为93。由于其他车轮的旋转速度应与wheel-mid1相同,因此旋转混合值设置为100

此变换约束也可以驱动其他车轮。但这会导致一个统一的观感,所有车轮的旋转都相同。为此,我们设置了一些具有不同旋转偏移量的变换约束,如在变换约束wheel-mid2-transformwheel-mid3-transform中可见。

考虑到小车轮需要比大车轮转得更快,另外两组车轮wheel-small-*wheel-big-*有相似的设置。

爆炸效果

坦克项目中包含一个名为shoot的动画:

使用传统的逐帧动画创建这样的效果会占用大量的纹理内存,因此是不可取的,尤其是对移动游戏而言。我们没有使用多个大图来代表爆炸的每一个完整画面,而是使用了五个名为smoke-puff01-bgsmoke-puff01-fgsmoke-puff02-fgsmoke-puff03-fgsmoke-puff04-fg的小图,它们被复制到许多不同的smoke*骨骼上。

请注意,这些图像是灰度的,可以使用Spine的填入黑色功能。下面可看到在拖动摄影表中的射击动画时,smoke-puff1-fg插槽的可见性和颜色变化。

烟雾的形状是通过设置不同形状附件的可见性关键帧来改变的,这基本上是传统的逐帧动画中的混合效果。填入黑色可用来改变烟雾颜色。

缓慢拖动摄影表中的时间轴可显示越来越多的烟雾。其设置类似于smoke-puff1-fg,在移动、旋转、缩放和时间上的变化可产生逼真的爆炸效果。

smoke-glow骨骼有一个网格附件和一个插槽,混合设置为相加使爆炸效果更强烈些,并帮助提高烟雾最热部分的亮度。