横版游戏的摄像机移动理论与实践(上)

作者:奇诡故事贩卖机 机核 2019-09-29
三十年2D游戏摄像机发展史

译者注:本文原作者Itay Keren(Untame工作室创始人,《Mushroom 11》作者),文章发布于GAMASUTRA。是其于2015年游戏开发者大会(GDC)上《How Cameras in Side-Scrollers Work》演讲稿件的修改补充版。

原文地址:《Scroll Back:The Theory and Practice of Cameras in Side-Scrollers

原视频:《How Cameras in Side-Scrollers Work

本文较长并有大量动图,请注意流量使用情况。

概述(Overview)




《蘑菇11》("Mushroom 11")2015 Untame

上图是开发中的《Mushroom 11》,开发中遇到很多设计和技术难题。游戏角色形状的动态变化或是顶点动画带来的种种问题,起初没期待能直接找到参考案例。然而纵观三十多年的游戏历史,却很惊讶的发现游戏摄像机的运用方法却几乎没什么人讨论。

于是我决定从2D游戏的历史发展上一步一步看过来,整理他们当时所面临的挑战,并逐步分析方案的演化过程。由于没有专业术语能够直接将这些方案阐述出来,我就在搜集过程中试着按类归纳,用自己的词汇描述出来(方便日后进行检索)。

滚动(Scrolling)

滚动或平移,当试图展现的场景在单屏幕下容纳不下时的表现手法。其实有很多潜在问题需要在滚动中解决,比如:选择哪些是必须要展现给玩家看的;作为设计者希望玩家去关注什么;解决问题的同时如何带给玩家流畅而舒适的感受。

虽然今天讨论的内容都是2D摄像机系统,但很多理念在3D的设计上也是共通的。

神经学背景(Neural Background)

在讨论游戏之前,先来接触一些神经学的背景知识,以便我们能够更好的了解我们的视觉和感知系统。也就能够理解有些滚动为什么设计的不好了。


中心窝是眼球内部的接收器,负责视觉中最清晰的部分。视觉中的第二、三条纽带分别是副中心窝和近中心窝,负责减轻视觉中图像的偏移,善于捕捉图像的位置变换,并且能够很迅速的察觉到危险形状的物体以及他们的速度和方向。

这些视觉输入通过一些高速的神经通道直达脑部的杏仁体,允许我们在大脑视觉皮质层解析视觉输入前做出更快的反应。只需要花点时间训练一下,就能将某些视觉信息和相应的反应操作捆绑在一起,这在游戏设计中也十分有用。


前庭系统位于内耳,负责维持身体平衡和方向感。大脑接收来自前庭系统的神经信号就可以帮助我们维持身体的平衡,并且能够辅助我们的视觉系统,使我们集中注意力到想要观看的细节上。有些人,比如我这种,喜欢在车内看书,但这时车身加速度不断变化,而视觉上接收到相应的辅助反馈又很少,就有很可能引起头晕恶心。

反之亦然:中心窝接收到视觉上背景物体的变化,于是等待前庭系统相应的反馈信号。然而什么神经反馈都没有(因为这时玩家正老老实实的坐在电脑前面),带来的负面效果是一样的。

尽管在3D场景中(尤其是VR)感官信号之间(视觉上和听觉上)冲突所引发的不适和眩晕感表现更为明显,但在2D游戏中所带来的影响也是不可忽视的。

注意力,互动感与舒适度(Attention,Interaction and Comfort)

我将摄像机滚动所带来的种种需要解决的问题与挑战分成了以下三类,以便我们更好的理解:


注意力:利用摄像机提供有效的游戏信息显示和反馈(玩家需要看到些什么)

互动感:把玩家所作的操作清晰的反馈出来,让背景变化变得可预测,并且与操作紧密相连(玩家想要看到些什么)

舒适度:根据背景变化的前后关系进行调整或减缓背景的变化速率(如何让摄像机平稳舒适的移动以满足视觉上的需求)

经典滚动设计(Scrolling Nostalgia)


那么就从80年代开始我们的旅程吧。有很多设计师,即使是30年后的今天再回头看,也很难想象他们是如何在技术有限的情况下克服重重困难,在那个年代就发明了如此多的独创设计方案的。

文章里也会提到很多近10年的独立游戏,这些独立制作者有很多相当有创意的表现方式,并且在注意力的把控上也做得很好,而且摄像机的运作方式也截然不同。

