本部分介绍如何在动画中使曲面发生变形。
本部分介绍如何将簇作为单个图元进行变换和操纵。
“簇”是一个图元,可将任意 CV 和 DAG 节点列表按逻辑分组,以便将这些节点作为单个图元进行变换和操纵。可以将簇视为自身没有几何体,但参考其他几何体的一种对象类型。
若要创建簇,请拾取要包含在簇中的所有对象和 CV,然后选择“Animation”>“Create”>“Cluster”。这些 CV 不必属于几何体的同一部分。系统将会创建一个簇节点,上方有一个 DAG 节点。变换该 DAG 节点时,也会变换该簇中的每个 CV。
可以移动簇的轴心点,然后使用“Transform”>“Rotate” 或“Transform”>“Scale”
变换它。可以相对于一个公共轴心点变换多个对象的 CV。
簇不能包含其中没有 CV 的元素。例如,如果调用“New cluster”时拾取了一个相机或灯光,则簇中不会包含该相机或灯光。这是因为簇的作用是在对象几何体上创建变形,而相机和灯光不含几何体。
拾取一个对象时会将其所有 CV 放置在簇中。
对于组成簇的几何体节点(蓝色节点),几何体框周围有一个额外的蓝框,表明几何体的一部分包含在拾取的簇中。如果取消拾取簇,几何体框周围的蓝框就会消失。
该操作完成后,拾取列表中将仅包含该新簇的 DAG 节点。
在簇中包含 DAG 节点而不是显式包含其 CV 的优势在于,之后将 CV 添加到 DAG 节点下的几何体时,会同时将该 CV 添加到簇中。
可以在任意建模窗口中选择几何体,以便拾取其对应簇包含该几何体的所有簇 DAG 节点。对于包含选定 CV 或 DAG 节点的任何簇,其 DAG 节点都会被拾取并亮显。可以通过下列四种方法之一拾取簇的 DAG 节点:
在“Cluster Editor”窗口(“Animation”>“Editors”>“Clusters”)中创建簇之后,可以更改“Members”状态。
使用“Edit”>“Duplicate”>“Object” 复制簇时,将创建一个空节点。
应创建一个新簇,并使其为空。
然后使用簇编辑器将剪切项从原始簇复制到新簇中。这样将保留簇的百分比。对簇进行重新排序,使新簇紧邻原始簇之后。
使用“Edit”>“Duplicate”>“Object” 复制簇成员时,会将新对象与原始对象放在相同的簇中,而不会创建新簇。
请使用“Edit”>“Copy” 和“Edit”>“Paste”
创建簇和成员的副本。
如何编辑簇。
使用“Animation”>“Editors”>“Clusters” 可以添加或删除簇成员,在簇之间移动或复制成员,修改成员的百分比效果,在关节或叶 DAG 节点之间切换簇的百分比效果类型,或者对簇重排序以设置簇变换的应用顺序。
打开“Cluster Editor”时,列表模式指定的所有簇(默认情况下拾取的或在 DAG 中有活动祖先的簇)都将加载到“Cluster Editor”中。系统将会以压缩形式(即成员不可见且按照全局排序列出)加载簇。
可通过双击名称字段来更改簇名。
使用“expand/compress”簇按钮可以展开簇以查看它的每个成员,或者收拢簇以便仅显示簇名。在展开簇时,会按照以下顺序显示成员:首先按名称字母顺序显示 DAG 节点,然后显示曲面 CV,最后是曲线 CV。
将簇展开以显示其成员时,其中一个成员可能是 DAG 节点。在本例中,DAG 节点名称的左侧有一个展开成员箭头。如果选择该箭头,将会展开该 DAG 节点,显示它下面的所有项(例如,其他成组的 DAG 节点或几何体 CV)。如果一个簇成员的所有同级项都包含在该簇中(例如,一个对象的所有 CV 都在该簇中),则该成员的名称右侧有一个压缩箭头。如果选择该箭头,父 DAG 节点会替换簇中的该成员及其同级项。
使用“percentage effect type”按钮可切换簇的百分比效果类型。“joint”百分比效果类型可通知簇将其百分比效果应用于簇上方第一个骨骼关节节点的变换。“Leaf node”百分比效果可通知簇使用紧邻它上方的 DAG 节点中的变换。
使用“pick-in-modeler”按钮可在建模工具中更新簇及其成员的拾取状态。
“lock-in-list”按钮可确保即使在建模工具中取消拾取簇,该簇也仍保留在“Cluster Editor”中。
该功能在“List Mode”>“picked mode”下很有用,在该模式下,“Cluster Editor”将不断更新以反映当前所选的项,因而被取消拾取的簇将会从编辑器中消失。
“multi/exclusive”按钮用于切换簇成员身份类型。独占簇不能包含其他任何簇的成员。
多簇可包含其他多簇中的成员。可以始终将独占簇设置为多簇;但是,只有在多簇的所有成员均不属于任何其他簇时,才能将其设置为独占簇。
如果展开一个簇的 CV 成员,则 CV 右侧会显示一个百分比。该数字表示簇对该 CV 产生的百分比效果。
簇百分比是对簇的简单扩展,可显著提升其功能。系统并不为簇的每个成员指定相同变换,而是为各 CV 簇成员指定一个百分比值。应用簇变换时,簇中的每个 CV 仅使用自己的簇变换百分比。该百分比仅应用于层次中的一个 DAG 节点,这取决于“Percentage Effect”类型(参见下文)。
例如,如果簇变换是在 X 方向平移 5.0,则具有 50% 效果的成员仅平移 2.5;具有 200% 效果的成员平移 10.0,而具有 0% 效果的成员仍位于原位置。
可以通过以下两种方式在“Cluster Editor”中更改 CV 的百分比效果:单击其当前百分比并键入新值,或通过按住鼠标键并左右移动使用小滑块。
若要一次更改簇中多个 CV 的百分比,请选择簇中要更改其百分比的所有 CV,再选择其中一个 CV 旁边的值,然后输入新值。所有选择的 CV 都将获得这一新的百分比值。
通过更改簇百分比效果类型,可以控制层次中该簇上方的哪个 DAG 节点将百分比应用于其变换。
如果选择“leaf”类型,则紧邻簇上方的 DAG 节点的变换将按照该簇百分比进行。层次中的所有其他 DAG 节点将应用完全变换。
选择“joint”类型时,将仅对簇上方的第一个关节 DAG 节点应用百分比效果。在层次中,该第一个关节节点上方和下方的其他所有 DAG 节点都会对簇成员应用其完全变换。
关节类型的百分比效果还有另一个特性:百分比效果仅应用于关节中当前变换与创建关节类型簇时关节节点的原有变换的差值。
如果一个簇的百分比效果类型设置为“joint”,而该簇上方没有关节节点,则其行为与其百分比效果类型设置为“leaf”时相同。
例如,假设您有一个简单链骨骼,其底部关节下有一个叶类型的簇,而且底部关节变换只是绕 Y 轴旋转 60 度。如果将簇百分比效果类型切换为“joint”,则该簇会“记住”Y 轴旋转。
现在,假设将该关节旋转增加到绕 Y 轴旋转 80 度。百分比效果为 50% 的成员将继承 60 度的原始变换,再加上 60 度与 80 度之差的一半,所以净变换是 70 度。百分比效果为 25% 的成员按 65 度旋转;而百分比效果为 -25% 的成员按 55 度旋转。
对于“leaf”类型的百分比效果,始终假设原始变换相同;也就是说,X、Y、Z 平移为 0,X、Y、Z 旋转为 0,且 X、Y、Z 缩放为 1。继续研究该示例,如果在旋转到 80 度之后,将簇百分比效果类型切换回叶节点,则受该簇影响的成员将移动。百分比效果为 50% 的成员现在将继承 80 度的一半,即净变换为 40 度;百分比效果为 25% 的成员将旋转 20 度;百分比效果为 -25% 的成员将旋转 -20 度。
下图显示了 SBD 窗口中的百分比。
模型中的所有簇都具有全局顺序。该顺序定义对包含在多个簇(多簇)中的 CV 应用簇变换的顺序。如果多簇仅包含平移变换,则该顺序无影响。
不过,如果多簇包含旋转或缩放变换,那么 CV 的实际位置将取决于它所属簇的顺序。
下列图说明了这一点。在第一个图中创建了一个平面并将其放在原点。然后,将该平面放入两个多簇,一个簇的轴心点位于该平面左侧,另一个簇的轴心点位于该平面右侧。
第二个图和第三个图显示了将上述簇分别旋转 60 度时的两种不同效果。在第二个图中,首先应用了轴心点位于平面左侧的簇,而在另一个图中,首先应用了轴心点位于平面右侧的簇。
全局排序可以用于实现分层簇效果。例如,假设您希望沿运动路径滑动鼻涕虫(请参见“Animation”>“Tools”>“Set Motion”,并使用“FLOW”选项)为其设置动画,然后使用簇变形对其眼柄顶部的眼球设置动画。在该例中,影响眼柄的簇变换应该在影响全身的簇变换之前进行。如果在创建眼柄簇之前设置“Animation”>“Tools”>“Set motion”,那么会按照错误顺序应用簇变换,动画显示将不正确。对这些簇重新排序,以便在流簇更正该问题之前显示眼柄的变形簇。
可以通过在“Cluster Editor”中更改簇的顺序,更改对模型应用这些簇的顺序。
在要移动的簇上单击并按住鼠标键,然后将其拖放到另一个簇的顶部。该操作会对簇进行重排序,使所选簇(正被拖动)相邻显示在它过去所在的簇前方(与此时未显示的任何其他簇无关)。将拖动的簇移到当前目标簇上时,目标簇将以白色亮显。“Cluster Editor”无需显示模型中的所有簇;显示的簇将按照正确顺序排列。
如果希望一次移动多个簇,请在开始拖动之前将其全部选中。选择的所有簇都会放在“目标”簇之前。
None — 将取消对“Cluster Editor”中所有项的选择。
All — 将选择“Cluster Editor”中的所有项。
Update — 更新建模工具以反映“Cluster Editor”中的选择。
例如,如果在“Cluster Editor”中拾取了一个簇和两个簇成员,那么当选择“Pick”>“Update”时,将在建模工具中拾取一个簇和两个簇成员,而“Cluster Editor”中的其他项将会在该工具中取消拾取。如果发生选择冲突(例如,在“Cluster Editor”中仅在一个簇中选择了包含在两个簇中的 CV),则“Cluster Editor”中出现的第一个选择的状态优先级高。
All — 将所有簇加载到“Cluster Editor”中。
Picked — 如果拾取一个簇或其 DAG 节点祖先之一,则该簇将显示在列表器中。
Member — 如果拾取了一个簇的任何成员或其子成员,则该簇将显示在列表器中。
将一个簇加载到编辑器中后,可通过选择“lock”按钮将其锁定。这样,该簇就不受拾取列表中更改的影响。
Add — 在建模工具中拾取的各个项会添加到“Cluster Editor”中选择的各簇中。只能将曲线 CV 或曲面 CV、DAG 节点或其他簇添加到簇中。
Remove — 如果在“Cluster Editor”中选择了簇的簇成员,则会移除每个选定成员。
Collapse — 对于选择的每个簇,其任何选定成员都将直接应用该簇的变换,然后这些成员将从簇中移除。
Split — 对于在列表器中选择的每个簇,将会创建一个新簇(紧随原始簇之后),然后将原始簇中的所选元素移到新簇中。原始簇或新簇可能为空(如果选择了原始簇的所有簇成员或未选择任何簇成员)。新簇与原始簇类型相同(多簇或独占簇)。两个簇都分组到一个公共 DAG 节点下。
Copy — 在“Cluster Editor”中选择的每个簇成员都会添加到选择的各个簇中(不会从原始簇中移除它们)。百分比动画(如果有)也同时被复制。
Move — 将所选的每个簇成员移到选定簇中。只能为该操作选择一个簇。系统会将成员从所在簇中移除,然后放到所选簇中。
在“Cluster Editor”中单击一个未选定的项会选择它,同时会取消对所有其他项(簇或成员)的选择。
若要选择多个项,请按住 键并单击要选择或取消选择的各项。也可以按住
键并单击一个未选定的项,然后按下鼠标键并执行拖动拾取来选择一组项。对选定项执行上述操作会取消拾取。
拖过列表器末尾会滚动列表器,并继续进行拾取或取消拾取。继续拖过窗口末尾会加速滚动。
如果只选择了成员,则将这些成员拖到另一个簇中时,会将其移到该目标簇中。此时会保留成员的百分比效果。
在设置动画时,如何选择控制柄以便于区分模型的不同部分拾取它们。
对象或节点的旋转轴心点上会显示一个浅橙色十字和节点名称(十字与图标中的十字相似)。如果选择控制柄处于非激活状态,十字和节点名称将会变为红色。
如果您看不到所创建的选择控制柄,可以使用“Animation”>“Tools”>“Move Selection Handle” 或“Transform”>“Local”>“Set Pivot”
并打开其选项,将其移出该对象或节点。
以圆柱体为例,可以将选择控制柄放在组件节点上,并使用它们将组件或圆柱体作为整体轻松激活。添加选择控制柄:
根据需要,继续添加新控制柄。
选择“Windows”>“Information”>“Information Window”,了解有关刚刚插入到模型的选择控制柄的详细信息。
若要删除一个选择控制柄,只需将其选中,然后选择“Delete”>“Animation”>“Delete Selection Handles”。
由于“Transform”工具对选择控制柄拾取模式非常敏感,因此您可以非常轻松地仅变换“capB”等组件或整个圆柱体。
“Set key shape”允许您通过变换 CV,将一个对象变换为另一个对象。
可以创建两种类型的插值:
通过为基本对象的 CV 设置动画,使其与目标对象的位置匹配来创建“Key shape”插值。
通过将基本对象的 CV 放入簇,然后提供选择变换量的方法来创建“ShapeShifter”插值。ShapeShifter 插值还可以用于将各种目标形状混合在一起。
系统将提示:
Pick the curves or surfaces which are to change shape. Press GO when ready.
Enter a keyframe value(s) for the picked item(s) current shape (last frame set is 0):
Setting keyframes for 4 CVs of object (curve#2)
系统将提示您拾取要匹配的曲线或曲面,并为这些元素设置关键帧。
然后,系统会提示您选择其他形状,并输入原始对象采用这一新形状的关键帧时间。可以继续选择新形状,直到选择了所有已修改的副本并为其设置了关键帧时间。
如果希望保留原始几何体形状,请在调用该功能之前先复制原始对象,或为对象的原始形状设置关键帧时间,以便可以通过查看关键帧时间,使对象恢复到其原始形状。
系统通过为原始对象的每个 CV 设置动画来创建关键形状动画。默认情况下,CV 之间的插值(将一个关键形状变换为另一个关键形状的过程)是平滑的插值。可以通过在“Action Window”中修改 CV 的动画曲线的切线,来调整此插值。
完成关键形状动画后,如果您对结果不满意,可以删除该动画并重新开始。但是,在删除该动画之前,可能需要恢复变换对象的原始形状。如果您为原始形状键入了关键帧时间,则可以选择“Animation”>“Show”>“View Frame” 并键入该关键帧的时间来轻松完成恢复。
如果您对动画感到满意,可以删除中间对象,因为其形状现在已记录为关键帧。
可以使用任意数目的插值形状。每个形状必须有相同的拓扑。建议您复制原始几何体(第一个关键帧的几何体形状),然后操纵所复制几何体以获得后续关键帧需要的形状。如果正在对曲线形状进行插值,可以使用“Curves”>“New curve”并在选项窗口中将“Knot Spacing”设置为“Uniform”,确保使用相同拓扑创建曲线。
变换原始对象所使用的对象必须与原始对象具有相同拓扑。具有相同拓扑的曲面在 U 和 V 参数方向上的 CV 数相同。曲线必须具有相同数量的 CV。
在此示例中,使用某个球体创建插值动画,该球体在 10 个关键帧中采用菱形,在接下来的 10 个关键帧中还原为原始形状,在之后的 10 个关键帧中又还原为菱形。
原始球体定义起始形状,修改后的球体定义最终的插值形状。尽管在此示例中只使用了两个形状,但是可以使用多个插值形状。
Pick the curves or surfaces which are to change shape. Press GO when ready.
如果包含了其他几何体动画,需要继续选择几何体来响应提示。
活动窗口的右下角会显示一个“GO”小图标,而系统会继续提示:
Pick the curves or surfaces which are to change shape. Press GO when ready.
Enter a key frame value(s) for the picked item(s) current shape (last frame set is 0):
这表示将为关键帧 1 和 20 使用初始球体的形状。系统将提示:
Pick the curve or surface to match.
如果要匹配的曲面与要改变形状的曲面的拓扑不匹配,将显示错误消息,系统提示:
Pick the curve or surface to match.
如果所选曲面的拓扑相匹配,系统将提示:
Enter a key frame value(s) for this shape (last frame set is 20):
这表示将为关键帧 10 和 30 使用所操纵球体的形状。
在回放期间,在帧 1 到 帧 10 期间,初始球体形状将会插值到处理后的球体的形状。然后,从帧 10 到帧 20,插值回原始形状,之后从帧 20 到帧 30,再次恢复为处理后的形状。
在使用“ShapeShifter”时,可以组合使用数量不限的表达式和形式,以便将对象变换为各种形状,还可以混合面部表情。
ShapeShifter 通过使用簇和表达式变换 CV,将一个形状变换(或“变形”)为另一个形状。这样,可以选择在任何特定时间应当应用的插值量,并将多个不同的目标形状混合在一起。因为使用了簇,所以基本几何体可以是多边形或 NURBS。源对象和目标对象也可以是层次对象,只要其层次相匹配即可。
“ShapeShifter”显著简化了复杂的面部动画。例如,如果已给出基本(或无表情)面部以及带微笑和皱眉表情的其他面部,可以创建一个 75% 微笑、50% 皱眉的面部,并控制各个目标之间的插值时间。
插值通过确定使源对象中的 CV 移至目标对象中对应的 CV 的平移完成。因此,两个对象必须共享相同的拓扑(即 U 和 V 方向的 CV 数必须相同)。
交互很简单 – 为每个目标创建一个“控制”对象。此对象的 X 平移确定从基础对象到目标对象的过渡量,当然,可以为其设置动画。例如,要使无表情面部在 2 秒钟内放松微笑,只需将控制对象移到滑块左侧,在第 0 帧设置关键帧,然后将控制对象设置到右侧较远处,并在第 60 帧设置另一个关键帧。在“Action Window”中为控制对象的 X_translation 通道设置动画插值(或使用表达式),这样就可以了。
以下示例说明如何使用“ShapeShifter”组合来自两个单独头部表情的特征。
中间的头部组合了另外两个头部的特征。左侧头部已被操作进行夸张小魔鬼的下巴和触角。右侧的头部有一个尖头以及一对非常酷的耳朵。
通过移动顶部滑块的控制对象,可以使中间的头部获得右侧头部的一些特征。请注意中间头部如何也变为尖头,并且已开始显露自己的一对耳朵。可以通过滑块位置控制形状变化量。
在开始移动底部滑块的控制对象时,请注意中间头部如何开始获得左侧头部的一些特征,而且保留右侧头部的效果。
源对象和目标对象必须共享相同的拓扑(U 和 V 方向的 CV 数必须相同)。插值通过确定使源对象中的 CV 移至目标对象中对应的 CV 的平移完成。
设置选项:
此时将创建一个包含 3 个簇的 DAG 节点以及一个用于控制对象的 DAG 节点。
如果选中“Create control geometry”,则会在控制对象的 DAG 节点中包含三角形对象。
如果选中“Create slider geometry”,还会创建一个包含表示滑块条的几何体的 DAG 节点,以及一个名称标注对象。此时将在模板状态下创建最后一个对象。
还可以在由许多成组几何体节点组成的对象之间创建“ShapeShifter”插值。
对于分组对象,会按照如下方式创建“Shape Center”:
下面是一个具有两个不同层次的 SBD 视图示例,仍然可以将其用于“ShapeShifter”插值。在每个对象中按照从左到右的顺序匹配几何体节点。
在“Deformation Control”窗口中可以设置变形帧的参数,然后将变形帧附加到对象。对于曲线、坐标轴、骨骼或角色生成器变形,将变形帧附加到对象后,可以通过操纵变形帧来交互地修改对象的曲面。
需要更改对象的形状时,可以修改控制曲面形状的 CV,通常一次修改一个 CV。因此,您可以灵活地更改对象形状,但如果曲面或对象是使用很多 CV 构建的,那么该过程很快会变得耗时而枯燥。
“Deformation control”允许您创建 CV 组(或簇),从而在更高级别操纵 CV。这类似于推拉曲面,例如在油泥建模中。
共有四种类型的变形帧:
若要将变形帧附加到模型,屏幕上应显示“Deformation Control”窗口。将变形帧附加到模型后,可以关闭该窗口。
“Deformation control”工具对复制对象不起作用。这是因为变形通过簇实现,而簇应用于对象的 CV。复制对象与其源对象共享相同 CV,所以不能跨对象副本分布变形。
“Deformation control”工具对具有构建历史的对象不起作用。这是因为构建历史已经在控制对象的形状。
选择“Animation”>“Editors”>“Deformation Control” 可打开“Deformation Control”窗口。
“Deformation Control”窗口会更新,反映对四种变形之一应用的参数。下图显示了具有默认设置的“Deformation Control”窗口。
在该窗口中设置的所有参数都会应用于将附加到模型的帧。附加帧之后,改变参数不会影响对已附加到模型的帧所做的任何更改。
如果希望更改参数以改变变形效果,可使用“SKELETON Frame Types”和“CHARACTER BUILDER Frame Types”窗口中的“Modify”选项。否则,必须首先打断当前附加到对象的帧,设置新参数,然后将新帧附加到模型。在某些情况下,您可能希望离开附加到模型的原始帧,设置新参数,然后再将新帧附加到模型。
“Frame Control”和“Edit”按钮位于“Deformation Control”窗口的底部。单击并按住一个按钮可显示关联的菜单。
Reset — 将当前帧类型的所有变形参数重置为系统默认值。
帧类型定义了创建的变形簇类型。对于某些帧类型,需要创建用于附加簇的帧对象。
例如,对于曲线帧类型,帧为曲线。对于骨骼或角色生成器帧类型,帧为骨骼。轴帧类型不需要显式帧。
显示的菜单项取决于指定的帧类型。对于所有帧类型都会显示下列项:
Attach — 附加指定帧类型的帧变形。
如果调用“Attach”功能时没有对象处于激活状态,系统会提示您选择要为其附加帧的对象。
Detach — 从模型打断一个帧,然后取消附加该帧的对象应用的所有变形。
从模型打断一个帧后,系统将会保留该帧,但删除所有关联的变形簇,包括 CHARACTER BUILDER 帧的所有凸起簇。
“AXIS”变形的打断功能实质上与选择或拾取关联簇然后使用“Delete”>“Delete Active” 将其删除的结果相同。
Collapse — 从模型打断变形帧,并将该帧定义的所有变换塌陷到附加的模型。
通过该方法,可以在删除帧时保留模型上的变形效果。系统会保留 SKELETON、CURVE 或 CHARACTER BUILDER 帧,但会删除所有关联的簇。
如果选择“SKELETON”帧类型,则“Frame Control”菜单中包含“Modify”选项。对于“CHARACTER BUILDER”帧类型,“Frame Control”菜单中包含下列选项:
Modify — 修改帧上 CV 的当前附加方式。当您要在“Deformation Control”窗口中更改某些选项,并希望已执行的附加反映新设置时,使用该项很方便。该操作实质上与执行“Detach”后再执行“Attach”相同。
Set Attributes — 将当前显示的角色关节和凸起属性存储在拾取的关节上。
如果将“Hierarchy Depth”设置为“BELOW”或“PARTIAL BELOW”,则系统会根据“Hierarchy Depth”设置,将属性存储在所拾取关节下的所有关节上。
Load Attributes — 使用之前在所拾取关节上设置的值更新“Deformation Control”窗口。
Remove Attributes — 从选定对象移除之前设置的所有属性。
可用于指定将用于变形的帧类型。单击“Frame Type”标题的右侧可以显示可用帧类型的菜单。
选择帧类型后,“Deformation Control”窗口会自动更新,反映适用于该帧类型的参数。
下文将介绍针对选择的每个“Frame Type”显示的不同参数。
“AXIS”变形是可使用的最简单变形。该变形可创建单个簇以实现变形效果。“AXIS”变形的最大用途是执行弯曲、扭曲或锥化操作。
系统会根据簇中 CV 成员与平面的距离来计算要在这些成员上应用的百分比效果。该平面的位置由“AXIS”变形参数定义。
当“Frame Type”设置为“AXIS”时,“Deformation Control”窗口将更新,如下图所示。
“Deformation Axis”参数用于指定百分比效果将改变的方向。
单击并拖动这些滑块的底部以选择值,或单击以键入一个新值,然后按 Enter 键。
“interpolation”距离计算为对象 CV 与以变形轴为法线的平面之间的世界空间距离。通过在轴方向投影边界盒并找到效果为 0% 的点来计算该平面的原点。理解上述过程的最简单方法是将圆柱体想象为变形对象。变形轴处于圆柱体长轴的方向。当百分比范围为 0.00 至 100.00 时,原点将位于圆柱体底部的中心。每个“Deformation Axis”参数均可编辑,而且可指定任意变形轴。
“Interpolation”值和“Min/Max Percentage”值的“Percentage Effect Parameters”与“AXIS”帧类型和“CURVE”帧类型的“Percentage Effect Parameters”相同。
确定如何在 CV 簇的成员之间分布百分比效果。在“Interpolation”标题的右侧单击可显示以下菜单。
LINEAR — 根据“Min Percentage”和“Max Percentage”值之间的线性插值来分布簇成员的百分比效果。
EXPONENTIAL — 在“Min Percentage”和“Max Percentage”值之间按指数分布簇成员的百分比效果。
SINE — 根据“Min Percentage”和“Max Percentage”值之间的正弦曲线插值分布簇成员的百分比效果。
下图给出了这三种插值类型。
确定簇中 CV 可具有的百分比效果范围。这些值可以是正值或负值,包括值 0.00。虽然滑块控制的范围是 -100.00 到 100.00,但可以在参数字段中直接键入该范围以外的值。通过对换值,使“Min Percentage”大于“Max Percentage”,能够有效反转上图所示曲线的方向。
该位置只是举例。可以将实际几何体放置在空间中的任意位置,还可以指定适用的变形轴。
Pick uninstanced surface(s) to deform, then GO.
当提示消失时,表明轴变形帧已附加到活动对象(在本例中是圆柱体)。
也可以在 SBD 窗口中使用“Pick”>“Object” 或“Animation”>“Pick”>“Cluster”直接选择簇。
还可以尝试将“Min Percentage”和“Max Percentage”均设置为 100。
在应用“CURVE Frame Type”时,使用一条普通 NURBS 曲线作为影响变形的“CURVE”帧。将“CURVE”帧曲线附加到对象后,操纵“CURVE”帧可按相同方式将对象变形。在复杂变形中,可以将多个“CURVE”帧附加到一个对象,每个帧控制一个变形层。初步完成初始形状后,可以轻松对其进行细化并应用于较大模型。
将“CURVE”帧附加到对象后,会为帧曲线上的每个 CV 创建一个变形簇。然后,帧的 CV 变为控制柄,可用于操纵帧。
如果曲线变形的“Effect Range”设置为“MULTIPLE CLUSTER”,则帧上的每个控制柄都会影响曲面上的所有 CV,与各 CV 距离较近的控制柄比距离较远的控制柄影响更大。
如果“Effect Range”为“SINGLE CLUSTER”,则曲面上每个 CV 仅受与其距离最近的控制柄的影响。
本示例显示了原始曲面,以及来自“CURVE Frame Type”所生成曲面的复制曲线。为了创建簇,系统会将曲线帧上的每个控制柄与曲面上的一个或多个 CV 进行匹配。当“Effect Range”选项设置为“SINGLE CLUSTER”时,系统会通过将曲面 CV 与世界空间中距其最近的帧 CV 进行匹配来确定匹配。
在本示例中,“CURVE Frame Type”是带七个 CV 的自由形式曲线。其中三个 CV 不像另外四个那样靠近某个 CV。因此,会创建三个空簇。这些簇显示在 SBD 窗口中,但对曲面不产生影响。
创建簇后,“CURVE”帧曲线的控制柄 CV 包含在簇中。因此,可以使用“Animation”>“Pick”>“Cluster”,然后单击影响要操纵的簇的控制柄 CV,来轻松选择任何簇。
对象变形因附加“CURVE”帧时它相对于对象的位置而异。这是因为各个簇的轴心点位于影响该簇的控制柄的 CV 位置。
在您尝试了解“CURVE”帧变形的过程中,首先尝试将“CURVE”帧与对象中心对齐,然后通过将“CURVE”帧附加到其他位置的对象进行试验。或者,也可以拾取要影响的任一簇的控制柄,然后选择“Transform”>“Local”>“Set Pivot”,将该簇的轴心点重新定位。
选择“CURVE Frame Type”时,“Deformation Control”窗口将更新,如下图所示。
单击标题右侧可显示“Effect Range”菜单。
MULTIPLE CLUSTERS — 每个控制柄影响对象曲面上的所有 CV。
距离 CV 最近的控制柄产生最大影响,与 CV 的距离越远,其影响就越小。
SINGLE CLUSTER — 确保对象曲面上的 CV 仅受与其距离最近的控制柄影响。
确定如何在 CV 簇的成员之间分布百分比效果。
“Interpolation”选项与“AXIS Frame Type”的选项相同。
与帧 CV 距离最近的 CV 具有最大百分比。与帧 CV 距离最远的 CV 具有最小百分比。如果最小值是 0,则最远的 CV 不会加入到簇。
Pick uninstanced surface(s) to deform, then GO.
Select curve(s) to use as frame, then GO
选择要用作帧的曲线(在本示例中是复制的等参曲线)。选中的曲线将会亮显。
将“CURVE”帧附加到对象后,可以将其移到任意位置,而簇的轴心点仍然位于最初创建“CURVE”帧的位置。虽然可以随时在任意位置设置任一簇的轴心点,但使用该方法可以轻松将它们与簇中心对齐。若要始终保持帧与对象的相对位置不变,只需将它们组成一组。
选择簇之后,控制柄以及该控制柄控制的所有 CV 都将会亮显。
观察在其他建模窗口中变形的效果。簇中所有 CV 与帧的距离都相等,所以 CV 之间的百分比效果不存在差别。
系统将提示:
Pick frame(s) to detach, the GO
选择簇之后,控制柄以及该控制柄控制的所有 CV 都将会亮显。
由于所有 CV 与帧曲线的距离不再相等,所以请注意圆柱体外围的缩放百分比效果如何从“Min Percentage”0 变化到 100。
请记住,如果实现了要保留的效果而且不再需要簇,可以从“Frame Control”菜单中选择“Collapse”从对象打断“CURVE”帧,而该对象不会失去变形变换。
可以使用下列任一变形技术模拟剪切效果。
使用“SKELETON”帧变形可以将现有骨骼附加到一个对象,有效地创建灵活的身体。然后,可以通过仅修改骨骼来操纵身体,从而显著提高反馈速度。系统会为“SKELETON”帧上的每个关节或骨骼创建一个簇。这些簇包含环绕关节或骨骼的所有 CV。
通常,可使用 IK 控制柄操纵“SKELETON”帧。
指定了“SKELETON Frame Type”时,“Deformation Control”窗口会更新:
单击标题右侧可显示“Effect Area”菜单。
使用这些选项可以选择是按“JOINTS”还是“BONES”对 CV 分组。
BONES — 将最接近每个骨骼的 CV 集合到簇中,该簇将分组到该骨骼的上部关节 DAG 节点下。“BONES”是默认选项而且最常用。
JOINTS — 关节周围区域中的 CV 集合到簇中,该簇将分组到该关节 DAG 节点下。
单击标题右侧可显示“Hierarchy Depth”菜单。
因为要指定几何体在骨骼中每个关节或骨骼周围的行为,所以限制受当前变形操作影响的层次中关节数量通常很有用。
使用下列选项可以指定在附加过程中要考虑包含多少个关节级别。
NONE — 仅考虑将当前所拾取的关节作为变形帧。
BELOW — 包含骨骼层次中所拾取关节和它下面的所有关节。
PARTIAL BELOW — 包含所拾取关节和它下面用户指定数量的关节级别。
例如,如果拾取一个关节并指定两个级别的“PARTIAL BELOW”深度,将最多影响三个关节。
确定簇中所有 CV 将具有的效果的百分比。该值可以是正值或负值。值 0.00 将导致变形帧根本不产生影响。
“CHARACTER BUILDER Frame Type”延伸了“SKELETON”变形,用于指定附加到骨骼的几何体如何绕关节弯曲,以及如何在两个关节之间凸起。
例如,绕关节弯曲能够使手臂几何体在肘部平滑变形(使用弯曲和蜷缩完成),而在两个关节之间凸起可以模拟在手臂弯曲时放松和紧张的二头肌。
指定了“CHARACTER BUILDER Frame Type”时,“Deformation Control”窗口的更新如下所示。
如果选择了“CHARACTER BUILDER”,则当您单击“Frame Control”按钮时,菜单中还包含下列项。
Modify — 修改帧上 CV 的当前附加方式。当您要在“Deformation Control”窗口中更改某些选项,并希望已执行的附加反映新设置时,使用该项很方便。该操作实质上与执行“Detach”后再执行“Attach”相同。
如果已在多个附加操作中使用骨骼层次,或者要修改的层次范围大于执行附加时使用的层次,那么“Character Builder”中的“Modify”操作可能无法正常运行。
在“Animation”>“Editors”>“Deformation Control”中,如果下列条件都成立,则一次只能对骨骼的一个部分执行“Modify”操作:
至少有一个关节属于两个层次。
Set Attributes — 在所拾取关节上存储当前显示的角色关节和凸起属性。
如果“Hierarchy Depth”设置为“BELOW”或“PARTIAL BELOW”,则系统会根据“Hierarchy Depth”设置,将属性存储在所拾取关节下面的关节上。
Load Attributes — 使用之前在所拾取关节上设置的值更新“Deformation Control”窗口。
Remove Attributes — 从选定关节移除之前设置的所有属性。
这些选项与“SKELETON Frame Type”的选项相同,用于指定在附加过程中要考虑多少个关节级别。详细信息请参见“骨骼变形”。
该切换参数指示是否应对所选层次中的关节应用凸起效果。关节上的“Bulging”表明为该关节与其下面的相邻关节之间的几何体创建了凸起簇。
当“Bulging”为“ON”(由复选标记指示)时,“Deformation Control”窗口会扩展,包含关节和凸起属性、凸起定义以及凸起断面编辑器。
这些选项用于控制关节周围的几何体 CV 在该关节弯曲和蜷缩时的平滑程度。
“Upper Bound”和“Lower Bound”的值用于指定关节的变换将影响这些边界内 CV 的程度。换句话说,这些边界定义骨骼关节周围将发生弯曲和蜷缩的区域。
“Upper Bound”定义了骨骼上从当前关节到其父关节的百分比。
“Lower Bound”定义了每个骨骼上从当前关节到每个子关节的百分比。
上边界的 CV 接收 0% 的变换(上部骨骼的全部效果),而下边界的 CV 接收 100% 的变换(下部骨骼的完全效果)。中间 CV 的百分比根据所选插值而逐渐变化。正是上述百分比渐变生成了关节旋转时几何体的平滑弯曲和蜷缩效果。
值范围为 0.0 到 1.0,表示上部骨骼和下部骨骼的长度百分比。例如,一个关节的上边界和下边界分别为 0.25 和 0.333,则会为从关节上部骨骼的后四分之一到关节下部骨骼前三分之一的所有 CV 指定渐变百分比。
关节的“Upper”与“Lower”边界之间的“Interpolation”表示包含在关节下簇中的 CV 的百分比效果如何渐变。对于“AXIS”和“CURVE”变形帧类型,作为百分比效果参数的插值选项是相同的。
凸起的定义取决于具体项目,存储在当前项目的“misc_data”文件夹下的“bulge_types”文件中。项目中的所有 Wire 文件访问同一凸起。如果打开“Deformation Control”窗口时该文件不存在,系统会使用默认凸起类型创建它。
因为凸起主要定义几何体在骨骼上不同位置的行为,所以它们由有角度断面组成。每个断面表示在骨骼周围特定角度处凸起效果的轮廓曲线。
单击标题右侧可显示“Bulge Type”菜单。
该菜单显示当前满足“bulge_types”文件中凸起定义的凸起。拾取凸起名称将其选中。
该滑块用于增强或减弱给定凸起的效果。
说明骨骼周围的哪一方向表示零度。由此,您可以指定骨骼上的哪一切割可以接收在“Bulge Section Editor”中的“Zero Degree Section”中绘制的凸起轮廓。单击标题右侧可显示“Zero Degree Section”菜单。
“X LOCAL AXES”、“Y LOCAL AXES”和“Z LOCAL AXES”选项是指下一层关节的局部坐标轴(详细信息请参见“Basic Tools”中的“Transform”>“Local”>“Set Local Axes”)。
确定在“Attach”过程中使用“Bulging”创建的簇的位置。单击标题右侧可显示一个菜单,从中可以选择下列项:
BULGE DEFINITION — 完全按照“Bulge Section Editor”中的定义创建簇,为每个断面中的每个关键点创建一个簇。
EVENLY SPACED — 根据在“Sections Around”和“Sections Along”滑块中指定的值,围绕并沿着骨骼均匀分布凸起的簇位置。
当您从弹出菜单中选择“EVENLY SPACED”时,该窗口的“Bulging Attributes”部分扩展为包含“Sections Around”和“Sections Along”参数。
单击标题右侧可显示“Relate to”菜单。
LOWER JOINT — 将凸起与骨骼下部关节的变换相关联。这是默认设置,将用于上臂或大腿肌肉凸起。
OTHER NODE — 将凸起与其他任何 DAG 节点上的变换相关联;可在“OTHER NODE”文本框(仅在选择“Relate to OTHER NODE”时显示)中输入该节点的名称。由此,您可以在变换场景中的 DAG 节点时创建凸起效果。
单击标题右侧可显示“Relate Transform”菜单。
该菜单显示“X”、“Y”以及“Z ROTATE”、“TRANSLATE”和“SCALE”选项,可以选择这些选项以指定所选 DAG 节点的哪一变换生成凸起。
该滑块用于指定从初始状态(执行“Attach”时)开始的可生成凸起的有效变换值范围。例如,上臂凸起的 75 度值(“Relate”设置为“LOWER JOINT”且“Relate Transform”设置为“Y ROTATE”)表示当下方关节的 Y 旋转值介于其附加时的当前值与当前值加 75 之间时生成凸起。
“Bulge Definitions”列表器是指定对关节应用哪一凸起的另一种方法。
如果单击凸起列表器中的一个条目,会选择该凸起并在“Bulge Section Editor”中显示它。若要更改凸起的名称,请在字段中双击,键入名称,然后按 Enter 键。
Add — 添加包含两个断面,每个断面中有三个关键点的新常规凸起。
Delete — 删除当前选中的凸起类型。
Copy — 复制当前选中的凸起。
注意!凸起定义以代码形式存储在“bulge_types”文件中,并以代码形式在 Wire 文件中引用。如果当前或任何其他 Wire 文件中的关节引用不再存在的凸起代码,您将无法执行“Attach”。
“Angle Selector”显示凸起断面的位置(注视“Angle Selector”相当于俯视骨骼)。
红色指针指示在断面编辑器中正在查看骨骼的哪一个断面。可以移动该指针,通过单击并拖动鼠标以五度增量查看骨骼凸起定义的不同断面。如果已为某个断面定义曲线,会在该断面绘制一个白色“控制柄”。可以四处拖动并重定位该控制柄。
选择“Add”(或按 键)时,单击“Angle Selector”可以添加新断面。此时将创建一个新的断面曲线,作为其两侧的两条曲线的插值。
选择了“Delete”(或按 键 (Windows) 或
键 (Mac))时,在“Angle Selector”中单击会移除断面。
在不激活任何项时,在“Angle Selector”中单击可重定位该指针。
断面编辑器显示了带轮廓曲线的骨骼。
“Angle Selector”显示轮廓曲线在骨骼周围的位置。这会给出骨骼周围不同位置的凸起效果。当“Angle Selector”指向定义的凸起断面之一时,断面编辑器中的轮廓曲线变为白色且可以修改。否则,该曲线为黑色,表示该位置的凸起效果插值。
Add — 在曲线中添加新的关键点。
Delete — 移除现有的关键点。
当选择任一按钮时,可以使用鼠标拖动关键点。
“Section Editor”中有两类关键点,分别由“x”和“o”表示。
在大多数情况下,凸起方向将与骨骼垂直。如果 o 与 x 关键点之间的线条与骨骼不垂直,则凸起会沿骨骼滑动并离开骨骼。
在下例中,在断面编辑器中使用具有落在骨骼的垂直线的关键点 A 表示这一点。如果沿骨骼抓取 o 关键点,然后使用鼠标拖动它们,可以更改凸起的方向。例如,关键点 B 将沿骨骼轴朝关节下端方向发生凸起。
例如,一个简单的二头肌凸起可以包含两个断面:一个是骨骼上方的零度断面(轮廓曲线类似于弯曲的二头肌);另一个是骨骼之下具有平坦轮廓曲线的 180 度断面,表示没有凸起。
下面是对断面编辑器中的关键点限制。
下列基本步骤说明如何创建在肘部平滑弯曲而二头肌凸起的手臂。
执行下列步骤,指定上臂上的凸起。假设您已经定义了具有所需效果的凸起,并将其称为“biceps”。
Modify joint attributes, then press GO
当前窗口的右下角会显示“Go”图标。
因为您处于“Set Attributes”模式,所以在窗口的“Bulging Attributes”或“Joint Attributes”部分中所做的任何修改都会存储在所选关节层次中,并将反映在建模窗口中显示的凸起效果表示中。
请注意,即使已在该窗口中禁用“Bulging”,也会设置肩部关节的凸起属性。选择“Attach”时,窗口中的选项状态说明,对于尚未在其上显式存储属性的层次,为其中的关节使用了哪些属性。
即使并未设置肘部关节的“Upper Bound”和“Lower Bound”属性,也会得到肘部周围的平滑弯曲;这些属性源于窗口中显示的当前值(当然,手臂肘部附近应该有足够 CV 来进行平滑弯曲,而且显示的“Bound”值应该足以涵盖这些 CV)。
完成“Attach”操作后,对肘部关节应用需要的旋转并观察上臂凸起。
若要观察旋转肘部关节时(而不是松开鼠标键后)的凸起效果,请在“Preferences”>“Performance Options” 窗口中启用“Expression Updates: During Transform”。
“CHARACTER BUILDER”的“Attach”操作自动完成两个单调的任务:创建所有弯曲和凸起簇,生成用于将凸起簇与 DAG 节点变换相链接的表达式。必须记住: