范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

高居iOS畅销榜第3,幻塔如何实现开放世界自由探索玩法的?

  本周,完美世界旗下幻塔工作室开发的轻科幻开放世界游戏《幻塔》已于12月16日正式公测,发布以来《幻塔》持续保持在免费榜冠军、畅销榜TOP10,首日流水破5000万元,最近三天更是位居iOS畅销榜第3,可谓今年年末国内市场最大爆款,取得了优异的成绩。
  本月初,Epic Games中国所举办的"Unreal Open Day虚幻引擎技术开放日"上,幻塔工作室的工程师李宁徽,就分享了《幻塔》开放世界自由探索的制作经验。
  他从地形探索、物件探索、玩法探索三个层面,分享了《幻塔》在开发过程中所遇到的问题和解决办法。
  以下是演讲实录:
  李宁徽: 大家好!我是来自完美世界幻塔工作室的游戏工程师,李宁徽。今天给大家带来的是《幻塔》开放世界自由探索制作分享,涉及的主要内容包括,作为游戏玩家在游戏世界中,对大世界中的地形、事物和玩法进行自由探索交互。
  在这之前,请允许我简单介绍一下这款游戏。《幻塔》是一款轻科幻开放世界ARPG手游,以废土轻科幻的美术风格,开放式的成长线和引力式的目标感,包含丰富的大世界玩法和爽快的战斗体验为主。
  在游戏中,玩家可以探索无接缝大世界,可以高度自由度交互,比如遇到障碍就跨越或者翻越,碰到高墙或山体就攀爬,跳入水中就游泳等。当然我们也可以对大世界中的一些物件,也可以进行推箱子、举盒子等操作,甚至还可以去游乐场坐过山车和旋转木马。本次演讲就是分享我们在制作这些有趣玩法过程中遇到的问题和解决办法。
  这次演讲所说的开放世界自由探索,不是从游戏玩法和游戏设计角度出发,而仅仅从功能实现角度出发。比如说走过的路,地下会留下脚印,蹚过水会泛起涟漪,对大世界有所动作,大世界也会给我对应的反馈。
  我简单的把实现探索世界分成了三类,分别是地形探索、物件探索,玩法探索,下面我们先从地形探索说起。
  这里有一个小视频,可以从视频可以看到,玩家跑过地上会留有脚印,进入水中,水中泛起涟漪,从水中就会产生新的脚印。如果仔细看一下,从水中出来的脚印是要比没有入水时的脚印颜色是要更深一点的。之前版本里面,从水中出来的脚印还有水渍效果,后来去掉了,为什么去掉后面会有解释。
  在过去很多的游戏中,脚印这样的功能已经有了,有些游戏甚至把脚印的效果做得非常好。一般对脚印的功能需求是踩在地上,留下个印子,稍微要求高一点的话,就会要求踩在不同的地表上,会留下不同的脚印。比如沙地上、草地上,脚印是不一样的。再比如说从水中出来可以添加水渍的效果,踩在雪地上会有那种的凹凸感,溅起的雪花效果等。
  脚印的表现,我们可以用贴花、粒子等进行制作,用贴花做脚印的效果是好的,但贴花的性能消耗特别大。特别是贴花刚刚创建生成的时候,对于手游来说,由于手机的内存有限,表面温度、手机续航都是手游体验很重要的一部分,所以我们做了取舍。
  我们只是用简单面片的来创建脚印Actor,并且对其做缓冲池处理,这个时候我们只是对缓冲池里的脚印做透明度、是否显示以及显示位置,对这些属性进行控制,不再反复地创建和销毁,以此来降低消耗,当然这是根据游戏需求和优化做出的取舍,这是为什么之前把水渍效果去掉的原因。
  刚才说的脚印,其实是玩家和地面的交互,而涟漪就是玩家和水面的交互。我们可以看左边,当玩家走过的时候,涟漪是波纹状,如果是摩托车就会有把水推开的效果。而游泳、水花特效等都是玩家和水面的交互,只是他们有一个共同点,这些交互的效果只生存在水面上,而且交互对象的形态不同,所产生的效果也不一样。
  气候冷暖的反应,我勉强将其称之为玩家和空气的交互,在不同的气候区域里面,玩家的表现不一样。在很冷的区域,玩家的角色会有搓手等表现其很冷的动作,在热的区域中,玩家会有扇汗的动作。其实这个制作起来很简单,在不同气候区域添加触发器盒子就可以了,当然也可以在此基础上做一些其他的玩法,比如说添加buff什么的,这些效果实现起来很简单,但是给玩家的感受却很好。
  接下来我们谈一谈对障碍的跨越翻越。虚幻引擎4的移动组件中有个属性,叫MaxStepHeight,当障碍高度超过这个值的时候,玩家就会被挡住,这个时候玩家要么沿着障碍表面滑动,要么被挡住无法继续前行,虽然我们可以通过跳跃去越过障碍,但如果使用手机,不停的按跳跃就必然会影响到其他操作,而且也不是所有的障碍都可以通过跳跃跨越过去。因此对于开放世界自由探索类游戏,特别是手游,这个时候角色可以自动跨越或翻越障碍功能的需求就很强烈了。
  传统制作翻越障碍的方式有很多种,但或多或少都有一些问题。比如跨越动作带有位移,那么就要求跨越障碍的高和宽有限制,而这就会影响美术的发挥。比如在障碍上添加标记、添加触发盒子等,这些都会增加额外的工作量,还有网络同步这些。所以,可不可以有一种情况,我对大世界中的任意障碍物都没有任何限制,美术自由发挥,完全是程序自动检测翻越,做出翻越的操作。
  下面是我们的答案。刚才提到的那些有限制的制作方式,我们称之为策划美术驱动方式,而我们这种相当于是完全是程序驱动,也就是说,我们对地形、障碍没有添加任何限制,美术自由发挥去做,我们也不会添加标记或者设置触发器,从头到尾基本是由程序根据地形检测算法算出来的。我们算出障碍物的高度、翻越时候的落脚点,根据障碍物的高度选择合适的动作进行跨越操作。
  这里展示的三种操作,分别是低、中、高。低的话,一抬脚上去了,中间稍微高一点,就需要用手撑一下,右边的比较高,需要手够一下才能翻上去。我们已经可以做到配置,可以做三种、五种甚至十种这样的方式。
  现在我们来说说攀爬,类似跨越一样,我们的攀爬其实也基本是程序驱动,我们没有对地形做任何限制,美术可以自由发挥,我们也不打标记点或者添加触发盒子,通过地形检测算法,玩家可以攀爬到的地方,玩家攀爬的速度,以及玩家的朝向,完全是程序计算出来。
  那么跨越最关键的地方是哪里?我们这里是,要计算出跨越后的落脚点,一旦落脚点计算出来,那么跨越的高度也就计算出来了,我就会根据跨越的高度,选择合适的动作进行越过障碍。在落脚点层面也有几点需要注意,比如地形的斜度是否允许角色站上去,玩家的可站立半径,还有在这个过程中的动作衔接问题。
  刚刚说的是一些正常时候的跨越,但也存在一些特殊的情况。比如说在水中游泳时跨越障碍,游泳时候计算的落脚点相对于行走有一点不一样,但是主要的思路是一样的,就是把落脚点计算出来。然后还有右边这种,如果障碍的高度超过了我们配置的最大障碍高度,这个时候可以通过攀爬翻越来越过障碍。
  当然,因为玩法的关系,比如我们策划要求在这个玩法、这个关卡里面,这个地方不允许跨越,不能翻越,这个时候怎么处理?传统用来制作可以攀爬翻越的方法,就可以在这个时候反过来做这个地方不能攀爬,就是我们可以打标记,可以添加触发器。
  在这个地方有一些需要注意的点,因为我们对地形没有做任何的限制,美术可以任何自由的发挥,可以随便作,所以难免会遇到奇葩、稀奇古怪的地形,导致计算过程中,落脚点和障碍高度不准确。
  比如说有一些往前倾斜的地形,有凹槽的地形,还有浮空的地形,有一个节点,胶囊体底部不是在地表的情况,都会导致计算的落脚点不是那么准确,这个时候我们就需要在地形检测算法中添加一些额外的检测来避免这些问题,所以我们的地形检测算法也是在不断的优化迭代的过程,慢慢变得成熟。
  现在我们来说说攀爬,类似跨越一样,我们的攀爬其实也基本是程序驱动,我们没有对地形做任何限制,美术可以自由发挥,我们也不打标记点或者添加触发盒子,通过地形检测算法,玩家可以攀爬到的地方,玩家攀爬的速度,以及玩家的朝向,完全是程序计算出来。
  在虚幻引擎4中,因为攀爬是一种脱离重力的表现,而且一旦脱离攀爬就会掉下来,所以我们的方案是,用移动组件里面的Flying模式模拟攀爬的移动状态,我们还有很多自定义的子模式,分别应对攀爬的不同的情况。比如说各个方向上的自由攀爬,攀爬跳跃、攀爬回跳、雨天攀爬打滑的状态,攀爬翻越等,在攀爬的时候,我们的角色会通过动作融合和蒙太奇配合,让攀爬的状态更加自然合理。
  这边展示了三种进入攀爬的情况,分别是行走进入攀爬、下翻进入攀爬、空中进入攀爬,其实还有一个水中进入攀爬。三种检测攀爬的计算方式是都不一样的,但有个共同点就是首先要找到可以攀爬的面。
  现在我们展示的都是自动进入攀爬,之前的版本在进入攀爬的时候有过一个非常不好的游戏体验,玩家在操作手机的时候,是不希望进入攀爬,只是想走进去,特别是室内的情况,只是想走进屋里看一看,这时候一旦碰到障碍就进入攀爬了,比如说爬到墙上或者柜子上,体验非常糟糕。
  我们怎么处理的?一个是,我们在游戏设置里添加了选项,玩家可以选择自动进入攀爬,也可以选择手动进入攀爬。二是添加了进入攀爬的动作,在这个动作里面添加了Anim Notify State,如果期间没有移动输入没有被打断,就进入到攀爬,但如果在这段时间里,输入突然停掉了,就表示不想进入攀爬,就会把进入攀爬动作打断,不进入攀爬,以这样的方式解决问题。
  攀爬跳跃,这方面其实也是攀爬中的重要元素,我们可以把攀爬跳跃可以跳的距离、速度作为参数抛出来,策划可以进行配置,当然也可以在游戏中根据玩家的属性动态修改。
  这样做的好处是,我们所能到达的位置能够不受骨骼位移里,自带的位移和朝向的影响。右侧显示是凹形地形的表现,一般的运动模式,比如说行走、游泳,它们一般是在X轴和Y轴水平方向上,但是攀爬是三个方向上的,所以这边我们讨了个巧,因为攀爬时和地形息息相关,攀爬始终贴着地形,一旦脱离地形就要掉下来,所以在X轴方向,也就是前后方向,我们始终让玩家往前紧贴地形,这样我们就可以把我们更多的注意力集中在Z轴和Y轴方向,也就是前后左右方向,这样我们相当于把三个方向的计算省去了很大一部分,变成两个方向的计算。
  拐弯的时候,玩家的朝向需要注意一些,特别是右边的凹形地形,我们的手其实是沿着地形滑过来的,这是用IK,我后面还会提到。
  攀爬跳跃,这方面其实也是攀爬中的重要元素,我们可以把攀爬跳跃可以跳的距离、速度作为参数抛出来,策划可以进行配置,当然也可以在游戏中根据玩家的属性动态修改。
  玩家摇杆或者键盘输入会有一个方向,我们沿着这个方向做检测,算出攀爬跳跃的结束点,配合蒙太奇在这边进行攀爬跳跃,左边是各个方向的攀爬跳跃,中间是凹凸地形上的,我们会爬到凹凸地形上转向等,右边是攀爬到顶了会翻越上去。
  这是IK( Inverse Kinematics),即反向动力学,相对FK来说,它是用子节点驱动父节点。它的实现方式就是用动画蓝图里的Two Bone IK节点。这个节点有两个参数,一个是Effector,一个是Joint Target。
  Effector可以这么理解,目标点,攀爬的时候手要搭在哪里。比如说踩在阶梯上脚放在哪里,要通过计算算出来。而Joint Target节点,因为在多骨骼计算的时候,计算出的结果是无限多个的,所以要通过Joint Target的参数来确定唯一解,避免出现反关节的不合理情况。比如爬的时候,肘关节都到脸上了,这种情况就可以通过这个参数来避免。
  如果站在台阶上,脚是分别踏在两个不同的台阶上,当地面不平的时候,脚面是要贴着地面做旋转。再比如爬树的时候,手抱着树,如果是凹形地面,手是分别搭在两边的。有很多关于IK好用的教程和插件,比如说PowerIK,但是其对于移动端的支持其实还是有一些进步空间,特别是旋转这一块,所以我们游戏里面主角的IK基本上都是我们自己实现的。
  滑板是地形探索里面唯一一个涉及到海陆空,也就是说我们承载移动组件里面的Walking、Falling、Swimming三种运动模式实现滑板。它需要注意的点就是在这几种模式切换的时候,我们要保证动作和速度可以很平滑的过渡过去,我们做这个目的是为了让玩家在操作的时候有爽快的感觉。
  滑翔,因为人类不可以飞,所以在游戏里可以飞或者滑翔是很好的游戏体验,所以我们就制作了滑翔。它是通过重载移动组件里的Falling来做的,我们修改、优化了它的转向,以及重力加速度来实现滑翔。
  游泳方面,虚幻引擎4里面其实有游泳模式,我们也添加了一些自己的东西,比如说加速游泳,还对它的转向做了优化,因为手机上的遥感有一些特别,所以我们在这一块比较花心力的是,在手机上的操作手感,这方面我们花了一些精力去做优化。
  这里总结一下,我们所有地形探索遵循的一个原则,就是一句话,胶囊体负责位置,Mesh负责表现。
  胶囊体负责的是碰撞、位置同步,而且我们所有地形检测的算法都是从胶囊体开始的,也就是说,胶囊体是出发点,我们所有的地形检测算法都是从它开始做同步。
  而Mesh主要负责视觉效果,比如视觉效果的平滑过渡、不同状态之间的切换、动作的衔接,包括IK等。举个例子,比如攀爬的时候,前面正好有一个东西把我顶出来了,那我的胶囊体肯定就会顶歪,但这个时候Mesh不能歪,一旦歪的话就相当于脱离了地形,就掉下来了,这个时候就可以让Mesh往前抓紧贴地形,相当于允许Mesh稍微脱离一点我的胶囊体。
  下面我们看物件探索,首先看推箱子。我们实现了两种方式分别是:模拟物理的和不模拟物理的,两种推箱子有各自的优缺点。模拟物理方式的箱子,在掉落、碰撞、滚落等情况的表现更为自然,效果特别好,但是有一个很不好的缺点,就是不可控因素很多,如果地形不平,碰撞角度、速度、力度不同,所出来的结果是完全不一样的。
  特别是在一些玩法的层面,左边这是一个激光,我要把箱子推到那个地方才能打开机关,但如果是用模拟物理的箱子,可能我每推一次结果就不一样,就完成不了。
  所以我们就做了第二种不模拟物理的推箱子,这种方式推10次,推20次,甚至推100次,始终能把箱子推到这个地方来,保证结果一样。所以在大世界中,我们交互的箱子一般是采取了模拟物理的这种,而在机关或者一些简易玩法里面我们选择了不模拟物理的箱子。
  举抛方面我们是这么实现的,我们制作了ControllableComponent的一个组件,凡是拥有这个组件的物件都是可以进行操作的,包括举抛。在抛的时候,其实就是把物件Attach到指定的点上,然后配合半身动作实现举起移动,抛的时候会通过玩家输入获得指定方向,在那个方向给一个初始速度,并启动模拟物理来实现的,就抛出去了。
  砍树方面,树是由Foliage植被系统刷出来的,当我们挥刀砍的时候,刀的Mesh就会和树的Mesh发生碰撞,这个时候会播放树被砍倒的效果,然后用树桩的Mesh替换树的Mesh来实现砍树,过一段时间再将树桩的Mesh替换回树的Mesh就刷回来了。
  草也是由Foliage植被系统刷出来的,但是草和树不同,草没有碰撞,因此实现的办法是在AT表上做标记,然后在那个位置播一个砍草的效果,如果要恢复就在一定时间把AT标去掉,把这个草重新刷出来实现砍草。
  我们现在看看过山车。我们提供了好几种视角,玩家可以根据自己的喜好去选择一种适合自己的视角。其实最开始我们是没有计划做过山车的,在于之前的测试里面,有玩家跟我们说,我们都到游乐场了,有那么一个东西为什么不能玩,我们要玩过山车,我们就做了这个东西。
  最后,我们公司的《幻塔》马上16号就正式公测,如果大家有兴趣可以体验一下。如果你们愿意加入我们,也欢迎联系我们,当然如果只是作为一个游戏玩家,你也可以把奇思妙想,通过邮件或者留言的方式告诉我们,说不定你的想法被采用,我们就把他实现了,就像之前所说的过山车一样。
  我们希望这种方式实现的交互越来越多,因为这就会使玩家有一种参与游戏开发的感觉,我们也希望后面会有越来越多这样的东西出现。
  我的演讲就到这里,谢谢大家!

