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

简介:

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

                                         

                Joust(1982)                                                                        LILIENTHAL'S "FLIEGEBERG" (1894)


滑翔

让我们先讨论无动力飞行

自由落体的跳伞运动可以给我们的自然全身控制滑翔提供灵感。

                                                           

                Para-Gliding                                                                                      SideKick's SkyDive

双手向后往前滑翔的时候将双手往身体上贴可以减小浮力和增加降落速度(这也跟双手的角度有关)。

把双手放下能减小阻力和加速往前运动,而张开双手则可以使滑翔减速。

除了手的姿态,身体旋转也应该能够同时控制滚转/俯仰/偏航。


扑翼

双手向下运动能产生浮力。在我们的简化模型中 --- 我们可以忽略向上运动(不像鸟类 - 即使没有收翅膀的过程也是可以的)。不停地做向下运动可以使浮力变得越来越强。

一旦开始飞行,浮力就变成3倍(所以最好的起飞方式,就是先用双手做激烈的扑打动作并跳起来)

同样的机制也支持特别的超级跳:如果用户在简单跳跃的同时使用了双手--- 他就可以跳得更高!


建立物理模型

一个完整的物理模型有点杀鸡用牛刀的感觉 --- 但一个全面考虑过的简化模型却可以将我们需要的行为多样性都封装起来。重温一下高中物理学过的动量,扭矩和三角知识就足够了(想想你曾经认为这些知识毫无用处...)


我们假定有两个矩形的无翼"翅膀"

  • 浮力来自翅膀下面的空气的向上推力。力的大小跟以下因素有关:虚拟的合速度,手的运动和翅膀跟空气流向量的夹角
  • 双手向上运动相应会改变翅膀的角度
  • 双手向下或向后运动则改变翅膀的旋转
你可以随意引入一些常量,比如翅膀表面,阻力系数和万有引力常数(g)。这些常数都需要经过调整,直到达到一个和游戏动力学相匹配的有趣体验。
请注意:你不需要硬件加速的物理引擎来做每一帧的三角函数模拟。。。

宇航员!
我们有喷气助推器的时候为什么还要那么麻烦地用翅膀来飞?我们可以使用双手来引入拉力,从而形成一个简单的控制模型。相应手势如下:
  • 张开双手减速
  • 双手一起向前或向后运动来控制俯仰
  • 单手向前另一只手向后来滚动
  • 单手伸出来改变偏航角度

 The Flying Moonman / ahillel

鸡和蛋的问题?
好了,我们可以飞了。但这并不意味着就会变得有趣。如果你去玩现有的鸟类/飞龙游戏,你就会发现大多数都不能带来飞行上的满足感。如果太容易飞,就会感觉像是另外一个飞行模拟器;如果太难飞,我们又回到了之前博文提到的“健身还是乐趣?”的问题。我们必须找出一些特别的游戏动力学来使飞行变得有趣和具有挑战性。

  • 你可以收集/应用有限的魔法来升级到可以飞行。想象在一个游戏中你可以吃到一个特别的东西,使得双手变成翅膀,这样你拍打得到的浮力就会放大...
  • 对于达尔文主义者,你可以进化并使翅膀慢慢地长大(从鸡开始直到能轻易滑翔的鹰 --- 当然这跟自然选择毫无关系)
  • 或者,你可以创造一个游戏逻辑,在这里你不用飞,而只是走动就可以做到所有事情。你只允许用户小飞一段以跳得更高更快,从而打破健身和乐趣之间的平衡。而关卡设计不能鼓励玩家过度去使用这种飞行能力。

                 Daedalus and lcarus

OpenNI竞技场中一些可自由下载的例子:
参考文献

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

                                         

                Joust(1982)                                                                        LILIENTHAL'S "FLIEGEBERG" (1894)


滑翔

让我们先讨论无动力飞行

自由落体的跳伞运动可以给我们的自然全身控制滑翔提供灵感。

                                                           

                Para-Gliding                                                                                      SideKick's SkyDive

双手向后往前滑翔的时候将双手往身体上贴可以减小浮力和增加降落速度(这也跟双手的角度有关)。

把双手放下能减小阻力和加速往前运动,而张开双手则可以使滑翔减速。

除了手的姿态,身体旋转也应该能够同时控制滚转/俯仰/偏航。


扑翼

