虚幻引擎4.13 介绍了完全使用蓝图制作的VR模板。模板进一步简化了UE4 VR快速上手内容。在该文中我将进一步介绍一些关于如何用模板建立你的VR项目的技巧。

 

VR模板只在台式机和主机平台上使用。它支持Oculus Rift,HTC Vive和PlayerStation VR。官方不支持其他平台例如GearVR,但是通过一些对项目设置的改变(查看Android/GearVRDocumentation)你可以使该模板在你的GearVR上运行。

 

首先,通过Epic Games 启动器下载Unreal Engine 4.13,然后使用Project Wizard建立一个新项目。在蓝图选项中可以看到“虚拟现实”选项。4.13不提供c++版本的模板。与随着引擎发布的传统模板不同的是,该模板包含两张地图。这将不同的硬件条件(使用或不使用动作控制器)支持的运动做了区分,你可以在内容浏览器的VirtualRealityBP/Maps/文件夹下找到两张地图。他们各自的特点和差别罗列如下:

手柄位移(头戴显示器HMD/Gamepad Teleportation)

地图:

VirtualRealityBP/Maps/HMDLocomotionMap

一个简单的传送动作——你可以用手柄或键盘进行移动。点击并按住来固定你的位移目标,现在你可以看向位移的新方向(这将会更新你的neutral rotation)或者使用摇杆设定一个新的neutralrotation

体感控制器传送(Motion Controller Teleportation)

地图:VirtualRealityBP/Maps/MotionControllerMap

这种位移需要一个动作控制器来完成。指向目标方向然后按下拇指控制钮(例如Vive上的Touchpad)开始移动。你可以使用触摸板的外部边缘部分来设定一个新的neutral rotation

这类运动使用了导航网格。这个mesh被用来在位移过程中筛选可用的目标地点。详细信息请查看Blueprints migration部分。(在视界编辑器中摁“P”可以显示NavMesh


 

交替旋转模式(Alternate Rotation Mode)

PlayStation 移动控制器没有坐标轴输入,所以我建造了一个交替旋转模式便于你在其他平台(例如Vive)上使用。你可以在除了Ps4的其他平台上手动开启这项功能——在MotionControllerPawn 蓝图上勾选UseControllerRollToRotate

  

房间追踪支持(Room-scale Support)

Room-scale在移动目标附近可视。图中的那个方形轮廓物体只有在Room-scale设置成功时才会渲染。空间尺寸可以使用动作控制器上的拇指控制钮来进行旋转,或者可以使用上述交替旋转模式进行旋转。

 

物品抓取(Object Grabbing)

使用触发按钮你可以抓住并移动桌子上的模拟盒子。当你靠近一个可以抓住的物体前,控制器会晃动,你的“手”会变成一个不同的姿势。手与物体的碰撞(例如击打一个箱子)只有在触发器被按下(手看上去像一个拳头)才会生效。  

添加你自己的可抓物品(Adding your own objects to grab)

想要加入新类型物体你需要在你想要添加可用VR手抓取的物品的蓝图中实现蓝图接口(位置VirtualRealityBP/Blueprints/PickupActorInterface)。这些文档介绍了如何实现蓝图接口

VR优化项目(ProjectOptimized for VR)

模板中含有不少的VR渲染优化。更多关于VR项目的优化,查看VR Guide for UE4(详细查看the PerformanceConsiderations 选项)。在Rendering&PerformanceSettings 我解释了如何把这些转移到你自己的项目中。

动态阴影(Dynamic Shadows)

模拟的立方体(蓝色)投射并接收(动态)阴影,这是一个很费资源的特性。然而我们可以通过开启可移动Actor上的“Single Sample Shadow from StationaryLights”来使浪费减半。这个功能使得动态物体的阴影接收在一些品质下降低浪费。它不适用于所有的情况,但为了潜在提升动态物体的表现性值得一试。

开始(Get Started)

打开4.13引擎版本。建立一个新的项目,在蓝图选项中选择“虚拟现实”。关于如何开始我推荐阅读我的UE4 VR指引

想要检查模板输入绑定设置你可以打开Edit>Project Settings…然后查看Input选项。自己看看就明白了。

游戏手柄映射:

  • 手柄底部向前按钮(Xbox控制器上的A)或者Enter=初始化移动

  • 手柄左摇杆=移动过程中改变方向

 动作控制器输入绑定:

  • 触摸板按压=初始化移动

  • 触摸板轴线=移动过程中改变方向

  • 触发器=抓住物体

REEL Pictures的介绍流程(Walkthrough by REEL Pictures)

我非常喜欢这段REEL PicturesVR模板使用流程。它介绍了一些有用的动作控制层的特性。

转移到你自己的项目(Migration to your own project)

你们许多人也许想要将一些模板特征整合到你自己现在的项目中。我罗列了一些潜在问题和一些需要转移的重要文件。

蓝图(Blueprints)

使用UE4内置的内容转移(Migrate Content)特点你可以轻松地将内容及其相关性转移到你自己的项目中。右键单击你想在项目中使用的移动类型的Pawn蓝图选择Asset Actions>Migrate

基于动作的动作控制器需要一个导航物体来过滤可用移动目标。如果想要用自己的过滤器来覆盖导航物体你可以查看BP_MotionController蓝图的TraceTeleportDestination 函数。

 

渲染和性能设置(Rendering&Performance Settings)

如果想从模板中转移出显示设置,请查看模板文件夹中的/Config/ 文件夹。尤其注意整个DefaultScalability.ini文件和DefaultEngine.ini[/Script/Engine.RendererSettings]部分包含VR项目实用的调整大小的信息。

关于VR模板的指引就这些了!祝您VR之旅愉快!