2d游戏中的相机震动

# 游戏设计

为什么我们需要相机震动

相机震动可以让游戏 feel 更 “好”,具体而言,

  1. 增强反馈:相机震动可以在玩家执行某些动作时提供即时反馈,例如攻击、跳跃或受到伤害。这种反馈可以让玩家更好地理解他们的行为对游戏世界的影响。
  2. 增加沉浸感:通过模拟真实世界中的相机运动,游戏可以让玩家感受到更强的沉浸感。例如,在激烈的战斗场景中,微妙的相机震动可以让玩家感受到紧张和刺激。
  3. 提升游戏节奏:相机震动可以用来强调游戏中的关键时刻,例如击败敌人或完成任务。这种视觉上的强调可以帮助玩家更好地理解游戏节奏和重要事件。

了解震动

震动的类型

游戏中的振动无非是模仿现实中的振动,了解现实中的振动,我们可以更好的设计游戏中的振动。

首先,按照目标来看,震动可以分为以下几种类型:

  1. 位置震动:相机在空间中的位置发生变化。
  2. 旋转震动:相机的朝向发生变化。
  3. 缩放震动:相机的缩放级别发生变化。
  4. 混合震动:同时应用位置、旋转和缩放的震动。

其次,按照震动的特征来看,震动可以分为以下几种类型: 1. 简谐震动:震动的幅度和频率是恒定的。 2. 阻尼震动:震动的幅度随着时间逐渐减小。 3. 各种非线性震动:震动的幅度和频率不是线性关系。

如果按照震动的规律来看,震动可以分为以下几种类型: 1. 简谐振动 2. 周期振动 3. 准周期振动 4. 过渡振动 5. 窄频带随机振动 6. 宽频带随机振动 7. 不平稳随机振动

对于人眼的感知

但是上面的那么多震动类型,对于人眼来说,实际上是比较难以分辨的。比如下面两种震动方式:

这里依次播放了两种震动模式,一个是窄频带随机震动,一个是不平稳随机震动。

这里依次播放了两种震动模式,一个是阻尼震动,一个是弹簧震动,它们在频率分布或者振幅分布上拥有特殊的规律。

人眼对于震动的感知可以分为两个部分: 1. 基于 运动感知 的 瞬时感知 2. 基于 模式识别 的 持续感知

对于瞬时感知,人眼对于震动的频率非常敏感,尤其是高频震动。对于持续感知,人眼更擅长于识别震动的模式和规律。

设计震动

我们 基于上述的震动类型和人眼的感知特点,可以设计出更符合玩家体验的震动效果。

匹配人眼的瞬时感知

查看下面的两种震动方式:

我们可以发现,如果是使用随机偏移生成的震动,它会看起来非常“难受”,这种不适感有两个成因: 1. 瞬时感知困难:是因为对于一个人眼来说,随机偏移将会使得在短时间内,物体发生过大的位移,导致人眼对于运动的感知存在一定的困难。 2. 频率过高:是因为随机偏移的震动频率理论上是无限的(实际和帧率有关),而人眼对于高频震动的感知是非常敏感的。这种高频震动会让人感到不适。

或许你可能会认为还好,但是如果是看下面这个对比(仅仅是将原本的小球替换为了多个点):


Reference