实例化几何体工作流程示例

您可以使用 XGen 装扮森林、草原、矿场以及其他带有随机化自然元素的场景。在本示例中,使用草和树几何体填充多边形平面。此示例展示了如何:

重要: 开始之前,请务必设置 Maya 项目的位置。XGen 会创建大量文件(例如,Ptex 贴图文件),这些文件需要从 Maya 项目目录引用。

添加默认的归档几何体

XGen 随附了基于 Alembic 的几何体和材质文件的样例,可将这些文件添加到场景中。这些文件位于 Maya 安装目录下的 archive 文件夹内。例如:

C:\Program Files\Autodesk\Maya2015\plug-ins\xgen\presets\archives

提示: 在开始之前,请将 Maya 安装目录下的默认归档基本体几何体和支持文件复制到 C:\Users\username\Documents\xgen\archives 文件夹。

在本部分中,将草丛添加到植被景观。

  1. 选择要在其上实例化归档几何体的多边形网格。

    在此示例中,归档对象将添加到一个雕刻多边形平面中。

  2. 选择“XGen > 创建描述”(XGen > Create Description)
  3. “XGen”窗口中,键入“描述”(Description)“集合”(Collection)名称。
  4. 通过设置下列内容,创建归档基本体描述:
    • “此描述将生成什么类型的基本体?”(What kind of Primitives are made by this Description?)设置为“自定义几何体/归档文件(用于已创建的任何模型)”(Custom Geometry/Archives (use for any model you have created))
    • “生成基本体”(Generate the Primitives)设置为“随机横跨曲面”(Randomly across the surface)
    • “基本体的控制方式”(Control the Primitives by)设置为“放置和成形导向”(Placing and shaping Guides)
  5. 单击“创建”(Create)

    网格现已绑定到描述。使用“添加或移动导向”(Add or Move Guides)工具将导向放置在网格曲面上。

  6. 在 XGen 工具栏上,单击图标 以选择“添加或移动导向”(Add or Move Guides)工具。
  7. 单击网格上的区域以放置导向。

    归档基本体的导向在网格上显示为橙色立方体。现在,您可以指定要在网格上实例化的归档几何体。

  8. 单击“基本体”(Primitives)选项卡,然后滚动到“归档文件”(Archive Files)部分。
  9. 单击“添加”(Add),然后浏览到 archives 文件夹的位置。

    例如:

    C:\Program Files\Autodesk\Maya2015\plug-ins\xgen\presets\archives

    C:\Users\username\Documents\xgen\archives.

  10. 选择 GrassClump1.xarc,然后单击“是”(Yes)以添加支持材质文件。

    草丛几何体的预览将显示在场景中。请注意,在“归档文件”(Archive Files)部分中,缩略图表示草丛几何体。

设置几何体的大小和密度

在此示例中,草丛的大小对于此场景比例来讲太大。可以使用“大小”(Size)属性缩放几何体,然后通过设定“密度”(Density)增加草丛的数量。

  1. 若要缩放草丛,请在“归档文件”(Archive Files)部分中,将“大小”(Size)设置为 2.5。

    增加“大小”(Size)值会减小几何体的比例。

  2. 若要增加草丛的数量,请在“生成器属性”(Generator Attributes)部分中,将“密度”(Density)设置为 6.5 到 8 之间的值。

    在该场景中,所有草丛的大小相同,这使它们看起来很不自然。一种改变其大小的简单方法为重新缩放导向。

  3. 在该场景中,选择几个导向,然后使用“缩放工具”(Scale Tool)调整其大小。

    预览描述时,请注意这些草丛的大小变化。每个基本体的大小现在是不同大小导向的插值。

    在本示例中,稍后可以使用表达式来更好地随机设定基本体的大小和方向。

  4. 单击 图标以关闭导向显示。

从指定区域移除实例化的几何体

在景观场景中,许多草丛显示在岩层顶部。您可以绘制基于 Ptex 的“密度”(Density) “遮罩”(Mask),以避免在这些区域生成草丛。

请参见使用 Ptex 贴图控制基本体

  1. “生成器属性”(Generator Attributes)部分中,单击“遮罩”(Mask)旁边的 图标,然后从显示的菜单中选择“创建贴图”(Create Map)
  2. “创建贴图”(Create Map)窗口中,键入贴图的名称,例如 mask_GrassClumps
  3. 进行下列设定:
    • “贴图分辨率”(Resolution)设置为 30。

      这会设置 Ptex 贴图逐面的 Texel 数。

    • “起始颜色”(Start Color)设置为“白色”(White)

      这会将贴图值设置为 1,这样会允许几何体在曲面上进行实例化。在网格上绘制时,您使用黑色,这样会遮罩这些区域。

  4. “工具设置”(Tool Settings)窗口中,设定下列内容:
    • “Artisan”旁边,选择边缘清晰的笔刷。
    • “颜色”(Color)部分中,单击颜色样例并选择黑色。
    • “绘制操作”(Paint Operations)部分中,将“混合模式”(Blend Mode)设置为“默认”(Default)
    • “光笔压力”(Stylus Pressure)部分中,关闭“光笔压力”(Stylus Pressure)
    注: 如果“3D 绘制工具”(3D Paint Tool)窗口未显示,请在工具箱中单击图标 以将其打开。
  5. 使用“3D 绘制工具”(3D Paint Tool)绘制您不希望生成草丛的网格区域。
  6. 单击 图标以保存 Ptex 贴图。
  7. 预览描述。

    这样,该景观的岩石地形区域就不会再生成草丛。

将 Paint Effects 树导出为归档几何体

在此部分中,Maya Paint Effects 树将转化为自定义归档几何体,然后添加到该场景中。