运动追踪(Follow The Action)

把所有的注意力都放在你所控制的物体上

先从最基础的说起。大部分游戏中,玩家对主角有着绝对的控制权。也就意味着,所有的注意力都应当直接引向玩家所控制的角色,而摄像机也应当紧紧的跟随着角色运动。

在80年代早期,实现滚动还是个很难的事。尽管开发者需要面对CPU、内存容量与分配等等限制所带来种种问题,仍然有很多非常杰出的滚动方案诞生,并且也克服了这些硬件、软件上的限制。当然那个时代的案例中,运动还很简单,而且游戏分辨率也比较低。

值得一提的是早在1980年,类似《拉力赛车》这种作品,已经能够解决技术限制,并且在画面展示上实现了真正意义上的双轴摄像机。通过对指定位置的锁定机制,让赛车始终锁定在摄像机正中央,随之产生的镜头运动也都在玩家的意料之中。

《拉力赛车》("Rally-X")1980 Namco

位置锁定(position-locking)-锁定玩家所操控的角色注:本文中的摄像机分类是我参考多种资料和作品后自创的。如果您觉得还算有用,发现有可以改进的地方欢迎联系我(译者注:此处指联系Itay Keren)。

关于位置锁定摄像机还有另一个例子,由西山隆志设计的《功夫》。西山隆志也是《月球巡逻车》的设计者,后来还制作了《街头霸王》。

《功夫》还使用了另一个机制,边界捕捉,把摄像机的移动范围限制在当前关卡内,这种设计可以允许角色离开摄像机追踪锚点继续移动。

《功夫》("Kung-Fu Master")1984 Irem

位置锁定(position-locking)边界限位(edge-snapping)-设定一个摄像机调整位置的边界限制。边界限位的机制几乎在每个游戏中都有,下文再遇到就暂且不标出来了

位置锁定虽然是很基础的手法但确实很实用。制作类似《泰拉瑞亚》这样的冒险游戏时,角色相对于整块屏幕的比例很小,而且跳跃幅度也不大,动起来的效果很好,各个方向也都留有足够的视野。

《泰拉瑞亚》("Terraria")2011 Re-Logic

位置锁定(position-locking)摄像机运动约束(Curb Camera Motion)

避免不必要的或预料之外的抖动

如果不是必须要移动摄像机,如何能避免它的移动呢?早在30年前,摄像机滚动还存在很多问题:非常耗费CPU,屏幕上很多东西都需要刷新显示。就算能够成功动起来,单位时间内移动大量的像素点也会导致运动不连贯。所以最好的方法是将滚动的需求降到最低。比如让角色在屏幕有限的范围内移动,只有当角色碰到边缘时才运动摄像机。

很多人认为《跳跳车》是历史上第一个平台跳跃游戏,虽然严格意义上讲,玩家只是不断的自动跳跃,能做的操作也因为受到跳跃机制的限制而只有向左或向右移动而已。当时大部分游戏摄像机都是自动移动的,促使玩家在避开障碍的同时,要不断跟上摄像机的视野。

《跳跳车》("Jump Bug")1981 Hoei/Coreland(Alpha Denshi)

摄像机窗体(camera-window)-当玩家碰到窗体边界时推动摄像机

尽管是为了解决运动层面上的问题才使用摄像机窗体,但实际上它还同样解决了另外一个很多设计者本身都没意识到的问题,而它所带来的设计标准,也致使后来数不清的平台跳跃游戏都沿用这种设计。不过摄像机窗体技术也带来了新的难题,例如玩家在朝着窗体边缘移动时,视野很小,玩家很难判断之后会遇到什么。

另一款我非常喜欢的游戏,《拉斯坦传奇》,有双轴移动并且还有多个路线可选。它也是第一款将摄像机和游戏机制间的关系带来革命性变化的作品。摄像机窗体的高度和人物跳跃高度一致,因此只要人物在窗体内进行普通跳跃就不会造成摄像机纵向的移动。实现了消除摄像机抖动的需求。

但这个例子中也有个比较严重的缺陷,玩家很难看到从上方来的敌人,尤其是当拉斯坦已经在窗体内发生纵向移动的时候会更难发现。并且在需要向左移动时,尤其是城堡那关,由于窗体只留了很窄小的空间,会非常不舒服。

《拉斯坦传奇》("Rastan Saga")1987 Taito

摄像机窗体(camera-window)

