幕后故事:在VR模式下的双脚移动

视频演示如何安装该插件以及将3dRudder与UE4配合使用是什么感觉。

3dRudder 是用双脚控制的VR运动控制器,在 VR 模式下,坐着就可以用双脚操控场景,解放双手去选择、自定义或移动物体。当我们在各种 VR 项目中测试 UE4 插件,包括在 VR 和非 VR 游戏中 3dRudder 支持的三种移动类型(走/跑;盘旋;飞行)时,我们开始使用的是虚幻引擎的 VR 模式。于是我们立即想到,可以把这个插件集成到编辑器中,提供一种创新的场景操控方式,让这个已经很出色的工具进一步提升价值。

640-01.jpg

目前,VR 模式下在场景中四处移动的方法是用手推或拉环境,那为什么不使用一种让用户更自然地移动的方法呢?我们将 3dRudder 集成到 VR 模式中的目的是让开发者:

  • 在场景中直观地移动和盘旋,轻松地使用任何观察角度
  • 能够持续在桌前工作,不必去特定的 VR 设备点,轻松切换编辑器和 VR 模式
  • 不受房间大小限制
  • 只需要手动控制器来选择、自定义和移动物体

集成了 VR 模式后,开发者不但可以使用键盘/鼠标或游戏杆(XInput),还可以使用双脚在标准 UE4 编辑器中移动。

3dRudder 与 VR 模式的集成

为了将 3dRudder 与 VR 模式集成,我们需要在现有的 UE4 插件中添加特定的代码,用于处理 VR 模式。

640-02.jpg

我们根据创建编辑器模块 Wiki,为编辑器创建插件。

第一步是创建 3dRudder 编辑器模块:

  1. 3dRudder.uplugin 中添加编辑器模块:

640-03.jpg

  1. 将虚幻编辑器(UnrealEd)作为依赖关系添加到 _3dRudderEditor.build.cs

640-04.jpg

  1. 创建继承以下类的 F3DRudderEditorModule 类:
    a. IModuleInterface,让我们能够注册、启动和停止模块。
    b. FTickableEditorObject,允许对每一帧做标记,并获得 3dRudder 的输入轴值,更新视口摄像机。

640-05.jpg

UpdateViewportCamera 中,我们让 FEditorViewportClient 对象调用 MoveViewport 函数。我们在用于游戏手柄/操控杆的 UE4 源代码中发现了这个函数,其作用是在编辑器中移动摄像机。

640-06.jpg

  1. 我们还创建了一个 U3DRudderSettings 类,用于在编辑器首选项中显示和保存一些特定参数:
    a. 用于激活/停用摄像机运动的布尔值
    b. 用于更改 X、Y、Z 轴上的运动速度/速率的三维向量
    c. 用于更改 Z 轴(绕Y轴的旋转)上的旋转速度/速率的浮点数

640-07.jpg

要访问这些设置,需要点击编辑(Edit)->编辑器首选项(Editor Preferences)-> 3dRudder -> 视口(Viewport)

640-08.jpg

在更新这些值时,它们会保存到 Config/DefaultEditor.ini 中。这样每个项目都可以有不同的运动速度。

640-09.jpg

我们在一个空白的 C++ 项目内部用 Visual Studio 2015 构建了这个插件。

640-10.jpg

完整的代码可以在 GitHub 上找到,地址如下:
https://github.com/3DRudder/3DRudderSDK_Unreal_Engine

最后一步就是将插件包提交给虚幻市场团队,确保它能在最新版本的虚幻引擎(4.15、4.16、4.17和即将推出的4.18)上顺利运行。你可以在 UE4 虚幻市场找到该 3dRudder 插件。

我们遇到的问题
总体来说,这次集成还是非常顺利的。我们遇到的唯一的问题是移动视口摄像机,因为没有找到正确的文档或样本代码。所以,我们只能通过观察VR模式源代码来了解如何使用游戏手柄移动摄像机。

安装插件

最后,我们制作了一个视频,演示如何安装该插件以及将3dRudder与UE4配合使用是什么感觉。

首先展示的是如何在编辑器和VR模式中安装3dRudder插件,然后是如何在标准编辑器(从0:45开始)和VR模式下(从2:57开始)使用3dRudder在场景中移动。


相关推荐

  • 没有相关推荐文章