最近做角色运动、动画、摄像机的时候总感觉差点意思,有地方理解不清楚。回过头来好好整理一下资料,看看3C究竟指的是什么,对于程序拆分出来包括哪些系统。

2023.2.25

在这之前,知道3C指Character、Camera、Controller,对他们的理解如下:

  • Character,角色模型外观,角色动画状态机。
  • Camera,镜头方案,正交/透视以及细分的若干投影方式,第一/第三人称视角,跟随相机/固定相机,自由视角相机/固定视角相机。
  • Controller,按键响应,角色的移动控制。

当前感觉除了镜头是比较独立的,Character和Controlller互相影响(Character Controller哈哈),比如角色动画状态机的八向动画混合树和四向动画混合树,两种实现会和角色移动控制时,斜向运动是否改变模型Rotation有关(只有动画骨骼节点转向还是会真正应用到游戏对象上,类似是否启用RootMotion),而改变Rotation又会影响角色移动时方向向量的计算和镜头跟随。因此很复杂,没有现成的方案去参考理解,自己干想是一件很低效率的事情。

为了打破这种局面,选了三篇高赞的知乎/公众号3C文章进行学习。

游戏开发与设计中的“3C”是指什么?(Gameplay程序必看)

为什么说“角色移动”看上去很简单,却需要极高的技术力与细节成本?

我开发的角色动作系统概述-战斗,3C相关

新的划分如下:

  • Character 角色模型效果动画系统(动画状态机、混合树、MotionMacthing、骨骼动画,Playable动画状态控制)、移动系统(输入参数传递给动画系统,控制角色位移、转向,RootMotion方案、碰撞(翻越障碍物、斜坡台阶移动)、特殊移动(二段跳、走墙、飞行)、移动同步(状态同步、帧同步))、角色逻辑状态机非人类角色相应系统状态同步

  • Camera 相机基本视角(第一人称/第三人称、俯视角),镜头切换(相机特殊视角,瞄准),镜头效果(后处理,后坐力震动),对于TPS,还包括相机与人物的参照关系(自由视角、固定视角)

  • Controlller 按键匹配响应规则和时间

目前来看,Character是3C中最重要的部分决定了玩家的操作手感,Camera决定了镜头表现效果,Controller决定操作方式,相对来说比重较轻,对于初级开发不是很重要。但实际上个人感觉3C也不需要分的太过于清楚,每个部分连接都很紧密,3C也可以理解成角色控制器不是。在此之上又引出了如战斗系统、动作系统等更加进阶的3C系统。最后,一个自己开发的角色系统,应该是把以上方案高效集成到一块形成一套框架,而不是零散的拼凑使用方案,而这需要大量的经验和实践才能做好,不能空想。