放大游戏相机

第一人称视角,第三人称视角,自上而下:这些均指视频游戏机的位置和角度。 相机是您进入游戏数字世界的眼睛。 有时,它的目的是通过镜头光晕,景深等来模仿现实生活。 设计一款不仅能正确展示您的游戏而且让人身临其境的相机,这一点很重要。

我们可以在相机中添加和使用许多功能,这些功能可以极大地改善从精美的着色器到相机运动到最佳相机设置的整体体验。 让我们将您的摄影技巧提升到新的水平!

相机的视场将在很大程度上取决于您要创建的游戏类型。 您甚至可能有多个具有不同FoV值类型的摄像机。 第一人称射击游戏通常使用两个具有不同FoV值的摄像机来显示第一人称视角,而另一个用于显示环境。 这通常会导致玩家的武器看上去更大,而环境却保持不变。 以下是第一人称视角下不同FoV的一些示例。

Unity中的默认60视场

两台摄像机 ,其中一个设置为仅渲染FoV为77的角色,另一台设置为FoV为72的摄像机以渲染环境

对于诸如第一人称射击游戏之类的快速游戏,较大的FoV可能是首选。 很多玩家还希望能够调整自己的FoV。 FoV越大,表示屏幕上显示的越多。 较低的FoV对恐怖游戏或您想要诱发幽闭恐惧症的任何游戏都非常有用。 通常,出于性能原因,控制台的FoV较低,但在PC上,可以提高FoV。 在下面,您会发现高和低FoV的夸大示例。

高FOV的环境意味着更少的玩家移动即可看到更大的区域。 角色FOV下方保持不变,但用于显示环境的摄像机设置为100,这意味着我们现在可以看到我们面前的整个平台。 这也会产生“鱼眼”效果。

较低的FOV会让您感到不舒服和不自然,非常适合恐怖游戏或任何您想要模拟狭窄空间的事物,例如藏在储物柜中或在通风孔中爬行

为您的游戏找到合适的FoV将需要进行大量调整。 并非所有游戏都具有特定的FoV值,并且看起来与您要向玩家展示的内容有关。 开放的世界可能具有较高的FoV,以使玩家专注于远处的事物,而格斗游戏可能具有较高的FoV,以专注于动作。

通常在游戏中会发生爆炸,或者会出现一些大型生物,一些重物会掉落在地,而玩家的镜头不可避免地会晃动。 电影中也会发生这种情况,可能会增加游戏的深度,但也可能会过分完成。 太多的晃动会使玩家感到烦恼或恶心。 有时会大有帮助。 细微的相机动作可以提供“自然的感觉”。

持续的不稳定运动

此效果可用于一致或不稳定的移动,这些移动会随机在几个不同的方向晃动相机。 此效果还可以用于穿越您所在区域的大型车辆。 想想您的玩家驾驶的战车,大型火箭起飞,甚至是暴风雨。 这些将是持续的运动,可能持续几秒钟或更长时间。

快速动作

另一方面,我们有不稳定但快速的动作,例如爆炸。 想像一下手榴弹落在玩家身上并迅速爆炸。 根据您手榴弹的射程,它可能会产生剧烈的震动或微妙的震动,但是无论哪种方式,它都会很快,通常长度不会超过一秒钟。 在下面,您将看到工作中的示例。

使用与上述相同的效果,我们可以使抖动非常迅速且突然,以模仿爆炸的效果。 这是两个例子,看起来更有影响力?

具有相同的场景和效果,但是这次每次爆炸发生时相机都会快速晃动。 第一次爆炸是实时的,第二次被减慢了约50%,以更加密切地注意到这种影响。

请看下面发布的脚本,开始为相机添加一些动作以爆炸和持续晃动。 在脚本中,您将找到一个协程,该协程将根据您指定的长度摇动相机。 时间越长,意味着持续的震动,例如上面显示的沙尘暴。 非常短的时间对于快速撞击(例如使用0.25秒的爆炸时间)很有用。

有兴趣尝试这些示例中使用的脚本吗? 看一下“ Camera Shake”脚本,然后进行设置。 它包含一个soloStart bool,因此您可以使用Start方法自动对其进行测试,也可以从另一个脚本或事件中调用公共方法StartExplosionShake

对于第一人称游戏,摄像机跟踪相对简单。 它充当玩家的眼睛。 当您的播放器移动时,它会移动,并在您观看的位置旋转。 我们在第一人称游戏中使用的机制将与在第三人称游戏中使用的机制完全不同。

这些类型的相机通常会跟着我们的播放器远距离跟随。 在某些游戏中,此距离非常大,例如在实时策略(RTS)游戏中,玩家需要看到相当大的游戏区域。

