到了两个很重要的技术,叫做提前判定和假定演示。
所谓提前判定的意思就是,雨水本身在产生效果之前,会由程序从端点发出一条射线来进行提前预判。
假设这条射线的路上遇到障碍物,并且表明不可穿透的话,那么就会在障碍物和射线的交点前面的一点距离播放水花效果。
水花是做好的美术特效,但是是随机播放的,所以看起来特别真实。
这样做可以节省许多的消耗。
射线判定在程序上面是不会有什么消耗的,而且射线也不会被表现出来。
这个做法的好处就在于性能上更加流畅,按照以前博米公司做场景互动,做真实的物理效果的方式来做,就必须得真正发了一颗雨水从空中掉落下来,然后打到窗台上面,这个时候才会根据受力面来进行判定和表现破碎的效果。
不过这样做的话,对于程序性能的消耗就特别大,因为你是真真正正地发了一个【雨滴】,数量少的话还好,可要是像现在这样天上下着倾盆大雨,雨水的数量密密麻麻,那整个游戏就卡死了,除了下雨你根本干不了别的。
而且玩家还不一定能看得出来。
还有另外一个技术,其实是鬼吹灯项目组新提出来的,不过被邓裴强整合到了x3引擎当中,在刺客之魂·墨输当中也得到了广泛的应用,这个技术就叫做lod。
分层次加载,只加载玩家目前能看到的内容部分。
所以其实看起来周围密密麻麻都是雨水效果,实际上很多都是假的,真正被加载出来的只有玩家能看到的这一个范围。
这个做法,如果博米内部不说,其他公司估计想破头都不一定能想出来,也许要到明年x3开源之后,外面的公司才会恍然大悟,哦,原来这玩意儿是这么做的。
射线在游戏上有诸多引用,比如说刺客翻窗,飞檐走壁,怪物从悬崖上爬回来,很多时候都是提前用射线判定的。
就拿翻窗这个动作来说,刺客在进行翻窗之前,会先打一条射线到墙后面,同时会预生成一个【不可见】的玩家角色胶囊体放到窗户后。
如果在这个情况下有足够的空间,那么角色就能顺利做出翻窗的动作,从外面翻进来。
否则,假设在窗后有一堆的箱子或者石头,根本就容纳不了这个胶囊体,那么就会强制判定你无法进入,按下空格键的时候只能是原地跳起,而不是从窗户翻进来。
这就是射线预判的作用。
前世的pubg和手游和平精英里面运用得非常多,可如果不是真正做过pubg的人基本上不知道这个技术。
就拿和平精英的竞争对手【荒野行动】来说,他们实现的翻墙就特别生硬,是通过trigger,也就是触发器原理来进行制作的,比如说你走到窗边,其实在玩家的脚
请收藏:https://m.rsjd.cc
(温馨提示:请关闭畅读或阅读模式,否则内容无法正常显示)