资讯
展览资讯 大型展会 灯光节 大型盛典 赛事 中标捷报 产品快讯 热门话题 艺术节 活动 演出 新闻 数艺报道 俱乐部签约
观点
大咖专访 观点洞察 书籍推荐 吐槽 设计观点 企业访谈 问答 趋势创新 论文 职场方法 薪资报价 数艺专访
幕后
幕后故事 团队访谈 经验分享 解密 评测 数艺访谈
干货
设计方案 策划方案 素材资源 教程 文案资源 PPT下载 入门宝典 作品合集 产品手册 电子书 项目对接
  • 0
  • 0
  • 0

分享

“开局一把斧,装备全靠打!”Unity集训营学员带你一起流浪不一样的中世纪

原创 2021-08-02

一般我们接触的带有副本的 ARPG 游戏都会把大 BOSS 放在最终关卡,玩家需要通过剧情中小关卡来解锁最后一关。但今天小 U 要介绍的这款出自于 Unity 学员之手的 3D ARPG 游戏,却让小 U 吃了一惊。


这个名为《流浪中世纪》的游戏开局,玩家就出生在一个中世纪背景的城镇附近,玩家通过与居民的交流确定兽人的出生地,按照游戏制作者的说法,只要你确定了兽人的位置后,就可以去找它挑战了!



这意味着玩家有机会过滤掉大量的对话和副本,直接进入终极对决,这样珍爱玩家时间的制作人值得小 U 点赞!


不过要是真这么去玩,那玩家死得可能会更快一些,因为游戏设定的开局装备还是很初级的 5 件套:帽子、衣服、裤子、武器、鞋子。要获得更好的装备,玩家还得花金币去商店购买,赚取金币的途径嘛还是通过与城镇居民的对话获取战斗任务。


看到这,你可能会觉得制作人欺骗了你,这款游戏表面上有着直接跳跃通关的逻辑,但玩家还是需要猥琐发育。不过《流浪中世纪》给予了玩家很高的自由:玩家可以自由搭配装备属性,如果玩家觉得自己的装备够硬,就可以尝试挑战最终 BOSS。



这就像等级考试一样,觉得可以就上呗,大不了从头再来!


因此小 U 作为聪明的玩家,当然选择先在城镇附近逛逛,完成一些提升属性的小任务,等到有了足够的钱,把身上的装备换成最好的,再去找 BOSS 对决。


用Terrain Tools资源包进行地图编辑


小 U 不禁觉得,《流浪中世纪》这种动作角色扮演中还带有一点开放世界玩法的游戏,对于地图和模型的要求一定很高。游戏还涉及中世纪历史背景,涵盖的建筑类型就更复杂了,即便是在城镇外的山地地形中制造出一座被掩埋的竞技场,也不是一件容易事。


为了能方便的批量编辑出城镇周边的地形效果,《流浪中世纪》团队借助了 Unity 的 Terrain Tools 资源包工具


这个工具拥有全新的雕刻工具和常用工具集,并加入了对旋转,间隔和分散的控制功能。强度,大小和角度参数现在拥有抖动控制,以帮助开发者添加自然变化到笔触效果,助力开发者自动化完成枯燥的任务。



比如《流浪中世纪》中玩家登上竞技场的山坡是由 Bridge 制作,山脚的梯田则是由 Terrace 制作。


负责地形编辑的孙嘉诚同学细举了 Terrain Tools 资源包的一些新功能,比如提供了增加地形细节的 Erosion 侵蚀工具和用来丰富植被的 Tree 编辑器,其中 Erosion 侵蚀工具可以基于水,风和热量的侵蚀效果来修改高度图。更加完善地形的细节。可以让纹理看上去是你想要的效果,比如水侵蚀形成的洼地。



当然刚刚制作好的地图效果,地面的阴影看起来极其的不真实,孙同学就给地图做了后期处理,利用 Unity 的 Post Processing 后处理工具,环境光遮蔽(Ambient Occlusion)颜色分级(Color Grading)泛光(Bloom)自动曝光(Auto Exposure)等效果。



这样一个真实的山川河流的模型效果就展示在了眼前。


孙同学还告诉小 U,Unity 的相机工具十分强大:“在相机上添加 Post-process Layer 并在空物体上添加 Post-process Volume 勾选 Is Global,就实现在全局添加后处理效果的功能了,有什么需要都可以自己调整。”


人物对话和交互界面如何用Unity实现


除了庞大的地图外。《流浪中世纪》中还有复杂的人物对话和交互场景。


孙同学说,这个游戏设置了对话系统和任务系统,对话系统是指人物之间的对话,通过读取 txt 文本中的对话并显示在对话的 UI 界面上,利用协程实现字幕滚动效果。


而任务系统则是有不同的任务类型,分别是对话类,收集类,探索类,每种任务都可以设置任务目标,当完成任务目标的时候,任务状态会随之改变,他们的完成条件并不一样。


