搜索 Unity

快来下载我们最新的2D示例项目《失落的地穴(Lost Crypt)》吧

2019年12月18日 类别 游戏 | 12 分 阅读
涵盖的主题
分享

Is this article helpful for you?

Thank you for your feedback!

随着新的2D工具不断推出,我们用最新的技术制作出了一个2D横版演示游戏。在本文中,我们将向大家演示如何使用这些2D工具在Unity中制作出高端图像。

此内容由第三方提供商托管,该第三方提供商不允许在未接受“Targeting Cookies”的情况下观看视频。如果想观看来自这些提供商的视频,请将“Targeting Cookies”的 Cookie 首选项设置为“是”。

有许多水平高超的团队多年以来用Unity制作出了许多美观的2D游戏,而我们希望让每个人,不论是个人艺术家还是大型团队,都能拥有更多的2D工具来制作同样吸引眼球的游戏。而许多工具将在Unity 2019.3中作为正式产品上线,请期待引擎的beta测试结束。我们使用了一整套2D工具来制作《失落的地穴》。在游戏栩栩如生的场景中我们使用了包括动画、光效、自然的地形、着色器和后期处理等功能,所有内容都以原生2D制作。任何规模的团队和项目,现在都能更高效地制作出美观又引人注目的作品了。《失落的地穴》可在任何桌面电脑上流畅运行,同时如果想要在iOS或者安卓设备上运行游戏,我们也使用了新的输入系统应用了屏幕控制器。在测试中,游戏可在如iPhone 6S这样的常见设备上以30帧每秒流畅运行。  

前往资源商店下载

项目安装

从资源商店中下载完《失落的地穴》后,我们建议在引擎中新建一个New Project(新项目),类型选择2D,然后在资源管理器中从My Assets(我的资源)中导入项目,或者点击资源商店页面的My Assets选项。项目中包含了所有制作2D内容所需的资源包。在导入完成后,资源包将改写项目设置,将通用渲染管线中的渲染设置转换到2D渲染器选项。

这里可以看到《失落的地穴》渲染管线使用的通用渲染管线和2D渲染器。

在导入完成后,我们将看到一个主场景。点击运行按钮,我们就可以正常地使用方向键和空格键来游玩游戏。游戏的脚本和逻辑都是比较简单的,该演示项目的主要关注点是项目中用于实现概念美术的2D工具。整个demo的制作被划分成不同的任务,每种视觉制作都使用了特定的2D工具制作。

最初的概念图。该项目是我们与<a href="http://b2tgame.com/" target="_blank" rel="noopener noreferrer">B2tGame</a>合作的成果。

人物动画

我们使用Photoshop设计出了人物,并使用2D PSD导入器直接将文件导入到了引擎中。使用精灵编辑器打开Sara.psb文件可以查看人物的设置和动画绑定。如果使用Photoshop打开文件,可以看到不同身体部位和图层信息都保存完整。

PSD导入器允许我们直接将Photoshop文件直接导入到Unity中,无须再将文件导出为额外的精灵,再一个个将它们拼接起来。

通用渲染管线的一个新功能是Sprite-Lit(精灵光照)材质。与普通的Sprite-Default(默认精灵)材质相比,该材质能让精灵受到2D光照条件的影响。我们在精灵编辑器中使用了Secondary Textures(次级材质)下拉菜单选项导入了人物的法线贴图。我们可以为2D人物动画、普通的精灵、块图和精灵形状加上法线和遮罩贴图。

人物身上的法线贴图确定了精灵的不同部分受到的光照为多少。

人物的腿部还使用了2D IK解算器,动画制作只需将脚踝和脚部的位置摆放好,剩余的部分就能正确地形成动画了。

我们使用了2D IK来帮助制作腿部和脚部的动画。

在完成动画绑定后,我们使用了动画工具制作了不同的动画,还用动画器来控制不同的状态。你可以在这个GDC 2019演讲中了解到工具的使用方法。人物的马尾辫则是一个独立的子对象,受2D Physics影响。辫子随人物运动会有逼真的动画,每个辫子的节点上都有一个Hinge Joint(铰链关节)组件和一些约束[a][b]。这样一来,主角的发辫就能随着移动自由摆动,还不会卷曲成团或者过度摆动。

在马尾辫上我们添加了连锁的2D物理设置,在末尾处还添加了一些重量。

昼夜循环