双手向下运动能产生浮力。在我们的简化模型中 --- 我们可以忽略向上运动(不像鸟类 - 即使没有收翅膀的过程也是可以的)。不停地做向下运动可以使浮力变得越来越强。

一旦开始飞行,浮力就变成3倍(所以最好的起飞方式,就是先用双手做激烈的扑打动作并跳起来)

同样的机制也支持特别的超级跳:如果用户在简单跳跃的同时使用了双手--- 他就可以跳得更高!


建立物理模型

一个完整的物理模型有点杀鸡用牛刀的感觉 --- 但一个全面考虑过的简化模型却可以将我们需要的行为多样性都封装起来。重温一下高中物理学过的动量,扭矩和三角知识就足够了(想想你曾经认为这些知识毫无用处...)


我们假定有两个矩形的无翼"翅膀"

  • 浮力来自翅膀下面的空气的向上推力。力的大小跟以下因素有关:虚拟的合速度,手的运动和翅膀跟空气流向量的夹角
  • 双手向上运动相应会改变翅膀的角度
  • 双手向下或向后运动则改变翅膀的旋转
你可以随意引入一些常量,比如翅膀表面,阻力系数和万有引力常数(g)。这些常数都需要经过调整,直到达到一个和游戏动力学相匹配的有趣体验。
请注意:你不需要硬件加速的物理引擎来做每一帧的三角函数模拟。。。

宇航员!
我们有喷气助推器的时候为什么还要那么麻烦地用翅膀来飞?我们可以使用双手来引入拉力,从而形成一个简单的控制模型。相应手势如下:
  • 张开双手减速
  • 双手一起向前或向后运动来控制俯仰
  • 单手向前另一只手向后来滚动
  • 单手伸出来改变偏航角度

 The Flying Moonman / ahillel

鸡和蛋的问题?
好了,我们可以飞了。但这并不意味着就会变得有趣。如果你去玩现有的鸟类/飞龙游戏,你就会发现大多数都不能带来飞行上的满足感。如果太容易飞,就会感觉像是另外一个飞行模拟器;如果太难飞,我们又回到了之前博文提到的“健身还是乐趣?”的问题。我们必须找出一些特别的游戏动力学来使飞行变得有趣和具有挑战性。

  • 你可以收集/应用有限的魔法来升级到可以飞行。想象在一个游戏中你可以吃到一个特别的东西,使得双手变成翅膀,这样你拍打得到的浮力就会放大...
  • 对于达尔文主义者,你可以进化并使翅膀慢慢地长大(从鸡开始直到能轻易滑翔的鹰 --- 当然这跟自然选择毫无关系)
  • 或者,你可以创造一个游戏逻辑,在这里你不用飞,而只是走动就可以做到所有事情。你只允许用户小飞一段以跳得更高更快,从而打破健身和乐趣之间的平衡。而关卡设计不能鼓励玩家过度去使用这种飞行能力。

                 Daedalus and lcarus

OpenNI竞技场中一些可自由下载的例子:
参考文献




本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366224,如需转载请自行联系原作者
相关文章
|
3月前
都市天际线(游戏无法打开画面解决方案总结)
都市天际线(游戏无法打开画面解决方案总结)
88 0
|
定位技术 图形学
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
Unity3D——射击游戏(多地图,多人物,枪支切换,驾车,扔手雷等功能,堪比小型和平精英)
|
9月前
|
机器学习/深度学习 传感器 人工智能
耗时2天,我自制了一台体感游戏机
但往前几年,其实还有另一个非常火的体感游戏设备,就是 xbox 上的 kinect。和 switch 用带有传感器的手柄来识别玩家动作不同,kinect 使用的是一组摄像头,通过图像来识别玩家的动作。
|
11月前
|
Java
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏18玩家攻击动画实现
手把手一步一步教你使用Java开发一个大型街机动作闯关类游戏18玩家攻击动画实现
128 0
|
机器学习/深度学习 存储 算法
全家要用机器人上货了?!50公里外VR操控,延迟不到一秒,网友:不愧是你,霓虹
全家要用机器人上货了?!50公里外VR操控,延迟不到一秒,网友:不愧是你,霓虹
132 0
|
机器人 定位技术 vr&ar
花式毕业典礼:纽约大学VR复原校园实景,虚拟同学丑到无法相认
花式毕业典礼:纽约大学VR复原校园实景,虚拟同学丑到无法相认
181 0