其中对话类的任务会附带在人物对话中,而玩家也会根据任务状态进行不同的对话,任务有着三个状态,分别为等待接取,已接受,已完成。对话正是根据三种状态实现三种文本的切换,来实现不同任务状态下的不同对话。


要实现玩家的对话和任务就要有 UI 交互界面的支持。


负责 UI 设计的程辉同学说,《流浪中世纪》的 UI 设计中最有难度的部分就在游戏菜单的设计。


其中菜单栏部分玩家使用的交互次数较多,为了让菜单界面看起来不那么凌乱,程同学就将角色的属性面板、人物背包还有人物设置放在了同一个面板中,这里主要利用了 MVC 框架来实现角色详细属性、背包、商店、设置窗口的显示与隐藏,并通过 Animator 状态机结合 Control 脚本控制动画的切放时机。



人物的背包部分则要实现装备的穿戴、卸下,购买、出售装备状态的同步显示和标记,不然就会有玩家将两件不同的甲衣同时穿上的尴尬情形。为此程同学通过枚举来为部位装备进行标记,并分别封装方法来完成装备的状态判定,他还使用 Json 来读写,方便了装备的信息编辑与调整,同时也可以保存修改后的内容。


只是由于装备物品在发生状态变化时都需要修改Json数据,并刷新UI显示,本来程同学希望减少读写与刷新次数来减少 GC 和 Draw Call,但是考虑到刷新不及时又会出现 UI 显示与实际存储数据不同的问题,所以这里的刷新次数最终并没有减少。


如何用Unity编辑器解决人物移动的问题


《流浪中世纪》的人物动作设定也是游戏的一大难点,袁质斌同学在设定玩家和 BOSS 的移动控时就遇到了诸多问题。


首先是人物的移动,理论上,玩家的主要朝向是受到摄像机前方位置的影响,人物的前进方是跟摄像机前方是保持一致的,玩家的子物体则受到键盘的控制,为了防止玩家在移动时的朝向不受键盘的控制,袁同学设计了一个父子物体的方式。解决键盘和摄像机控制打架的问题。父物体在移动时转向相机的前方,子物体移动时方向由键盘控制,这样可以保证人物前后左右移动是以相机前后左右为准。



人物移动问题解决了,但玩家受到地形的影响,又出现了新的 BUG 袁同学发现人物每次在上坡地形移动时,走着走着就会掉进深渊。反复试验后袁同学发现一般 Unity 编辑器设置的碰撞体,在走平地时很容易卡近地面里。于是袁同学给人物增加了一行,斜坡判定。上坡时,人物的预制体就不会莫名其妙的掉到地面以下了。



相机穿模也是 RPG 游戏中经常遇到的问题,为了设置正确的模型遮挡,袁质斌同学先想到了 Unity 自带的使用了 cine machine 来解决这个问题,作为 Unity 的智能化无编码摄像机套件,cine machine 可以让美术师实时调整、迭代、试验和创建摄像机行为,节省开发时间。



考虑到 cine machine 还有其他的功能,袁质斌同学就去挖掘了一下它的底层实现逻辑,发现 cine machine 是用射线检测对模型物体进行判断,于是袁同学就用代码写了一段射线检测的判断方法,实现了相机防遮挡的正常逻辑。


除此以外,袁质斌同学还给玩家人物设置了自动攻击选择设定,玩家在攻击小怪的时候,会自动选择比较近的敌人进行攻击,这里袁质斌同学用触发器判断附近范围内的所有敌人,并判断距离,从而实现玩家在攻击时选择转向最近的敌人。


值得一提的是,游戏中的装备基本上来自于商城购买,玩家要想获取更高级的装备战胜 boss,就只能不断地做任务/打怪赚钱,看来这次的开发团队可谓是深得猪场游戏的“精髓”。


对于《流浪中世纪》的开发团队而言,《流浪中世纪》只是开发路程上的一座小小的里程碑。对他们来说,这段开发之旅的意义,并不仅仅是做出了一个不错的游戏 Demo。更重要的是,他们在 Unity 集训营收获了更全面的技术知识,为自己未来的职业道路打下了坚实的基础;以及结识了许多相关领域志同道合的人才和拥有丰富经验的前辈。


小 U 相信,拥有这段经历的他们,在未来真正进入职业开发生涯之后,所做出的成绩会更加出色、耀眼。如果你也想像他们一样,欢迎加入 Unity 集训营






长按关注

Unity 官方微信

第一时间了解Unity引擎动向,学习最新开发技巧




 点击“阅读原文”,了解Unity集训营 


阅读原文

* 文章为作者独立观点,不代表数艺网立场转载须知

本文内容由数艺网收录采集自微信公众号Unity官方平台 ,并经数艺网进行了排版优化。转载此文章请在文章开头和结尾标注“作者”、“来源:数艺网” 并附上本页链接: 如您不希望被数艺网所收录,感觉到侵犯到了您的权益,请及时告知数艺网,我们表示诚挚的歉意,并及时处理或删除。

科技艺术 游戏设计 场景展示 游戏装置介绍

15801 举报
  0
登录| 注册 后参与评论