两周前在多伦多 SkillSwap 会议上介绍了《危险时空恋人》中 2.5D 角色的动画制作过程,我认为是时候发布一些已经讨论过的内容了。 我一直对 2D 和 3D 之间的模糊界限感兴趣(游戏注:作者在 2.5D 动画方面做了一些工作),而对于开发者来说,引入代码让动画栩栩如生是游戏开发中最有趣的部分过程。 作为其中一个环节,我们现在分享一些使用3D工具制作2D效果的游戏开发经验。
我们使用 Unity 创建了《危险时空恋人》,其中一切都是由多边形组成的2d游戏制作素材,但大多数对象只是映射到简单平面的透明纹理。 游戏中没有灯光,我们只是创建背景光。 我们以几种不同的方式处理艺术资产,并随着我们对 Unity 引擎的更加熟练而继续推进这一过程。
使用软件搭建的效果
从早期原型开始,在我们掌握 Unity 的动画脚本方法之前,创建主角的时间有点紧张。 角色最初使用 After Effects 以 2D 形式进行动画处理,动画帧渲染为精灵图集纹理(即包含所有动画帧的网格)。 在Unity引擎中,每个角色都是由一个平面组成,我们给它分配一个精灵图集纹理。这种平面只能显示缩小的纹理。 我们可以通过变换显示的精灵图集纹理来显示不同的动画帧。
软件构建过程中绘制素材
成品动画展示(包括开头第一张图)
玩家角色在拉伸和挤压过程中实现脚本动画。 通过在角色落地时稍微挤压整个平面,可以在不干扰动画帧播放的情况下,给予角色更多的动作和反应,从高处跳跃落地时——可以看到角色落地时的挤压状态踏着地面,迈着稳健的步伐奔跑。 这个操作虽然很简单,但却可以大大增强视觉效果。 我们也在游戏的其他一些地方做了类似的事情。
拉伸和挤压效果设计图
实际示范效果
这个简单的坏人也是由多个位面组成的。 这是我们创建的第二个角色。 我们使用Unity创建所有关键帧动画,每个运动链接都有自己的动画文件。 我将从《古墓丽影 1》的树木中借用的技巧应用到人造卫星敌人腿部的十字形平面上 - 他们可以以 3D 方式围绕身体旋转,并且仍然以任何角度出现。 当我们对敌人的动画进行编程以使其与他们的动作相对应时,这个简单的角色开始看起来更加生动。
我们使用 Maya 为这个敌人创建了一个整齐连接的骨架,但这也将几何形状限制在前视图。 在四个主要方向上创建动画移动循环后,可以在代码中动态混合这些循环并更改速度以对应于角色的位移。 这就是使用 3D 工具创建 2D 角色的威力 - 您可以控制所有程序动画。我们还使用此方法来触发角色受伤时出现的玻璃裂缝(否则损坏的平面将按比例缩小并隐藏)身体后面)2d游戏素材,我们还让水母眨眼并动态跟踪玩家的位置
十字平面效果设计图
动画演示效果
对于这个小boss,我们使用Unity将不同的剪辑划分为多个动画层。 头部和身体属于同一操作级别,但它们在不同的级别上进行动画处理。这使我们能够根据加速度和方向组合多个运动动画,同时允许角色的头部空闲和射击动画独立于身体运动而触发。
多种动画层设计效果
多个动画层来演示效果
我们想要矢量霓虹灯的视觉效果,而修复 2D 视图的好处之一是我们可以将发光和扩散效果直接集成到纹理中。 此外,由于我们的资源相对简单技能特效,因此我们可以轻松应用粒子效果。 为了将所有内容整合在一起2d游戏制作素材,我们发现在相机前面放置大型缓慢移动的多边形并向每个多边形添加带有一点模糊颜色的纹理(闪闪发光的那种)确实有助于创建光线的轻微变化。 发光的空间环境。