在精灵上使用动态光照的一个最大的好处是改变整个环境的外貌。在同样的精灵中,我们可以改变氛围、时间或者特定区域的明暗,实现更多的游戏机制,如潜行机制和更富细节的世界。

2D光线开关后的对比。我们可以用同样的精灵制作出不同的天气条件或者氛围。

我们在场景中使用了一个简单的脚本来控制光照。在脚本中,保存有一个渐变的颜色设置(从白天到夜晚的光照颜色),而光照和材质会随着父游戏对象的时间参数变化而改变颜色。有了这种设置方式,我们可以控制不同的光照互相糅合,形成不同的光照效果。

我们可以在相同的精灵上将光照染成不同的颜色,让精灵的面貌焕然一新,这样就能做出不同的游戏体验和美学风格了。

大型户外纹理地形

在早些时候,2D游戏开发者们所面临的一个大问题是高效地制作如山丘、山坡或其它不规则的地面,这些地面通常布满植被,只有用精心制作的图块表单才能高效地加入到游戏中。但是多年以后的现在,我们可以使用不同的精灵来组合成一块地形,更快地制作出生机勃勃的地形,同时工作流及性能表现会有更大的改善。

我们在地面图层和右边的Sprite Shape Profiles(精灵形状图形配置)中使用了一个2D精灵形状图形。

有了2D精灵形状图形,我们可以像作画一样通过拖动来生成地形和碰撞体。我们可以调整笔刷(在精灵形状图形配置中)后直接开始创作,还无需在更改环境时调整成堆的精灵或碰撞体。《失落的地穴》还使用了一些额外的精灵形状图形,比如NodeAttach脚本可以确保元素贴近样条,随样条展开。在演示项目中,石块部分使用了脚本和花朵图层上的ConformingSpline,确保岩石能跟随草地的样条生成。各位可以学习我们在关前的草地图层上的做法,使用这个功能制作游戏或装饰性元素。

用网格搭建墓穴

块图可能是最重要的2D工具之一了,它不仅能将地图分成一个个图形小块,节省许多内存空间,还能让我们重复“堆砌”地图,对关卡设计至关重要。

这是演示项目中的块图表单和法线贴图表单。

在《失落的地穴》中,我们使用了2D块图编辑器(可在包管理器中下载)来构建墓穴的内部景观,还用了额外的块图工具(可在GitHub上或在下方下载)让关卡设计更加高效。比如,我们在制作时使用了Rule Tile(尺规块图),可以像用笔刷一样在关卡中画出块图。块图会根据相邻的块图或端点自动生成正确的块图。

为了提升工作流,我们在墓穴制作中使用了额外2D工具中的Rule Tiles(<a href="https://github.com/Unity-Technologies/2d-extras" target="_blank" rel="noopener noreferrer">GitHub</a>)。

火焰特效

火焰特效是游戏中最常见的元素之一了,我们在《失落的地穴》中也加进了火焰。我们先用2D的Paritcle System(粒子系统)和Shader Graph(着色器节点图)创建了一些火炬游戏对象,然后在输出着色器上使用了Sprite-Lit(精灵光照)主节点。我们使用了传统的精灵表单制作出了火焰动画,再使用了粒子系统来播放动画。

我们使用了一个有动画的2D着色器和粒子来制作火焰效果。

在火焰的着色器上使用了一种HDR颜色,还使用了Volume(体积)后期处理效果来增加对象周围的光照强度。在父对象上还包含了一些火星粒子和特殊光照来照亮壁龛。

水面反射

游戏中另一种常见的着色器使用方法是反射和折射(比如水、冰、镜面或显示器上的景象)。

我们可以更改水着色器上的参数,实现不同的效果。

在墓穴中的水体效果完全使用Shader Graph制作的。我们将不同的参数(如水体颜色、波纹速度、图像扭曲和涟漪效果等等)公开到了场景中,方便调整最终效果。为了将环境的图像镜面投射到水上,我们添加了一个额外的镜头,将纹理输出到Shader Graph中用于进一步处理。此外,我们还添加了一个Bloom(泛光)后期处理通道,来制作水体焦散发光,给水的表面加上更加漂亮的效果。

我们将Shader Graph划分成不同的群组,加上了相应的标签,便于大家理解。

风的动画和混合风格

在《失落的地穴》中,我们使用了精灵形状图形、2D光照和着色规划图为枝繁叶茂的树木和草地添加生气。

