搜索 Unity

《Skul:The Hero Slayer》——2D Pixel Perfect带来的高清像素冒险

2021年1月21日 类别 技术 | 9 分 阅读
涵盖的主题
分享

Unity 2D团队推出的2D Pixel Perfect资源包是专门针对2D美术推出的优化工具,目的是帮助创作者轻松制作各种比例下清晰锐利、兼容不同设备的像素艺术作品。SouthPAW Games团队在开发自家的首款像素游戏《Skul :The Hero Slayer》,就用到了许多Unity 2D工具来辅助制作精美的2D画面。

SouthPAW Games使用了Unity的2D Tilemaps、2D Pixel Perfect和Sprite Atlas制作了这款备受期待的rogue-lite(具备rogue元素,但游戏策略更简单、图像更好)游戏。

让Skul跃于屏幕之上

《Skul:The Hero Slayer》是一款2D rogue-lite(每次游玩都有不同)和动作平台游戏,以一位名为Skul的小骷髅守卫为主角,它将踏上征服冒险者们的旅程,打败帝国军来营救恶魔王。SouthPAW Games现有八名成员,由韩国全南国立大学的gamedev俱乐部成员于2017年创立。自Unity 3.0以来,工作室一直选择Unity作为开发工具,而《Skul》是他们的第一个像素游戏项目。团队从《星之卡比》《洛克人》等经典游戏借鉴了许多内容,比如吃掉敌人来习得技能、Boss专属武器。在《Skul》中玩家可在快节奏战斗中切换成不同的角色,每个角色都带有一套独特的属性和技能。

游戏总监兼动画师Sang-u Park(又名PAW)与四名程序、两名背景美术和一名角色组成了团队。

团队计划在2021年上半年正式发布游戏。游戏目前在Steam上开放了抢先体验,并获得了非常积极的评价。截止至采访时,已有超过700,000名玩家将游戏列入了愿望单。

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

利用2D Pixel Perfect制作清晰锐利的图像

SouthPAW Games使用了最新的Unity 2019.4 LTS长期支持版来开发《Skul》,使用了通​​用渲染管线(URP)8.10来制作图像。功能包括在了URP的2D Renderer中,也可经由Package Manager安装到其它项目内。其带有的Pixel Perfect Camera组件可让像素在不同分辨率下仍保持清晰锐利,还可让对象的运动、旋转和缩放严格限制在像素网格中,并且会根据分辨率的变化自动运算出图像缩放。团队在初期就意识到,在制作像素图像时,一定要让游戏资源的分辨率保持一致。“开发准备时图像的参考分辨率实在太高,图像资源过于精细,并不符合我们的需求。导致我们不得不重新制作图像资源。” 最终,团队决定将整个游戏的像素分辨率设为32 PPU(每单位像素),即一个Tilemap网格包含32 x 32个像素,其中一个图块为游戏内一个距离单位。

Pixel Perfect Camera摄像机组件和GameObjects Sprite Renderer的创建

游戏的参考分辨率为640 x 360像素,背景的最大高度设为了400像素。为了让图像在各个分辨率下都能保持清晰,团队在Game视图中测试了不同的显示分辨率,还在不同配置的PC上测试了游戏。

Pixel Perfect Camera可根据分辨率进行缩放,甚至可以通过整乘显示率,在现代显示器上实现复古风图像。在要实现全屏画面,则能由用户选择是留下屏幕黑边还是放大窗口图像。

为了使分辨率修改的过程尽可能流畅,团队设定了一个粗略的参考比例来感受图像的形状和颜色表现,接着在概念艺术阶段(1)中分享、讨论各自的想法。在确定角色方案后再进入阶段(2),规划动画、绘制关键帧。

阶段(3)则开始制作原型、检测角色的动作和尺寸是否合适,然后再编写角色的能力和技能。在最后阶段(4)中,团队使用AnimationImporter插件将自制的Aseprite资源带入Unity。此外《Skul》独特的风格还由一些其他元素组成,比如角色的劈砍动作、敌人死亡时盔甲武器等物体的掉落方式,这些效果都在2D Physics的作用下变得更加逼真。总监兼动画师Sang-u Park(又名PAW)解释道:“我们称这些物体为'部件'”。每个部件的生成位置与精灵上的位置相同,在掉落时就像从身上掉落一样。玩家还可以攻击部件来击退敌人,每个部件都有自己的重量和旋转力,与现实世界一致。” 至于对象的旋转,团队有时会直接在Unity中旋转精灵,也会在每个旋转角上创建一个精灵、组合精灵生成序列动画。

“在每个角度上旋转精灵做出的逐帧动画质量确实会更高,但其制作成本也更高。每当要旋转某个精灵时,我们都要仔细考量角色所需的图像精度、重要程度,来决定采用哪种方法旋转。”

