基于UE4的VR项目基础环境配置和Motion Controller控制配置

发表于2016-08-14
评论2 1.97w浏览
  本文使用的VR硬件是HTC VIVE,本文分成两个部分,第一部分介绍了使用蓝图在UE4中进行基础环境配置时需要注意的渲染优化、后期处理、环境比例、HMD帧率优化设置等。第二部分是如何使用UE4蓝图对HTC VIVE的手柄进行配置的流程。适合刚学习VR的同学进行参考。
 
一、VR基础环境配置
1、UE4项目设置
新建 VR 项目时,推荐使用 移动设备 / 平板电脑、可缩放 3D 或 2D 和 没有初学者内容 选项,以保证项目从开始便在框架上运行。


2、VR .INI 设置
  以下设置是基于UE4 VR demo Showdown 测试得出的优化设置,建议按照项目需求进行修改。
(SystemSettings 下的项目 Config DefaultEngine.INI )
[SystemSettings]
r.VolumeMultiplier=1.0    体积乘数
r.screenpercentage=130   屏幕比例设置
r.SeparateTranslucency=0         修复半透明情况下景深的问题
r.HZBOcclusion=0               HZB环境光遮蔽
r.FinishCurrentFrame=1           完成当前帧
r.MotionBlurQuality=0            运动模糊质量
r.PostProcessAAQuality=3         后期特效质量
r.BloomQuality=1                光溢出质量
r.EyeAdaptationQuality=0         模拟眼睛自适应光效质量
r.AmbientOcclusionLevels=0       环境遮蔽质量级别
r.SSR.Quality=1                 屏幕空间反射质量
r.DepthOfFieldQuality=0          景深质量
r.SceneColorFormat=2            能够选用不同的 SceneColor 格式
r.SSSSS=0
r.TranslucencyVolumeBlur=0       半透明体积模糊
r.TranslucencyLightingVolumeDim=4    半透明灯光体积范围
r.MaxAnisotropy=8
r.LensFlareQuality=0             镜头光晕质量
r.SceneColorFringeQuality=0      场景颜色边缘质量(紫边效果)
r.FastBlurThreshold=0           模糊阀值
showflag.decals=0              贴花选项开关
r.SSR.MaxRoughness=0.1        屏幕空间反射粗糙度最大值
r.rhicmdbypass=0
r.TiledReflectionEnvironmentMinimumCount=10  **反射环境最小值
sg.EffectsQuality=2             特效质量
sg.PostProcessQuality=0         发布质量

3、VR 实例化立体渲染
  实例化立体渲染(Instanced Stereo Rendering),可以减轻 UE4 中的 VR 性能影响。
  即时立体渲染是一个优化,能够让引擎更有效率的为 VR 设备渲染具有立体感的画面。
  在以前版本的VR渲染中,引擎渲染立体画面时,先为左眼渲染所有的东西,然后再渲染右眼画面。在即时立体渲染的特性下,双眼的画面同时进行渲染运算,这么做能大量降低 CPU 的开销,并改进 GPU 的利用率。

实例化立体渲染(Instanced Stereo Rendering)

4、编辑 -> 项目设置 -> Rendering -> VR ->Instanced Stereo
  这个设置后引擎会提醒你重新启动引擎


5、VR后期处理设置
  在关卡中添加一个后期处理PostProcessVolume体积域。


  PostProcessVolume(F4为快捷键,设置应包括整个关卡)设置应用Unbound


  PostProcessVolume 设置里禁用LensFlares


  一般情况下,不需点击每个部分并将所有属性设为 0。
  可以先禁用开销较大的功能,比如:镜头光晕(Lens Flares)、屏幕空间反射(Screen Space reflections)、临时抗锯齿(Temporal AA)、屏幕空间环境遮挡(SSAO)、光晕(Bloom)和其他可能对性能产生影响的功能等等。

6、VR世界场景比例
  VR场景物体和玩家摄像机之间的距离 0.75米 到 3.5 米  能获得最佳的VR体验,1虚幻单位(UU)长度为1厘米(CM)
距离Unreal单位距离(UU)
1厘米1 UU
1米100 UU
1千米100,000 UU

  世界属性-> VR->World to Meters100


** World To Meters=10 世界场景显示较大
** World To Meters =1000,世界场景显示较小

7、HMD 帧率
HMD头显设备目标帧率
DK275 FPS
RIFT CV190 FPS
VIVE90 FPS

8、VR摄像机设置
*UE4 中设置 VR 摄像机的方法取决于 VR 体验为坐立状态或站立状态。
*在坐立体验中,需要将摄像机原点升高到角色站立时的高度。
*在站立体验中,必须将摄像机原点设为 0,0,0,处于地面之上。
*可将摄像机组件以角色为基础(地平面)附着在场景组件上,或将眼睛高度(Eye Heigh)设为角色碰撞胶囊体圆柱体高度的一半。

9、VR角色设置
  角色高度和宽度
属性UE4默认值推荐VR 设置
高度192 CM176 CM
宽度84 CM68 CM

10、移动速度
  移动速度约为正常速度的 1/4
属性UE4默认值推荐VR设置
移动速度60 M/S24 M/S

11、相机位置
  VR摄像机的位置应比基本眼睛高度稍低
属性UE4默认值推荐VR设置
基本眼睛高度180 CM160 CM

12、设置UE4 启用STEAM VR 插件
设置->Virtual Reality ->SimpleHMD
后重起引擎


二、Motion Controller(VIVE手柄)控制配置
1、在 Content Browser 中创建 Pawn 蓝图类。


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


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


4、添加运动控制器后,点击将其选中,然后在 Details 面板的 MotionController 部分下将 Hand 设为 Left。


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


6、重复2-4操作再添加一个MotionController_R,并将其设为 RightHand。给它填加一个StaticMesh组件,并将右手的网格体应用到其上。

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

三、使用运动控制器(Motion Controller)
  蓝图编辑器的 控制 面板中包含运动控制器专有的输入功能键。(窗口->控制板)在蓝图编辑器的 控制  面板中用 “MotionController” 搜索,将显示运动控制器可用的全部按钮和功能键。


  L/R 代表 左 或 右 运动控制器使用。到此为止,手柄的配置结束。下面是一个应用控制器的一个测试。

四、设置运动控制器
  测试想要的效果:按下 右手柄扳机键后场景中将生成一个包含模型的蓝图,按下 左手柄扳机键后将从世界场景中移除模型。
1、在 浏览器 中新建一个名为 BP_Sphere 的Actor蓝图,然后双击打开。
2、前往 视图 标签,新添加一个 静态网格体组件。


3、将静态网格体组件移到 DefaultScreen Root 上,将静态网格体设为使用 ArcadeEditorSphere,然后编译并保存蓝图。


  (如没找到 ArcadeEditorSphere,打开 视图选项,点击 Engine Content 文件夹使其显示在 Content Browser 中。)关闭 BP_Sphere 蓝图,打开 VR_Pawn 蓝图。
4、前往 我的蓝图 面板中的 事件图表 标签,新建一个名为 Objects、变量类型  为阵列的 Actor 变量。


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


6、选择 SpawnActor 节点,并将步骤 1 中创建的 BP_Sphere 蓝图指定到 Class 输入。


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


  (F键添加物体;E键移除物体 便于快速测试 也可以不用键盘设置)
8、编译 并 保存 变更至 Pawn 蓝图,然后按下 Play 按钮。
9、关卡载入后,按下右手手柄的扳机键即可在世界场景中添加物体。


结束



如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引