坦克
坦克项目演示了如何使用Spine的路径和变换约束轻松快速地创建机械部件动画,如坦克履带和车轮。本坦克示例还使用了Spine的填入黑色功能制作了一个低成本爆炸效果。
坦克履带
设置
tank-root
骨骼包含一个treads-path
插槽,其中包含一个同名的路径附件。该路径附件是treads-path
路径约束的目标。
该路径约束驱动骨骼tread
到tread36
。此设置可在动画过程中通过仅设置路径约束的位置
值关键帧来沿着路径移动履带。
所有路径约束属性都使用了默认值,除了混合
: 旋转
被设置为链
而非切线
,以确保履带骨骼沿着路径正确旋转。
该路径被加权到一些骨骼上,在选择了履带
路径时可在权重
视图中看到。
可以变换这些骨骼以使路径变形。在下面的GIF中,tread-gravity1
骨骼在Y轴上移动,从而导致路径变形。
各履带的某些部分在车轮前面绘制,而相同履带的其他部分在车轮后面绘制。单个履带的插槽和附件设置如下所示:
tread
插槽在车轮前面绘制,tread-inside1
和tread-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-mid2
和wheel-mid4
。这样,我们只需要设置wheel-mid1
骨骼的旋转关键帧,而变换约束可确保其他骨骼跟随。
为了使车轮旋转看起来不那么统一,我们将变换约束的旋转
偏移量设置为93
。由于其他车轮的旋转速度应与wheel-mid1
相同,因此旋转
混合值设置为100
。
此变换约束也可以驱动其他车轮。但这会导致一个统一的观感,所有车轮的旋转都相同。为此,我们设置了一些具有不同旋转偏移量的变换约束,如在变换约束wheel-mid2-transform
和wheel-mid3-transform
中可见。
考虑到小车轮需要比大车轮转得更快,另外两组车轮wheel-small-*
和wheel-big-*
有相似的设置。
爆炸效果
坦克项目中包含一个名为shoot
的动画:
使用传统的逐帧动画创建这样的效果会占用大量的纹理内存,因此是不可取的,尤其是对移动游戏而言。我们没有使用多个大图来代表爆炸的每一个完整画面,而是使用了五个名为smoke-puff01-bg
、smoke-puff01-fg
、smoke-puff02-fg
、smoke-puff03-fg
和smoke-puff04-fg
的小图,它们被复制到许多不同的smoke*
骨骼上。
请注意,这些图像是灰度的,可以使用Spine的填入黑色功能。下面可看到在拖动摄影表中的射击
动画时,smoke-puff1-fg
插槽的可见性和颜色变化。
烟雾的形状是通过设置不同形状附件的可见性关键帧来改变的,这基本上是传统的逐帧动画中的混合效果。填入黑色可用来改变烟雾颜色。
缓慢拖动摄影表中的时间轴可显示越来越多的烟雾。其设置类似于smoke-puff1-fg
,在移动、旋转、缩放和时间上的变化可产生逼真的爆炸效果。
smoke-glow
骨骼有一个网格附件和一个插槽,混合
设置为相加
使爆炸效果更强烈些,并帮助提高烟雾最热部分的亮度。