本教程向脚本之家的朋友们介绍Maya动作调整Motion Builder功能及用途,教程属于一篇理论知识教程,虽然文字有点多,但介绍地很详细。相信大家能从中有个颠覆性的认识,原来功能可以开发成这样……
相信大家都知道Maya,但却不能不知道Motion Builder,一套最强大的动作调整软件, Motion Builder 原属是加拿大Kaydara公司,但后来被Alias收购,改名为alias Motion Builder。Motion Builder的用途很广泛,实时意味着你无需花时间等待渲染的结果,预览起来没有任何解析度及帧速率的限制,也就是所谓的"所见即所得",回放时的效果如同最终成品,因此可以清楚知道每时每刻的结果。
Motion Builder根据功能的不同,分为家庭版、专业版以及专用作运动捕捉的mocap版,而各个版本的功能相差很大,家庭版只有最基本的功能模块,没有Actor,同时只能打开一个take (就是一个动作片段),没有Motion blend,并且还缺少专业版的一些小功能;而专业版是没有什么限制的版本,支持Actor,Motion blend,同时打开多个take,增强了约束、关系式等的功能模块;而mocap版是相当于增加了运动捕捉功能的专业版,功能大致和专业版相同,可以拥有动作捕捉,面部表情捕捉等强大功能。
我在这里要讲解Motion Builder 6.0,它比起以前的版本也是有相当大的改进,包括改进的用户界面、自动记录动画帧、运动轨迹,3d路经动画等。改进的用户界面:新版把常用的功能放到视窗的右边,方便用户操作(图 0) 。并且允许用户自定义界面的布局。
例如我们不想浪费Key controls的面板空间(图 0-1),想把Groups和Sets菜单放到Key controls里,我们可以把当前的布局保存下来,选择layout菜单下的Create new layout子菜单(图 0-2),在弹出的菜单输入自己定义的命名(图 0-3),MotionBuilder会把这个配置文件保存为一个txt的文本,放到x:\Program\Files\Alias\MotionBuilder6Pro\bin\config\Layouts\mylayout.txt,用记事本打开,找到描述Key controls菜单的一项,更改为(图 0-4),关闭Motion Builder,重新运行后,更改就起效了,我们可以看看我们改后的成果(图 0-5),是不是很方便呢?用户的*度大大的提高了。
图 0
图 0-1
图 0-2
图 0-3
图 0-4
图 0-5
自动记录动画帧:首先在Motion Builder的Asset Browser里把cube拖动到viewer视窗(图1),这样便创建了一个四边形,然后在Key Controls窗口打开Auto key功能(图2),我们分别在第1,15,30帧对cube进行移动(键盘 T键),旋转(键盘 R键),缩放(键盘 S键)的操作,关键帧便记录下来。(图3)
图1
图2
图3
Move keys:其作用是更改物体整体的运动方向,例如一个人沿着直线走,通过调整,我们可以让他行走中转弯,下面我通过一个cube的运动来说明这个功能的应用。现在cube的运动轨迹是直线的,我们想让它在15桢以后改变运动方向,我们只需要选择第15桢及其以后的所有关键桢(按下空格键,用鼠标拖动选择, (图 3-1)),对cube旋转,然后按下Move keys按钮,这个物体的方向便更改了(图 3-2),
其实这个功能是把story的操作简单化的一个方式,以前要改变一个人或物体的运动方向,只有在story里把clip剪开,然后旋转clip的ghost才能做的到,现在把这个功能单独拿出来,也是一个不错的改进吧。
图 3-1
图 3-2
运动轨迹:这个功能可以清楚的知道物体是怎样运动,以及运动是否平滑,对于运动调节的帮助很大,继续上面操作,我们在viewer的界面上打开显示运动轨迹的按钮,这样物体的运动路径便显示出来了,并且可以同时显示多个物体轨迹。
图4
3d路经动画:可以让物体沿着用户定义的曲线运动。首先在Asset BrowserElements目录里双击3D Curve图标(图5),然后在viewer里点击进行曲线的绘制,按键盘上的Enter结束绘制。然后拖动cube图标到刚创建的curve上(图6),选择constraint object to path,物体便沿着曲线运动了,如果想改变曲线的形状,切换到点的方式(图7),就可以对曲线进行调整了。
图5
图6
图7
Control Rigs 的独立:在Motion Builder 6.0 以前,control rigs并不是单独的,而现在独立后,能更方便地操作(图8)。
图8
Dynamic Editor(动态编辑器):很方便的关键帧编辑,并且能调节关键帧的权重,相邻关键帧间的曲线过渡(图9)。
图9
Story的改进:现在story可以支持character face了,也就是可以专用一条轨,做面部表情动画,并且可以为表情建立clip,方便动画的连接(图10),6.0以前的story是没这个功能的。
图10
Character face和 Actor face的分离:Motion Builder的面部表情动画是通过设置好后,通过声音来驱动的,不用手动建立关键帧,不过也有限制,暂时这个声音驱动只支持英文、法文、等,却不支持中文,所谓不支持,其实口型是有的,但不太准确,要很准确,还是要手动key,或者在story里面建立clip,更何况现在character face已不再需要Actor face就能做声音驱动表情动画,以前是不行的,而独立出来的Actor face,现在主要功能是做面部表情捕捉(face mocap)。
Handle(手柄):主要是用来标识,可以方便自己区分场景的物体,对物体进行移动、旋转、缩放等操作,另外的用途是用作控制IK/FK。而建立handle的方法也是从Asset Browers的Elements的目录里,找到handle图标(图11),拖动到物体上(图12),并且可以设置这个handle的大小,标注的文字,颜色,选了这个handle就等于选择了这个物体。
图11
图12
脚本编辑器(Python programming language):Motion Builder 6.0新增的脚本语言,也是一种易学易用的语言,下面就详细介绍如何设置和一些应用,不过只有专业版或者比专业版更高级的版本才拥有这样的功能,用户可以根据自己的需要,编写程序,自动处理一些重复性的任务。
而这种语言的文件,是以.py为后缀的文本文件,用记事本就能打开,所以我们写完后,就可以另存为*.py的文件,然后放回Motion Builder的目录(一般是X:\Program Files\Alias\MotionBuilder6Pro\bin\config\Scripts,X是你的驱动器),不过我们也可以在Asset Browser自己定义一个路径,把脚本文件存放到自己定义的目录,方法是:在Asset Browser左边点击鼠标右键,在弹出的菜单上,选择Add favorite path选项(图 13),在弹出的对话框选择自己定义的目录就可以了(图 14)。
现在我们来尝试写一个scripts,来更改场景里所有的摄像机的背景色,我们用记事本写出如下代码(图 15):然后在记事本的设置如(图16),一定要注意大小写;做完以上步骤后,我们需要对目录进行刷新,在Asset Browser的Scripts目录用鼠标右键点击,在弹出的选项选择Refresh directory选项(图17),这一步是必要的,不然是不会出现我们刚才所写的文件的,至于如何执行这个脚本,也是很简单的,把这个脚本拖动到viewer窗口,然后选择Execute选项,这样场景所有Camera的背景色都被更改了(图18)。
图 13
图 14
图 15
图 16
图17
图18
组和集(Groups and sets) :你可以为场景浏览器里的任意类型的元素创建Groups 和sets,在管理角色和其它物体上,这个功能很有用,你可以很容易的管理、删除、替换他们所包含的元素,成组后的物体,我们可以控制这个组的可视,是否可选,以及是否锁定旋转,平移,缩放的属性。
相关的新增功能就基本上介绍完了,下面介绍maya 6.0和Motion Builder 6.0的交互,很多人听到,可能会问为什么要maya和Motion Builder交互呢?现在我来说一下,maya虽然是有trax editor编辑,不过在角色编辑的强大性上是比不上Motion Builder的。
而且在动作的通用性上,是不如Motion Builder的,例如角色的大小不同,角色的骨骼旋转轴心等问题,还有多个动作的融合,以及对身体某一部分进行local blend的方面,镜头的切换,maya还是不如人意,而且maya调动作,实时交互性很差,角色复杂一点的就慢下来了,更不要说同时调整多个角色,而且动作是否有不顺畅,都不能马上知道,要用playblast预览动画,playblast的速度也是十分的慢,没办法达到Motion Builder少于一秒一帧的渲染速度的,说了这么多,相信大家都明白Motion Builder的强大之处了。
现在介绍Motion Builder和maya交互要知道的一些基本流程,而这个交互,是通过插件来实现的,首先在maya里要建立符合Motion Builder命名规则的骨骼,蒙皮后导入Motion Builder,在里面建立IK/FK,然后调整动作,调整后再导入maya,大概的流程就是这样了。不过首先要知道的是怎么相互导入,我们需要一个FBX的插件,用作maya和Motion Builder的交互,我们可以到
http://www.alias.com/eng/products-services/fbx/download.shtml,这个插件是免费提供 的,不过要注册一下才可以下载,不过根据使用这么久的经验,最新的fbx 插件还是不要用于工作,有时候新的版本还是不如旧版本的那么理想,会出现一点问题,使用maya 5时推荐使用 3.82版本的,maya 6.0推荐使用 5.3或6.0 版本,这两个都是比较稳定的版本, 虽然现在出了6.01版。
在确定以上的条件都准备好后,就可以进行以后的流程了,首先我们要先确定FBX插件装载了没有,因为默认情况安装后,这个插件是不会自动装载的,我们要在maya里装载(图19),首先我们在邦定角色之前,要知道因为maya局部座标系统有可能导致导入Motion Builder后产生位移的错误,就是导入后和maya看到的效果不一样。
要解决这个问题,先选择所有的物体(除了要做blendshape表情的不要选,切记),执行Modify/Freeze transformations命令(图 20),把模型的局部坐标全部置0,才能进行角色绑定的下一步操作,绑定模型后,根据经验,比较多会出问题的地方多是胳膊,手臂,臀部,这三个地方,而绑定的模式最好是smooth bind(光滑蒙皮),因为Motion Builder对maya的光滑蒙皮支持要比Rigid bind(刚性蒙皮)要好,主要是不支持刚性蒙皮的Flexor修改器。现在我们继续下一步,现在我要处理的是角色的骨骼命名问题,因为Motion Builder只支持符合它命名的骨骼,虽然命名不正确,是可以在Motion Builder里面修改,但比较麻烦,所以最好在maya里一次完成。
在工作中要注意的是给角色的root命个名字,以便区分角色,以及以后动作的导入,我们在maya里为角色加一个前缀,例如添加一个名为 clock_的前缀,我们可以在maya的script editor输入如下命令(图21),然后我们对根节点改名(图22),这样我们在maya里面工作就做完了。下一步就是输出到Motion Builder,需要注意的是输出的文件格式选项,我们输出的是fbx (图23),不是mb格式,另外需要注意的是输出的目录不要用中文,不然是没任何文件输出的,因为Motion Builder不支持中文目录,按下Export后,会弹出一个输出的选项(图24),而用户可以根据需要,自行选择,一般都不用选的,按默认Export输出就可以了。
图19
图20
图21
图22
图23
图24
然后我们运行Motion Builder,打开刚才导出的文件,下面我们要对这个骨骼进行角色化,而角色化的这个过程是必要的,角色化后,Motion Builder会建立IK、FK,其实就是所谓的control rig,而我们在角色化的过程中,有一个比较巧妙的方法,就是把Asset Browser的Character图标拖动到scene里(图25),让程序自动检测哪个需要角色化,而根据我们骨骼命名的正确与否,大体上会分别出现三种情况,第一种 ,完全命名正确就只会出现(图26)的情况,这时候我们选Biped(两足动物)就可以了,Quadruped是四足动物;
第二种情况:由于骨骼的roll关节不够直,会出现如图(图27),这里的意思是Leftuplegroll在Z轴上不够直,需要旋转1.4度,修改方法是回到maya,选择程序提示的那一节骨骼进行修改(图28),修改后,为这个骨骼再建立一个新的bind pose就可以了。
第三情况:可能没相对应的那节骨骼,又或者是骨骼命名错误(图29), 从提示里,我们可以看到,缺少了头部的骨骼,至于如何看我们可以点击character,查看,就可以知道缺少了那一节,少了的Model栏里是空的(图30),如果命名错误比较少,而且是有那节骨骼,我们可以选上相对应的那一节,按下键盘上的Alt键的同时,用鼠标拖动到缺失的Model栏里。
图25
图26
图27
图28
图29
图 30
当角色化完全正确后,我们切换角色为当前角色,在Character controls的edit按钮选控制方式:Control Rig Input(图 31),然后在弹出的菜单选择FK/IK(图 32),最后激活Ctrl Rig In(图 33), keying mode的full body指为所有的control rig打关键帧,body parts为身体部分,包括其子物体,而selection为当前所选的,不包括其子物体。
当我们调节好动作以后,就要把动作应用到骨骼了,因为现在的关键帧只是打在了control rig上,骨骼上并没有关键帧,所以我们要用plot Character命令(图 34), 关键帧转换到骨骼,在弹出的菜单选(图 35)skeleton,然后程序会让你再次确认(图 36),一定要注意,不要忽略plot rate,这个要根据你的需要,一般正常都是用25frame的,进行plot Character后会变成一个take。
而现在我们可以存盘,在maya里导入动作(图 37),选择哪个take,因为我们想把动作导入现在的maya骨骼上,所以要应用Execlusive merge选项,而maya到Motion Builder的交互就基本完成了,在工作中,总结了一些经验,就是骨骼命名最好全在maya完成,要有合理的角色命名,插件的选择是最前提,新发布Motion Builder 6.0在fbx文件上和以前的各个版本都不同了,低版本不能打开高版本的fbx,所以尽量要选好一套稳定版本的组合,我个人推荐Maya 6.0 + Fbx 6.0 + Motion Builder 6.0这个组合,无论在插件的稳定性上都是不错的;另外用Motion Builder时,最好多存几个文件,因为有时候undo会回到很早前你所做的那一步 ,
不过Motion Builder 6.01好象消除了这个错误了,到这里,相信大家都会对Motion Builder有一个相当深入的认识了,掀开了它神秘的面纱,Motion Builder不愧为一个功能强大的角色动作调整软件。
图 31
图 32
图 33
图 34
图 35
图 36
图 37
关于Motion Builder的背景知识,Motion Builder 应用于好莱坞的动作捕作,角色动画制作,一些电影里面的三维角色的表情动画,现在大多数都是用其制作的,还可以配合面部表情捕捉系统,进行更精确的调整。
在当今电影领域应用广泛,还可以实现实时电视广播,真人和卡通实时对话,虚拟主持人,娱乐节目直播,电视游戏节目直播,新闻,天气预报直播,卡通连续剧和卡通电影等各种各方面的应用。这个软件具有独一无二的实时功能:支持实时的反射、贴图、阴影和粒子系统;实时卡通对嘴型(Lip-synchronization);可与虚拟演播室无缝连接使用(Camera Tracking);专业的数字分量和模拟分量输入输出。其强大的角色动作调整功能,不但支持两足,而且还支持四足动物,完全可以替代现有的三维软件的动作调整,在动画制作方面处于世界领先的水平。
教程结束,以上就是Maya动作调整Motion Builder功能及用途介绍,希望对大家有所帮助!