与第一人称相机相比,第三人称相机在设计过程中可能需要更多的远见。 您需要考虑摄像机的平稳移动,剪切问题,是否应使用动态控制的摄像机或使其保持相对固定等问题。 最好的相机是您根本没有注意到的相机。 人们只会在感到不舒服时才注意到相机,或者对相机的工作方式感到沮丧。

我们都知道这样的游戏。 相机卡在了物体后面,所以现在看不到东西了。 相机移动太多或感觉不平稳,从而使人感到恶心,这是有些人无法站立观看“发现的镜头”类电影的常见原因。 相机移动过多会导致我们尝试跟踪所有情况。

在第三人称游戏中我们将重点关注三个主要领域,以创建具有平滑感的相机: 距离,角度平滑度

距离

相机的距离应保持与播放机足够近,以便可以看到所需的一切。 我知道这听起来有些含糊,但是由于播放机和相机之间的距离较大,因此增加了视线中断的问题。 如果您在拐角处狭窄且空间狭窄的区域玩游戏,这一点更加明显。 根据您的游戏环境,您可能需要在近距离和远距离之间切换。

角度

在第三人称游戏中,有几种方法可以使您的相机倾斜。 在第三人称恐怖游戏中,您可能会近距离观看玩家的肩膀风景。 对于更开放的世界型游戏,您可能需要炫耀整个身体,并且可以清楚地看到玩家面前的物体,而与玩家之间还有一段距离。

角度应增强玩家会遇到的整体游戏机制。 近距离和角度意味着近距离战斗,密闭空间,近距离看到较小的细节。

这是3D游戏工具包中的一个示例,该示例具有良好的角度和与玩家的距离

请注意,我如何看到整个播放器以轻松查看周围的环境。 它的角度也很好,这样我就可以看到敌人或重要物品在我前面。 这种类型的相机在更开放的世界游戏中很常见。

另一个注意事项是相机的使用障碍检测。 以下是一些示例,显示了当我尝试将摄像机故意绕入障碍物时,它将如何自动将摄像机移近角色。 这是一种很好的做法,可以防止相机卡在障碍物中并阻碍视野。

平滑处理

平滑摄像机的运动可能是看似融入游戏中的摄像机与使人生病的摄像机之间的区别。 看看下面的两个相机设置。 有人将相机连接到播放器,因此相机中也会感觉到任何细微的动作。

通过此摄像机还可以感觉到快速而突然的动画。 另一台相机已平滑。 仅跟踪较大的运动,并且不会直接附加到播放器上。 通过忽略微小而突然的变化,感觉会更加流畅和易于观看。

在这里,我们有一台照相机,它是角色的孩子。 因此,当角色移动时,摄像机也会移动。 这可能会有点刺耳,尤其是在四处走动时会使人感到不适。 这也使得跟踪玩家变得更加困难。

这是2D GameKit的一个示例,该示例使用具有“惰性跟踪”功能的摄像机,从本质上讲,它可以平滑地跟随玩家。 在这里可以找到相同的通用力学,但是这次将它们平滑了一点,感觉更加自然。

上面的两个gif图像显示了相机在跳跃时会上下移动,但是在某些情况下,您可能不希望相机垂直跟踪。 有时,将相机固定在特定的位置会有所帮助。 再次从相同的2D GameKit中,我们看到了以下示例:

无需跟踪此类场景中的跳跃,因为我们可以看到播放器上方的所有内容。 我们不应跳到上方的任何平台上,因此只需要水平跟踪即可。

在这里,我们有一个不进行平滑处理的示例,还是将照相机作为儿童时,您将看到如何跟踪每次跳跃,这可能会给玩家造成不适。

如果您使用的是最新版本的Unity,您将很高兴知道Cinemachine现在是Unity的一部分。 Cinemachine是一款绝对令人称奇的工具,可用于创建各种摄像机,从创建电影剪辑场景到可以实时使用的更多动态摄像机。

使用Cinemachine的相机已经具有大量的设置和功能,可以使您的相机绝对令人赞叹。 使玩家保持特定的拍摄,平滑,移动,甚至“铁轨”式摄像机设置。 我强烈建议您使用Cinemachine增强摄影技巧。

如果您想了解如何在Unity中使用Cinemachine,请观看我们的现场直播Unity电影:Cinemachine +时间轴

相机是视频游戏开发中至关重要的方面。 游戏很大程度上是一种视觉媒介,意味着相机可以创造或破坏游戏。 不要让相机成为薄弱环节。 您的相机应该感觉像是播放器的自然延伸。 如果您还有其他有关如何改进相机的提示和技巧,请在评论中告诉我!