将 Paint Effects 树作为归档对象导出前,必须将其转化为几何体(“修改 > 转化 > Paint Effects 到多边形”(Modify > Convert > Paint Effects to Polygons))。

  1. 选择几何体,然后从 Maya 菜单中选择“XGen > 将当前选择项导出为归档”(XGen > Export Selection as Archive)
  2. “将当前选择项导出为归档”(Export Selection as Archive)窗口中,设置下列内容:
    • “目标文件夹”(Destination Folder)设置为“用户归档文件 ($){HOME}/xgen/archives)”(User Archives ($){HOME}/xgen/archives))。

      Maya 会将归档文件保存到位于用户目录中的 xgen 文件夹。例如:

      C:\Users\username\Documents\xgen\archives

      如果您将默认的归档文件复制到此文件夹(如此工作流程示例起始处所述),则所有归档文件将位于相同的位置。

    • 键入文件的“归档文件名”(Archive Name),例如 PE_Tree

      Maya 将针对为归档生成的所有文件使用此名称。

    • “细节级别”(Level of Detail)设置为“已禁用”(Disabled)
    • 单击“导出”(Export)

    Maya 将为 Paint Effects 树生成自定义归档文件。

    有关归档文件的信息,请参见自定义归档基本体

在接下来的部分中,将使用“指定点工具”(Specify Points Tool)在场景中放置几何体。

使用“指定点”(Specify Points)工具添加几何体。

您可以使用“指定点”(Specify Points)工具将几何体添加到网格上的指定位置。此工具可以精确地将几何体放置到相应的位置,而不是依靠导向插值来定位归档基本体。

  1. 使用以下设置创建新的描述:
    • “此描述将生成什么类型的基本体?”(What kind of Primitives are made by this Description?),设置为“自定义几何体/归档文件”(Custom Geometry/Archives)
    • “生成基本体”(Generate the Primitives),设置为“在指定的点”(At points you specify)
  2. 单击“创建”(Create)
  3. 单击“基本体”(Primitives)选项卡。
  4. “生成器属性”(Generator Attributes)部分中,单击“指定点”(Specify Points)

    然后将显示“指定点工具”(Specify Points Tool)窗口,且光标会变为点工具。

  5. 单击网格上要在其中生成树的区域。

    黄色指示器标记了这些位置。

    注: 若要删除点,请按住 键并单击该点。
  6. “指定点工具”(Specify Points Tool)窗口中,单击“保存并关闭”(Save & Close)

    将为指定的位置保存点贴图。

    然后选择归档的 Paint Effects 树。

  7. 滚动到“归档文件”(Archive Files)部分,然后单击“添加”(Add)
  8. 浏览到存储 Paint Effects 树归档文件的归档位置。
  9. “XGen 导入材质”(XGen Import Material)窗口出现后,单击“是”(Yes)以导入与树几何体关联的材质文件。
    树几何体将会显示在点位置。根据场景的缩放比例,可能需要调整归档几何体的大小。
    注: 您可以添加缩略图来表示“归档文件”(Archive Files)列表中的归档几何体。请参见编辑归档文件组(Edit Archive Group)窗口
  10. “归档文件”(Archive Files)部分,调整“大小”(Size)来缩放树。
  11. 请注意,所有树都有相同的大小和形状。在下一部分中,将创建表达式为树的大小和方向随机生成值。

使用表达式改变实例化几何体的大小、形状和方向

您可以使用表达式来实现几何体的大小、形状和方向的随机化。这样,就可以多次实例化同一几何体,但每个实例在场景中的显示都不相同。

一种改变实例化几何体的简单方法是使用随机化表达式。

将随机化添加到“扭曲”(Twist)属性

  1. “基本体属性”(Primitive Attributes)部分,单击“扭曲”(Twist)旁边的 图标。
  2. “XGen 表达式编辑器”(XGen Expression Editor)中,键入以下表达式:rand(0,360)

  3. 单击“接受”(Accept)

    每棵树现在都有其独特的“扭曲”(Twist)值。

使用集合表达式生成变化

另一种生成随机化的方式是创建集合表达式。此类型的表达式可以应用于集合中所有描述的不同基本体属性值。

在此示例中,可以使用集合表达式来创建具有滑块控件的自定义 XGen 属性。使用该滑块控件,可以生成随机化的值,并应用于“长度”(Length)“宽度”(Width)“深度”(Depth)“扭曲”(Twist)等属性。

  1. “XGen”窗口中,单击“表达式”(Expressions)选项卡。
  2. “名称”(Name)旁边,键入自定义表达式的名称,例如 randomizer

    由于此表达式使用浮点值,因此将其设置保留为“浮点型”(Float)

  3. 单击 图标以创建该属性。
  4. 单击属性旁边的 图标。
  5. “XGen 表达式编辑器”(XGen Expression Editor)中,键入:

    $a=;

    这将会为该属性创建一个滑块控件。

  6. 在下一行键入以下表达式:

    $a*rand(0.1, 3.0)

  7. 单击“接受”(Accept)

    在该表达式中,滑块的值会乘以一个随机函数。现在,可以将基本体属性设置为使用该表达式生成的随机化值。

  8. 单击“基本体”(Primitives)选项卡,再单击“长度”(Length)旁边的 图标。
  9. 清除显示在“XGen 表达式编辑器”(XGen Expression Editor)中的内容,然后键入自定义属性名称,后跟 (),例如 randomizer()。单击“接受”(Accept)

    现在,会根据自定义属性滑块设置随机生成指定给长度的值。

  10. 针对“宽度”(Width)“深度”(Depth)“扭曲”(Twist)重复上面的步骤。
  11. 单击“表达式”(Expressions)选项卡,然后使用自定义属性滑块生成合适的值。

    也可以使用 randomizer() 表达式来改变场景中草丛的大小和方向。