摄像机窗体的技术在新出的游戏中也还在用。再来看《菲斯》,横向的窗体边缘在空间旋转时也保持不变,实际上,空间旋转的轴心是经过调整的以保证角色始终处于窗体内。Fez的摄像机距离它默认追随物体的空间距离非常远,对于它独特的玩法而言是非常理想的解决方案,后面我们也会再解释。

《菲斯》("Fez")2012 Polytron Corporation

摄像机窗体(横向)(camera-window horiz.)-空间变换时也持续作用位置锁定(纵向)(position-locking vert.)线性插值缓冲(lerp-smoothing)区域性锚点(region-based-anchors)手动操控(manual-control)-用右摇杆可以进行手动摇摄注:未加粗的术语下文会进行讲解

捕捉与吸附(Snapping)

摄像机在窗体内的移动修正

上文介绍了摄像机窗体的设计来减少相机的移动,但从《跳跳车》和《拉斯坦传奇》的例子中不难看出,即使玩家在窗体内进行移动,也还有很多问题。现在就来讨论几种修正的方法。

《忍》应该说是我最喜欢的经典游戏之一了,游戏中有很多需要在不同平台间进行大跳的操作。设计师就想了个独特的系统:纵向上有很多需要玩家来回跳跃的平台,所以《忍》就使用了一个纵向高度很大的摄像机窗体。和之前一样碰到窗体边缘时会立即推动摄像机移动。但问题在于这种纵向过高的窗体,当玩家做了个小跳的时候很有可能被卡在一个相对于屏幕较高的位置,这时候顶部的视野就变得异常狭窄,就像《拉斯坦传奇》中那样。而《忍》却通过一个简单的方法,让摄像机持续地缓慢地对准忍者角色,让画面始终聚焦在移动的主角上,并且也大大减少了需要频繁的挪动摄像机情况的出现率。

《忍》("Shinobi")1987 Sega

位置捕捉(纵向)(position-snapping vert.)-持续作用,减少摄像机在重新聚焦玩家时所造成的画面抖动摄像机窗体(纵向)(camera-window vert.)位置锁定(横向)(position-locking horiz.)静态前置聚焦(static-forward-focus)

《超级马里奥世界》运用的机制更多,但有一点值得一提的是它的平台捕捉。和其他摄像机窗体一样,如果玩家没有碰到窗体边缘摄像机就始终保持静止。但当玛丽奥落到不同的平台上时,摄像机也会立即开始吸附到玛丽奥所在的位置。

《超级马里奥世界》("Super Mario World")1990 Nintendo

区域性锚点(region-based-anchors)平台吸附(platform-snapping)-摄像机只有在玩家落于某个平台的表面上时才开始吸附摄像机窗体(纵向)(camera-window vert.)-视情况生效双侧前置聚焦(dual-forward-focus)-阈值触发器手动操控(横向)(manual-contro horiz.)-使用控制器可以自主选择额外的摇摄位置

(本文中第一次提到宫本茂,当然后面会再讲他的作品。真正优秀的设计师能够用心地注意到细节设计,不止是在游戏玩法机制上耍小聪明。)

可以看到在最早的《雷曼》中也用了同样的点子。屏幕的最顶端相当于摄像机窗体的最上沿。可以看到摄像机在雷曼跳跃的时候并没有移动,而在他落地后才平缓的吸附到他落地的位置。而摄像机窗体刚好比雷曼的跳跃高度稍高一点也是个很聪明的设计,当然也再次证明了摄像机系统是游戏设计中必不可少的一部分。

《雷曼》("Rayman")1995 Ubisoft

平台吸附(platform-snapping)摄像机窗体(纵向)(camera-window vert.)区域性锚点(region-based-anchors)双侧前置聚焦(dual-forward-focus)线性插值缓冲(lerp-smoothing)均视情况生效

这个技巧在今天的游戏中也十分有效,允许设计师能够在游戏角色跳跃时仍保持相机平滑稳定的运行,只有在完成跳跃或是角色推动摄像机窗体之后再开始重新居中摄像机。注意一点,平台吸附只有在角色能够确实的落到平台时才会比较有效。在其他游戏中,像是《王牌英雄》这种有喷气背包的角色,摄像机的移动更多是靠玩家触碰纵向的摄像机窗体来完成的。

《王牌英雄》("Awesomenauts")2012 Ronimo Games

摄像机窗体(纵向)(camera-window vert.)平台吸附(platform-snapping)位置锁定(横向)(position-locking horiz.)

