《无间道》亚索盲僧上演天台对决——开发者日志(二)_为人物添加动画
动画链接:https://www.bilibili.com/video/BV1aa4y157e8
《无间道》亚索盲僧上演天台对决——开发者日志(一)_项目启动
最近在研究怎么给模型添加动画,本来打算用Final IK插件的,但是发现这个是运行时IK,与Unity的Timeline相结合不是很方便,于是又开始尝试新的方法。搜了一下发现有一款叫做《UMotion Pro - Animation Editor》的十分强大的插件,支持用户在Unity里编辑动画,提供非常快捷的IK绑定功能,还能与Timeline完美同步,于是果断放弃Final IK改用这个。
根据《无间道》的情节,首先要实现一个行走动画。对于我这种新手小白而言,做出这样逼真的动画自然费时费力,于是我打算给亚索运用Mixamo上的现成行走动画。但是这里有一个问题,如果将模型上传,那么原来的骨骼就会被无情地替换掉,而且绑定的准确度也令人堪忧,但是Unity提供的Humanoid模型类别可以很方便地在保留原有骨架的基础上实现人体动画的迁移,先要将模型的Animation Type改成humanoid。
之后需要点击Configure...按钮进行设置,如果模型是这种有脚有手有头的话,Unity一般会自动绑定好,如果模型比较复杂导致Unity识别不准的话就手动调整每个关节关联的骨骼。这里需要注意人物的骨盆节点必须得是根节点,并且整个人物的骨架都是在骨盆节点下的(是人物骨架,像翅膀装饰那些就不用管),如果遇到什么问题就根据实际情况调调就好了。比如我这里的亚索模型的骨骼一开始根节点不是骨盆节点,于是我用3ds max给他调整了一下;这个模型除了hip和kneeLower结点外,中间还多了一个kneeUpper,但是Unity的humanoid人物模型貌似只支持Upper leg 和 lower Leg两个骨骼表示人物的腿,所以我在3ds max里把knee upper节点去掉了。一开始应用Mixamo的动画可能会出现下面的鬼畜现象(如图为行走动画):
主要原因是Configure的时候人物有问题,如图,Unity把左右的骨骼给绑定反了,只得手动去纠正(3ds max里导出来的就是反的),这个纠正是要将人物弄成T-Pose,如果一开始姿势比较奇怪可以按一下Pose里的Enforce T-pose:
设置好后就可以随便使用mixamo上下下来的动画了!
接着稍微搭了下场景,设置了一下相机(cinemachine),把前面一幕大致做了一下:
可以发现人物模型反了,但是如果简单地把scale.x设置为-1的话,用mixamo动画会有鬼畜现象,经过仔细考究,发现可以通过在3ds Max里将骨骼根节点给镜像一下就能解决该问题。亚索头发飘逸的效果是用了dynamic bone 插件
2020/9/15
今天是9/15号,发现如果加上反锯齿的话不能用TAA,不然镜子会闪烁,所以改用SMAA了,以后可能不含镜子的画面再改成TAA吧,先把昨天成果的补上:
然后是今天的成果:
做动画太费时间了,本来以为随便调调就完事了,没想到各种麻烦事,Unity总是崩溃,UMotion导出的动画片段鬼畜,上Asset store等半天,尽管艰辛,但还是争取能每天做出10s吧,毕竟只有先把肢体动作做完才能加表情动画T_T
这Unity提供的Animation Clip Override track功能是真的不太好用,每次Umotion里正常的动画片段导出来因为这个Overide而变得鬼畜,爷佛了。至少现在在UMotion里播放是正常的,问题没法正面刚那就直接在Editor非运行模式播放然后截屏,最后再拼起来得了,毕竟俺也不是专业的。仔细研究了一下应该是unity的humanoid选项的问题,也就是说如果在UMotion里是以FBX形式导出的动画,并且动画的prefab设置为generic,模型的prefab再重新改成generic就能正常应用UMotion导出的动画了,不然以Unity内置的humanoid形式应用动画会有误差。也就是说可以在做动画的时候用humanoid形式,但是导出最终的动画后再统统改成generic形式,而且UMotion导出的动画得是FBX二进制类型,这样模型应用的动画就是UMotion里看到的动画了。
最后发现是插件鬼畜了,无论怎样导出的动画都会莫名其妙导致全身运动,就算只动手臂,然而不知道怎么破。这个问题主要是在盲僧模型上,可能是因为提取出来不是T-pose导致的吧,只能勉强硬着头皮做动画了,粗糙一点也没办法。
终于把肢体动画和镜头都弄完了,剩下的只差表情口型动画以及优化材质了,再展示一下中间的一个片段:
2020/9/27
这一周主要是添加人物表情动画,貌似MAYA里有更加科学的FACS方法可惜不会,于是只能用3ds max里的blendshape来做人物表情了。首先在3ds max里为人物创建对应的blendShape,分别是亚索和李青,blendShape就是变换到的目标模型,有了他们就能做表情动画了:
盲僧的表情容易弄一些,毕竟没有眼睛和眉毛,只要动动嘴就好了。
然后周六周日花了两天K帧,一直K到周日晚上10:30,简直累死。苦中作乐的是边K边看LGD比赛,还好有惊无险进小组赛了:)
下面是添加表情后的部分片段:
虽然算不上特别真实,但肯定比没有表情好,之后就稍微修修改改。虽然动画最后肯定是有很多可以完善的地方,但是一个人做真的肝不动了,毕竟还有其它砖要搬,争取成为国庆档放10/1上映吧!