Origin
mp.weixin.qq.com
Tags
简悦
项目
收藏夹
创建时间
收藏类型
Cubox 深度链接
更新时间
原链接
描述
3C,最早是由育碧(Ubisoft)公司提出的游戏设计概念,其实就是指 Character Camera Control(角色、相机、控制)三个单词的缩写,代表了大部分游戏设计中三种最为基本的元素。在 13 年出版的经典启蒙书籍——《通关!游戏设计之道》这本书中,作者 Scott 又对其进行更为详细了解释和拓展。
3C 的概念与理解
从字面上来看,我们可以这样理解
Character,表示一个或多个游戏角色,玩家可以扮演该角色、也可以在游戏中可以观察该角色的行为。
Camera ,表示一个或多个摄像机,以此来辅助玩家观察游戏世界,增加玩家的体验感和沉浸感。
Control,表示用一个或多个控制设备,设置特定的交互规则来使玩家控制对应的角色。
▷▶《奥日与黑暗森林》控制 Ori 移动
进一步来看,三者还有很多细节上的内容需要分析和深入。
Character(角色),一般是游戏中的主角,代表着玩家的物理容器,拥有着鲜明的形象特点(体型、剪影、配色、材质等)和行为方式(移动方式、战斗方式等),能够以最为简洁的表达向玩家提供游戏的基本信息。好的角色设计可以让玩家相对容易的根据外观、姓名、对话等来了解其有哪些能力、故事背景等等。
一个角色的诞生需要经过概念与背景设计、原画设计、三维模型设计(3D 游戏)、动画设计、技能设计、程序实现、测试反馈等多个流程,同时我们还要考虑是否允许玩家自定义角色形象、设计内容是否与游戏背景冲突等。当然,游戏中角色通常不止一个,比如 RPG 中需要多个角色(流程是相似的)来构建故事和冲突,主角团之间不同角色还可以通过互补来丰富游戏的体验,如果是多人竞技游戏,还需要注意不同 Character 设计的平衡性。
▷▶《古剑奇谭 3》的主角设计稿
我在之前的文章《为什么说 “角色移动” 看上去很简单,却需要极高的技术力与细节成本?》就提到,角色的移动与技能是游戏中非常重要且复杂的设计环节,走路、游泳、飞行、跳跃、驾驶等行为之间的切换与衔接非常复杂,需要程序和策划进行详细的规划与思考。
Camera(相机) ,用于展示玩家所看到的东西,决定了玩家观察游戏世界的方式。我们可以选择第一人称、第三人称或者是俯视的上帝视角等。第一人称的 Camera 可以有更强的代入感和沉浸感(常用于射击游戏、恐怖游戏、解密游戏等),但是一定程度上失去了对角色的形象展示而且容易让部分玩家感到眩晕;第三人称可以让玩家更好的欣赏角色和游戏世界(常见的 RPG、ACT、格斗游戏),通过角色的代入也能很好融入到游戏内部,是比较常见的方案;而对于 RTS 这种需要观察多个角色的游戏类型,我们通常会采用等轴镜头、俯视镜头来设置相机的模式。
拍摄本身其实就是一个充满艺术设计的事儿,很多游戏为了达到理想的效果,都会找专门的影视从业者来设计镜头的位置、切换方式等。不过,观察视角的自由性是游戏区别于其他影视艺术本身的重要一环,所以在大部分游戏里面我们都会尽可能的把摄像机的控制权交给玩家,只在一些需要展示特殊的艺术表现时才夺回控制权(过场动画、处决的镜头等,有一些特殊情况会在后面提到)。
除了相机的切换,Camera 还可以通过 FOV 变化(准镜瞄准)、特效变化、后处理变化、震动变化(ACT 战斗)等方式来给玩家提供更多的信息和更丰富的体验,而这些效果变化的具体数值和时机是需要我们不断测试和优化的。
Control(控制),代表着输入到响应的整个过程。控制首先要考虑的就是交互按钮是否符合玩家习惯、人体工学。由于游戏设备经过几十年的发展已经基本成型(手柄、键鼠为主,还有 VR、街机等),而且大部分游戏开发商只做游戏软件,所以很少需要我们去考虑硬件的设计。我们通常更关注的是按钮的匹配规则(比如玩家下蹲肯定不能对应一个向上的按钮),UI 的交互方式(尤其是移动端现在面临屏幕小、按钮多的问题)等,这些通常会交给 UX 的同事去做设计。
其次,Control 也涵盖了 “当玩家进行操作时如何将表现反馈给玩家” 这一点,这时候他更像是一个衔接玩家行为与游戏表现的抽象概念。具体来说,我们按下按钮后,玩家有多少时间进行下一步的反应?游戏中的角色的移动速度、镜头、UI、音效应该有怎样的变化?变化规则应该通过什么方式传递给玩家?这些内容与 Character 和 Camera 的设计是息息相关的。
概括来讲,3C 表达了从玩家的输入到游戏角色的响应再到这一帧的画面如何被相机记录下来的过程。我们在上手一个游戏的时候,很快就能够从 3C 的差异上对该游戏进行分类和定义,比如他是第一人称还是第三人称,是 ACT 战斗还是射击类型。从某种程度上说 3C 展示了一个游戏最核心的体验,指导玩家学习并上手,很多情况下与我们常提到的 Gameplay 可以认为是等价的。
在设计游戏时候,我们可以简单的将游戏 3C 分为基础 3C 和高级 3C,基础 3C 决定游戏的基本操作和交互方式,比如玩家按钮如何响应、角色的基本轮廓和特点、可以做哪些基本行为、我们的相机视角有哪些等。而高级 3C 是在基础 3C 上的拓展,角色可以有变化的形象、更丰富的移动方式以及更多样的镜头效果和反馈。比如,在战神 4 和蝙蝠侠中,我们移动使用的是第三人称的靠肩视角,角色屏占比为 1/4 的基础 3C,可以给玩家营造角色魁梧、行为充满力量的厚重感。而战斗中动态变化的镜头以及可以扔出的斧头和勾爪则是属于高级 3C,这些加强了游戏时的沉浸感和真实感,让玩家被代入到角色的行为与故事之中。
当然,确实也存在一些游戏并没有完整的 3C,甚至很多游戏的诞生要要远远早于 3C 的概念。比如俄罗斯方块以及消除类游戏中并不存在所谓的 “角色”,互动文字类游戏也没有所谓的 “相机”。
不过这并不是说这套理论就没有意义了,你也可以认为这些游戏类型只是在一定程度上限制住了 Character 和 Camera 的设计。假如我们仍然以这套理论为指导,将俄罗斯方块中的 “方块” 视为角色,将贯穿整个游戏的固定镜头视为相机,那么是不是就可以进一步地设计出更丰富的 “方块角色” 和更为丰富的 “镜头” 效果了?毕竟,任何理论都不是一成不变的。
还有一些游戏,融合了多种类型的 3C 设计,镜头上既有第一人称视角也有上帝视角,既能作为主角体验游戏世界也可以以独特的第三人称视角来观察故事的发展。如果一款游戏能将这些都完美的结合,那无疑会给玩家带来前所未有的游戏体验。我个人比较喜欢的《艾迪芬奇的记忆》就是这样一个充满艺术魅力并融合了多种 3C 设计的佳作。
▷▶《艾迪芬奇的记忆》
程序 3C
谈完了游戏设计的中 3C,我们不妨再从程序的角度来认识一下他。简单来说,每一款游戏都需要将前面提到的内容抽象到代码层面,封装好并交给策划去进行设计和拓展。比如虚幻引擎里面就内置了一个成熟的 Gameplay 系统,你可以看到 Playercontroller、Cameramanager 以及 Character 等等的 C++ 类,这些类与前面提到的 3C 是非常相似的概念。游戏中所有拥有移动、碰撞能力的对象都应该继承自 Character,响应按钮事件的逻辑应该存放在 Controller 里面,而摄像机的位置、特效、震动等逻辑都被封装到了 CameraManager 里面,这是 Unreal 多年来积累的一种面向对象的 3C 设计方案。
角色动画这块的系统非常复杂,所以需要被单独抽离出来。在大部分引擎中,动画一般是通过专门的动画系统来驱动角色身上的蒙皮骨骼模型进行模拟。
3C 涉及游戏的核心系统,其内容是与游戏玩法高度相关的,所以不同的游戏的 3C 都有所不同,而且很可能差异很大。比如常见的 ARPG,设计层面上要有一个完整的故事和一个个性鲜明的角色,而程序上我们需要实现一个可玩的有打击感的战斗系统(涉及到复杂的动画系统、特效系统、镜头处理、音效、震动反馈、后处理等)、角色成长系统(数值计算)、移动系统(攀爬、游泳、飞行等)、定制的动画以及分镜系统等。而在其他的游戏中,还可能有关卡生成系统(我的世界)、载具系统(极品飞车)、以及各种特殊的与游戏规则高度相关的定制系统(文明)。这些系统深入起来并不容易,但是却往往被大家所忽略。
拿 FPS 游戏举例,角色上我们需要考虑玩家的移动方式(包括行走、冲刺、翻越、爬行、死亡等状态的切换与打断,特殊状态如何进行设计和处理等)、武器与技能的制作和使用(包括武器的切换方式、数值计算规则、武器结构的拆分与组装等)、角色的第一人称和第三人称的模型效果(包括角色的形象设计与展示、如何在游戏中自由切换一三人称、第一人称是否能看到下半身等)、角色的动画表现(包括移动、交互、开火等行为以及各种道具的动画);摄像机我们要考虑基本视角(第一人称)、镜头的切换(支持哪些特殊视角、不同视角的切换规则、是否有 ADS 瞄准状态)、镜头效果(包括屏幕后处理变化、后坐力震动效果设计);控制上根据不同的平台要考虑不同的设计,比如按键的位置、大小、是否允许自定义按键,按键的响应规则和响应时间等等。总的来说,3C 需要考虑的东西非常繁多且复杂。如果是网络游戏,这个工作量可能还要扩大一半左右。
对于 3C 程序来说,确实存在一些相对通用的技术与功能,比如 Gameplay 框架、状态机 FSM/HFSM(比如逻辑状态机用于衔接角色的行为表现),网络同步,动画系统,移动系统等,但是由于国内游戏行业的发展不够成熟以及这些内容并不适用用所有游戏,所以造成了很多 Gameplay 程序发展方向不明确的问题。此外,像一些其他技术如 FOV 分层渲染、描边、物理破碎、音效、界面特效等实现虽然可能会交给渲染、音频、UI 等其他程序做,但 3C 程序理论上也要做到理解并负责将其整合到现有游戏的系统内。
实际项目中,游戏涉及到的技术很杂,很多时候不那么好划分,再加上项目的人力有限,3C 程序也没有必要给自己限制在某些技术范围内,要根据个人发展以及项目情况适当了解和学习其他模块的知识,如渲染、物理、AI 等内容。
总结
总的来说,高质量的 3C 是游戏坚实的基础,依据 3C 的理论我们可以从多个方向来思考并进一步丰富我们的游戏内容,进而让玩家处于一个专注且享受的 “心流” 状态。对于 3C 程序而言,我们需要根据游戏的类型搭建合适的 3C 框架,同时与策划不断的进行沟通和打磨,来构建一个更有魅力的游戏世界并给予玩家一个更为完美的游戏体验。