英雄联盟手游四姐妹开始离经叛道?转行中路的刀妹焕发第二春再开始今天的主题之前,很多人对这个焕发第二春的说法其实还是不太准确。刀妹这个英雄无论是在端游还是手游人气都非常的高。无论是在上单位置和中单位置,刀妹这个英雄都有一大批忠实的拥护者。如果净化斯坦索姆后,阿尔萨斯没去诺森德,天灾会被联盟暴打众所周知,阿尔萨斯王子的人生轨迹是从斯坦索姆开始改变的,那么不知道各位小伙伴是否想过一个问题。如果当年阿尔萨斯没有听信玛尔加尼斯的谎言前往诺森德,天灾军团能否席卷洛丹伦联盟呢?灰红幻塔巅峰联赛武器搭配思路分享幻塔游戏中的巅峰联赛是一种比较热门的玩法!在这个玩法中玩家们需要搭配武器来增加自己的实力!很多玩家还不是很清楚在这个玩法中该怎么搭配武器!今天小编就为大家分享一下游戏中的巅峰联赛武游戏王三国演义又有新的系列卡牌,董卓的酒池肉林效果着实强力大家好,我是玩转动漫作者木瓜君,喜欢以不同角度分享游戏王卡牌与动漫,今天继续为大家带来经典游戏王卡牌。战华系列是以三国演义为原型的卡牌,最近K社又更新了一位大人物,话不多说,开始今王者荣耀新英雄暃太强了,来看看技巧,新赛季上分角色背景广袤荒芜的云中漠地,新的篇章等待启幕,璀璨繁荣的绿洲玉城即将迎来英雄苏醒暃是不羁的玉城大王子他不拘一格随心而为,玩世不恭的罪将面对至亲弟弟的发问这背后又隐藏着什么新故事呢?原神一天达成渊下宫100探索?玩家分享三点心得,传送点很关键哈罗大家好,我是盟盟,本期和大家聊聊原神的话题。原神2。4版本的重中之重就是新地图渊下宫,作为稻妻地图的新板块,这里不仅有全新的解密任务和剧情,玩家还需要努力找到宝箱,完成新的隐藏文明与征服攻城战阵容搭配分享文明与征服攻城战怎么玩?文明与征服游戏中玩家不可以感受古代攻城作战的乐趣,和历史上有名的大英雄一起并肩作战,收服更多的领土,小编为大家提供详细的文明与征服攻城战阵容搭配分享的攻略,LOL英雄联盟1月新皮肤原画汇总超带感的青花瓷与幽梦玫瑰系列LOL英雄联盟,对于这次1月即将推出的新皮肤,数量可以说非常的丰富,主要分成了三个主题,包括水晶幽梦玫瑰系列,剩下的两款就是非常有中国风味的青花瓷和春节系列了,具体的详细皮肤原画也LOL有哪些流星一样的选手?昙花一现的猪让在LOL的职业选手里,有的人虽然职业生涯的巅峰够强够亮眼,但是持续时间很短,像是流星一样,转瞬即逝。昙花一现的猪让S3拿下了世界冠军,一个阴险的穿兵Q击败了神,走位躲掉酒桶R,露出云顶之弈狂暴名流加里奥,磕头拜佛,众生平等Hello,大家好!我是兔子,今天为大家带来狂暴模式最强上分阵容名流磕头加里奥,无尽爆爽,大虐塞恩盾狙,黑白法,挑战永恩等主流阵容,大成没有天敌,若海克斯有护甲镀层或者飞升,直接锁格斗游戏的春天,再也不会来1hr2007年,日本东京。全世界格斗游戏的最高舞台斗剧拳皇98项目决赛赛场。一个18岁的中国少年站在台上,局促的接过话筒,犹豫了一下后问旁边的翻译我要怎么说?翻译回答就说今天一定
RNG小虎MSI重回中路!中单盲僧神出鬼没,小组赛有望冲击8连胜?目前2021MSI正在如火如荼地进行中,作为LPL赛区的参赛队伍,RNG自然吸引了许多玩家的目光。不过和大家预想的不一样,虽然RNG在LPL的夺冠之旅并不顺利,但在MSI上他们却展LOL新英雄格温上线!厄斐琉斯全面加强,诺手皎月被赶进了野区?随着各大赛区春季赛的结束,拳头也开始着手准备即将举办的MSI。不过在此之前,官方发布了新版本,新英雄格温和五款新皮肤正式上线和大家见面。作为一名AP战士,格温和之前的英雄有很多不同RNG打服了对手?UOL赛后承认之前觉得能赢他们,现在直接放弃了经过几日的较量后,本次MSI在A组的比赛已经告一段落,代表LPL出征的RNG率先晋级淘汰赛。虽然RNG在LPL拿到了春季赛冠军,但赛前依旧有玩家并不看好他们的MSI之旅。毕竟这支RRNG爆冷后拿对手泄愤,巨大差距遭官方吐槽把我们错当成PSG了?在本届MSI的比赛中,RNG战队的表现让很多人眼前一亮。虽然不少人赛前都认为他们有争冠的实力,但没想到从小组赛一路过来RNG居然一场未败,特别是在面对世界冠军战队DK时也轻松获得了FPX一穿4晋级决赛!金咕咕阿卡丽中路单杀,西卡圣枪哥有问题在本次LPL季后赛中,IG无疑是赛前大家都很看好的队伍。虽然他们常规赛的战绩不佳,但依旧有许多粉丝期待他们看到一穿6成功夺冠。不过可惜的是,在首轮比赛IG就不敌RA淘汰出局,夺冠梦IG宁王终于被认可了?官宣入选电竞名人堂,夏季赛或以首发回归对于很多LPL玩家来说,虽然IG战队最近几个赛季的成绩不是很理想,但他们在大家心里依旧拥有很高的地位。原因无他,IG在S8赛季的夺冠不仅帮助LPL拿到了第一座世界冠军奖杯,也让很多卡萨抢龙难救主!EDG双C再度碾压TES,阿水终于败给了歪破在上一场比赛中,由于RNG遭到FPX零封,导致不少玩家认为常规赛的排名非常虚假,RNG和EDG的真实实力其实并没有大家想象中那么强。因此尽管TES的下一个对手是本赛季崛起的EDG,Viper梦回S9?圣枪哥变成国产剑皇,FPX打破红色方不胜魔咒在LPL春季季后赛的半决赛阶段,FPX和EDG和我们带来了一场非常精彩的比赛。虽然EDG在常规赛的表现非常好,但由于FPX一路从6强杀了上来,导致许多人认为FPX手感非常火热,EDLPL夺冠全靠韩国人?LCK记者公开嘲讽LPL,玩家回应无法反驳随着春季赛正式结束之后,一年一度的MSI大赛很快就要开打,各大战队也都先后到达举办地备战。作为LPL的春季赛冠军,RNG的MSI之旅受到很多玩家期待,不少人都希望看到他们能够获得好UZI和我打BO5没赢过,Imp与女粉双排再放狠话,粉丝无力反驳说起LPL人气最高的选手是谁,相信不少人都会提到UZI。作为一名老牌选手,虽然UZI很早就出道代表皇族出战,但他的人气却始终不减,随着RNG登顶S8赛季的MSI更是达到了巅峰。不过RNG双杀PGG!Cryin公屏打字请教Bolo梗,粉丝对面心态崩了在MSI第二日的比赛中,RNG再次迎来了PGG的挑战。由于上一场比赛大胜PGG,因此赛前不少人都看好RNG能够双杀对手。由于本次MSI采用了新赛制,RNG只要赢下这场比赛,那么他们