2.1了解非线性动画
使用非线性动画编辑器Trax,可以不受时间限制地非线性地分层和混合角色(参见角色概念篇)动画序列。用户可以分层和混合包括运动捕捉和路径动画在内的任何类型的关键帧动画。把Trax编辑器其他的动画工具一起作用,可以开发出复杂的动画。
使用Trax编辑器的关键就是片断(clip),片断是从现有的动画角色上获取的一段动画,它是独立的、可重复使用的,并且可以方便地与其他片断合并和融合。例如,角色的走、跑、跳和翻跟头动画序列都可以作为片断,这样可以以不同的方式来混合和组织它们以创建各种不同的效果。
使用片断的方法有:
.移动一个到不同的播放时间中
.循环一个片断使动画重复
.同步一个或多个角色的片断
.实例或拷贝一个片断到新的角色中,而且可以输出、输入或参考其他场景的片段(“角色”概念可以参看相关章节)
使用Trax Editor,可以在不损坏原作的同时,对动画进行某些细微的修改。例如,已经创建了一个机器战警行走的动画,现在想要它在走路时,双腿提的高些。那么可以只调
整腿的关键帧,而不是对整个角色进行改动。我们可以通过创建几个不同的腿运动的片断,与原先的腿运动效果混合,而不会破坏原来的动画。
后文有详尽的解释。
2.2 使用Trax Editor
使用Trax Editor 可以创建和编辑独立于时间的角色动画片断。
1)了解Trax Editor
选择Window>Animation Editors>Trax Editor,显示Trax Editor视窗:
只有自己在场景中创建了角色,才会在Trax编辑器中看到角色和轨道。可以在一个或多个轨道上用一个或多个片断动画角色。一个轨道上可以有多个按序排好的片断。在播放
场景时,片断从左向右播放。如果一个角色有多个轨道,Maya会使用轨道上的所有片断。重叠的片断有相加的效果。用户可以融合叠加的片断来避免双倍的运动。我们可以在Trax
编辑器中选择:Create>Character命令来创建一个角色。此命令与主菜单中的Character>Create Character set命令是相同的。
2)创建片断(也称为剪辑)
在动画一个角色之后,用户可以为动画的每一个部分创建一个片断。注意:创建片段(Clip)的基本条件——角色(或子角色)有动画曲线,通俗地说是必须存在关键帧。
创建一个片断,具体操作:
a.选择角色。
b.在Trax编辑器中,选择 Create>Clip口,显示选项窗口,也可以从主菜单窗口Animate>Create Clip,显示选项窗口。
c.设置下列选项,并单击Create Clip按钮。
■keys :
选用Leave Keys in TimeLine项后,则不会清除时间滑块时间栏里和Graph Editor中的关键帧,并把片断放进Visor视窗里。注意,此时原来的关键帧仍然保留在原来的时间滑块上
,我们可以继续用这些关键帧来创建其他片段。同时,下面的Put Clip in Trax Editor and Visor选项会变成不可选,从而防止时间滑块中的关键帧被添加到Trax中的片段动画中
,这可以避免产生双倍的动画效果。如果为角色创建了一个片段,然后在时间滑块的时间栏里设置关键帧,则关键帧动画就被添加到原来的片段中,这称为“运动扭曲”或“非破
坏性动画”。请参看下面的内容。
如果不选择Leave Keys in TimeLine项,我们可以选择把片段只是放在Visor中,还是同时放在Visor和Trax编辑其中,这由您在Clip检查钮中来分别决定。注意:这时,Maya
会清除时间栏上和Graph Editor中的关键帧,那么我们可以重新用这个“干净”的角色,再次通过关键帧等动画方法来创建一个新的片段。在创建新的片段时,为了不让原来建立
的片断干扰新的片段的建立,最好不要把原来建立的片段放在Trax Editor中。
■ Clip: 指定把创建的角色放置在何处,是单单放在Visor中还是同时放在Trax Editor中。这和上面的“Leave Keys in TimeLine”选项有关系。
■ Time Range:在Trax Editor中确定片段的时间范围。
■ Subcharacters:选择在片段中是否包含子角色。
■Time Warp:决定是否建立时间扭曲曲线。
Time Wrap(时间扭曲)可以允许你不用调整片段中的动画曲线就可以改变片段的时间。你可以通过编辑控制扭曲的动画曲线来调整时间扭曲。当你建立、复制、或实例一个片
段时,你可以建立自动的时间扭曲。时间扭曲主要用在一个片段的回放、缓进和缓出。
3)使用片断(也称为剪辑)
a.编辑片段属性
在trax中,单击一个片断来选择它;选择Modify > Attribute Editor。
weight(权重)---通过指定百分比来缩放片断的属性值。缩放发生在整个片断动画,放缩轴心在片断的开始。例如,一个物体在30帧内在X轴上移动了10个单位。如果你将权重设
置在0.5,在30帧内物体将只在X轴上移动5个单位。除了布尔(Boolean)属性(因为只有是/否),所有的属性都会被权重影响。
Offset(徧移)---如果属性由一个以前的片断或时间栏上的关键帧来控制,则由offfset来解释片断的属性值。包括:
. Absolute不考虑以前的值而使用当前片断的属性。
. Relative将片断的属性增加到它以前的值上。
例如:建立了两个在时间栏上顺序播放的片断。第一个片断是一个角色从原点沿X轴走路,第二个片断是角色从原点沿X轴跑步。
如果你打开“关联”(relative),角色将从原点出发沿X轴走路,直到第一个片断结束,第二个片断将会从第一个片断结束时角色所在的位置开始。如果你打开的是“绝对”
(absolute)第一个片断结束后,角色将立即返回原点并开始第二个片断的播放。
如果同一个角色的两个片断在一条轨道上重叠了,那么MAYA将叠加属性的值,而不管offset是如何的。这时应该使用混合(blend)片断的命令。(后述)
enable—决定是否使一个片断发生作用。
Start frame—决定片断的实际播放开始时间。你也可以拖动整个片断向左或右来改变片断的开始。注意和“Source Clip Attributs”中的“Start”的概念是有区别的。
Cycle—指定片断将重复几次。例如,你的片断最初播放10帧,将它设置为2则片断将播放20帧。设置为0.5则片断将只播放一半----5帧。如果循环的设置超过1,片断将显示一个尺
状的标记来指明附加的循环都是从那里开始的。你也可以通过拖动片断的右下边缘来改变循环的值。
Scale—延长或缩短片断的时间范围。如果你增加了缩放的值,动画就会放慢。反之亦然。你可以通过拖移片断块的右上边缘来改变缩放值。
b.编辑源片段属性
当你建立一个片断,MAYA将整个角色动画的曲线储存在visor面板的一个叫“clipnSource”的节点里。在trax中的片断实际上是源片断的一个播放例本(instance,即说明源片断将
会随着例本的改变而改变)。在trax中的片断的播放范围可以只是源片断的一部分。
你可以对源片断的属性进行修改,例如,你建立片断时使用的开始时间。想象在一个由1到100帧构成的动画中,你用关键帧控制一个篮球运动员反复拍打篮球,然后投篮。接着,
你从30到50帧之间建立一个拍篮球动作片断的单循环。如果你打算将片断扩展成跟在投篮后面的一个单循环的拍篮球动作,那么在trax的片断中是无法支持这样的操作的。你必须
修改相应的源片断的开始属性。
当你修改源片断的属性时,trax中的片断也会做相应的修改。
Source Clip Attributes(源片段属性)
Pose:此选项指示此片段是Pose(姿势),而不是Clip(片段)。注意Maya把Pose(姿势)放在Visor中的Character Poses栏目中。
Start:指定源片段开始的时间。(注意和片段属性中的“Start Frame”是有区别的。)
Duration:指定片段从Start开始扩展的时间量。
c.剪切、拷贝、粘贴、复制、实例、分割、合并、混合片段
(课堂讲解)
d.查看并编辑片段的动画曲线
你可以为片断打开graph editor来修改其动画曲线。选择一个片断,然后选择view>graph anim curves。可以在Graph Editor窗口中编辑动画曲线。其实你这时候编辑的是“
源片段”的动画曲线。
e.编辑片段的原始关键帧
为了修改显示在时间栏上的片断的关键帧,你必须首先激活片断。当你激活一个片断,MAYA将关键帧显示在时间栏上,但如果你将片断移到了其它时间位置,关键帧就不会显示了
。当片断被激活时,MAYA使片断的权重,徧移,关联等属性不再起作用。MAYA也会使角色的其它片断暂时不起作用。
如果片断上新增的关键帧超过源片断的持续时间(duration),当片断被激活时关键帧动画才播放,而片断没有被激活时它是不会被包括进去的,除非你在attribute editor中修改源片
断的duration属性。
要修改一个片断原来的关键帧,选择这个片断,并选择modify>activate/deactivate clip。关键帧将出现在时间栏中以待修改。结束后再次选择modify>activate/deactivate
clip关闭关键帧的修改。
f.使片段有效和失效
你可以暂时关闭一个片断使它在回放中不起作用,也可以稍后再打开它。要这样做,选择片断,再选择modify>enable/disable。
g.添加和删除轨道
对一个选择的角色可以增加或删除空的片断。如果你对一个角色增加了许多的轨道,你就可以将许多类似的片断放在一致的时间段上进行方便的调整和比较。要这样做选择一
个角色,之后选择modify>add track或remove track。
h.运动扭曲(motion warping即非破坏性动画生成)
动态动画曲变指对一个已经有动画片断的角色增加关键帧,关键帧对角色起作用并和片断相联系。在下列情况下特别适用非破坏性动画生成:
你需要对一段基本完成的片断进行微妙的调整,但不希望损伤原来的片断;
你已经建立了为不同的角色设置的片断例本,例如,一群人走过一条小路,但是希望每一个角色都有自己特别的动作;
你为一个角色建立了密集的关键帧,比如,使用了motion capture,而你又希望在不影响这些关键帧的基础上调整动作。
当你在一个角色上设置关键帧时,动态动画曲变的范围出现在trax的时间栏上的蓝色区域。在你增加动态动画曲变的关键帧之前,首先设置关键帧(不改变属性值)于你想修改的片断
的开始和结束处。这些制限用的关键帧限制了动态动画曲变的开始和结束。之后就可以在这个区域内增加关键帧了。重放动画确保变形是你所希望的。当你对增加的关键帧感到满
意了,就为它们建立一个片断,之后还可以通过修改权重来调整动作。
例如,你建立了一个机器战警走路的片段。你喜欢这个动作,但是你希望在行军时机器战警的脚能抬得高一点。首先,在所有的脚处在地面上的帧设置制限帧,这不改变属性的值
。之后,当脚抬起来,将它移得高一些并在此设置关键帧。为这些帧建立片段并试着用不同的权重值来调整动画。
图一,没有建立运动扭曲:
图二,建立了运动扭曲:
我们可以看到左脚的运动相应发生了变化,但是别的部分的运动并没有受到影响。
如果你在关联的片段(包括循环片段)上使用动态动画曲变,可能会产生意想不到的结果。如果你打算这样做的话,用edit>merge 命令使动画独立成单一的片断。
4)使用姿势(pose)
动画完角色后,可以保存一张角色当前位置的块照。角色的某一位置的块照称为姿势(pose)。姿势可以是时间栏里任一时刻的动作。我们可以象片段一样在Trax Editor 视
窗中实例、拷贝和粘贴姿势。创建姿势的优点是:
a.当动画角色时,可以用姿势进行位置的比较。
b.我们可以创建角色的姿势,然后使用Blend Shape(融合变形)功能,混合姿势间的动画。
c.另外在一个大型的动画项目中,如果你是主动画师,在一个长动画序列中,你可以为序列中的角色建立各种各样的“关键姿势”(Key Pose),这样你的助手们就可以在Key Pose
之间自由地动画角色。
创建姿势的具体操作:
d.选择角色;
e.单击时间栏里的帧;
f.在Trax Editor视窗中 选择Create>Pose口;
g.在Name栏里输入姿势的名称,然后单击Create Pose 按钮。
5) 输入和输出源片段
当你建立一个项目(project),MAYA会创建一个clips的目录。如果你从场景导出一个源片断,MAYA将之储存在clips目录中。如果你输入一个片断,MAYA将之放在场景中的visor面
板。 许多动画者使用一个另外的空场景专门来记录常用的片断,比如,走路和跑步之类。
MAYA通过节点名和属性名来匹配一个导入的片断到角色上。所以如果你建立一个常用的片断库的话,可以使用一个命名列表来管理和匹配这些片断。
如何导出片断:在Trax编辑器中选择片断之后,选择file>export clip,在文件浏览窗口,选择片断并单击export。
如何导入片断:在trax中选择file>import clip,导入的片断在visor中,要使用它,用中键拖移到trax。
6)输出和编辑角色贴图
当你从一个角色上复制一个片断并粘贴到另外的角色上时,被粘贴的角色的属性可能不会象期望的那样动画。例如,脚部的旋转奇怪地代替了脖子的旋转。
假如发生了这个问题,很可能被粘贴的,或者说被映射的角色的属性或物体与原来的角色不一样。为了修正映射的关系使角色能像原来的那样动画,你必须导出角色的映射
(character map)并修改那些不正确的属性映射。
如何导出角色映射并修改:
a. 删除粘贴的片断,如果有的话;
b. 选择这两个角色。
c.在trax中选择File>Export character map。
d.设置下列的选项:
map method—决定映射的格式:
by attribute name—将映射建立在相对应的属性名称上;
by attribute order—将映射建立在相对应的通道的属性顺序上;
by node name—将映射建立在相对应的物体与属性名称上;
by current map—仅当你已经导出一个角色映射并执行了按下面步骤描述的MEL角本时,本方法才有效。这个选项按当前选择的角色的映射来建立映射。在你已经导出了修正角色映
射的映射,之后再增加新的属性到角色时是十分有效的。假如你使用的是by current map,你将能修改更多的属性映射—当然只是那些在最后修改映射之前增加的属性。
最好的映射办法是按不同情况选择最容易编辑的办法。你有必要知道所有角色的属性及它们的排列顺序。
e.单击export键,文件浏览窗口将出现;
f.在窗口,指定文件名并将角色映射储存到“登录名/maya/scripts”目录下,角色映射是一个.mel文件;
g.用WINDOWS记事本打开角本并修正属性映射。在文件中有关于修改方法的说明;
h.在script editor中,选择file>source script将角本引入场景。之后在script editor中打入角本的名称(无需扩展名),按数字键上的enter键执行;
i.按by current map方法复制并粘贴属性
j.回放动画,检查结果。
7)输出参考片段
当你导出一个片断时,它将被存储在场景文件中,但是没有与任何的角色连接。本质上,片断所控制的是独立于物体的属性的动画曲线集。如果你导入一个以前导出的片断,以当
前的映射选项是没有办法粘贴它的。你可以通过将有着你希望导入的片断的角色所在场景作为参考来绕过这个限制。
如何导入一个片断的参考:
打开包含目的角色的文件—这个角色是你希望在其上运用片断的角色。第二步将包含源角色的文件作为参考—这个角色有你想用的片断在。打开trax,从源角色复制并粘贴到目标
角色上。接着选择File>reference editor。在reference editor 中选择参考之后用edit>remove将之删除。这个流程比导入一个包含角色的场景的方法更可取一些,因为删除参考
等于删除了所有源角色场景的元素。你不需要再在场景中删除那些多余不用的节点。你还可以为流程建立一个MEL角本,来将不同的motion capture的资料导入片断。
8)理解Visor视窗中的片段和姿势
9)使用子角色
子角色的属性总和角色绑在一起,所以你可以同步地在它们上设置关键帧。如果你在角色上设了关键帧,MAYA也会为所有的副角色设置关键帧。使用trax,当你需要用offset的
Relative属性建立一个片断,而希望在建立另一个同样的角色片断时使用Absolute属性时,你可以使用副角色来达到目的。(关于offset见上文)
例如,你动画一个走路的角色。这个角色的下身向前移动,胳膊与腿做相应的旋转。设想如果你将下身设置为主角色,胳膊和腿做为副角色。你就可以在主角色的下身上使用
relative建立片断并在做为副角色的胳膊和腿上使用absolute建立片断。
如果你在一个有片断的角色上创建一个副角色,它将继承存在的片断动画,不必担心有动画会因此遗失。