跳转到内容

Shapes

Shapes 是可以在视口中绘制并通过关键帧和/或 Behaviours 进行动画处理的 Layer。

Shape 是一种包含 Mesh 的 Layer 类型,可使用 FillStroke 进行样式设置。

Cavalry 中的 Shape Layer 示例包括 Basic ShapeText ShapeDuplicator

Particle Shape 与此定义有所不同,以便以高性能方式处理大量粒子。

Shape” 在 Cavalry 中可以有两种形式:

  • Shape - Shape 包含可编辑的自定义属性,用于更改其 Path。例如,Rectangle 包含 Size(Width/Height)属性,Ellipse 包含 Radius 属性。
  • Editable Shape - Editable Shape 是一种非程序化 Shape,包含可使用 Edit Shape 工具编辑的 Editable Path

Mesh 是由以下组件组成的容器:

  • Transform - 其 Position、Rotation、Scale 和 Pivot。
  • Fill - 用于填充闭合路径内部的颜色。
  • Stroke - 用于路径轮廓的颜色。
  • Path - 由直线和曲线构成的几何基元。Path 可以包含多个 Contours — 即彼此不连接的路径部分。
  • Child Meshes - 父 Mesh 的子级。

Mesh 可以包含子级,从而形成层级结构。例如,Text Shape 为每行、每个单词、每个字符包含一个子级。因为每个 Mesh 都有自己的 Transform、Fill 和 Stroke,这使得可以按行/单词/字符对文本进行动画处理。

  • Text Shape
    • Line
      • Word
        • Character

Sub-Mesh Deformer 可用于通过设置层级深度来编辑每个子 Mesh。这个理念同样适用于 Mesh 的 FillStrokeTransform

Mesh Explorer 可用于展开 Shape 的层级结构,帮助理解其他可以操作其子 Mesh 的 Layer 将产生什么效果。

Path 是由直线和曲线构成的几何基元。Path 内可以包含多个不连接的轮廓,从而实现打孔等效果。构成 Path 的直线和曲线可以由各种不同类型的贝塞尔曲线、直线或用于闭合轮廓或开始新轮廓的特殊标记组成。

Path 针对实时绘制进行了优化,因此与 Editable Path 不同,它不能通过在视口中移动点来编辑。Path 应通过 Shape Menu 转换为 Editable Shape,以允许直接操作和 Path Animation

使用 Edit Shape 工具选中时,Path 和 Editable Path 在视口中的外观不同。Editable Path 将显示较大的点以指示它们可以被操作。

使用 Edit Shape 工具选中时的 Path(左)和 Editable Path(右)。

Editable Path 是一种特殊类型 Shape Layer(称为 Editable Shape)的组成部分。它是一个几何基元,使用 Editable Points 来定义路径的形状。Path 的形状由带有控制点的直线和曲线描述(以曲线为中心的基元),而 Editable Path 的形状由带有手柄的点描述(以为中心的基元)。这一区别使得 Editable Path 在艺术创作中更易于使用,因为路径通常被理解为带有贝塞尔手柄的点,而非曲线。

Editable Path 的目的是通过 Edit Shape 工具在视口中直观、轻松地绘制和编辑路径。

由于 Editable Path 是实际渲染在视口中的优化 Path 的抽象表示,Path 的可见点数量可能与其实际点数量不同。以一个简单三角形为例:

一个具有 3 个点的三角形实际上由 4 个点构建,第一个点和最后一个点位于相同位置。

一个具有 3 个可见点且包含贝塞尔点的 Shape 实际上由 8 个点构成。

如果使用 Mesh Explorer 检查 Shape 的 Point Count,理解这一点很重要。

Editable Points 通过各种位置和设置来定义 Editable Path 的形状:

  • Position
  • In Handle Position
  • Out Handle Position
  • Weight Locked
  • Gradient Locked

In HandleOut Handle 均未设置时,Point 被视为 Corner Point

请注意,Point CountpointId 不应混淆。pointId 可被其他 Layer(Duplicator、Constraints 等)使用,以将 Shape 定位在其他 Shape 的点上。第一个 pointIdpointId0,并沿 Path 的方向递增,基于视口中可见的点 — 手柄被忽略。