PAOGD个人作业2-角色动画基础——Blender2.8

PAOGD个人作业2-角色动画基础——Blender2.8

大纲

  • 资料推荐
  • 效果展示
  • 实现过程
  • 总结

资料推荐

不过我相信我的博客也是很通俗易懂的。

效果展示

PAOGD个人作业2-角色动画基础——Blender2.8
只截了前10秒的运动图,虽然看起来有点生硬和搞笑,但该有的动作有了。

实现过程

  • Step1:首先,导入模型吧:
    PAOGD个人作业2-角色动画基础——Blender2.8

  • Step2:然后不用说都知道给模型添加骨骼啦,可以先添加个Plane平面看着更舒服点,当然,你可以通过Shift+A一块一块添加骨骼:
    PAOGD个人作业2-角色动画基础——Blender2.8
    然后一个一个骨骼连起来,不过,有个更便捷的方法:面板Edit->Preference,打开后再Add-ons页卡上搜索Rigify,然后把前面的勾选框打上勾√:
    PAOGD个人作业2-角色动画基础——Blender2.8
    然后再次Shift+A时,在Armature选项卡里会多了几种骨骼选项,一般不需要太复杂,可以选择下面这种:
    PAOGD个人作业2-角色动画基础——Blender2.8
    好了,你会发现一个人体的基本骨骼就出来了,各个骨骼命名也帮你弄好了,相应的父子关系也弄好了,会省去不少工作。

  • Step3:然后就是把骨骼放进模型里然后进行绑定啦!其实模型和骨骼都是对称的,一般是对一边的骨骼编辑完后(比如对某些骨骼拉长变形等操作),再通过对称就能实现对另一半的相同操作(选中骨骼后在编辑模式下打开此面板)
    PAOGD个人作业2-角色动画基础——Blender2.8
    在此之前一半是将模型和骨骼的焦点都放在原点或者原点的正上方,但作业给的模型焦点位置不在中轴线所以没法用,焦点的位置很奇怪:
    PAOGD个人作业2-角色动画基础——Blender2.8
    所以最后还是不能用对称,要双手双脚分别调。

  • Step4:把骨骼填到模型里后,如果想在Object Mode模式下也能看到骨骼可以设置X-Ray,点击骨骼后,在下面的面板勾上这选项:
    PAOGD个人作业2-角色动画基础——Blender2.8
    这里讲一个从视频学到的技巧,设置骨骼双腿的膝关节时,不要让它垂直,稍微向前弯曲一下,可以稍稍露出模型外:
    PAOGD个人作业2-角色动画基础——Blender2.8

  • Step5:角色绑定,就是骨骼和模型绑定,使得骨骼能控制模型,在Object Mode下先选定模型,然后按住Shift选择骨骼,按Ctrl+P,在弹出的选择面板上选择下面这个:
    PAOGD个人作业2-角色动画基础——Blender2.8
    等待1秒(根据个人电脑速度而有所差异)就绑定完成了,这时你摆动骨骼你会发现模型也会跟着动,注意,绑定前一定要弄好骨骼的位置和大小,使得尽量与模型吻合,我的示范如下:
    PAOGD个人作业2-角色动画基础——Blender2.8

  • Step6:接下来就是权重绘制啦,选中模型->然后选中Weight Paint进行权重绘制,绘制的目的是为了防止某些骨架关节弯曲时造成模型的凹陷等不自然情况,可以参照这个****(从第14分钟开始是讲权重绘制)去调节。由于这次作业模型随着骨骼旋转等操作并不会出现比较明显的凹陷,所以采用默认的权重绘制就行,不用修改。
    PAOGD个人作业2-角色动画基础——Blender2.8

  • Step7:反向运动学(Inverse Kinematics),为什么需要IK呢,嗯现在可以动动自己的骨骼,你会发现动子骨骼时,父骨骼是不会动的,这在人体模型里不合适,比如你想移动手掌,应该很自然就会驱动手臂的摆动,这就是IK要做的事,如果上面的步骤都完成的很好,IK也不需要实现得很精致的话,可以用Blender自带的Auto IK实现:选中人体骨骼,在姿势模式下Pose Mode,一定要确保是在姿态模式下,Blender在不同模式下能做的事是不一样的,然后在右边Active Tool and Workspace settings面板中把Auto IK勾上
    PAOGD个人作业2-角色动画基础——Blender2.8
    这时你再动手掌时,手臂也会跟着动;脚跟腿也是一样,这就是子骨骼驱动父骨骼。

  • Step8:虽然Auto IK实现得很好,但明显作业要求不是用Blender自带的Auto IK,下面讲一下自己实现IK,以右腿部和脚为例吧。首先,在编辑模式下,选中脚掌骨骼,按Shift+D复制一个脚掌,然后修改一下名称为foot_IK.R。由于是负责脚掌骨骼的,所以也会把脚掌骨骼与其它骨骼的父子关系也复制了,但这个不是我们想要的,所以把父子关系去掉:
    PAOGD个人作业2-角色动画基础——Blender2.8
    然后调回姿势模式,选中右小腿的骨骼,在右边Bone Constraints面板中点击Add Bone Constraint添加一个Inverse Kinematics约束,如果发现无法添加那证明你所在的模式并不是姿势模式,然后将下面几个属性设置为图中标记的值:
    PAOGD个人作业2-角色动画基础——Blender2.8
    Bone选择的是你刚刚复制出来的foot_IK.R骨骼,而不是原来的骨骼,Chain Length是与所选中的这根骨骼有约束的低层级骨骼的数量,我们只需要让它影响到手臂就可以,在Pose Mode模式下会有点黄色的虚线,这就是标记着Chain Length的影响距离:
    PAOGD个人作业2-角色动画基础——Blender2.8
    这时,移动骨骼foot_IK.R,是你新增的那个骨骼,不是原来的脚掌骨骼,你会发现大腿也会跟着动了,基本达到目的了。但看到IK约束面板还有个属性Pole Target没赋值,增加这个可以使得模型动起来更逼真,至于原因和用法建议看这个视频,从第9分钟看起就行。

  • Step9:到此为止,骨骼能比较好的控制模型了,模型有了能行走的能力。下面给骨骼添加动作,切换到Animation页卡,在Action Editor属性面板下操作,还有,要记得在Pose Mode下操作:
    PAOGD个人作业2-角色动画基础——Blender2.8
    然后在时间轴上选定第1帧,然后对骨骼进行摆动,主要是手和脚了,摆好准备走路的第一个姿势,这个因人而异,下面是我的操作图,仅供参考:
    PAOGD个人作业2-角色动画基础——Blender2.8
    接着全选骨骼(点中一块骨骼后按下A键就能全选),然后按快捷键I->选择LocRot插入关键帧,保存此时骨骼的位置和旋转情况。要实现行走动作的动画,至少还要插入两个关键帧,现在人物是右脚和左手在前,按照平时的走路,下一步就是左脚和右手在前了,你可能会想还要重新调整骨骼?这不仅麻烦而且调的角度可能有所偏差使得前后不对称,这里有个技巧,全选骨骼后按Ctrl + C把现在的Pose保存下来,然后在时间轴上选定第二个关键帧(我是在第20帧那里),然后按Ctrl + Shift + V 就是实现反向粘贴了:
    PAOGD个人作业2-角色动画基础——Blender2.8
    最后肯定就是插入关键帧啦,操作跟刚刚的一样,这是第二个关键帧了,第三个关键帧就是回到原来的姿势,只需Ctrl + V就能复制刚刚的Pose,然后再次插入关键帧就行(我是在第40帧插入的)。一个简单的行走动画就实现了,可以更改动画名称为Walk。

  • Step10:NLA操作。打开Nonlinear Animation面板,按下Push图标:
    PAOGD个人作业2-角色动画基础——Blender2.8
    然后在该面板内按下快捷键N弹出右边的属性栏,找到属性Repeat,把数值调大,使得动作Walk填满整个时间轴,成为一个重复动作:
    PAOGD个人作业2-角色动画基础——Blender2.8
    到此,实现了重复行走的功能。

  • Step11:增加运动曲线,使得人物跟随曲线运动。下面操作可以在Object Mode下进行。首先添加曲线:
    PAOGD个人作业2-角色动画基础——Blender2.8
    选择哪种曲线都行,为了方便,我选了Circle,选了哪种都可以进行编辑,实现自己想要的曲线路径(推荐教程(需要外网))
    然后,选中人体骨骼,在右边Object Constraint面板中添加Follow Path约束,属性Target不用问都知道是新添加的那条曲线,然后把Follow Curve勾上:
    PAOGD个人作业2-角色动画基础——Blender2.8
    接着,选中曲线,在右侧Object Data面板,在Path Animation下的Frames属性改成你想让人物运动的帧数(我的是500),然后将Evaluation Time改成0也即初始位置,然后右键->选择Insert KeyFrame插入关键帧;再把Evaluation Time改成500,再次右键->选择Insert KeyFrame插入关键帧。模型就能绕着我添加的圆形曲线运动了,不同曲线的设定可能有些不一样。
    PAOGD个人作业2-角色动画基础——Blender2.8
    至此,基本完成任务了。

总结

感觉Blender的学习资料还是挺少的,挺难找的,将这次的学习分享一下,如果其中有问题欢迎大家留言提出,交流学习学习。