像《刺客信条》等游戏中的攀爬系统是如何制作的?建筑的美术资源变成可攀爬资源是如何制作的?
哈哈哈 看到最后有人说到humanik,乐了 也来参一脚 攀爬系统本身当然是非常困难的,主要体现在动画适配的高难度上 看有答案说这个系统简单的,基本不是从动画美术的角度考虑的, 如果只是从机制的触发切换角度,确实算还好,但是到动画角度,特别是人形动画,攀爬系统真是噩梦来的。 那要说清楚这个难点,首先要明白三维角色动画的两个重要的动画方式 IK动画 和FK动画 IK(Inverse kinematics)即一般我们所称反向动力学(大学时候英文差,学三维看到这个词几乎被弄疯掉) FK(Forward Kinematics)则是正向动力学,我们还是管他们叫正向运动好了,学个毛毛的学。。 这两种东西的区别很强烈的影响到动画本身的制作,打个比方IK制作动画,比如手够到某处,是直接拽着你的手到特定位置,那你的整个手臂会自然的跟着摆放成相应姿势,而FK则是从肩膀根部开始思考,我这肩部应该转个30度,肘部再转个20度,最后手腕转一下,就摆成这样一个造型,嗯 好像还是没够到,那再转转。。。 这两种动画模式适合不同的身体部位,比如手脚我们一般都是ik来控制,脊柱头颈什么的就通过fk来制作更灵活方便。 而游戏动画,传统来说就只有fk动画的,因为ik动画会需要额外制作一个目标器(target)来定义你的手位置,往往一个目标还要配一个朝向器来判断关节朝向(不然你腿往后面弯曲在这种算法里面也会被判断成正确)这种复杂的动画解释是很难被游戏的三维格式所读取的。 于是游戏动画,基本是 FK动画的片段组合,比如说打斗,摔倒,行走,跑步,我根据不同的游戏状态,在这几个动画当中做混合,这种动画是稳定而一致的,同时也单调一些。 游戏判断你这个游戏角色的三维坐标,旋转,放缩,在这个位置上放置上相应的角色,播放相应动画,就有了激烈的打斗场面。 But,刺客信条,它的主角移动根本不是简单的位置移动,你玩个coc,玩个魔兽,角色一圈一点,它从A地移动到B地就好了,如果带了阻挡,也就最多算个寻路,将路径曲线算出来,跟着行进即可。 但是刺客的移动中心是在不断变化的,你在地面的时候以人物重心,或者地面重心移动都可以,结果猴子突然上树了,沿着墙壁爬将起来,这时候的运动变成了以手部固定,身体重心摆动--切换手部-以另外一个手部为轴心摆动, 而这种摆动又有着各个方向上的可能性。 这玩意比IK-FK动画混合麻烦多了,它是局部ik,局部ik-fk混合,同时计算locomotion重心的正确,是非常复杂的系统。 看到有人提到了HumanIK,确实如此,UBI浸淫猴子术多年,从波斯开始研究猴子动作用的humanik,据在UBI用过他们新snowfall引擎的朋友说,动画混合已经是360度列出各种动画可能性再做融合的,技术非同一般的难. 业内另外一家做动作神好的naturalmotion开发过endorphin,以肌肉为驱动调整动作,可惜挣不上钱,后来开发游戏如呆萌忍者去了。 然后我数数,做攀爬技术最牛的。。。。 似乎就是这些了,(旺达与巨像勉强可以算把,但是技术差不是一星半点,是强行通过poly的触碰触发的动画融合,技术和刺客比相差非常远,叉开说旺达的poly shell毛发还是很好玩的) 所以攀爬动画当然是非常难制作的。 再说一句,其实以上好像和问题是没什么关系,问题是问这这种可攀爬面是否需要手动制作, 那对于单个建筑体素来说,应该是需要的,但是刺客信条的城市是比较procedual genertate的,也就是随机根据建筑体块生成城市,那这种情况应该是自动的,因为可攀爬的面已经被定义了,计算一下建筑的重合部分,删除这些攀爬面,再人工优化一下,应该就可以(我是记忆中看过UBI一个视频,反推他们的做法,不代表官方技术哟) 以上