平滑与缓冲(Smoothing)

避免摄像机突然发生速度大小或速度方向上的改变

之前介绍了周围视觉在视觉系统中所承担的角色以及基于它的机理所带来的影响。以前的游戏看起来像素点都很大,使得即使是很简单的变换都会看起来非常跳跃,突兀。


80年代的像素(“红白机”NES分辨率:256x240)

逻辑相对像素(包含有多个屏幕像素点)

假定我们只能使用设备原生网格上的像素时,要怎么样才能让相机的移动更加平滑呢?虽然当下我们可以创作出各种精美的像素艺术,但他们实际运动时像素位移的精度是要比看上去的像素画的像素大小要精细的多的。如果你不想用完美像素处理技术(Pixel Perfect)的话,你甚至可以利用现代游戏引擎所提供的亚像素空间(sub-pixel space)。

利用物理特性(或伪物理特性)平滑移动

伪物理特性也可以在平滑相机移动上掺一脚,尤其是位置锁定摄像机(当然你可以认为任何游戏引擎内的物理系统实际上都是伪物理)。

有说法认为《吃豆世界》是第一款现代平台跳跃游戏。它所包含的多种玩法元素帮助人们确定了这种类型游戏的定义,例如需要跳到各种平台上,还要躲开不同种类的敌人,最后捡起多种奖励道具。至于移动的平滑方法,使摄像机的速度从0像素每帧开始逐渐加速,位移1像素每秒,2像素每秒,3像素每秒,直到最大速度,之后再减缓到0。由于摄像机是锁定到玩家位置上的,所以呈现的画面就变得清晰又平滑了。另外《吃豆世界》不需要纵向滚动,但其实纵向滚动才是最难做的,因为起跳和落地时加速和减速的变化非常快。

《吃豆世界》("Pac-Land")1984 Namco

位置锁定(position-locking)静态前置聚焦(static-forward-focus)

宫本茂(Shigeru Miyamoto)

不过既然都说到这了,不得不致敬一下宫本茂了,顺便展示一下他早期的作品。他对整个游戏产业的极大贡献,以及对游戏细节的极致设计都是非常宝贵的,毫不夸张。

早在1984年他开始实验性的研究屏幕滚动,并且用完全不同的滚动模式设计出两款游戏。这两款游戏玩家操控对屏幕滚动的控制比重很小,甚至没有。更像是身处在一个背景会变化的房间中。

《越野机车》("Excitebike")1984 Nintendo

《恶魔世界》("Devil World")1984 Nintendo(未在北美发售)

《越野机车》就和现代游戏的滚动模式差不多,根据摩托车的速度来调整滚动速度。运动起来也足够平滑,但实际上并没有在镜头上加其他的效果。

《恶魔世界》几乎所有的玩法都和滚动紧密相连。主角就和吃豆人一样,玩家扮演一个基督小龙和恶魔对抗,恶魔是个负责调整屏幕滚动方向的角色,试图把玩家推向屏幕边缘。也是由于使用了宗教相关的符号,这款游戏成为了唯一一款在北美遭遇禁售的宫本茂作品。当然如果把他数十年的作品都对比列出的话,似乎这也算不上什么巨大损失了。不论怎样,去看看这些现在被誉为天才的游戏设计师的早期或者不太成功的作品其实也很重要,也能够时不时的得到些启发。毕竟最伟大的艺术家的实验作品也经常有失败作。

把时间向前推进1年,很难错过《超级马里奥兄弟》的绝妙设计。游戏玩法本身就结合了最简单的“从左到右”,水平方向上只有这一个方向。并且游戏不允许玩家返回至超出当前屏幕的位置,很典型的平台跳跃游戏特征(从技术上讲,应该被定义为单侧的摄像机窗体)。

《超级马里奥兄弟》("Super Mario Bros.")1985 Nintendo

区内加速(speedup-push-zone)-角色处于加速区内时,相机会逐渐加速直到追上玩家的速度摄像机窗体(camera-window)-单侧检测静态前置聚焦(static-forward-focus)

所以,当玛丽奥一路向左走到头,之后加速通过摄像机窗体边缘时,摄像机在1帧内会从零速静止状态直接变成满速状态,与此同时背景速度大幅变化,不可避免得会造成玩家各种不适的症状。于是设计者想了个办法,在偏移中心区域大约25%的位置加入了一个虚拟点,角色通过时摄像机会进行加速试图追上玛丽奥,所以当玛丽奥碰到摄像机窗体时,摄像机的速度已经和人物移动速度相差无几了。

