在4月,我花了几个星期去设计、研究Samsung Gear VR设备。这里我想要分享一些我在这短短两周时间内探索到的可对外发布的有价值的设计过程和设计模式 。

我和我的早期原型产品(使用iPhone的加速计来解决头部方向问题)

为什么会是VR?

在校园里我学会了工业设计和人机交互。 我最大的兴趣之一就是能够横跨这两个领域。 在当时这意味着设计数码设备中的一切, 所以我在一个高级项目中设计了一个电话包括它的物理表现,数字接口和生态系统。我对可视化交互领域有着浓厚的兴趣,这样的交互是将现实物理运动与虚拟数字平台结合起来。然而目前实际应用在人机交互方面的还远远不够。

几个月前我参观了已经搬到Facebook校园的Oculus实验室。突然间,我回想起了我曾有过的梦想,去整合现实物理运动与虚拟数字平台建立一种能够给用户带来新体验的交互方式。在编写代码的过程中我有了一些体验感受,这似乎意味着我可以自己完成原型产品的设计全过程。

在Facebook,公司鼓励并支持员工去追求能让自己充满激情的项目,于是我跟我的经理商量看,是否有机会在 VR 方面安排一些时间去工作。最终他配合了我的想法,于是我们开启了一场探索活动。

工具使用: Unity vs. Quartz Composer

关于现有的工作流程我了解到的第一件事就是沿着Photoshop → CINEMA 4d → Unity → code顺序去开展工作。

Unity 很像Flash, 不过却是在3D中。在场景中的物体都是所见即所得的,你可以移动他们的位置并增添一些脚本来使它们可以相互交互。大量的游戏基于它开发出来——它是跨平台的并有着一个强大的在线社区来回答问题。

与此同时你还会用到一个功能简陋的IDE开发套件MonoDevelop,他对于OS X文本编辑功能的支持并不完善。它是用来书写代码的,使用 C# 或一定程度上自定义的JavaScript语言。

给Unity对于VR人机交互接口一个评价:还有不足之处。(个人见解)

加上Quartz Composer(QC/Origami)作为反馈,验证新的交互范例时至关重要的东西之一就是去调整并测试交互间的即时反馈回路。Unity允许在打开了一个项目的同时灵活地调整一些变量,但这些更改将会在项目停止后全部丢失。同时监管Unity和Oculus DK2也会减慢迭代周期。 DK2的功能是去对一个1080p的全屏内容进行分屏显示,但Unity是无法及时的提供程序产品供DK2使用。除非每次都生成并运行对应的程序。

针对Unity的不足,我决定寻求QC对DK2的支持。目前QC的插件还不支持最新的DK2的SDK,所以我花了一个深夜建立一个基本的修补程序,并呈现出两个平面图像。结果又是怎样呢?看起来还不错。没有必要继续深挖了,现在我可以很轻松地在Unity 3D中去布置静态的UI界面并测试。

这一插件我放到了github上面附上链接: https://github.com/tarngerine/oculus-dk2-quartz-composer/

现在随着QC环境的集成,我可以很轻松的评价、迭代来快速设计。

根据人体工学设计VR

一个明显的迹象存在,当一个人刚开始面对移动 UI 设计时他们会觉得排版和命中目标太小。与任何新形式的输入方式相同,界面需要容易使用。为针对VR,有几个要点我发现真的影响了我的设计。

让内容保持在舒适的查看区域

在这次黑客活动前,我就有一次设计演习,使用Unity尝试一些想法,去建立一个程序原型来对用户进行通知。当你在虚拟现实中时,你是完全脱离现实的,但你可能需要得到通知并迅速作出反应。我当时还没有 DK2 ,所以我的原型仅仅是桌面电脑上的一切。我认为元素是可以挂在屏幕边缘的,如果你想看到他们可通过快速转头来将他们捕捉到区域中间,使其处于可视角度并激活他们。

不幸的是,当我得到了DK2 ,并试图尝试上面的原型,它彻底失败了:当你带着一个头盔,那么徘徊在你视场( FOV )边缘的对象是非常困难去关注的。您可以现在就来试试:尝试读取您的手机,假设它在你的视野的边缘,不是转动你的头,只转动你的眼睛。

