Unity 大学学员新作:优秀的维京武士,一定是个好厨师
提起北欧神话,有维京战士勇猛无畏的传说,也有指环王构建的奇幻世界,诸多未知,驱使着人们去探究它。
图片源自网络
在游戏领域,多年来不乏以北欧文化、维京历史为题材的佳作出现,比如《刺客信条:英灵殿》、《骑兵与砍杀 2:维京系列》等。
神秘的北欧传说同样吸引着 Unity 大学的学员,能不能在短期内制作一款轻量级的游戏,告诉玩家一个不一样的北欧神话和维京世界观呢?于是《希露德的厨房》就诞生了。
宏大又不失有趣
在《希露德的厨房》里,玩家化身为地下城餐厅的厨师,为原住民提供美味佳肴,食材则源于地下城的魔物。玩家通过打怪升级,使用各种烹饪方法将他们变为料理。
把可怕的神灵怪物变成“料理”,这样有趣的设定更容易吸引玩家。此外,作为一款有着模拟经营类设定的 hack&slash 动作游戏,《希露德的厨房》还展现出了两种完全不同的场景风格。
在地牢场景中,营造出的是北欧神话宏大又神秘的感觉:维京风的插画、符文,原石风格的祭神殿,凯尔特风格的 deco。在这个不大不小的地牢内,你一样能感受到史诗游戏的氛围。
Unity 学员设计的维京符文概念
而在餐厅的厨房内带给你的是家庭的温馨,紧扣模拟经营的游戏主题。
人物方面《希露德的厨房》采用了画风看起来非常强壮的女性。
比如这个称小 U 为大佬的女武士,就采用了北欧中世纪以及一些机械风格的结合,她的装束和配色上极具战斗气息,给玩家一种武德充沛的感觉。
《希露德的厨房》人物对话
当然,样子帅是远远不够的。酣畅淋漓的战斗,才是解锁维京人的正确姿势。作为一款 hack&slash 地牢动作游戏,游戏节奏非常快,各个动作状态之间免不了有冲突。
为了避免多个指令带来动作混乱的问题,徐同学基于 Unity 引擎的动画机制,设计了人物控制的动画机,具体做法是,让一个几乎为空的 state 去接受所有 state 过来的返回信息,然后将它们一并发到其他的 state 里面。这样玩家在多次操作指令后就能将怪物成功地“一发入魂”。
卡通又不失真实
大到与神话扯上关系,小到让玩家感到温馨,场景在战斗与烹饪之间转化。这些特殊的游戏设定意味着《希露德的厨房》既不能像史诗大作那样,将时代背景的精准还原上升到天花板,也不能像传统模拟经验类游戏,让娱乐和休闲的精神直接落地。《希露德的厨房》需要在整体画面渲染上达到一种平衡,用技术美术胡同学的话来说:它需要的是卡通渲染,但这种渲染又带有硬朗的真实感。
《希露德的厨房》人物对话
落实到技术美术处理层面,《希露德的厨房》团队基于Unity引擎强大的图像渲染能力,使用了自定义 shader,这样可以实现定制化效果,他们不追求特别真实的物理效果,不炫技,不堆砌 feature,看中整体效果的统一,这样还能提高开发效率。
比如他们采用了比较成熟的 Builtin 渲染管线,前向渲染。shader 使用的是 Amplified shader editor 的插件,可以更方便的进行编辑。
又比如在光照上,为了让模型实现比较真实的明暗光照感,团队使用了 ramp 贴图。这是一种左黑右白的贴图,可以理解为一半亮一半暗的区域,为了让美工更方便的调节明暗交界线的位置,他们用 lambert 和 halflambert 的漫反射做了插值。
在模型的高光呈现上,为了达到在真实物理和卡通效果之间的平衡,团队将 soft step 处理运用到 Blinn-Phong 的高光调校中,让模型的高光效果呈现出卡通和真实物理间不同的层次感。
游戏场景的环境光则采用“动静分离”方案,动态物体采用光照探针作为环境光,静态物体采用光照贴图做为环境光。
除了环境光,游戏中出现的金属道具也是不容忽视的部分,比如刀剑啊、器皿、雕像,当光线照在这些金属器物时,总不可能显示的很暗沉。
因此,适当增加模型的金属感很有必要。在调节金属时,团队采用了这样的策略:当金属物体的金属度越大时,diffuse 越弱,cubemap 反射(采样反射探针)越强,且反射颜色和 albedo 相关性越强。这样,有了环境光的支撑,不失真实的金属质感,就完美的体现出来了。
可以食用的怪物
《希露德的厨房》的最大亮点就是地下城中的怪物。用游戏策划徐同学的话说:“《希露德的厨房》怪物和其他游戏最大的不同,就是‘我们的怪物看起来很好吃’,这也是我们设计 AI 的初衷。”根据游戏的世界观,地下城是坐落在树根之上的。因为世界树魔力的影响,地牢每个区域都有独特的气候,孵化出具有不同食材特性的怪物。
当玩家用不同的武器去击杀怪物时,怪物残骸所掉落的食物是不一样的。比如用盐炮打怪可以把怪物变成腌制食物,利用火焰陷阱可以获得烤熟的食材,而不同的食材搭配所造成的游戏走向也会不同。
这种“战斗即是料理“的游戏效果,正是借助 Unity 游戏引擎实现的。
为了制造不同武器击杀怪物时的效果,徐同学在游戏中编写了冲刺与穿刺的机制,玩家刺杀的时候,把玩家自身的冲撞体变成 true,把怪物的重力变成 false。让玩家在游戏中通过冲撞障碍穿透怪物,增加了游戏操作的流畅感。
料理的主角:地下城的怪物,则被技术美术同学设计成了半透明的样子,美术同学在 Shade 上做了顶点动画设计,通过 Unity 引擎的图像处理能力,让怪物拥有一个简单的幽灵浮现的效果。
怪物被火焰烤焦时呈现出的融化状态,则是通过罩身贴图完成的。
利用贴图,可以更好地呈现出怪物被火焰灼伤之后的颜色。
完善的任务和道具管理
复杂的游戏渲染和主角、怪物的机制,会不会让《希露德的厨房》在运行中出现卡顿?
负责建立游戏系统框架孙同学表示:建立完善的游戏系统和框架可以让游戏在顺畅运行的同时降低游戏的运行内存。
比如《希露德的厨房》拥有庞大的道具体系,但是每一款道具掉落的时间,被玩家调用的时间都是不一样的。
Unity 引擎为开发者提供了非常方便的道具管理方案,孙同学在 CACS 微表格将出现的道具全部储存下来,制作了对象级管理,让游戏及时地释放内存,并且能把游戏运行中每个人拿到的道具全部读取出来,直接去读取对象的帧,这样就能获得当前游戏所指定的道具。具体来说,什么时间掉落什么样的道具,一共持续多少时间,都有设定。
在任务管理和储存上,孙同学使用了 GS 表,这里的任务道具表都使用了对象值来管理,孙同学还制作了一个接受任务的判断,利用枚举和 ID 来保证当前任务不会被重复的调用。
有了游戏系统和框架的搭建,再加上 Unity 引擎的稳定性能,玩家就可以在地牢和厨房里随心所欲的烘烤蒸煮腌制各种美味。
当一个个妖魔鬼怪在《希露德的厨房》里变成餐桌上的美味佳肴,原本神秘而又恐怖的北欧维京文化不再是给人一种深不可测的印象,而是变成大家喜闻乐见的“餐桌文化”,成为大家茶余饭后的谈资~
这同样也是 Unity 引擎和 Unity 大学的愿望,帮助热爱游戏的人实现自己的游戏梦,用一部部具有文化现象的游戏佳作,让更多不为人知的文明通过游戏进入普通人的视野。
如果你也有一颗游戏梦,现在就快抓住来学习 Unity 的机会吧!扫描海报二维码或点击“阅读原文”,即可了解 Unity 大学~
长按关注
第一时间了解Unity引擎动向,学习最新开发技巧
点击“阅读原文”,了解 Unity 大学