[ArchViz] [讨论向]VR最大的坑不是室内外一体光照,而是如何上楼...

[复制链接]
查看16667 | 回复37 | 2017-7-15 18:58:48 | 显示全部楼层 |阅读模式
忙过一个项目节点,我又回来了,带着问题~和解决方案 ... 按惯例先上图
1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg

7.jpg

这次制作的是两栋别墅,分别是3层和4层,都拥有庭院或景观阳台这样的室外空间,原本预估的技术难点是室内外一体的光照环境(看起来是一体
)用UE4自带的多边形编辑工具转换成POST体积划分好曝光区域,根据区域情况设置不同的曝光值,轻松解决了这个问题。

然后,这个项目最大的坑出现了,就是这个...
8.jpg

转角楼梯!!!!!!!!!!
我们的移动套用了UE4自带的VR模板 ,却无法在转角楼梯创建合理的寻路体积,并且在传送的时候会有上下楼寻路区域无法正确识别,上下乱跳的BUG...官方模板居然没有考虑过上楼的问题!!!!!!这对我们这种限时作业来说简直是项目事故级的打击 ... 虽然我们有早期自研的传送蓝图,但是改换系统也有很大的风险。查阅了网上一些关于VR上下楼的技术帖基本都是通过直接传送改变楼层,或者是通过相过场机动画上楼,或者说...套用老外的模板等等我们(客户)无法接受的迂回方案... 没办法,只好我们自己来攻坚了...
经过两天的奋战终于暴力解决了这个蛋疼的上楼问题。
接下来是干货分享~

要解决上楼的问题要从两个方向入手,首先是程序端的。经过我们程序员小伙伴对官方蓝图的研究,上下楼乱跳的BUG是由于“就近寻路”这个条逻辑线在起作用,简单来说就是当系统发现当前地面寻路已经到了尽头,它会通过一个方形区域来搜索附近最近的寻路是否存在,如果存在则跳转到新的寻路区域,这原本是用来防止穿墙的... 但是那个方形区域默认的大小超过了3m³,就是说 ... 高于了住宅的层高,所以当一层的寻路到达尽头如果相同位置的上下方发现有寻路就会跳转...(你妹!) 所以只要修改这个寻路体积框的大小就可以解决这个BUG。
解决 01.jpg
就是这里,设定一个不大于层高的值。经我们测试1.8米-2米是比较合适的,调太小了会出现穿墙的现象。

然后是转角楼梯不出现寻路的问题。这个和美术(主要是模型)以及NavMesh 的使用方法有关。
由于系统寻路“智能化”地会回避墙或者带碰撞的物体
解决 02.jpg
如图,寻路总是比实际地面小一圈
因此当四周都有碰撞的情况下可能导致寻路面积过小而无法生成,因此建议转角楼梯不要使用简单的“添加BOX碰撞”或“自动生成碰撞”,包括周围的墙壁,老老实实手动添加调整吧。确保寻路有足够的面积。然后 ... 有些情况寻路还是不肯出现,还需要两个小技巧来解决:1、调整RecastNavMesh中的参数,缩小玩家Cell体积,调整Agent Radio,这样原本因为“玩家”或“寻路体积”“太胖”导致不出现的寻路会生成。2、经过上一步的调整寻路还不出现,那么请尝试在你想生成寻路的位置新创建一个NavMesh(如上图),(原理不明,了解的大神求解释)寻路就会乖乖出现了。

经过这么一番研究整改,暴力解决了VR模板通过楼梯上下楼的问题,但是并不完美(如果直接用手柄指向天花板能直接传送到上一层...当然这个快捷上楼方式我们觉的还能接受就保留了)然后...距离我们项目节点还剩不到30小时... 所以场景没有开高参数烘焙光照就怼了出来 ... 不得不说有点遗憾 。

希望这篇帖子能帮助碰到相同问题的朋友,当然有更完善解决方案的朋友希望可以分享一下,共同进步~

PS:最后安利下 UMU的模型素材,这次如果没有UMU快捷精致的模型最后30小时我都不知如何才能完成这个项目 ... 希望UE4开发者们都越来越好吧~

本帖被以下淘专辑推荐:

mikeche | 2017-7-16 08:56:38 | 显示全部楼层
不客气的说,就一个简单的vr pawn传送,非要用什么导航网格,简直是脱裤子放屁,多此一举
回复 支持 2 反对 0

使用道具 举报

teatimeif | 2017-7-16 13:23:12 | 显示全部楼层
如果爱 发表于 2017-7-15 21:19
该项目最大的败笔就是你用官方的模版去套。。自己写一个花掉的时间还没你折腾的时间长 ...

的确 没有仔细研究就套用了官方模板是我们图省事了(其实也是不重视移动这块) 这个地产项目是我们时隔半年重启的一个VR项目类型。由于前半年市场的原因,这类型的VR项目和技术几乎是停滞了。我们最初开发的瞬移蓝图还需要专门对每个物体添加碰撞外壳(MAX中再做一遍),测试的结果当然不如官方模板省事了,然后在之前做的几个平层样板房里没有任何问题,结果到了这个多层建筑里就掉坑里了 ... 没重写一个的原因是除了寻路,样板房里的许多交互功能都调用了官方模板里的内容 ... 后来在研究如何解决这个问题的时候我发现有许多开发者也碰到了这个问题,他们在群里或论坛里提问,但没有人给出答案,我们解决了,以前在这里学到不少,所以把解决方案放在这里我写了这篇帖子 ...
回复 支持 1 反对 0

使用道具 举报

专业人士 | 2017-7-15 19:31:00 | 显示全部楼层
学习到了···感谢分享···
回复 支持 反对

使用道具 举报

如果爱 | 2017-7-15 21:19:10 | 显示全部楼层
该项目最大的败笔就是你用官方的模版去套。。自己写一个花掉的时间还没你折腾的时间长
回复 支持 反对

使用道具 举报

unrealplay | 2017-7-16 07:38:43 | 显示全部楼层
感谢分享
回复

使用道具 举报

广兴明 | 2017-7-16 09:26:48 | 显示全部楼层
虽然不太清楚你在说什么,但见识到了谢谢!
回复 支持 反对

使用道具 举报

hanbingsheshou | 2017-7-16 11:18:11 | 显示全部楼层
aaaaaaaaaa
回复 支持 反对

使用道具 举报

eamonli | 2017-7-16 14:15:52 | 显示全部楼层
学到一些关于灯光的问题,谢谢楼主分享
回复 支持 反对

使用道具 举报

chwind | 2017-7-16 15:00:55 | 显示全部楼层
感谢分享,没有做过VR的项目呢,先MARK一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7

主题

146

回帖

1756

积分

中阶编码师

积分
1756