不同文化的古老梦想中都包含了飞行。人类总是抬头妒忌地看着鸟儿飞越天空。我们学会了制造机器来帮助自己弥补没有翅膀或者力量不够的缺点,但是把自己放进铁盒子里面也意味着我们失去了一直渴望的自由飞行体验。而当我们尝试要回它的时候,这种体验已经变得非常危险 --- 物理学定律在用强大的地心引力惩罚我们。再见,牛顿 --- 我要切换到我的虚拟世界啦!
Joust(1982) LILIENTHAL'S "FLIEGEBERG" (1894)
滑翔
让我们先讨论无动力飞行
自由落体的跳伞运动可以给我们的自然全身控制滑翔提供灵感。
Para-Gliding SideKick's SkyDive
双手向后往前滑翔的时候将双手往身体上贴可以减小浮力和增加降落速度(这也跟双手的角度有关)。
把双手放下能减小阻力和加速往前运动,而张开双手则可以使滑翔减速。
除了手的姿态,身体旋转也应该能够同时控制滚转/俯仰/偏航。
扑翼
双手向下运动能产生浮力。在我们的简化模型中 --- 我们可以忽略向上运动(不像鸟类 - 即使没有收翅膀的过程也是可以的)。不停地做向下运动可以使浮力变得越来越强。
一旦开始飞行,浮力就变成3倍(所以最好的起飞方式,就是先用双手做激烈的扑打动作并跳起来)
同样的机制也支持特别的超级跳:如果用户在简单跳跃的同时使用了双手--- 他就可以跳得更高!
建立物理模型
一个完整的物理模型有点杀鸡用牛刀的感觉 --- 但一个全面考虑过的简化模型却可以将我们需要的行为多样性都封装起来。重温一下高中物理学过的动量,扭矩和三角知识就足够了(想想你曾经认为这些知识毫无用处...)
我们假定有两个矩形的无翼"翅膀"
- 浮力来自翅膀下面的空气的向上推力。力的大小跟以下因素有关:虚拟的合速度,手的运动和翅膀跟空气流向量的夹角
- 双手向上运动相应会改变翅膀的角度
- 双手向下或向后运动则改变翅膀的旋转
你可以随意引入一些常量,比如翅膀表面,阻力系数和万有引力常数(g)。这些常数都需要经过调整,直到达到一个和游戏动力学相匹配的有趣体验。
请注意:你不需要硬件加速的物理引擎来做每一帧的三角函数模拟。。。
宇航员!
我们有喷气助推器的时候为什么还要那么麻烦地用翅膀来飞?我们可以使用双手来引入拉力,从而形成一个简单的控制模型。相应手势如下:
- 张开双手减速
- 双手一起向前或向后运动来控制俯仰
- 单手向前另一只手向后来滚动
- 单手伸出来改变偏航角度
The Flying Moonman / ahillel
鸡和蛋的问题?
好了,我们可以飞了。但这并不意味着就会变得有趣。如果你去玩现有的鸟类/飞龙游戏,你就会发现大多数都不能带来飞行上的满足感。如果太容易飞,就会感觉像是另外一个飞行模拟器;如果太难飞,我们又回到了之前博文提到的“健身还是乐趣?”的问题。我们必须找出一些特别的游戏动力学来使飞行变得有趣和具有挑战性。
- 你可以收集/应用有限的魔法来升级到可以飞行。想象在一个游戏中你可以吃到一个特别的东西,使得双手变成翅膀,这样你拍打得到的浮力就会放大...
- 对于达尔文主义者,你可以进化并使翅膀慢慢地长大(从鸡开始直到能轻易滑翔的鹰 --- 当然这跟自然选择毫无关系)
- 或者,你可以创造一个游戏逻辑,在这里你不用飞,而只是走动就可以做到所有事情。你只允许用户小飞一段以跳得更高更快,从而打破健身和乐趣之间的平衡。而关卡设计不能鼓励玩家过度去使用这种飞行能力。
Daedalus and lcarus
OpenNI竞技场中一些可自由下载的例子:
- Broomzy / De-Panther: http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=539
- The Flying Moonman / ahillel: http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=522
- Ice Glider / lumen: http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=415
参考文献:
- Étienne-Jules Marey: http://www.ctie.monash.edu.au/hargrave/marey.html
- Bird fly lecture: http://people.eku.edu/ritchisong/554notes3.html
- How Ornithopters Fly: http://ornithopter.de/english/gait.htm
- Otto Lilienthal: http://en.wikipedia.org/wiki/Otto_Lilienthal
----------------------------------------------------------------------------------------------------------------------------------
译注:这是原作者最近在blogspot上的系列文章《Beyond casual: thoughts about gesture gaming》的译文,为方便中文读者而转过来的。可能的话请尽量阅读原文,原文写得比较诙谐。有翻译不当或错误的地方欢迎大家指正,谢谢阅读。
-----------------------------------------------------------------------------------------------------------------------------------
关于作者 Micha Galor
“当被问到怎么定义我自己的时候,我总是很困惑。我的工作包括软件工程,研究,设计和管理创新的投入。某一天我会简单地回答:一个发明家”
Micha Galor是PrimeSense公司(Kinect的3D传感技术提供商)应用和用户体验组的经理。他的团队专注于自然交互研究,包括对一些可实际运行的概念和展示的原型化,定义未来的人机交互语言等令人兴奋的工作。在PrimeSense之前,Micha领导Zoran(多媒体芯片商)的数码摄影团队,开发了应用在几款热销的拍照手机中的数字图像技术。Micha和他的太太以及两个小孩一起生活在以色列的特拉维夫。