谈游戏动作

前言:本来以为动作的制作和优化是最基础简单的,也是最不容易成为瓶颈的地方。既然需要解释,那就梳理一个吧。

规范

从我看来,动作其实压根都不需要制定什么规范,人体骨骼如下。

img

数一下,根节点 + 胯骨 + 大腿骨*2 + 小腿骨*2 + (趾骨*2)+ 脊椎骨 + (胸骨) + (颈骨) + (肩胛骨*2) + 上臂骨*2 + 前臂骨*2 + 腕骨*2 + 头骨
= 20根。括号里以及图中的虚线圆圈是可选。
再加上左右手武器挂点一般都会k动画,所以算是基础骨骼,就是22根。

手指骨

在继续无非就是手指骨的问题。

  • 最简单的做法,就是加一根指骨做手掌的弯曲,有基本的握刀感觉就行,很适用mmo等不需要太多细节的游戏。
  • 再进一步,如果觉得拇指很假,需要和其他手指分开,那就再加一根。这样基本上大部分时间就OK。
  • 另外还有一个问题是说指骨需要两节的问题,但实际上可以通过蒙皮加成指骨和腕骨的权重来实现,虽然会损失一部分效果,但性价比好。这里感谢@申攀同学

这样算下来均值,如果算每只手两根,就是22 + 4 = 26根。

挂点

挂点,除了武器之外因为一般不需要k动画,只是充当特效的挂点之类的,不算在骨骼之内。比如头顶挂点,胸腔挂点。

飘带

飘带永远是老大难的问题,就跟特效一样,要想效果好,更细节,就需要更多的飘带骨骼,但这个,我永远都是这几句话,也说过很多遍。

游戏制作永远都是一个性价比的问题,该用的地方用,能省的地方省。
如果用就尽量发挥出来最大的效益,如果不明显,就要考虑性价比。

这个在游戏美术的各个方面都是这样的,比如特效不明显的粒子性价比就是很低,那还不如把这个开销给更需要的地方。还有场景方面比如我以前写的烘焙光照图的技巧里面说的litmap面积分配的问题,还有包括场景贴图资源分配的问题。
而且这些东西真的不是硬性标准的问题,只能权衡和优化。

所以一般性来说,如果一个角色全身有3-4条飘带,每条飘带算3-4根,算最多的算,那总体算下来就是26 + 16 = 42根。这是满打满算的,其实正常情况下不会有这么多的,mmo角色没有大面积裙摆的大概在35根左右。
当然如果你们说我们是卡牌游戏,角色本来就少,总体性能压力小,有很多细节,裙摆什么的又特别多,那给你裙摆分3条飘带,衣服上的穗分1条,头发分2条,武器上的穗分1条,每条平均4根骨骼,也就是平均7*4 = 28,也就是26 + 28 = 54,你说需要80根骨骼用来干吗?

为什么要优化?

那继续说为什么要优化。很简单,动作资源的开销同样是两个方面。

  • 内存,动作内存的大小 = 动作数 骨骼数 帧数
  • cpu,每一次动作的播放过程都是骨骼在即时运算,所以骨骼消耗的cpu = 所有骨骼的实时计算

所以优化就是减少不必要的骨骼,减少不必要的帧数。什么是不必要?

什么是不必要?

角色毕竟是游戏角色,不是展示。在游戏视角下真的看的见么?如果真的需要展示细节效果,而且只是很少的动作需要额外的骨骼,那还不如这个角色单独做两套骨骼。

  • 食指,拇指,其他手指分成三个部分真的有必要么?
  • 指关节需要用两节真的有必要么?
  • 手指真的有必要么?
  • 就一个动作需要额外的很多根骨骼,而其他动作都不需要,那这些骨骼真的很有必要么?
  • 飘带能用5根做好的,可能会损失一点效果,而用9根骨骼做,真的很有必要么?不是盯着看,而是在游戏视角下看,5根做的和9根做的真的会差很多么?

如果问完了这些问题之后,还觉得这根骨骼很重要,那就加,因为这是省不了的。如果有些在策划同学那里通不过,大家拉个群一起讲道理。很简单。要强调的是,游戏毕竟大部分时间是在游戏视角下,包括角色,包括场景,包括特效,策划同学也应该清楚这一点。

帧数的优化

不必要的帧,就是不是关键帧的帧。帧的优化也很理性,把相同的中间帧去掉基本上就没有啥问题了。特别要提醒的是,如果有插件生成的bone骨骼,一定要手工去掉bone骨骼的非关键帧,而且这个占比非常之高,可能达到50%。