《银河战士》也曾经是一款突破性的游戏,创造了一个全新的游戏类型,平台跳跃与探索相结合。(顺便一提,它的“亲兄弟”《恶魔城》使用的是非常基础的方法,位置锁定摄像机。)

《银河战士》进行探索时有多个轴线,但不同时存在。它有另一套缓冲摄像机移动的方法,允许玩家走出摄像机窗体,之后再使摄像机加速追上玩家。追踪速度的快慢取决于玩家穿过窗体后的距离长短,最终也呈现出一个非常平滑的摄像机移动模式。


《银河战士》("Metroid")1986 Nintendo

摄像机窗体(横向或纵向)(camera-window horiz./vert.)区外加速(speedup-pull-zone)-当玩家穿过摄像机窗体时摄像机开始加速移动以追上玩家

由于技术的不断提升,设备有了更高像素的画面和更强劲的处理器,也直接影响到摄像机系统设计。新技术允许摄像机更加自由的移动,而不用担心摄像机移动时,特别是低速一帧一动的情况下,因为低分辨率导致画面抖动。

《大金刚国度》也有很多新颖的摄像机设计,也是第一个使用线性插值做摄像机移动缓冲的游戏,让游戏在角色跳跃时的镜头追踪或向前移动时的聚焦前移都很顺滑(画面聚焦后文会继续讨论)。

《大金刚国度》("Donkey Kong Country")1994 Nintendo(Rare Ltd)

线性插值缓冲(lerp-smoothing)-持续通过线性插值来减小摄像机与玩家角色间的距离位置锁定(纵向)(position-locking vert.)区域性锚点(region-based-anchors)双侧前置聚焦(dual-forward-focus)

线性插值听起来挺高大上的,但实际上已经是个用来减缓摄像机速度变动的标准工具了,尤其是摄像机在追踪人物跳跃的时候。

float lerp(float a,float b,float t){return a+t*(b-a);}

它真的非常有效而且在平滑缓冲方面的用途很广。像《超级食肉男孩》那种在移动时忽快忽慢的角色,用线性插值做缓冲很好用。但有个缺点,如果是体积比较大运动又极其快的角色,使用这种方法很容易在相机还没追上角色前,角色就已经移动到屏幕边上了,这样在一段时间内屏幕外即将遇到的敌人就对玩家不可见了。

《超级食肉男孩》("Super Meat Boy")2010 Team Meat

线性插值缓冲(lerp-smoothing)位置锁定(position-locking)

2014年一款非常精美的游戏《不再孤独》面世了,游戏中的摄像系统用了很多不一样的元素,后面会详细讲。它缓冲的技巧是将摄像机移动速度考虑进来,所以当摄像机要发生移动的时候,速度变化会稍慢一些,并且有可能超量移动,越过需要追踪的目标。最终呈现出一种将玩家运动与运动缓冲相结合的摄像机行为模式,不会因玩家反复的移动变换而过度反应。

《不再孤独》("Never Alone")2014 Upper One Games

模拟物理缓冲(physics-smoothing)-摄像机增加物理特性,持续靠近追踪目标位置均值(position-averaging)电影化路径(cinematic-paths)区域性锚点(region-based-anchors)关键信息聚焦(cue-focus)

代码的层面上讲,如果线性插值是淡出(EaseOut)操作,那么模拟物理缓冲就是淡入加淡出(EaseInOut)。如果有条件的还可以研究一下平滑缓冲(SmoothDamp)的细节,或者是你自己动手实现一个,别忘了把到目标的距离、摄像机速度加入到系数当中。

如果你只是单纯的使用完美像素着色器(pixel-perfect shaders)的话,你有时候就会发现某个图像和其他图像或背景做对比时,看起来偏移了1个像素,那是因为数值划分上不一致导致的。

尽管《光明旅者》画面是低分辨率的像素风的,但也很巧妙的做到了平滑滚动。先在游戏原生完美像素画布上预渲染一次,之后再将画布变换到屏幕完美像素的大小,补充出变换后游戏原生画布中有缺失位置的像素点。它还有很多有意思的摄像机设计,我们后面再细讲。

《光明旅者》("Hyper Light Drifter")2016 Heart Machine