使用2D Tilemap Editor设计关卡

《Skul》中,团队将世界中的图块分为Terrain(地形)、Terrain Foothold(地形落脚处)和Platform(平台)。玩家无法穿过Terrain、Terrain Foothold,后者只能作为站立平台;玩家可以穿过的是Platform,可以从低处跳到高出、或从高处跳到低处。团队还编写了一个脚本,让图块能继承tile类来确定自己的类型。

据PAW所说:“我们使用了Tile Palette来生成图块、辅助制作,还将Tilemap Collider 2D绑定到了单个Polygon Collider 2D上来优化碰撞体。” 

Tile Palette允许团队直观地制作地图,同时保留对API的完全控制,并且还使用了<a href="https://docs.unity3d.com/2020.2/Documentation/Manual/class-CompositeCollider2D.html" target="_blank" rel="noopener noreferrer">Composite Collider</a>组件优化了碰撞体。

游戏性能、运行效率等方面的开发技巧

精灵图集

使用 Sprite Atlas可以大大提高性能。起初,团队的优化重心都在绘制调用和内存消耗上。但他们不久便发现与其像挤海绵一样挤出一两帧的性能,不如把注意力放在游戏的趣味性上,顺带还能优化下项目结构、方便测试和开发。“作为一款2D游戏,《Skul》对系统的要求不高。性能在优化到一定水平后,游戏可以轻松地在智能手机上运行,” PAW说。

动画精灵的四周留有充足的空白区域,图集的中枢点位于中心,这样可以轻松定位每一帧的位置、形成动画。

Physics 2D

Physics 2D主要用于处理静态和动态对象之间的碰撞。而在视觉效果(如残骸效果)的动态碰撞中,Physics 2D在低精度设置下并不会直接影响游玩。对于那些精度要求高、直接影响游戏体验的元素(如玩家的动作),团队使用了2D Raycast和Collider投射等功能来计算游戏逻辑。

其它技巧

SouthPAW Games扩展了Unity编辑器,使团队无须更改代码便能编辑和使用大多数Unity功能。Unity Profiler在辨别CPU性能瓶颈方面起了重要作用,而Frame Debugger则用于检测图形绘制,团队可以根据工具所提供的信息来不断改进游戏。在这些资源优化的工作中,团队: 

  • 将视觉效果划分成了较小的部分,不同的部分混合可产出不同的输出
  • 更改了像素的尺寸、角度和颜色等属性,充当全新的效果
  • 使用了URP和2D Renderer中的默认着色器,并剔除了未使用的功能

其他2D工具和自定义扩展

自团队的项目启动以来,Unity陆续发布了一些新2D工具。尽管无法使用这些新功能,但2D Sprite Shape、2D Lights和Sprite Tools仍让团队非常兴奋。“这些工具过于复杂,优化难度较大,光靠我们自己是没法应用到项目里的,而市面上又没有十分可靠的第三方工具。听说有些工具应用了Job System、优化水平很高。我们非常期待未来能用上这些实用的官方工具。” 作为2D游戏的粉丝,SouthPAW Games团队对Unity发布和更新的2D工具感到满意。团队还利用了2D工具的API开发了拓展程序,让美术师无需更改代码即可修改游戏。

用于逐帧动画预演的<a href="https://anchan828.github.io/editor-manual/" target="_blank" rel="noopener noreferrer">SpriteAnimationPreview</a>。

另一个很方便的工具是预设(Preset)系统,用户可使用该功能加载预先设置好的配置资源,方便用统一的设定创建道具和角色。

团队建立了项目文件夹的快捷方式、节省了许多时间。他们建立了一个武器创建系统,可创建自带相关数据的新预制件,以及一个在玩家位置掉落物品的系统。

专业评审铸就专业成就

SouthPAW Games在全球独立游戏开发竞赛(GIGDC)上首次展示了《Skul》,并荣获一等奖——Unity Clinic服务:Unity韩国派遣了一支团队前往光州,进行会诊式项目分析、向团队提供专业反馈。双方一起分析了项目的表现,《Skul》团队从Clinic小队上学到了许多性能分析的基础知识。

对于SouthPAW Games来说,《Skul》的发布只是一个里程碑。他们将继续倾听玩家的意见、不断更新游戏,直到做出理想中的《Skul》。你可以在Steam社区DiscordTwitter上找到他们。

更多Unity 2D资源

Unity致力于开发2D工作流的原生工具,帮助开发者降低数据周转事件、提高生产率,帮助团队在各个平台上做出惊艳的2D世界。请在我们的2D tools页面了解详情。对像素艺术感兴趣?在这里查看复古8位16位图像的制作指南。若想了解更多关于2D像素美术、游戏性能和开发生产力的提示,可以观看下方的Unite Now演讲。

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

2021年1月21日 类别 技术 | 9 分 阅读
涵盖的主题