正如我在第二篇博文提到的:在3D虚拟世界中导航是一项充满挑战性的工作。导航模型的实现并不难,难的地方在于设计一个可以让人感觉比较舒服,不会造成玩家总是出现感知上的困难的3D水平。我们真的生活在3D世界中吗?


我们的一生几乎都是靠双脚。我们没有和鸟类或者会飞的昆虫等同的3D体验。此外,我们还对完全自由的运动有所恐惧。想象一下行走在一个你可以往任意方向移动的丛林里,你总是要花心思去选择你该走的路,你会感觉安全吗?现在想象那里有一条路让你走,甚至是一个有大路和人行道的城市?让我们再想想第二篇博文讨论的‘On-the-rails’类型的体验,并且跟你上次去宜家的过程相比较。没错 --- 我们都喜欢有路可循的购物 微笑


但是之前我已经发过关于那些理由的博文,而且我在文中的阐述也绝对不是在声称我们应该固守静态相机或者轨道游戏。在3D虚拟世界中运动确实充满了挑战性,但它也是一个非常强悍的体验。对体感游戏来说,我们必须发明一种创新的方式来使自己保持站在电视前面的同时还能感觉到自己在运动。


乐趣 VS. 健身

在Kinect运动会和另外几个Kinect游戏中,你可以在原地双×××替地跳动来体验走和跑。从体验上来说,这是蛮有效的,因为你感觉自己在行走。你甚至还会感觉到累。但是,如果你不是为了制造健身游戏,你得考虑找到一些方法来使用户具备一些能力。在科幻故事里,英雄的魔力之一就是能够轻易地做到一些常人认为很难或者不可能的事情。You character imagined incredible fitness should probably allow him to work miles without giving it a second thought.(译注:本句不确定)

本篇我将讨论几个行走模型。不是所有模型都被全面地测试过,但它们绝对值得讨论。

躯干倾斜 - 行走和平行移动

当用户的躯干倾斜到一定的角度的时候,便开始适当方向上的运动。要可靠地实现这个很容易,你甚至可以将其运用到侧向的平行移动。一直使用这种模式也有问题,那就是乏味和不舒服。用户得移动双脚来保持平衡,而当他变懒的时候,他会开始使用背肌并且对脊柱施加很大压力。细到关卡设计,我不推荐在用户需要大量行走的时候使用这种模式。如果你的游戏是科幻性质的,你可以用助推器作为一个很好的手段来自然地表示这种模式:一旦用户决定开动助推器,他将用身体倾斜来控制运动。

  

旋转

字面上的原地运动受制于客厅空间,但旋转却不会。除了我的二年级老师,你不会喜欢当你背对着屏幕时看到的图像。我们必须挑战两个问题:旋转之后能够保持一直面对屏幕和改变相机视觉。


一些简单的方案

  • 将躯干倾斜用于旋转而不是平行移动
  • 当用户的躯干方位超过一定的阀值的时候开始相机的自动旋转
另外一个可能性就是’非对称的旋转映射
作为参考,让我们将用户面对电视时定义为0度角。现在用户可以左转或右转。向右转意味着正角度,相反左转为负角度。让我们想象相机只在用户的方位从0开始变化的时候旋转而在用户的运动趋向0度角的时候停止旋转,用户就可以旋转到任何方向并且在他回到面对屏幕的时候仍然维持他的虚拟方位。你也可以在用户从中心往“外”旋转的时候乘一个系数并且在往回旋的时候乘一个小点的系数 --- 这种伎俩一样能奏效,只要系数是非对称的。


原地行走
原地行走可以用来做往前的行走。如果那样太乏味(乐趣还是健身?),你可以用原地行走来触发角色的跑动(这样用户就不用总是在踏步,而一旦他真的踏步了,就可以开开心地看到他的avatar开始在跑)
跑动实际上是通过双脚的上下运动(原地踏步的方式)来做到的。要往前跑,用户必须交替抬脚(左-右-左-。。。)
其它可选项:
为了快速撤退,用户可以踏同一只脚(左 - 左 - 左 - 。。。)
原地行走,单脚向前另一只脚向后,以旋转avatar。
   
手势行走
自然行走的时候,我们会摆动双手来维持平衡。我们可以利用这个来模拟行走,而不是侦测脚的运动。这种模式和很多其它高级的根据上下文的手势判断在Activate3D的ICM Demo中生动地展示了出来,可从OpenNI竞技场下载:http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=570

结语:
正如从开篇到本文所提的,导航是一个巨大的挑战。有些用户可能喜欢其中一个模式而不喜欢别的。比如,用户可能会觉得躯干倾斜模式显得直观自然,但不会喜欢太长时间地使用。
有时候,你可以考虑将几个技术级联在一起,并允许多种方式一起工作:
  • 倾斜来行走,原地行走来跑动
  • 左右两侧的倾斜和非对称的躯干旋转
  • 行走到游戏区域的边界来触发自动行走
  • 用倾斜或者原地运动来开始/结束自动行走,而不是叫用户去维持行走


----------------------------------------------------------------------------------------------------------------------------------

译注:这是原作者最近在blogspot上的系列文章《Beyond casual: thoughts about gesture gaming》的译文,为方便中文读者而转过来的。可能的话请尽量阅读原文,原文写得比较诙谐。有翻译不当或错误的地方欢迎大家指正,谢谢阅读。

原文链接:http://michagalor.blogspot.com/2012/02/part-5-navigation.html

-----------------------------------------------------------------------------------------------------------------------------------

关于作者 Micha Galor

“当被问到怎么定义我自己的时候,我总是很困惑。我的工作包括软件工程,研究,设计和管理创新的投入。某一天我会简单地回答:一个发明家”

Micha Galor是PrimeSense公司(Kinect的3D传感技术提供商)应用和用户体验组的经理。他的团队专注于自然交互研究,包括对一些可实际运行的概念和展示的原型化,定义未来的人机交互语言等令人兴奋的工作。在PrimeSense之前,Micha领导Zoran(多媒体芯片商)的数码摄影团队,开发了应用在几款热销的拍照手机中的数字图像技术。Micha和他的太太以及两个小孩一起生活在以色列的特拉维夫。