模拟物理缓冲(physics-smoothing)-游戏原生画布分辨率480x720,而相机滚动的画布使用是全解析度区域性锚点(region-based-anchors)目标聚焦(target-focus)关键信息聚焦(cue-focus)动作聚焦(gesture-focus)译者注:《光明旅者》已于2016年发售,故对原文进行修正

画面构图(Framing)

保证画面细节的关键部分始终在框内

虽然自动滚动从定义上讲超出了今天的讨论范围,因为这种方式剥夺了玩家对屏幕滚动的操控权。但与此同时,因为需要应对前方接踵而来的敌人,并需要给随时在后方出现的威胁留出反应空间,因此,玩家需要在这两者间权衡,也就间接暗示了场景中玩家的理想站位。

《紧急起飞》("Scramble")1981 Konami

自动滚动(auto-scroll)-玩家对画面滚动几乎没有控制权(但玩家有调整自身对于画面框体的相对站位的权利)

再回来看《吃豆世界》,如果你想通过把摄像机绑到玩家角色身上,使其直接控制摄像机移动的话,你可以将摄像机聚焦区域从基于玩家的位置向前推。这样给玩家留出足够多的前方视野,并且也留有足够让他们留意后方事物的空间,这种设计也同样暗示了玩家应该朝哪个方向移动,因为人们总想让人物瞄着画面的中央跑。

《吃豆世界》("Pac-Land")1984 Namco

位置锁定(position-locking)静态前置聚焦(static-forward-focus)-给主前进方向留出额外的视野

把时间往回推,早在1981年一款飞行射击游戏《防御者》进入了我们的视线,后来它也陆续出了一系列的游戏。其画面的特点在于使用了两个方向上的前置聚焦,而聚焦区域几乎都处于雷达图示的下方。《防御者》始终将聚焦点放在飞船的前端的某个点上,该点到飞船的距离大约是屏幕整体宽度的25%。这种摄像机系统在快节奏的游戏中非常好用,尤其是当大部分敌人都从主角正面来袭时尤为明显。

《防御者》("Defender")1981 Williams Electronics

双侧前置聚焦(dual-forward-focus)-角色变换朝向时,摄像机也变换至对应侧的前置聚焦点,以给角色提供足够的前方视野

1990年世嘉发行的《龙凤神偷》是一款非常棒的横板偷盗街机游戏。利用分屏功能,非常独特的设计了双人合作模式,因为游戏就是兄弟二人协力完成各种惊天劫案。

当然,对于各种盗窃场景来讲,给玩家前方一个良好的视野肯定是必须的,所以游戏也使用了双向前置聚焦的设计。而且还让摄像机在方向切换时,有个缓慢加速后再追上新对焦点的过程,让整体移动效果在保证足够视野的条件下仍然非常顺滑。相机切换时的移动速度大约是玩家的两倍,而且它只有在玩家移动的时候才会移动。可以仔细地观察下图的红色角色。

《龙凤神偷》("Bonanza Bros.")1990 Sega

双侧前置聚焦(dual-forward-focus)-聚焦基于玩家的行走速度进行变换

接下来要说的摄像机设计来自于《超级马里奥世界》,应该说是我最喜欢的2D摄像机设计之一了,以一种压倒性的聚焦模式变换让玩家关注到游戏中需要注意的细节。

《超级马里奥世界》("Super Mario World")1990 Nintendo

区域性锚点(region-based-anchors)平台吸附(platform-snapping)-摄像机只有在玩家落于某个平台的表面上时才开始吸附摄像机窗体(纵向)(camera-window*vert.)-视情况生效双侧前置聚焦(dual-forward-focus)-阈值触发器手动操控(横向)(manual-contro*horiz.)-使用控制器可以自主选择额外的摇摄位置

另外,游戏设计了两个锚点,允许玩家无论朝哪个方向移动都能有足够宽的视野。甚至当玩家开始往反方向移动时(《超级马里奥世界》中经场需要这样),摄像机仍然根据之前移动方向的聚焦模式而暂时保持静止(译者注:因为根据窗体摄像机原理,当时玩家没有走到对应侧窗体边缘,所以无需推进摄像机,这里大家可以仔细的看看动图,非常精妙),直到玩家碰到了另一个预设好的阈值边界,摄像机这时才将聚焦点调整到反方向的锚点上。这个设计在《超级马里奥世界》这种需要时不时向左或右转身走两步但又不需要持续朝反方向移动的情况下非常好用。

