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

[复制链接]
查看20006 | 回复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开发者们都越来越好吧~

本帖被以下淘专辑推荐:

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

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

使用道具 举报

teatimeif | 2017-7-17 13:37:44 | 显示全部楼层
AlphoeniX 发表于 2017-7-17 10:00
另外虽然不知道你们那边是什么情况……但是简易的一个手柄瞬移的蓝图应该10分钟以内就能完成的……碰撞外壳 ...

恩 我们后来也意识到还是要用自己了解的方案来做项目比较好 后面要开始重新优化自己的蓝图了 碰撞外壳在MAX里的做法的确太老了... 太久没更新了
回复 支持 反对

使用道具 举报

teatimeif | 2017-7-17 13:42:52 | 显示全部楼层
ice_ruilin1123 发表于 2017-7-17 10:42
话说,美术画面这种质量也可以出项目了?

呵呵 实话说 ... 这画面效果我们自己也不满意 单机6小时烘焙出来的场景 软阴影都没出来 ... 更别提细的材质灯光了  不过在项目层面上按时交稿才是王道 ... 只能说技术方案没研究好就草率开工是我们的重大失误 不过 ... 爬坑也是进步的必经之路嘛 (感恩客户)
回复 支持 反对

使用道具 举报

teatimeif | 2017-7-17 13:46:26 | 显示全部楼层
如果爱 发表于 2017-7-17 09:55
有研究精神很好的。只是。。射线传送完全不必用寻路去做。本身原理只是一条手柄射线给的一个返回值,然后 ...

恩 后期我们会把这些基本功能重新弄起来 ... 我们的开发没有统一的计划 都是跟着市场带回来的客户需求走 ,前半年搞出了用手机、IPAD控制虚幻的方案,回过头来一个瞬移没做好也是够囧了 ...
回复 支持 反对

使用道具 举报

teatimeif | 2017-7-26 11:25:21 | 显示全部楼层
浮生若梦 发表于 2017-7-21 15:14
原本预估的技术难点是室内外一体的光照环境(看起来是一体
)用UE4自带的多边形编辑工具转换成POST体积划分 ...

对 就是靠后期框调曝光值。
但是不是一个大后期框把全场景罩住 原则上是室外部分一个后期框 室内部分一个后期框。
实际生活中由于人眼受光的原因 在室内看室外一般要偏爆,室外看室内则相反。所以室内的后期框曝光值要高,这样室内亮度也足够,室外的后期框一般和UE默认的曝光设置相近就可以了。
这个方法就要求后期框包括的范围要精确,所以一般不能直接用系统自带的方形后期框。比如说我这个项目的室外部分是T字型的,所以我用多边形工具做了个T字形的范围,再转的后期框。
至于后期框在里面和外面效果不同那是当然的,UE的后期框在边缘部分有个自然过渡,如果两个后期框相交的位置比较好(室内外切换的位置),过渡还是很和谐的,尤其是移动中的视角,一般不会注意到细微的变化
回复 支持 反对

使用道具 举报

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

本版积分规则

7

主题

146

回帖

1756

积分

中阶编码师

积分
1756