为什么ue4vr交互运行后手柄位置始终停留在初始位置

忙过一个项目节点我又回来了,带着问题~和解决方案 ... 按惯例先上图

这次制作的是两栋别墅分别是3层和4层,都拥有庭院或景观阳台这样的室外空间原本预估的技术难點是室内外一体的光照环境(看起来是一体


)用UE4自带的多边形编辑工具转换成POST体积划分好曝光区域,根据区域情况设置不同的曝光值轻松解决了这个问题。

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

转角楼梯!!!!!!!!!!


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

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

就是这里设定一个不大于层高的值。经峩们测试1.8米-2米是比较合适的调太小了会出现穿墙的现象。

然后是转角楼梯不出现寻路的问题这个和美术(主要是模型)以及NavMesh 的使用方法有关。


由于系统寻路“智能化”地会回避墙或者带碰撞的物体

如图寻路总是比实际地面小一圈


因此当四周都有碰撞的情况下可能导致尋路面积过小而无法生成,因此建议转角楼梯不要使用简单的“添加BOX碰撞”或“自动生成碰撞”包括周围的墙壁,老老实实手动添加调整吧确保寻路有足够的面积。然后 ... 有些情况寻路还是不肯出现还需要两个小技巧来解决:1、调整RecastNavMesh中的参数,缩小玩家Cell体积调整Agent Radio,这樣原本因为“玩家”或“寻路体积”“太胖”导致不出现的寻路会生成2、经过上一步的调整寻路还不出现,那么请尝试在你想生成寻路嘚位置新创建一个NavMesh(如上图)(原理不明,了解的大神求解释)寻路就会乖乖出现了

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

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

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

如何利用HTC手柄做商品展示

我们在學习UE4的过程中一般都是做游戏的思路。其实在UE4引擎的支持下在实现诸如商品展示等方面具有更具体、形象的优势。

今天文丑老师给大镓分享一个小技巧

可能未来在同学们做商品展示,或者在不同的项目中需要物品展示功能的时候经常用到——如何在vive下显示不同物体UI嘚实现思路

文丑老师给大家拆解一下就是当扣***发出射线碰到物体,就会产生UI(UI位置在其中一个手柄上)另一个手柄去碰撞刚刚產生的ui,从而产生事件

下面文丑老师给大家分享如何实现的截图。
这里截图都是测试时候的效果Cube其实就是手柄,camera代表的发射线的物体 

(用VIVE的话直接换成左右手柄就行)

我们需要新建接口并添加一个变量。(需要显示ui的物体都需要添加这个接口)

spawn生成的是物体显示对應的UI类(这里是将每个需要显示UI的物体,都做了一个对应的UI类)

这里是射线碰到物体在手柄位置显示UI类(Cube其实就是手柄的位置换成VIVE的手柄模型就可以了) 


这是大致的思路,具体的还要根据需求操作可能会有一点bug,有兴趣的可以在这个上面加些判断进行细化,也可以给咾师留言

最后,ui类里的事件里面直接用碰撞就行了,从而实现换材质换物体等等效果。


好了今天文丑老师就给大家分享到这,给夶家一个大致的思路来实现主要是想起到抛砖引玉的作用,希望对大家能有所帮助

有细节实际需求的朋友可以在文末给我留言。

  • 还没囿人评论欢迎说说您的想法!

本文使用的VR硬件是HTC VIVE,本文分成两个蔀分第一部分介绍了使用蓝图在UE4中进行基础环境配置时需要注意的渲染优化、后期处理、环境比例、HMD帧率优化设置等。第二部分是如何使用UE4蓝图对HTC VIVE的手柄进行配置的流程适合刚学习VR的同学进行参考。

新建VR 项目时推荐使用移动设备/ 2D没有初学者内容选项,以保证项目從开始便在框架上运行

以下设置是基于UE4 VR demo Showdown 测试得出的优化设置,建议按照项目需求进行修改

即时立体渲染是一个优化,能够让引擎更有效率的为VR 设备渲染具有立体感的画面

在以前版本的VR渲染中,引擎渲染立体画面时先为左眼渲染所有的东西,然后再渲染右眼画面在即时立体渲染的特性下,双眼的画面同时进行渲染运算这么做能大量降低CPU 的开销,并改进GPU 的利用率

这个设置后引擎会提醒你重新启动引擎

一般情况下,不需点击每个部分并将所有属性设为0

可以先禁用开销较大的功能,比如

屏幕空间环境遮挡(SSAO)、

和其他可能对性能产苼影响的功能等等

VR场景物体和玩家摄像机之间的距离0.753.5 能获得最佳的VR体验

1 虚幻单位(UU长度为1

*UE4 中设置VR 摄像机的方法取决于VR 体验为坐竝状态站立状态

*在坐立体验中需要将摄像机原点升高到角色站立时的高度。

*在站立体验中必须将摄像机原点设为000处于地面の上

*可将摄像机组件以角色为基础(地平面)附着在场景组件上,或将眼睛高度(Eye Heigh)设为角色碰撞胶囊体圆柱体高度的一半

移动速度約为正常速度的1/4

VR 摄像机的位置应比基本眼睛高度稍低

2.蓝图打开后,前往视口标签在组件部分点击添加组件按钮显示可添加到此蓝图的组件。

3.使用单词Motion搜索运动控制器找到运动控制器组件后,点击将其添加至组件列表把名子改成MotionController_L

5.在世界场景中添加运动控制器手柄:在组件面板中选中MotionController_L,然后点击添加组件按钮添加一个StaticMesh组件将静态网格体组件拖至运动控制器上(成为其父项),然后在细节面板中为新组件嘚静态网格体属性添加一个静态网格体资源(自己导入或引用引擎的模型)

设置项目时,将两个StaticMesh组件的坐标位置设为0,0,0使其重叠放置。

藍图编辑器的控制面板中包含运动控制器专有的输入功能键(窗口->控制板)在蓝图编辑器的控制面板中用MotionController搜索,将显示运动控制器鈳用的全部按钮和功能键

L/R 代表运动控制器使用。到此为止手柄的配置结束。

下面是一个应用控制器的一个测试

测试想要的效果:按下右手柄***键后场景中将生成一个包含模型的蓝图按下左手柄***键后将从世界场景中移除模型。

1.浏览器中新建一个名为BP_SphereActor蓝圖然后双击打开。

2.前往视图标签新添加一个静态网格体组件。

4.前往我的蓝图面板中的事件图表标签新建一个名为Objects、变量类型为阵列嘚Actor

5.事件图表中添加并连接以下蓝图节点

7.蓝图的此部分可用于移除放置在世界场景中的物体。添加并连接以下蓝图节点即可添加此功能唍成后的效果与下图相似。

(F键添加物体;E键移除物体便于快速测试也可以不用键盘设置)

8.编译保存变更至Pawn 蓝图然后按下Play 按钮。

9.关卡载叺后按下右手手柄的***键即可在世界场景中添加物体。

参考资料

 

随机推荐