新人求教UE4如何开发SteamVR

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新人求教UE4如何开发SteamVR相关的知识,希望对你有一定的参考价值。

steamvr 开发

多在文档里面看看把,对新人很有帮助的!如果想要比较具体的,请去买书谢谢!

参考技术A 首先先了解一下 UV OVER LAPPING是啥意思,其实就是说你的UV有重叠,因为一些游戏模型为了节省贴图资源,一些UV会重叠在一起,例如一些不重要,材质相同的面,或是不能同时看到的面,但是重叠的UV对阴影烘焙就会出问题,所以这个时候就需要第二套UV,我这里介绍2种方法。
1、UE4中自动创建
找到模型文件,右键-编辑-打开静态模型编辑器
第二步找到图中的这个选项
第三步创建UV
之后再这里选择烘焙阴影的UV就可以了,如果阴影还是有问题可以适当提高阴影采样,老外里是调到128,本人目前没有遇到过此类问题,有问题的话可以一起讨论。
2、在MAYA里创建第二套UV
只需要一步,创建UV SET,之后在UV 编辑器中有个UV SET来切换UV,你可以在第二套UV里创建用于烘焙阴影的UV,可以尝试一下MAYA的自动映射,本人没有模型拿来测试,如果好用,就在此贴回复一下吧。创建完UV就可以导入UE4,之后在静态模型编辑器里选择一下UV就可以了。一般默认都是选择第二套UV的。
PS,其实ZB的UV感觉挺适合做第二套UV,不过ZB貌似不支持第二套UV,MAYA怎么给模型导入UV我也不会,期待别的大神补完吧。本回答被提问者采纳

Unity+SteamVR开发——场景切换问题

一、前言

          本文涉及的问题中使用的Unity版本为2018.4.26,VS版本为2017专业版,SteamVR为2.6.1版本。

二、问题

2.1、开启头盔显示器时一些2D界面无法控制

 1)问题描述

在使用SteamVR开发VR应用时,难免还是会有一些2D的界面,如登入界面,在登入界面运行的时候会出现晃动头盔显示器,UI界面也跟着晃动,并且此时鼠标无法点击UI上的按钮。如图1所示,时因为HTC的头盔和跟踪器自动的就控制住了场景中的摄像机

图1

 2)解决方法

只需要在场景的任何脚本的Awake或者Start方法里添加如下代码即可,这样Unity默认的底层模块就不会自动控制场景中的摄像机。

XRSettings.enabled = false;

 2.2、从登入切换到VR场景时报错

      有了上面的代码,在从登入切换到VR的场景中时,会出现如下错误,这个大概的意思就是SteamVR没有初始化成功。

NullReferenceException: Object reference not set to an instance of an object
Valve.VR.SteamVR_Action_Pose_Source.UpdateValue (System.Boolean skipStateAndEventUpdates) (at Assets/SteamVR/Input/SteamVR_Action_Pose.cs:575)
Valve.VR.SteamVR_Action_Pose_Source.UpdateValue () (at Assets/SteamVR/Input/SteamVR_Action_Pose.cs:553)
Valve.VR.SteamVR_Action_In_Source_Map`1[SourceElement].ForceAddSourceToUpdateList (Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Action_In.cs:217)
Valve.VR.SteamVR_Action_In_Source_Map`1[SourceElement].OnAccessSource (Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Action_In.cs:192)
Valve.VR.SteamVR_Action_Source_Map`1[SourceElement].GetSourceElementForIndexer (Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Action.cs:607)
Valve.VR.SteamVR_Action_Source_Map`1[SourceElement].get_Item (Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Action.cs:573)
Valve.VR.SteamVR_Action`2[SourceMap,SourceElement].get_Item (Valve.VR.SteamVR_Input_Sources inputSource) (at Assets/SteamVR/Input/SteamVR_Action.cs:42)
Valve.VR.SteamVR_Behaviour_Pose.OnEnable () (at Assets/SteamVR/Input/SteamVR_Behaviour_Pose.cs:92)

 如图2所示

图2

解决方法就是在VR的场景中的任何默认激活并过载在场景物体上的脚本的Awake方法里设置为

        XRSettings.enabled = true;//从别的地方跳转到这个场景的时候设置一遍这个,防止为false的时候会造成运行错误

三、总结

1、StramVR底层会自动控制默认的Camera,需要用代码设置VR控制失活;

2、设置了之后要在进入VR场景时激活,不然会报错;

3、另外要注意失活最好放在Start方法里,激活放在Awake里面,不然还是会报错;

以上是关于新人求教UE4如何开发SteamVR的主要内容,如果未能解决你的问题,请参考以下文章

新人求教openwrt用MWAN3叠加如何策略路由

新人求教,请问Thinkphp 中怎么捕获异常,自己进行处理

ue4里材质里怎么调节材质贴图颜色?求教程谢谢

新人求教各位大神,怎么才能在win7上使用xboxone手柄

新人求教Unity5.0怎么通过代码改物体透明

新人求教,急.qt4.8.6无法编译