回来看近些年的游戏,《洞窟物语》也使用了双侧前置聚焦,变换时根据人物移动的速度以较为缓慢的速度的从一侧对焦点挪到另一测,和之前《龙凤神偷》的例子有些相似,只是在这个例子中摄像机是始终朝新的目标锚点移动的,只是会在玩家移动时加速。

《洞窟物语》("Cave Story")2004 Studio Pixel

位置锁定(纵向)(position-locking vert.)双侧前置聚焦(dual-forward-focus)模拟物理缓冲(physics-smoothing)手动操控(manual-control)-使用控制器可以自主选择额外的摇摄位置

早期EpicGames的《爵士兔子2》也是一款出色的平台跳跃游戏。它有一个非常独特的设计元素:根据玩家的控制输入调整摄像机横向或纵向地远离玩家所操控的角色。

它非常完美的诠释了我提出的“目标聚焦”设计,玩家移动是因为想要到某个地方或接近某个目标位置,因此玩家的操作指令信息对摄像机也是一样的,能让摄像机知道应该朝哪个方向移动。因为当你朝左走时,你肯定是想要看左边的东西。而当控制器上按键都被释放时,聚焦点就会移回玩家本身。

《爵士兔子2》("Jazz Jackrabbit 2")1998 Epic Games

线性插值缓冲(纵向)(lerp-smoothing vert.)目标聚焦(target-focus)-相机根据控制器输入信息给出更多的目标方向的视野由手柄摇杆或鼠标位置将聚焦目标点移向要去的方向手动操控(manual-control)-可操控的纵向视野,可视为目标聚焦的延申

目标聚焦的设计可以从字面上解读,衍生成画面表现上的视觉目标,像很多靠鼠标操作的游戏那样。在《快照》中,可以使用鼠标去截取场景中的某些物品再把他们放到其他位置来完成谜题。而这里的鼠标某种意义上就是你当前想要关注的点,是一种视觉的延伸,而相机则聚焦在鼠标和玩家间的中点位置。

《快照》("Snapshot")2012 Retro Affect

目标聚焦(target-focus)-玩家与鼠标位置间的中点线性插值缓冲(lerp-smoothing)

《易位者》有很多高级技巧,后面会细说。现在先集中讨论目标聚焦,克隆仪瞄准目标的过程某种程度上相当于玩家视线的具象表现,并且也做了非常好的视觉追踪聚焦。当游戏中有众多独立瞄准性能的武器或装置的情况下这种设计非常好用。玩家可以一边向后退,一边向前看,继续瞄着他们想瞄的位置。是一种非常多变的摄像机行为模式,不过也需要有额外的控制系统来调节摄像机。

《易位者》("The Swapper")2013 Facepalm Games

目标聚焦(target-focus)模拟物理缓冲(physics-smoothing)区域性锚点(region-based-anchors)关键信息聚焦(cue-focus)电影化路径(cinematic-paths)

《雷堤康的秘密》也有很多有意思的摄像机设计,而基本构图方面,它使用了预估聚焦,根据玩家当前所在的位置和当前移动速度进行简单的推论计算得出相机聚焦位置。

需要注意的是,这个方法在平台跳跃游戏中表现并不好,尤其是纵向。因为角色的跳跃和落地都很难做好预估。

《雷堤康的秘密》("Secrets of Rætikon")2014 Broken Rules

预估聚焦(projected-focus)-相机预估(推断)的玩家位置并进行追踪模拟物理缓冲(physics-smoothing)关键信息聚焦(cue-focus)-根据引力场调整位置和放大倍数动作聚焦(gesture-focus)-部分动作会影响相机行为,例如:飞行时镜头会拉远电影化路径(cinematic-paths)

《天空奇兵》吸收了多种优秀的设计并且有非常有趣的组合:飞机当前瞄准的位置(目标聚焦),和飞机实际飞行的方向(预估聚焦),其他的关键元素如水面,飞空战舰,空中子弹等等都会在靠近机体时拉动对焦点(关键信息聚焦)。


《天空奇兵》("Luftrausers")2014 Vlambeer


目标聚焦/预估聚焦(target-focus/projected-focus)模拟物理缓冲(physics-smoothing)关键信息聚焦(cue-focus)

下文:横版游戏的摄像机移动理论与实践(下)

作者:奇诡故事贩卖机
来源:机核
原地址:https://www.gcores.com/articles/111493

最新评论
暂无评论
参与评论

商务合作 查看更多

编辑推荐 查看更多