已转至www.kinectutorial.com



不同文化的古老梦想中都包含了飞行。人类总是抬头妒忌地看着鸟儿飞越天空。我们学会了制造机器来帮助自己弥补没有翅膀或者力量不够的缺点,但是把自己放进铁盒子里面也意味着我们失去了一直渴望的自由飞行体验。而当我们尝试要回它的时候,这种体验已经变得非常危险 --- 物理学定律在用强大的地心引力惩罚我们。再见,牛顿 --- 我要切换到我的虚拟世界啦!

                                         

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》的译文,为方便中文读者而转过来的。可能的话请尽量阅读原文,原文写得比较诙谐。有翻译不当或错误的地方欢迎大家指正,谢谢阅读。

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

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

关于作者 Micha Galor

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

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

不只是休闲:关于体感游戏的一些思考(六)--- 飞行相关推荐

  1. 不只是休闲:关于体感游戏的一些思考(一)--- 开篇和“随身”物件

    已转至www.kinectutorial.com 开篇 微软的Kinect非常成功地将全身体感游戏平台带给了公众.这套系统包含一个PrimeSense公司的3D传感解决方案,4个麦克风组成的超炫阵列, ...

  2. 不只是休闲:关于体感游戏的一些思考(二) --- POV和基本场景

    已转至www.kinectutorial.com POV 从口语和故事讲述中借用术语来比喻游戏的观察点(Point of View)很常见.第一人称射击类使得你可以以游戏角色的视觉看到屏幕下方自己虚拟 ...

  3. [体感游戏]关于体感游戏的一些思考(三) --- 射击

    终于来了...大家一直在期待的部分 --- 射击! 出于某种原因,人们总是被射击弹丸的能力,而引入暴力,则是爆炸的能力所吸引.抛开那些蹩脚的哲学,射击是hard core游戏体验必不可少的,所以让我们 ...

  4. [体感游戏]关于体感游戏的一些思考(一)--- 开篇和“随身”物件

    开篇 微软的Kinect非常成功地将全身体感游戏平台带给了公众.这套系统包含一个PrimeSense公司的3D传感解决方案,4个麦克风组成的超炫阵列,运行在XBOX上的语音识别算法和顶级计算机视觉算法 ...

  5. [体感游戏]关于体感游戏的一些思考(五) --- 导航

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

  6. [体感游戏]关于体感游戏的一些思考(二) --- POV和基本场景

    POV 从口语和故事讲述中借用术语来比喻游戏的观察点(Point of View)很常见.第一人称射击类使得你可以以游戏角色的视觉看到屏幕下方自己虚拟的手和武器.第三人称则让你从后面观察你的avata ...

  7. [体感游戏]关于体感游戏的一些思考(四) --- 克隆战争!

    我们喜欢我们的同类. 我们的意识对我们的后代有好感,因为他们看起来跟我们,我们的家庭和氏族很相似.这是在亿万年的进化中形成的,在这过程中,自然选择让我们寻找伴侣和安全.感谢基因工程,我们将很快需要面对 ...

  8. [体感游戏]关于体感游戏的一些思考(七) --- “我是泰山,你是简?”

    "Johnny-Cab" / Total Recall(1990) 人猿泰山(1932) 来自IMDb: 在这个电影的任何时候"我是泰山,你是简"都没有被说出来 ...

  9. [体感游戏]关于体感游戏的一些思考(六)--- 飞行

    不同文化的古老梦想中都包含了飞行.人类总是抬头妒忌地看着鸟儿飞越天空.我们学会了制造机器来帮助自己弥补没有翅膀或者力量不够的缺点,但是把自己放进铁盒子里面也意味着我们失去了一直渴望的自由飞行体验.而当 ...

最新文章

  1. weblogic 配置mysql数据源Cannot load driver class: com.mysql.jdbc.Driver的问题
  2. 达摩院副院长金榕:中国 AI 将向何处?热潮有回落,但不应沮丧
  3. java awt canvas_JavaFX AWT Canvas
  4. C++11中值得关注的几大变化 .
  5. mac上安装dart环境
  6. 机器人 海难饥荒_饥荒:这个人物后期轻松单挑Boss,缺点却很小,大力士都比不过...
  7. face alignment by 3000 fps系列学习总结(二)
  8. pat 乙级 1017 A除以B(C++)
  9. 吉林农业科技学院计算机大师,吉林农业科技学院
  10. 对眼睛有利的屏幕颜色
  11. CSS笔记-除了a标签外的hover属性的应用
  12. python分数计算器_python计算器实现过程
  13. php视频自动播放源码,多个视频网站的视频自动播放代码
  14. python编写一个汽车类_python实现汽车管理系统
  15. C语言保留字(关键字)汇总——转载
  16. php解析bt,php读取BT文件信息lightbenc.php库使用说明
  17. python 听歌识曲_Python实现提取谷歌音乐搜索结果的方法
  18. PyTorch学习笔记2:nn.Module、优化器、模型的保存和加载、TensorBoard
  19. Node.js 有难度的面试题,你能答对几个?
  20. ElasticSearch的基本操作第三章

热门文章

  1. VCS第一讲:vcs和verdi演示一个简单的验证case
  2. three后期处理与多通道渲染
  3. average and standard deviation-平均数和标准差
  4. 安装QQ的时候显示创建文件夹失败,无法正常安装,请尝试选择新的安装目录的解决办法
  5. 学android开发 不得不去的好地方
  6. 艺考报名照的尺寸是多少?如何制作艺考报名照?
  7. iOS面试备战-网络篇
  8. Android 强制应用全局横屏或竖屏
  9. PX4模块设计之四十四: bmp280模块
  10. 什么是API测试?开发必知的8种API自动化测试类型