我们给环境添加的一种动画是让树枝随风摆动。为了实现此种特效,我们决定为每个树的枝叶预制件单独添加一个着色器,以做出多样的动画,防止单调地重复。

在精灵窗口中,我们添加了法线和遮罩贴图,用于随后的着色规划图。

在Vegetation Wind-Lit(植被风力影响)图表中,可以看到我们是如何制作出两种效果的。其中在晃动动画制作中,我们添加了一个噪声模式,将顶点位置偏移到相近的位置上。第二种效果则是使用G(绿色)通道来调整枝叶周围环绕光的色调。

在右边,请注意我们是如何在着色器中使用遮罩贴图G通道来改变环绕颜色的。

“Light Blend Styles(光照混合风格)”是一个2D渲染器属性集合,它描述了光照如何影响精灵。比如,我们可以创建一种只影响特定通道的混合风格。当在场景中添加进该种风格的光照时,光照只会影响遮罩贴图通道中指定的精灵区域。在下方示例中,光照使用了Direct Lighting(直接光照)混合风格,会只影响精灵的遮罩贴图R通道指定的区域。

在左边可以看到2D渲染器中使用的光照混合风格设置,在右边则是使用混合风格的2D光照设置。

过场动画和粒子效果

《失落的地穴》中,当我们的探险者抓起地穴的魔棒时,会播放一个简短的过场。为了让过场显得更为特殊,我们改变了环境的氛围,同时为了体现出晚上环境的不同,还根据时间轴在正确的时机生成粒子。为了让镜头跟随粒子飞进丛林中,我们还加上了一个混合动画轨道镜头,用于替换原来的Cinemachine镜头。

我们在时间轴上组合起镜头、音效和图像,来制作出过场动画。

当玩家拾起魔棒时出现的光环是用精灵类型的光照制作的。光环图像会扩大、淡出,形成一种照亮环境的光圈效果。大部分的粒子发光效果都是用Volume(体积)后期处理中的泛光效果制作的。同时,粒子和尾迹的材质/着色器使用了HDR颜色,来定义该对象上后期处理效果的强度。

粒子使用了Random Seed功能确保动画总是相同。

夜鬼的动画

如果仔细观察树丛,会发现那里有一些幽灵般的生物。为了做出这种效果,我们创建了一个鬼怪身上通用的着色器。生物本身是透明的,但是我们用菲涅尔效果为精灵的边缘添加上了一些发光效果,让生物像漂浮着一样晃来晃去。着色器中有一个非常有意思的效果:追踪魔棒游戏对象变换的位置。当魔棒靠近夜鬼,它们会变得更加明亮。而为了实现这种效果,我们为魔棒添加上了一个小脚本,在材质着色器上更新对象的位置。

我们可以在着色器中公开部分数值,根据游戏机制需要来调整图像效果。

夜鬼还有一个由两张图形互相切换构成的小动画。为了实现这个效果,我们在每个通道上用不同的规划图表创建了一个遮罩贴图:R包含了一个图像,G包含了另一个图像,而B上则是菲涅尔效果。

当魔棒距离较远时,依旧可以看到夜鬼,而遮罩贴图如右侧所示。

添加Volume 后处理

最后为了加上一层润色效果,我们添加上了通用渲染管线中的部分后期渲染效果。举个例子,我们创建了一个空游戏对象,在其中加入了一个Volume组件。在《失落的地穴》中,我们使用了泛光、白平衡和剪影,此外还有许多可以用到2D项目中的效果,如动态模糊、胶片颗粒效果中的颜色矫正。

这是《失落的地穴》中的体积后期处理设置。

总结

希望《失落的地穴》能帮助各位学习如何在类似项目中使用我们的整合2D工具套。如果有任何关于《失落的地穴》的问题,可以在论坛上联系我们。如果对我们的2D工具有疑问,可以看看论坛2D板块和Beta & Experimental下的专门话题。

项目还包括了一个教程窗口,引导你了解《失落的地穴》中使用的各种功能。

《失落的地穴》网络研讨会

想要了解《失落的地穴》幕后?会上全球内容布道Andy Touch将详细解释我们在《失落的地穴》中使用的2D光照、着色器和后期处理效果。同时R&D的2D团队也会在会上解答大家关于2D工具和项目的问题。  

注册报名

席位有限,先到先得,别忘了将研讨会加入你的日程。

2019年12月18日 类别 游戏 | 12 分 阅读

Is this article helpful for you?

Thank you for your feedback!

涵盖的主题