虚拟现实中的Rube Goldberg游戏(Udacity项目)

这是Udacity Nanodegree的Rube Goldberg项目。 我们的任务是设计和构建高沉浸感的VR游戏,在其中我们可以学习诸如物理力学,运动和交互之类的概念。

您需要对Unity有基本了解才能继续。 在本文的结尾,您将学习如何为SteamVR,不同的移动方法和对象的交互设置项目。

直到观看了有关其工作原理的视频后,我才知道游戏的结果。 游戏受以下所示的Rube Goldberg机器影响。

流氓游戏机

Rube Goldberg机器是一种故意复杂的机器,其中将执行简单任务的一系列设备链接在一起,以产生多米诺骨牌效应,其中激活一个设备会触发序列中的下一个设备”

我将向您介绍VR中的Rube游戏的简单机制,该游戏将在HTC Vive或Oculus Rift上运行。

为了更好地理解游戏,以下是最终视频:

最终影片

1.0目标

简单游戏的目的是允许用户使用游戏中提供的可用对象创建自己的玩具或多米诺骨牌效果。

这些对象具有独特的行为,如下所示。

1.1木板

木板对象

1.2蹦床

蹦床对象

1.3风扇

风扇对象

1.4金属

金属物件

2.0使用工具

开始之前,您需要满足以下条件:

  1. Unity包
  2. 适用于HTC Vive和Oculus的VR桌面。 这是一个外观的示例。
  3. 带有控制器的HTC Vive耳机
  4. Unity资产商店的3D模型
  5. Steam VR插件

注意:其中一些工具(例如HTC Vive耳机,VR桌面)有点贵。 如果您负担不起,则可以在附近的一些VR实验室使用它们,例如 Imisi3D Lab

3.0构建过程

就像我之前说过的那样,这款游戏将为高沉浸感VR打造。 我们将使用Steam VR插件。 Steam VR将使我们能够访问被跟踪的控制器,这些控制器将用于远距传送和物体生成。 它还将使我们能够在Rube Goldberg游戏中加载不同的场景或播放模式。

Steam VR的替代方法是GVR。 GVR unity SDK用于移动VR。 在这里,我写了关于移动VR和高浸入式VR之间的区别。

让我们开始吧

3.1设置Steam VR

在系统上下载并安装Unity之后,创建一个New Project并从资产存储中添加SteamVR插件。

确保正确插入HTC或Oculus耳机,控制器和传感器,以检查SteamVR是否正常工作。

每当使用插件遇到问题时,请始终重新启动SteamVR和计算机。 设置好SteamVR并插入控制器和耳机后,就可以使用SteamVR了。

3.2传送

运动确实很重要,并且需要做正确的事情,因为您不想为用户造成晕动病。 有不同的运动:

  • 人工步行
  • 传送
  • 冲刺

在我们的Rube游戏中实现了远距传送,因为它使运动病的风险最低。 要了解有关远距传输的更多信息,下面是有关不同移动方法的视频。

SteamVR跟踪对象组件负责SteamVR中的传送。 传送所需的此组件与我创建的用于处理传送的ControllerInputManager脚本一起添加到了控制器中。 要了解有关SteamVR跟踪对象组件API的更多信息,请查看Unity上的文档。

HTC Vive控制器

这是隐形传送的逻辑;

当按下触发按钮时,我们的瞬移会从手动控制器拍摄一个射线广播,然后将其瞬移到与之碰撞的位置。

在游戏区域周围传送

3.3抓和投掷

对于此游戏,我们需要捡起并扔出球与Rube Game对象互动。

这是抓球和扔球的行为;

玩家可以触摸球对象,将扳机挤压在控制器上以将其抓住并移动,然后释放扳机以将球扔出去。

处理该脚本的脚本将添加到控制器中。

抓取对象方法

球对象被赋予了Throwable标签,并附加了一个球体collider 。 撞机帮助 描述在这种情况下游戏物体的形状,以物理碰撞为目的的球。 RigidBody也连接到球上以允许其移动。

4.0游戏崩溃

游戏分为4个等级,每个等级都有特定数量的星星,在进入下一个等级之前,球必须击中。 为了击中所有星星,您必须使用提供的物体(例如风扇,木板,金属等)来创造自己的装置。

一旦球击中,收集星星并落在球门平台上,就会加载新的游戏关卡。

游戏玩法

在游戏中,我还有很多迭代要做,以使其真正酷炫,极富娱乐性。

5.0结论

我真的很喜欢游戏的思考过程,实施阶段和用户测试。 这是项目本身的仓库,我希望您能为此做贡献。

6.0后续步骤

我需要付出更多的努力来使环境和对象看起来真的很酷,并且体验无缝。

这是我在VR上工作的其他链接:

  • VR中的非洲神
  • 性能优化
  • 益智游戏
  • 迷宫项目
  • Udacity VR公寓
  • 嘉年华计划

谢谢 Isiaq Gbadamosi Tunde