UDN
Search public documentation:

APEXClothingCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > APEX 架构 > UE3中的APEX Clothing
UE3主页 > 角色美工人员 >UE3中的APEX Clothing

UE3中的APEX Clothing


概述


APEX Clothing(APEX布料)是由NVIDIA开发的APEX架构中的一个模块。通过使用APEX Clothing,用户可以在其游戏的角色上创建真实的布料。APEX Clothing已经集成到了UE3中,并且可供授权用户和UDK用户使用。本页面提供了如何在UE3中导入及使用APEX布料的说明。

关于APEX Clothing模块的更多信息可以在NVIDIA布料页面找到。

获得工具


这些工具可以在APEX概述的“获得工具”部分找到。

指南


最新的布料指南随同这些工具一同提供,但是也可以从这里进行查看: APEX指南

导入


  1. 为将要具有布料的资源导入骨架网格物体动画文件(.psk and .psa)。
  2. 材质编辑器 创建一个 Two Sided(双面)? 材质并设置 Used With APEXMeshes?(和APEXMeshes协同使用) 标志。
    UDN_APEX_Clothing_Material_500.jpg

  3. 导入您使用 Max/Maya 布料插件创建的.apx文件。
    注意
    请确保您使用 "APEX Clothing"导出选项而不是"APEX ARM"进行导出。
  4. 打开动画集查看器并使得 Apex布料资源 和网格物体相联系。
  5. 默认情况下,只有1个布料插槽可用。在这里添加一个APEX Clothing节点将创建一个新的空插槽。将总有一个插槽为空的状态,以便可以添加多个布料资源。
  6. 在Skeletal Mesh(骨架网格物体)下面有一个新的Clothing LOD Map(布料LOD映射)部分。该部分用于将布料资源和图形材质结合起来,以管理LOD。
  7. 要想将APEX Clothing Asset(布料资源)和图新材质相关联,可以将相应布料资源的 Clothing Section Info(布料部分信息)设置为想使用的Material ID(材质ID)。这将使用APEX Clothing Asset(布料资源)替换网格物体部分的图形版本。
    Clothing_LOD_map1.png

  8. Use Clothing Asset Material(使用布料资源材质) - 在动画集查看器中的骨架网格物体上,底部有一个新的 Apex Clothing部分。这个控制允许您使用APEX Clothing Asset中定义的替换图形材质覆盖带原图形材质。这支持基于每个布料资源的多个材质的情形。默认为未选中状态。这意味着APEX Clothing Asset将默认继承骨架网格物体的材质。选中该控制将会导致给定网格物体上的所有布料材质被他们各自相应的布料资源所覆盖。
    Apex_Clothing_Material_Override.png.

  9. 如果启用了该覆盖功能,请在APEX Clothing Node中设置布料。( 参照以下Asset Settings(资源设置)中的图片)
  10. 您可以使用 PhysX Debug 菜单来查看APEX布料的各个方面的信息。
    UDN_APEX_Clothing_Debug_Visualization_500.jpg

资源设置


您可以看到以下的Clothing Asset(布料资源)设置。很多设置使用默认值即可,但是有几个设置这里还是值得提一下的。

  • Continuous Rotation Threshold(连续旋转度阈值) – 如果您的角色在某些情况下旋转地太快,可能会导致和布料产生碰撞问题。也就是,角色在一帧中完成一个180度的完整旋转。通过设置这个阈值,您可以强制布料对齐到新的位置,使其不必进行强制的旋转模拟。
  • Continuous Distance Threshold(连续距离阈值) - 当您的角色在一帧中移动超出正常距离时,可能会产生不真实的物理模拟,这将会导致布料发生不正常的拉伸。设置这个阈值将会电传布料到新的位置,从而避免给布料添加拉力。
  • Reset After Teleport(电传后重置) - 这个标志告诉布料当电传发生后重置其本身。这将会将布料置回植皮姿势。这可以避免这种情形出现:当布料处于极端姿势,且您电传一个对象附近的玩家,而玩家的布料可能穿过该对象。

UDN_APEX_Clothing_Asset.png

在动画(布料具有设计动作)过程中控制行为


可能在某些情况下,您的动画可以导致极端的布料行为。比如,一次可能导致玩家披风飞过其头顶的跳跃。或者,您已经在您的布料上设置了一些自定义的动画,因为您想让它在某些情形中以某种特定的方式抖动。您可以使用ClothingMaxDistanceScale动画通知来控制动画过程中移动的最大距离。通过使用MSDM_MULTIPLY Scale模式,您可以使用1.0 (设置布料为完整MaxDistance)到0.0 (布料完全植皮到动画上)之间的值来缩放布料的现有MaxDistance(最大距离)。

UDN_APEX_Clothing_AnimNotifies_01.png

ClothingMaxDistanceScale动画通知应该总是成对使用的,以便您可以平滑地混合到您需要的值,然后当退出动画时混合回原来的值。

UDN_APEX_Clothing_AnimNotifies_02.png

图形LOD


APEX Clothing可以具有图形LOD,它们以各自独特的分辨率进行仿真。

  1. 如果您在DCC工具中设置使您的布料具有LOD,那么当您连接APEX布料资源到骨架网格物体(和上面提到的方法相同)时,无论APEX布料资源中有多少LOD,都将会填充和布料资源插槽相对应的布料LOD映射。在下面的示例中,有3个LOD。
  2. 设置每个级别的Clothing Section Info(布料部分信息)(正如上面所提到的)。
  3. 如果目的是想覆盖任何布料LOD的图形材质,那么请使用骨架网格物体的LOD信息部分中的覆盖材质。


可以通过以下属性在布料Actors上设置风:

  • Wind Velocity Blend Time(风速混合时间) - 使用这些设置来设置布料顶点的目标风速。Wind Velocity Blend Time(风速混合时间)是布料达到该速度所需的时间。值为.01,将会立即获得反应。设置该值为0.0则会关闭风。
  • Wind Velocity Vector(风速向量) - 风的方向及力度。

为了获得在给APEX 布料应用风时获得最有趣的行为(飘动、卷起),推荐您将阻尼设置的非常低,最好是0。如果布料上的阻尼较高,那么您在布料上将不会看到太多的运动效果。

UDN_APEX_Clothing_Actor.png

Clothing Lag Hints


  • Preventing Lag with Attachments(阻止附加物滞后) - 当您在脚本中通过附加物附加布料时出现了延迟滞后,那么请尝试将那个SkeletalMeshComponent(骨架网格物体组件)的bForceUpdateAttachmentsInTick 项设置为true。这将会确保布料组件每帧更新两次 - 一次当Tick中更新,另一次当调用UpdateTransform时进行更新。这会导致一些性能消耗,但是当一个actor移动后,为了避免滞后,布料必须随之更新。
  • Lag on Characters(角色滞后) - 确保带有布料的actors将他们的 TickGroup 设置为 TG_PreAsyncWork
  • Tick Order - 一般在调试时,您可以输入日志,以确保下面的过程按正确的顺序发生。(使用GetPathName打印出名称,以确保您看到正确的actor。)
    • Begin Frame(开始播放帧)
    • Tick(更新)
    • 更新变换 (设置了bFinalUpdate)
    • 同步变换

示例