开篇
微软的Kinect非常成功地将全身体感游戏平台带给了公众。这套系统包含一个PrimeSense公司的3D传感解决方案,4个麦克风组成的超炫阵列,运行在XBOX上的语音识别算法和顶级计算机视觉算法。除了硬件和算法,微软游戏工作室还做了杰出的工作来引入全新的用户体验,这些体验可以在《Kinect大冒险》,《Kinect欢乐实验室》中的全新交互模型(比如游戏Air Band)中看到。
但是,抛开几个成功故事,比如Kinect运动会,GunStringer, Halfbrick的《水果忍者Kinect版》和Harmonix的《舞动全身》,目前上市的大部分Kinect游戏都差强人意。看起来体感游戏最多只能提供非常休闲的体验。在某些情况下,似乎是在任天堂Wii产品的基础上倒退了一步。
当然,这一代的技术有它自身的限制,比如视场角(FOV)有限,低于手指的分辨率。但是,其输入保真度相比之前的其它任何技术都是一个巨大的进步。
直到最近,游戏控制器的自由度都是预先设定好的,并不在游戏设计者的控制范围内(当然Harmonix的Guitar Hero和Rock Band是个例外)。游戏主机制造商,PC硬件提供商和操作系统(比如,如果你用Windows的机器,你得假定一个键盘和一个双键的滚轮鼠标)决定了控制器。换句话说,无限的自由度不仅只是一个美好愿望,定义这样一个成功的全新控制模式还需要投入大量的设计和研究工作(想想PC上的所有第一人称射击游戏都是怎样最终变成几乎是纯键盘鼠标操作模式的)。
回到80年代,Atari2600带有一个按键和一个8方向的摇杆,这种输入方式就定义得非常明确,也易于玩家和我们这些人操作。NES则加了更多的按键,来满足玩家对功能无穷无尽的需求。最新一代XBOX和PlayStation的控制器带有2个模拟摇杆,1个D-Pad方向键,4个动作键和4个触发键,这是设计和人类工程学的杰作。如果能完成足够的练习,你将获得很好的操控水准,甚至可能超过那些只能在专业市场才能看到的或者军用的设备。多数年轻人用来在虚拟战场飞翔时使用的摇杆要比F16战机上使用的还先进很多年!
这种变革的不利之处在于,它把很多人性都忽略了。那些没有兴趣花必要的时间去掌握所有按键和摇杆的玩家跟那些愿意去做的并不一样。我们分别称这两种人为“玩家”和“休闲类玩家”。第一次体验Sony PS Move控制器之后,我就尝试将它和Kinect对比,并得出两个主要的结论:“Move的优点在于你用来指示方向的手指总是有个按钮可以按,但是,它的缺点却来自多余的所有按键---WTF!?”
没错,现在我老了,我没有耐心去学习该按些什么---这对我来说太多了。我只是狂按按键直到看到一些东西。但我当然不同意就这样被踢出玩家俱乐部!
GUI革新的一个方面就是使显示变得“柔软”。这意味着应用程序可以根据自身状态来改变显示,在任意时间都能反映最有用的控件。模拟机械计量表的对比度可能比LCD要好,但能动态改变显示内容的好处使得这种牺牲是值得的。NUI(Nature User Interface)方向的体感接口正在“软化”输入设备。你可以创造一个最适合当前应用程序的虚拟控制器。比如当你需要开车的时候,你有一个方向盘,当你需要切割的时候,你有一把剑(当然,切水果而已,我们要制造的是沙拉不是战争!)
回到主题,我相信完全有可能创造出灵敏的具有挑战性的体感游戏,而且是真正好玩的游戏,不只是“party模式”。
很多人将体感控制想象成需要用户记住很多复杂动作的一种接口,不同的动作被检测到后会触发一些操作。这样,体感动作岂不是简单地成为了控制器不同按键的复杂的全身编码?按我的品味这并不好玩。我更喜欢体感动作的1:1映射,也就是运动和控制的模拟映射。
PrimeSense,作为3D技术提供商,这几年来创造了不少概念级的游戏交互。可喜的是,其中很多的展示都可以在OpenNI 竞技场(Arena)网站上找到。
最初始的原型展示的是拳击体验,和使得Avatar可以在框定的游戏场景内移动的简单全身映射。
CKJ Boxing
CKJ:/OpenNIArena/Applications/ViewApp.aspx?app_id=477
Boxing:/OpenNIArena/Applications/ViewApp.aspx?app_id=528
“随身”物件
当骨骼追踪算法足够稳定的时候,我们展示了全身的追踪。将运动映射到Ogre3D的Sinbad角色是一个直接的成功案例,当然,这并不只归功于原始建模者和天才的计算机视觉研究人员的杰出工作。 只是把双手放到脖子后面,你就可以拔出Sinbad背上的剑。拔剑是个令人非常愉快的体验。你也很容易想象怎么对付攻击Sinbad的敌人(虽然,这个展示里面没有任何敌人)。这是对我称之为“随身物件”的体感游戏概念的首次展示。
SinbadNI:/OpenNIArena/Applications/ViewApp.aspx?app_id=466
这种做法有几个好处:
只要交互方式是由avatar身上的可见物体定义的,你就不需要记住各种动作。很自然地你就会去触碰能看到的物体。因为交互已经映射到你的身体,所以你不会碰到在虚拟世界中触摸物件的时候能体会到的深度感知问题。当你知道怎么操作你的物件的时候,你甚至可以享受“肌肉记忆”的好处。在示例中,剑总是在你的背上,在战斗进行得正激烈的时候,你可以一直盯着敌人,就像你装备了自己擅长的真实武器一样。
这些听起来都很好而且容易,但现实总是更有挑战性的。为了让它真正工作起来,你还得解决重定向和误触发的问题。
当avatar模型的身体比例跟用户的存在显著差别的时候,简单地将用户的关节点映射到avatar会带来不希望看到的结果。想象一下用户在摸自己的头而avatar的手却够不到的情形。如果你打算用碰撞方格来实现avatar上的触碰侦测,那么(手碰到头的)碰撞永远不会被侦测到。你可以在用户身上实现碰撞方格来取代,但这样你将牺牲学习曲线,因为这时候你不是通过avatar的手和物件之间这种可见的交互来学习和新的物件进行交互。这个问题可以通过更聪明的重定向算法来解决,该算法会通过考虑比例的差异或者缩放模型的关节来跟用户的尺度相匹配。
误触发通常和跟踪算法的局限性,人物行为被遮挡,复杂的姿势或者动态模糊有关。当然你可以指望用户的手会偶然碰到物件的触发区域。
误触发可以通过加入额外的触发要求来补偿: 临时性要求:触发物件之前短暂暂停一下(在暂停期间必须有一些动画)要求双手操作(象Sinbad的剑)要求触碰后朝某个指定方向移动 示例: 要取下皇冠,你必须触摸它然后抬手要取剑,匕首或箭,你必须先触碰然后朝一个合理的方向移动。 如果触碰以后手往别的方向移动便取消该操作 一个简单的实现是为每个物件定义两个触碰方格,同时要求用户以正确的次序穿过它们,然后才实际触发物件。和以往一样,强烈建议给正确的操作加入尽可能多的视觉反馈(比如将剑弹出一点,慢慢升出,同时发声)。
以上部分点子已经展示在新的Unity3D集成示例AngryBotsNI上:
AngryBotsNI:/OpenNIArena/Applications/ViewApp.aspx?app_id=586
待续:第二篇 - POV和场景
----------------------------------------------------------------------------------------------------------------------------------
译注:这是原作者最近在blogspot上的系列文章《Beyond casual: thoughts about gesture gaming》的译文,为方便中文读者而转过来的。可能的话请尽量阅读原文,原文写得比较诙谐。有翻译不当或错误的地方欢迎大家指正,谢谢阅读。
原文链接://01/part-1-opening-and-on-body-items.html
-----------------------------------------------------------------------------------------------------------------------------------
关于作者 Micha Galor
“当被问到怎么定义我自己的时候,我总是很困惑。我的工作包括软件工程,研究,设计和管理创新的投入。某一天我会简单地回答:一个发明家”
Micha Galor是PrimeSense公司(Kinect的3D传感技术提供商)应用和用户体验组的经理。他的团队专注于自然交互研究,包括对一些可实际运行的概念和展示的原型化,定义未来的人机交互语言等令人兴奋的工作。在PrimeSense之前,Micha领导Zoran(多媒体芯片商)的数码摄影团队,开发了应用在几款热销的拍照手机中的数字图像技术。Micha和他的太太以及两个小孩一起生活在以色列的特拉维夫。
OpenNI下载:/thank-you-download/