您需要 登录 才可以下载或查看,没有账号?注册
x
引言
我们在开发动作类游戏时,对于角色首先切入的点必然是打击动作。如果是普通的低成本游戏,一般会采用“固定动画+劈空气”模式,然后交由程序进行打击逻辑的处理。但是对于高要求的游戏来说,这么做显然离谱。本帖将主要展示并浅谈在Unity中使用IK(逆动力学演算)的个人做法、看法。
首先我们说一下劈空气做法。一般来说,如果游戏设定的所有角色单位的物理高度接近,而且场景内物理地面没有起伏(纯平面)。那么主角和敌人或怪物的攻击交互,在动作层面是比较简单的。可以由一套或多套固定动作序列,在动作控制器中进行标准的混合并输出,那么主角就具有攻击动作。这也就是很多游戏当出现大型怪物的时候(比主角大很多倍),只能滑稽的『修脚』的众多原因中的一个(当然还有其他物理、程序和游戏模式原因暂不累述)。
(示例图片来自网络)
另一方面,这个物理平面的情况当出现以下两种状况时,也会面临变复杂的情况:
1.如果突然『我不管,我马上就要』的策划佬说要加一些小虫子或者小猫小狗这些小尺寸单位怎么办?
2.如果同上,需要让主角本身就是可以蹲下或者甚至趴下攻击怎么办?
这个时候,大部分人下意识就会先选择辞职,啊不,说错了,选择尽职。
一般最简单最直观的做法就是,在动作控制器里面加一个身体弯曲混合。这样既可以保住上、下身的独立动作,也让角色有一定角度处理具有高差的目标。这个点子看起来不错,于是我们开搞:
(动作来自Kubold的RifleAnimsetPro)
我感觉我的腰快断了...
诚然,如果你的项目组或者你的老板够水,或者你的PM够瞎,又或者你的方案只需要很小的倾角的时候,这个点子无疑比较节省发量的。
但是你要注意,这只是一个单纯描枪静态动作的additive弯曲
请问,如果有近战打击之类的全身动作,我感觉一套马保国闪电五连鞭打下来,应该会有下面这种效果:
行家会告诉你,这上面的图其实是IK算错的问题。这里贴出来其实只是比喻那种状态——『比喻!比喻!懂吗?』(耳朵疼)
所以正常情况下,这时候项目组会燃烧美术的发量,让他/她出一堆针对各种特定目的的的动作及其相关的变体动作或者附加扭曲additive动作。这也就是大部分低成本游戏经常喜欢站着打没有复杂动作的原因。往更深了讲,这也就是大部分独游喜欢选择像素开发的原因。因为毕竟像素嘛,连动作都不要了(噗——)
当然,回过头讲。如果你的项目走到这一步,用了这一路办法,然后就把项目做了,而且还没出什么毛病,那么要么你美术是个牛人,要么你的动作要求应该是比较简单的。因为一般往这条路深了走,会发现一个梦魇——抖动
抖动的图我就懒得翻了,但是原理很好理解。我们做动作都是在max maya之流上面搞的,可以做的非常顺。但是我们的动作要变成动画,然后转入Unity的动作控制器,然后最终由动作控制器来混合形成动作。而实际上我们在游戏中控制角色形成的行为,我们的美术佬,甚至策划佬是绝对不可能完全预估到的。而我们上面提到的造一系列动作来完成某种目的这种行为,其实是类似于程序上的预定义——而当你的实时运行的时候,鬼畜的抖动就肯定会出现。因为你永远不知道你的用户(猴子)会干什么.....
另一方面讲,过多的基础动画混合成一个动作动画,本身就很考验美术的功底和发量,稍有不慎,抖你没商量。之前认识一策划哥们闲聊谈到,说自己项目搞爆了。什么原因?其中一个头疼的原因就是项目组居然只会用这招,而居然不知道IK,然后看到我事后闲聊间给的一个展示图,居然拍起了大腿,说当时要是知道这种技术,项目组就不会垮了!听得我实在是:
『问今是何世,乃不知有汉,无论魏晋』——晋·陶渊明
我当时只想说,你们老板人真好,让我也认识认识。 
那么,台下传来了声音:说说说,说了半天,你的作品呢?
对哦,我差点忘了这是一个作品贴。trust me,这前面只是必要的铺垫。
那么我们先看一下,当时闲聊发过去的图是这样:
由于元素的4M限制,压缩了一下,颜色有点惨白,但不打紧。 这个图里你看到的上半身动作,在动作控制器层次的配置,其实只有一个仅一帧的动作,即Kubold的RifleAnimsetPro里面的瞄准帧单帧。所有上半身的混合和混变,都是IK脚本自己完成的。主要可以完成: 1.球向三维360度瞄准适配,而且是枪管射线绝对准确对准目标 2.在跑动的时候,人物上身可以前后左右倾斜(牛顿物理),而枪口始终保证正确位置 3.动作过度无异常抖动(如图)
当然有人可能看出左手动作不正常,这是因为当时还没写到左手适配枪托。现在已经实现的功能比这个需求还强很多(后面会提到什么时候讲)
像这种IK演算,一般主流游戏一定会配置,你比如上面那个吃鸡例子。如果没有IK演算,根本很多功能实现起来美术先死给你看。 小游戏嘛,那就看预算和团队经验了,亦包括对游戏本身能耗考虑(IK基于CPU)。这个见仁见智。 但是这玩意对美术来说,简直就是耶稣福音(程序则反之  )。但是总体上项目组在动画的工作量肯定会大减。
我们再来看一下动作类基于IK演算的混变结果:
很明显,这也是劈空气,但是我会告诉你,这里面也是只有一个单纯的上身平砍动作,Kubold的SwordShieldAnimsetPro。 可以很明显看到目标快速下移的时候,动作非常流畅。这就是IK的好用之处。 而且身体各方面的物理观感也是让牛顿棺材板非常满意。
『叫HR明天就给我请一个会IK的过来,现在!马上!立刻!』——老板
基于知识付费原理,本帖观赏免费,不过你可以用元素币为我打赏。
价格:100 元素币未知网盘交易量 < 5 提醒使用【余额支付】需要: ¥10 余额
以上付费内容为空,但是如果有超过30人投币,我会进入下一个环节继续深讲。 因为我暂时不清楚: 一是我不知道这里有多少人愿意了解这方面内容? 二是这个内容有多少价值? 三是这种表达方式效果如何?
我是独立游戏作者,所以平时当爹又当妈牵涉问题很多,对于在美术-程序交叉领域的问题基本经常遇到。开发太沉闷,有时候一有想法就想水一水。本来混问答区,但问答区天天不是大水,就是问一些一本书厚的问题,根本无从谈起。感觉这种分段式表达方式可以输出一下,又或者可以帮到一些人?
另外对我的摸鱼开发感兴趣的,可以去以下位置: Rushot的爱发电主页
|