最终我得出了一个结论就是让内容保持在舒适的查看区域。

设计针对有限的头部转动来实现简单的交互

最大的物理约束之一就是你有一个笨重的头盔。我有一个想法去建立通知机制,检测头的转角速度作为激活通知的意图。在实践中,这是极为笨拙的。Oculus团队已经开始开发交互模式,要把这种局限性打破。应用程序商店的建立提供大量内容供人们参考,我们是通过使用Gear VR 提供的触控板来在商店中浏览的 。使用这一方式允许玩家以很小的头部转动动作改变周围的内容。
我发现单纯地在触控板滑动是一个让人迷失方向的动作,断开安装在侧面的头盔的触控板。在设计活动后期,乔伊斯和我探讨了多种版式布局。我们立即排除了几种版式 (网格布局让人感到压迫和隐含的无限性,而我们想要的内容感觉上应是双向性和可适应性的)。

在设计版式上我走向了单个行内容,开始你处于第一项内容旁,并允许以水平滚动。然而,我不想安放滑动按钮和页面控制按钮,这令体验者感到繁琐。我决定尝试将整个滚动宽度的内容映射到舒适的视场 (~ 90 度)。采取了一些改进,如分页对齐每个对象,而不是让每个对象紧挨着处于流动状态,结果感觉还不错。现在你可以切换对象,只需转动你的头。

悬停状态又回来了

随着移动行业的发展,设计师失去了信息显示和层级关系这一宝贵工具 — — 桌面和 web 上的悬停状态将会为物体提供放大后的信息提示。在 VR悬停状态又回来了,悬停是以视线的形式来判断的,看着一个你不是很清楚却想要进一步了解的对象或控件可以揭示更多的信息,例如视频缩略图预览。

我试着在我的第一个原型创建这样的输入,一种”看住或长凝视”互动激活内容而无需其他形式的输入方式。这来自大量使用在Kinect 交互后并感觉还不错的经验,对我来说,我以为它会在虚拟现实中表现更好,相比在空气中挥舞着你的手这或许还会增大一点精度 。不幸的是,其他输入方式允许你和你看到的东西不去进行交互,但”看住”实在难以停歇你的目光,一些原本无需担心的东西将会被触发。

当我开始第一个项目的时候,第一件事我想试试的就是去模拟常见交互视频游戏中使用的菜单导航: 对齐到与视线最接近的互动区域,以弥补不准确的光标控制。在 VR,光标还是比较准确的但它仍有必要努力做好精确的操作。

我发现的是,增加在视线约 5-10 度的触碰区域来处理是一个很好的经验法则。这意味着你可以直观地设计某些东西像视频进度条一样保持相对窄,却仍然可以轻松滑动控件。

另一件事,我发现在使用时可以加入光标动画来覆盖光标 (对它进行动画处理,使它看起来处于悬停状态) ,这样一来就可以确定你想对齐的某个特定控件。

结束:对VR设计的思考

这次活动的结束,我完成了一套比较可靠的新的交互方式的原型系统,来帮助、激励我和我的团队工作。在相对较短的时间创建的所有的原型有着相当高的质量保证。当你使用它时,不幸的是我不会在你身边实际参与,但我很高兴看到这些设计你会怎样实际使用。

下一步:工具

从过去的几年越来越清楚的就是,作为一名产品设计师 — — 设计和代码之间的相互作用让我极其振奋。在我的设计生涯中,我最喜欢的时刻是有次当我想去验证一个设计方向的问题时却遇到一个代码上的技术障碍(Objective C to help hit a deadline 还是 futzing withlive data in JS)。

通过VR 工作进一步验证了,我还是喜欢思考在3维立体空间中该如何设计新的交互并应用于产品。很高兴我最喜欢的事已经有现有的工具可以去验证我的设计决策。我是如此严谨、广泛地看待设计工具,希望这些开发经验能够对你们有所帮助!

(来源:转载自互联网优选内容进行编译)